Зависит ли заражение кеша DNS поддомена от игнорирования авторитетным сервером имен запросов к несуществующим доменам?

Вопрос или проблема

Я читаю “Введение в компьютерную безопасность”, новый международный выпуск Pearson, 1-е издание, авторы Гудрич и Тамассия.

По теме отравления кэша DNS они упоминают, что в 2008 году была обнаружена “новая” атака, так называемое “отравление кэша DNS поддоменов”. Вот как должна развиваться эта атака:

  1. Злоумышленник делает множество запросов к серверу имен на несуществующие поддомены, например aaaa.example.com, aaab.example.com, aaac.example.com и т.д.
  2. В книге упоминается, что эти поддомены не существуют, и поэтому целевой авторитетный сервер имен просто игнорирует запросы.
  3. Одновременно злоумышленник отправляет подделанные ответы на запросы, сделанные атакуемым сервером имен, каждый с угаданным идентификатором транзакции (который выбирается случайно и неизвестен злоумышленнику).
  4. Поскольку целевой авторитетный сервер имен игнорирует запросы на несуществующие домены, у злоумышленника есть возможность отправить много подделанных ответов, что делает вероятность угадать правильный идентификатор транзакции высокой.

Книга была написана в 2011 году, так что с тех пор что-то могло измениться. Когда я выполняю dig для несуществующего поддомена, например aaaa.example.com, я получаю ответ NXDOMAIN:

$ dig @a.iana-servers.net. aaaa.example.com. +norecurse

; <<>> DiG 9.16.16 <<>> @a.iana-servers.net. aaaa.example.com. +norecurse                                  
;; глобальные опции: +cmd                              
;; Получен ответ:            
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 20391                                                 
;; флаги: qr aa; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
# ... вырезано ...

Я предположу, что любой неавторитетный сервер имен поместит этот негативный результат в свой кэш (как это должно быть согласно RFC 2308, написанному в марте 1998 года).

Было ли ранее распространенной практикой для серверов имен игнорировать (= не отправлять ответ на) запросы на несуществующие поддомены? Был ли этот подход заменен на ответ NXDOMAIN, который я вижу сегодня? Возможно ли провести атаку, как описано выше, до сих пор?

Правка

Оказалось, что Дэн Каминский придумал эту атаку.

В этом видео DEF CON он объясняет, что в то время (2008 год) несколько авторитетных серверов имен не отвечали на определенные виды DNS-запросов (“засорители запросов”), включая:

  • Неизвестный QTYPE (например, FOO вместо A)
  • Неизвестный QCLASS (например, BAR вместо IN)
  • Несуществующие имена

