Я изучаю атаки DNS-усиления. Идея заключается в том, что злоумышленник может отправить небольшое сообщение (запрос к DNS-серверу) и отправить ему огромное сообщение на поддельный IP-адрес. Что в сообщении ответа DNS делает его таким большим? Я думал, что это будет просто IP-адрес, связанный с именем хоста (как это не вся работа DNS)?
2 ответа
Ответ DNS может содержать гораздо больше, чем один IP-адрес. Для запроса типа A (запрашивающего IP-адреса, связанные с именем хоста) у вас уже может быть несколько IP-адресов, поэтому, если вы обнаружите хост, обслуживаемый большим количеством IP-адресов, ответ уже может быть больше, чем запрос.
Но DNS может хранить много других полей. DNSSEC подписывает ответы DNS, что, таким образом, добавляет подпись и весь ключевой материал, необходимый для проверки этой подписи. DNS также может хранить поля TXT, которые могут содержать любой текст, который вы хотите, поля SSHFP, которые содержат ssh-отпечатки ключей сервера. Я не буду перечислять все поля, Википедия поддерживает список. Используя ЛЮБОЙ запрос, вы можете запросить все эти поля одновременно, поэтому ответ может быть довольно большим.
Уже очень хорошо ответил на стеке безопасности.
Чтобы усилить DNS-атаку, каждый DNS-запрос может быть отправлен с использованием расширения DNS-протокола EDNS0, которое допускает большие сообщения DNS, или с помощью криптографической функции расширения безопасности DNS (DNSSEC) для увеличения размера сообщения. Также могут использоваться поддельные запросы типа «ЛЮБОЙ», которые возвращают всю известную информацию о зоне DNS в одном запросе.
Этот "ЛЮБОЙ" аргумент делает этот тип атаки полезным для гнусных актеров, это означает, что на каждый отправляемый вами 1 байт цель получает около 6-8 байт. Это превращает 100 МБ злоумышленника в 800 МБ злоумышленника.
Не совсем актуально, но стоит отметить, что подобная атака с использованием NTP может привести к усилению с коэффициентом усиления 600+, гораздо более опасному, чем 8X.