DNS amplification

DNS amplification — тип атаки при котором используются DNS сервера для генерации DNS запросов, чтобы заполнить канал атакуемого хоста.

 

Содержание

  • 1 Cхема атаки
  • 2 Способы организации атаки
  • 3 Способы защиты
  • 4 Способы защиты DNS сервера

Cхема атаки

Логика данной основана на специфике работы DNS сервера, который отвечает на короткие запросы злоумышленников большими по размеру пакетами, давая им возможность нарастить мощность в десятки раз. Вот пример такого взаимодействия (кстати именно такие запросы чаще всего используют атакующие):

Отправляем серверу NS запрос командой dig NS servicepipe.ru @8.8.8.8
; <<>> DiG 9.8.3-P1 <<>> NS servicepipe.ru @8.8.8.8

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2029

;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0

 

;; QUESTION SECTION:

;servicepipe.ru.                      IN     NS

 

;; ANSWER SECTION:

servicepipe.ru.              3599 IN     NS    ns8-cloud.nic.ru.

servicepipe.ru.              3599 IN     NS    ns8-l2.nic.ru.

servicepipe.ru.              3599 IN     NS    ns3-l2.nic.ru.

servicepipe.ru.              3599 IN     NS    ns4-l2.nic.ru.

servicepipe.ru.              3599 IN     NS    ns4-cloud.nic.ru.

 

;; Query time: 78 msec

;; SERVER: 8.8.8.8#53(8.8.8.8)

;; WHEN: Tue Dec 13 09:05:02 2016

;; MSG SIZE rcvd: 147
Так же можно использовать более ещё более тяжёлый запрос

dig ANY servicepipe.ru @8.8.8.8

 

; <<>> DiG 9.8.3-P1 <<>> ANY servicepipe.ru @8.8.8.8

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39912

;; flags: qr rd ra; QUERY: 1, ANSWER: 9, AUTHORITY: 0, ADDITIONAL: 0

 

;; QUESTION SECTION:

;servicepipe.ru.                       IN     ANY

 

;; ANSWER SECTION:

servicepipe.ru.               3599 IN     TXT «v=spf1 include:spf.protection.outlook.com -all»

servicepipe.ru.               3599 IN     MX   0 servicepipe-ru.mail.protection.outlook.com.

servicepipe.ru.               3599 IN     A       185.66.85.83

servicepipe.ru.               3599 IN     NS     ns8-cloud.nic.ru.

servicepipe.ru.               3599 IN     NS     ns8-l2.nic.ru.

servicepipe.ru.               3599 IN     NS     ns3-l2.nic.ru.

servicepipe.ru.               3599 IN     NS     ns4-cloud.nic.ru.

servicepipe.ru.               3599 IN     NS     ns4-l2.nic.ru.

servicepipe.ru.               3599 IN     SOA  ns3-l2.nic.ru. dns.nic.ru. 2014091081 1440 3600 2592000 600

 

;; Query time: 132 msec

;; SERVER: 8.8.8.8#53(8.8.8.8)

;; WHEN: Tue Dec 13 09:06:18 2016

;; MSG SIZE rcvd: 320

 

Как видно из примера при запросе 17 байт получаем ответ 320 байт, что почти в 20 раз больше чем сам запрос. Таким образом при канале атакующего всего в 100 мбит/с и наличии списка уязвимых DNS серверов мы можем получить атаку в 2 гбит/с. При атаке могут использоваться такие же или схожие запросы, при этом в качестве source ip подставляется ip жертвы (Данная возможность является уязвимостью UDP протокола, т.к. в нем нет момента установления сессии и сервер не может проверить source ip).

В общем случае получаем такую схему

DNS1

 

Способы организации атаки

Стрессоустойчивость своего сервера вы можете проверить например утилитой Tsunami, используя любой дистрибутив linux. Так же если у вас под рукой завалялся ботнет можете использовать его для усиления тестов.

Способы защиты

Самый простой и эффективный способ защиты это блокировка src port 53, c помощью flow-spec на маршрутизаторах вашего upstreams.

Способы защиты DNS сервера

Если вы являетесь держателем DNS сервера, то скорее всего его уже неоднократно использовали хакеры для своих нужд. Здесь я приведу несколько вариантов и плагинов для настройки DNS сервера, чтобы избежать нелегитимные запросы.

 

ИСПОЛЬЗОВАНИЕ RESPONSE RATE LIMITING

 

Одна из лучших защит против того, чтобы ваш DNS-сервер использовался в хакерской атаке, это Response Rate Limiting (RRL). Хотя эта настройка не включена по умолчанию (а стоило бы!), она присутствует в BIND 9.9 и более поздних версиях, а также входит в DNS-сервисы, доступные в Windows Server 2016.

Если ваш DNS-сервер не поддерживает RRL, можно попробовать добиться того же эффекта, используя фильтры на файрволле или с использованием других анти-DDoS сервисов.

 

ОТКЛЮЧЕНИЕ РЕФЕРРАЛЬНЫХ ОТВЕТОВ «ВВЕРХ»

 

Ранее, когда DNS-сервер получал запрос на доменное имя, за которое он не отвечал, он отвечал, перенаправляя к DNS-серверам верхнего уровня. Атаки с использованием «DNS-усиления» сделали этот метод плохой практикой. BIND давно рекомендует отключить эту возможность, Microsoft собирается сделать отключенной эту возможность по дефолту в WindowsServer 2016. В более ранних версиях, вы можете просто стереть файл с так называемыми roothints(c:\windows\system32\DNS\cache.dns).

 

ПРОВЕРЬТЕ ВСЕ СЕРВИСЫ DNS
Определите все компьютеры и устройства, принимающий соединение на порт 53 в TCP или UDP, чтобы найти и сконфигурировать все устройства, на которых могут быть запущены сервисы DNS. Часто вы обнаружите устройства типа беспроводных роутеров, где могут быть неожиданные DNS-сервера.