Network Performance Monitoring (NPM) and Diagnostics | Application Performance Monitoring (APM) | Application-Aware Network Performance Monitoring (AA NPM) | Network Fault Management | Information Security | Network Security

DDoS-атаки с DNS-усилением: как это работает и как их остановить?

DDoS-атаки с DNS-усилением: как это работает и как их остановить?

DDoS-атаки с DNS-усилением (или Амплификация DDoS-атаки с помощью DNS) — это один из популярных способов, используемый злоумышленниками для увеличения пропускную способности своих атак, которые они могут нацелить на потенциальные жертвы. Сам способ не является чем-то новым — первые упоминания о подобных атаках датируются еще серединой 2000-х годов. Но с тех пор мало что изменилось, кроме, пожалуй, количества и мощности таких атак (ведь если работает, зачем что-то менять?). И основная причина все та же: сотни тысяч неправильно сконфигурированных DNS-серверов во Всемирной Сети, принимающие и отвечающие на любой запрос от любого пользователя в Интернете.

DDoS-атаки с усилением

Представьте себе, что вы злоумышленник и управляете ботнетом, способным отправлять, предположим для примера, 100 Мбит/с трафика. Хотя этого может быть достаточно, чтобы на время парализовать работу некоторых сайтов, это довольно незначительный объем трафика в мире DDoS. Чтобы увеличить объем вашей атаки, вы можете попробовать добавить в свой ботнет больше скомпрометированных устройств. Это довольно сложная задача, требующая значительных затрат времени и ресурсов. Но есть и альтернативный вариант — вы можете найти способ превратить свои 100 Мбит/с во что-то гораздо большее. И помогут вам в этом невнимательность и откровенные ошибки, допущенные системными администраторами вполне легальных ресурсов.

Первоначальная атака усиления была известна как SMURF атака, которая включала в себя отправку злоумышленником ICMP-запросов (другими словами, ping-запросов) на сетевой широковещательный адрес маршрутизатора (то есть, формата X.X.X.255), настроенного для ретрансляции этого ICMP-запроса на все устройства, находящихся за этим маршрутизатором.

Злоумышленник подменяет источник ICMP-запроса на IP-адрес предполагаемой жертвы. Поскольку ICMP не включает квитирование установления связи, у устройства назначения нет способа проверить, является ли исходный IP-адрес легитимным. Маршрутизатор получает запрос и передает его всем находящимся за ним устройствам. Затем все эти устройства начинают отвечать на этот ping-запрос. Злоумышленник может усилить атаку в разы, в зависимости от того, сколько устройств находится за маршрутизатором (то есть, если за маршрутизатором расположено 5 устройств, то злоумышленник может усилить атаку в 5х раз, если 100 устройств, то в 100х раз, как это показано на рисунке 1).

Диаграмма, иллюстрирующая общий принцип осуществления злоумышленниками атаки усиления.
Рисунок 1. Диаграмма, иллюстрирующая общий принцип осуществления злоумышленниками атаки усиления.

На данный момент SMURF-атаки остались в прошлом. В большинстве своем сетевые операторы настроили свои маршрутизаторы так, чтобы не ретранслировать запросы ICMP, отправленные на широковещательный адрес сети, и подобный метод стал малоэффективен. Однако, даже когда этот вектор атаки усиления закрылся, другие остаются широко открытыми, причем уже на протяжении очень долгого периода времени.

Амплификация DDoS-атаки с помощью DNS

С точки зрения злоумышленника, существует два критерия для хорошего вектора атаки с усилением:

  1. Запрос может быть установлен с поддельным IP-адресом источника (например, через такой протокол, как ICMP или UDP, который не требует квитирования установления связи).
  2. Ответ на запрос должен быть значительно больше, чем сам запрос.

DNS — это основополагающая и повсеместная Интернет-платформа, которая практически идеально соответствует этим критериям и, соответственно, стала одним из крупнейших источников амплификации DDoS-атак.

Запросы DNS обычно передаются через протокол UDP, а это означает, что, как и запросы ICMP, используемые в атаке SMURF, эти запросы отправляются и забываются. В результате атрибут их источника может быть подделан, а получатель, прежде чем ответить на запрос, не имеет никакой возможности определить его достоверность. К тому же, DNS также может генерировать гораздо больший ответ, чем сам запрос. Например, можно отправить подобный очень «крошечный» запрос (пример такого запроса показан на рисунке 2, где «X.X.X.Х» — это IP-адрес открытого преобразователя DNS) и получить следующий «гигантский» ответ (пример такого ответа показан на рисунке 3).

