DDoS с умножением через DNS-резолверы: технические подробности

В сентябре 2012 года компания Cloudflare рассказала о том, что в последнее время её клиенты часто начали сталкиваться с DDoS-атаками необычной силы: до 65 Гбит/с. Сегодня в Cloudflare опубликовали технические подробности атак такой мощности. Эксперты выяснили, что в данном случае использовался один из методов умножения запросов. Умножение осуществлялось за счёт DNS reflection (отражение DNS-запросов) через DNS-резолверы, которые установлены у каждого интернет-провайдера.

Обычно DNS-резолверы сконфигурированы так, чтобы обрабатывать только запросы своих пользователей, но существует большое количество компаний, которые неправильно их сконфигурировали, так что резолверы принимают запросы от любого пользователя интернета. Вот список неправильно сконфигурированных резолверов, так называемых «открытых DNS-резолверов». Специалисты Cloudflare обнаружили в интернете 68459 открытых DNS-резолверов, в том числе 862 в России.

Схематично метод выглядит так: DNS-запросы обычно идут по протоколу UDP, где можно легко подделать заголовок с обратным IP-адресом. Соответственно, ддосеры направляют к открытым DNS-резолверам поток DNS-запросов с IP-адресом жертвы, а резолвер отвечает на указанный адрес. Чтобы максимально усилить трафик, составляются запросы, которые требуют максимально объёмного ответа: например, запрос списка всех DNS-записей в определённой зоне. В отчете приводится пример. Вы можете отправить такой запрос размером 64 байта на один из открытых DNS-резолверов.
dig ANY isc.org x.x.x.x,
где x.x.x.x — это IP-адрес резолвера. Ответ будет аж 3223 байта.

Таким образом, DDoS-атаку можно усиливать в десятки раз, умножая трафик с помощью DNS-резолверов. В данном случае усиление составляет 3223/64≈50 раз. Любопытно, что в значительной мере усиление DDoS-атаки достигнуто благодаря большим ключам DNSSEC, которые включены в тело ответа, а ведь протокол DNSSEC внедрялся с целью повысить безопасность системы DNS.