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
С точки зрения злоумышленника, существует два критерия для хорошего вектора атаки с усилением:
- Запрос может быть установлен с поддельным IP-адресом источника (например, через такой протокол, как ICMP или UDP, который не требует квитирования установления связи).
- Ответ на запрос должен быть значительно больше, чем сам запрос.
DNS — это основополагающая и повсеместная Интернет-платформа, которая практически идеально соответствует этим критериям и, соответственно, стала одним из крупнейших источников амплификации DDoS-атак.
Запросы DNS обычно передаются через протокол UDP, а это означает, что, как и запросы ICMP, используемые в атаке SMURF, эти запросы отправляются и забываются. В результате атрибут их источника может быть подделан, а получатель, прежде чем ответить на запрос, не имеет никакой возможности определить его достоверность. К тому же, DNS также может генерировать гораздо больший ответ, чем сам запрос. Например, можно отправить подобный очень «крошечный» запрос (пример такого запроса показан на рисунке 2, где «X.X.X.Х» — это IP-адрес открытого преобразователя DNS) и получить следующий «гигантский» ответ (пример такого ответа показан на рисунке 3).
Рисунок 2. Пример «крошечного» запроса, используемого злоумышленниками для осуществления усиления DDoS-атаки с помощью DNS.
Рисунок 3. Пример «гигантского» ответа, отправку которого на IP-адрес предполагаемой жертвы могут добиться злоумышленники при реализации DDoS-атаки с DNS-усилением.
В приведенном выше примере 64-байтовый запрос превращается в 3223-байтовый ответ. Таким образом, злоумышленник может добиться более чем 50-кратного усиления любого трафика, который он может направить к открытому преобразователю DNS. Другими словами, для киберпреступника, управляющего ботнетом размером всего в несколько сотен Мбит/с трафика, не составит особого труда сформировать и осуществить DDoS-атаку в несколько десятков Гбит/c. Обратите внимание, как по иронии судьбы увеличилась эффективность DDoS-атаки с DNS-усилением из-за увеличения размера ответа, вызванного включением в него огромных ключей DNSSEC — протокола, разработанного для повышения безопасности 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-сервера.
Вступайте в Telegram канал проекта NetworkGuru, чтобы не пропустить интересные статьи и вебинары.
Появились вопросы или нужна консультация? Обращайтесь!
Вечный параноик, Антон Кочуков.
Авторизуйтесь для этого