Пример «крошечного» запроса, используемого злоумышленниками для осуществления усиления DDoS-атаки с помощью DNS.
Рисунок 2. Пример «крошечного» запроса, используемого злоумышленниками для осуществления усиления DDoS-атаки с помощью DNS.

Пример «гигантского» ответа, отправку которого на IP-адрес предполагаемой жертвы могут добиться злоумышленники при реализации DDoS-атаки с DNS-усилением.
Рисунок 3. Пример «гигантского» ответа, отправку которого на IP-адрес предполагаемой жертвы могут добиться злоумышленники при реализации DDoS-атаки с DNS-усилением.

В приведенном выше примере 64-байтовый запрос превращается в 3223-байтовый ответ. Таким образом, злоумышленник может добиться более чем 50-кратного усиления любого трафика, который он может направить к открытому преобразователю DNS. Другими словами, для киберпреступника, управляющего ботнетом размером всего в несколько сотен Мбит/с трафика, не составит особого труда сформировать и осуществить DDoS-атаку в несколько десятков Гбит/c. Обратите внимание, как по иронии судьбы увеличилась эффективность DDoS-атаки с DNS-усилением из-за увеличения размера ответа, вызванного включением в него огромных ключей DNSSEC — протокола, разработанного для повышения безопасности DNS-систем.

Открытые преобразователи DNS: проклятие Интернета

Открытые преобразователи DNS: проклятие Интернета

Ключевой термин, используемый уже несколько раз в этой статье — «открытый преобразователь DNS». Лучшей практикой, если ваша компания использует рекурсивный преобразователь DNS, будет убедиться, что он отвечает только на запросы авторизованных клиентов. Другими словами, если вы используете рекурсивный DNS-сервер для своей компании, и IP-пространство вашей компании составляет, например, «5.5.5.0/24» (то есть, диапазон IP-адресов «5.5.5.0 - 5.5.5.255»), то ваш DNS-сервер должен отвечать только на запросы из этого диапазона IP-адресов. И, например, если запрос поступает из IP-адреса «9.9.9.9», то ваш DNS-сервер не должен отвечать вовсе.

Проблема в том, что многие люди, использующие преобразователи DNS, оставляют их открытыми, и такие DNS-сервера готовы отвечать на любой IP-адрес, который их запрашивает. Это известная проблема, которой уже почти два десятка лет. Но основное, что изменилось за это время, так это то, что многие ботнеты активно «прошуршали» IP-пространство Интернета, чтобы обнаружить доступные открытые преобразователи DNS. И после подобного усовершенствования такие ботнеты стали серьезным оружием в руках своих владельцев-злоумышленников, предоставляя им возможности для проведения очень мощных и продолжительных DDoS-атак с DNS-усилением.

Таким образом, если ваша компания использует открытый рекурсивный преобразователь DNS, вам следует его как можно скорее закрыть. Оставить его открытым автоматически будет означать, что вы продолжите оказывать пассивную помощь в многочисленных DDoS-атаках. Так, если вы используете наиболее распространенную открытую реализацию DNS-сервера BIND, то вы можете внести в свой файл конфигурации одно или несколько из ниже предлагаемых изменений, чтобы ограничить возможности киберпреступников, злоупотребляющих вашей сетью:

  • Отключить рекурсию для параметров службы DNS («recursion no»).
  • Разрешить DNS-запросы для DNS-сообщений с адресами источника в сетевом блоке IP-пространства только вашей собственной корпоративной сети.
  • Настройки параметров «allow-query-cache» также можно использовать для ограничения IP-адресов, разрешенных для получения ответов из кеша DNS-сервера.

 

Появились вопросы или нужна консультация? Обращайтесь!

Антон Кочуков

Вечный параноик, Антон Кочуков.

Комментарии
Тут пока ничего нет, но Вы можете быть первым!
Авторизуйтесь для этого
Заказать звонок

- Email
- Confirm
Имя *
Номер телефона *
Комментарий
Согласие на отправку персональных данных *


* - Обязательное для заполнения