Насколько мне известно, проблема немного другая, но я получил свои знания из видео на YouTube. (источник: https://m.youtube.com/watch?v=7MT1F0O3_Yw)

Проблема, похоже, заключается в том, что вы можете сделать много запросов с разными поддоменами. Почти ни один из них не будет в кэше атакуемого сервера имен, поскольку они не должны быть реальными адресами. Затем сервер имен спрашивает другой сервер имен, знает ли он что-то о этом поддомене, и отправляет с ним случайный 16-битный идентификатор запроса. В промежутке между запросом и ответом этого другого сервера имен злоумышленник может попытаться угадать идентификатор запроса. Он отправляет множество запросов с другого, вредоносного, сервера имен, угадывая другой идентификатор запроса для каждого запроса и говоря: “Я не знаю, где находится aaaa.example.com, но example.com здесь: xxx.xxx.xxx.xxx, с истечением срока 20 дней”. Если попытка для aaaa.example.com не удалась, отправляется другой запрос с aaab.example.com, и у злоумышленника есть еще несколько (~10) попыток, но я не уверен в математике того, сколько попыток необходимо, чтобы достичь высокой вероятности успеха.

Проблема все еще существует сегодня, просто делать её стало немного сложнее, отправляя идентификатор запроса и номер порта, злоумышленнику теперь нужно угадать оба этих значения. Они пытаются внедрить сертификаты для аутентификации серверов имен, но я не знаю, в какой мере это уже было сделано.

Я не знаю, была ли практикой игнорировать запросы на несуществующие домены. Я не знаю, что означает NXDOMAIN. Я просто повторяю то, что было сказано в видео, не имея дополнительных знаний. Насколько мне известно, эта атака по-прежнему возможна, просто стало немного сложнее, см. предыдущий абзац для деталей.

Ответ или решение

DNS (Domain Name System) является краеугольным камнем функционирования Интернета, обеспечивая преобразование доменных имен в IP-адреса, что позволяет пользователям без проблем взаимодействовать с веб-ресурсами. Однако, как и многие технологии, DNS подвержен различным видам атак, включая так называемое «отравление кеша DNS» (DNS cache poisoning), которое в последние годы привлекло значительное внимание. Одной из его форм является «отравление кеша поддоменов» (subdomain DNS cache poisoning), впервые описанное в 2008 году.

Важные аспекты атаки

Атака «отравления кеша поддоменов» предполагает следующее:

  1. Запросы к несуществующим поддоменам: Атакующий отправляет множество запросов к авторитетному DNS-серверу для несуществующих поддоменов (например, aaaa.example.com). Важно отметить, что многие авторитетные DNS-серверы могут игнорировать такие запросы.

  2. Игнорирование запросов: Как показано в приведённом вами тексте, если DNS-сервер не имеет запрашиваемого поддомена в своей базе данных, он, скорее всего, не ответит на запрос, что создаёт возможность для атаки.

  3. Поддельные ответы: В то же время атакующий отправляет поддельные ответы с предполагаемыми значениями идентификатора транзакции (transaction ID) и IP-адресами. Здесь критическим моментом является угадать правильный идентификатор транзакции, чтобы его ответ был принят.

Изменение поведения DNS-серверов

Вопрос о том, зависит ли «отравление кеша поддоменов» от поведения авторитетного DNS-сервера по отношению к запросам на несуществующие домены, требует детального анализа.

  • В прошлом было распространено, что некоторые авторитетные DNS-серверы не отвечали на запросы о несуществующих поддоменах, что позволяло злоумышленникам использовать это в своих интересах, так как сервер не подвергал сомнению поддельные ответы от атакующих.

  • Современные практики: На сегодняшний день, в соответствии с RFC 2308, DNS-серверы должны возвращать ответ NXDOMAIN (Нет такого домена) для несуществующих поддоменов. Это изменение сделало атаку более сложной, так как теперь DNS-серверы кэшируют отрицательные ответы, что снижает количество запросов к истечению времени.

Возможность атаки в современном контексте

С учетом изменений в поведении авторитетных DNS-серверов, атака «отравления кеша поддоменов» по-прежнему возможна, но она усложнена. Все большее число DNS-серверов настраивается на ответ на запросы даже по несуществующим поддоменам, что делает труднее для злоумышленника осуществлять атаки.

Современные меры безопасности, такие как DNSSEC (DNS Security Extensions), позволяют аутентифицировать ответы DNS-серверов. Это в значительной степени снижает вероятность успешного выполнения атаки, так как злоумышленнику теперь нужно не только угадать идентификатор транзакции, но и предоставить валидный ответ, подписанный публичным ключом.

Заключение

В итоге, зависимость «отравления кеша поддоменов» от игнорирования запросов на несуществующие домены уменьшается с развитием стандартов безопасности и лучшего понимания уязвимостей DNS. Хотя атака все еще может быть осуществлена, текущие меры и практики значительно повышают уровень защиты и делают эту атаку менее эффективной. Безусловно, всегда есть необходимость следить за новыми уязвимостями и поддерживать систему безопасности на уровне, чтобы минимизировать риски.

Оцените материал
Добавить комментарий

Капча загружается...