545646
Проведение распределенных атак типа «отказ в обслуживании» (DDoS-атак) с использованием DNS (Domain Name System) серверов впервые было зафиксировано в 2006 году. Подобные атаки получили название DNS Amplification (с англ. – усиление) из-за специфики их проведения.
Суть подобной атаки состоит в том, что злоумышленник посылает запросы уязвимому DNS-серверу, который отвечает на них значительно большими по объему пакетами. При этом IP-адрес для ответа заменяется на адрес жертвы. В результате жертва получает большой входящий траффик, который блокирует ее работу.
DNS-серверы обрабатывают запросы с использованием двух методов – рекурсия и итерация. Рекурсия позволяет DNS-серверу, в случае если адрес запрашиваемой страницы отсутствует в его памяти, перенаправлять запрос от пользователя на другой DNS-сервер. Итерация – работа сервера, при которой DNS-сервер в случае отсутствия соответствия IP-адреса символьному URL-адресу искомой страницы, возвращает пользователю подсказку – адрес другого DNS-сервера.
При включённой на DNS-сервере функции рекурсии объем поступающего пользователю ответа значительно увеличивается в сравнении с исходящим. Это происходит за счет включения в него ответов всех DNS-серверов, к которым обращался DNS-сервер провайдера.
Функция «open-resolver» в настройке DNS-сервера позволяет ему получать запросы из чужих сетей и отправлять ответы на них без дополнительных проверок. Рекурсивный метод обработки запросов и включенная функция «open-resolver» является фактором проведения атаки типа «DNS усиление».
Согласно исследованиям проекта Open Resolver (на 22 января 2017 года), существует более 15 миллионов серверов, работающих по принципу «open-resolver» . Из них 10 миллионов работают в режиме рекурсии.
Алгоритм легитимной работы DNS-сервера
- Пользователь запрашивает у DNS-сервера провайдера IP-адрес условной страницы site.webpage.net.
- Если адреса необходимой страницы нет в памяти DNS-сервера провайдера, то он обращается к DNS-серверу корневого домена.
- Если данного адреса нет в памяти DNS-сервера корневого домена, сообщается подсказка – адрес другого DNS-сервера, являющегося управляющим для необходимой доменной зоны (в данном случае .net).
- DNS-сервер провайдера отправляет запрос на DNS-сервер .net зоны.
- Если соответствия не найдено в памяти DNS-сервера .net зоны, то дается подсказка – адрес авторитативного (от англ. authority – управляющий) сервера для данной страницы.
- DNS-сервер провайдера обращается к авторитативному DNS-серверу для искомой страницы.
- DNS-сервер провайдера получает от него IP-адрес для страницы site.webpage.net.
- Получив IP-адрес страницы site.webpage.net, DNS-сервер провайдера отправляет его пользователю.
Проведение атаки типа «DNS усиление», как правило, осуществляется не одним устройством, а целой ботсетью под управлением злоумышленников с целью увеличения трафика, поступающего жертве. Это позволяет увеличить коэффициент усиления атаки, который, по оценкам экспертов, может варьироваться от 30 до 70, т.е. на каждый отправленный 1 байт‑запроса от устройства, входящего в ботсеть, на адрес жертвы поступит 30-70 байтов ответа.
Алгоритм атаки типа «DNS усиление» следующий:
- Злоумышленник отправляет сигнал компьютерам, состоящим в ботсети на начало формирования запросов к DNS-серверу. В свою очередь каждый компьютер ботсети отправляет на DNS-сервер своего провайдера специально сформированный запрос с просьбой сообщить IP-адрес условной страницы site.webpage.net. При этом результат отправляется на IP-адрес жертвы.
- Данный этап идентичен итеративным этапам 2–7 , описанным для легитимной работы DNS-сервера.
- Пакет, содержащий IP-адрес искомой страницы, возвращается к DNS‑серверу провайдера и отправляется на адрес жертвы. При этом, в ответе, помимо IP‑адреса, будут содержаться ответы всей цепочки DNS-серверов, участвовавших в поиске страницы. За счет этого размер поступающего жертве пакета будет гораздо больше, чем исходящего.
Для предотвращения распространения подобного типа атак владельцам DNS-серверов необходимо отключить функцию «open-resolver» , т.е. исключить возможность DNS-серверу получать запросы из чужих сетей и отправлять ответы без дополнительных проверок. Проверить, включена ли функция «open-resolver» на Вашем сервере, можно на сайте проекта Open Resolver.