Группа исследователей из Тель-Авивского университета и Междисциплинарного центра в Герцлии (Израиль)
Проблема связана с особенностями работы протокола и затрагивает все DNS-серверы, поддерживающие рекурсивную обработку запросов, в том числе
Атака основывается на использовании атакующим запросов, ссылающихся на большое число ранее не встречавшихся фиктивных NS-записей, которым делегируется определение имени, но без указания в ответе glue-записей с информацией об IP-адресах NS-серверов. Например, атакующий отправляет запрос на определение имени sd1.attacker.com, контролируя DNS-сервер, отвечающий за домен attacker.com. В ответ на обращение резолвера к DNS-серверу атакующего, выдаётся ответ, делегирующий определение адреса sd1.attacker.com DNS-серверу жертвы через указание в ответе NS-записей без детализации IP NS-серверов. Так как упомянутый NS-сервер ранее не встречался и его IP-адрес не указан, резолвер пытается определить IP-адрес NS-сервера, направив запрос к DNS-серверу жертвы, обслуживающей целевой домен (victim.com).
Проблема в том, что атакующий может выдать в ответе огромный список не повторяющихся NS-серверов с несуществующими фиктивными именами поддоменов жертвы (fake-1.victim.com, fake-2.victim.com,… fake-1000.victim.com). Резолвер попытается отправить запрос DNS-серверу жертвы, но получит ответ, что домен не найден, после чего попытается определить следующий NS-сервер в списке и так до тех пор, пока не переберёт все перечисленные атакующим NS-записи. Соответственно, на один запрос атакующего резолвером будет отправлено огромное число запросов для определения NS-хостов. Так как имена NS-серверов формируются случайно и ссылаются на несуществующие поддомены, они не извлекаются из кэша и каждый запрос атакующего приводит к шквалу запросов к DNS-серверу, обслуживающему домен жертвы.
Исследователи изучили степень подверженности проблеме публичных DNS-резолверов и определили, что при отправке запросов резолверу CloudFlare (1.1.1.1) можно добиться приумножения числа пакетов (PAF, Packet Amplification Factor) в 48 раз, Google (8.8.8.8) — 30 раз, FreeDNS (37.235.1.174) — 50 раз, OpenDNS (208.67.222.222) — 32 раза. Более заметные показатели наблюдаются для
Level3 (209.244.0.3) — 273 раза, Quad9 (9.9.9.9) — 415 раз
SafeDNS (195.46.39.39) — 274 раза, Verisign (64.6.64.6) — 202 раза,
Ultra (156.154.71.1) — 405 раз, Comodo Secure (8.26.56.26) — 435 раз, DNS.Watch (84.200.69.80) — 486 раз, и Norton ConnectSafe (199.85.126.10) — 569 раз. Для серверов на базе BIND 9.12.3 за счёт распараллеливания запросов уровень усиления может доходить до 1000. В Knot Resolver 5.1.0 уровень усиления составляет примерно несколько десятков раз (24-48), так как определение NS-имён выполняется последовательно и упирается во внутреннее ограничение на число шагов разрешения имён, допустимых для одного запроса.
Выделяются две основные стратегии защиты. Для систем с DNSSEC
Источник: opennet.ru