KeyTrap: сломать DNS-сервер одним пакетом

Рассказываем о DoS-атаке KeyTrap, которая позволяет выводить из строя DNS-серверы буквально одним вредоносным пакетом, эксплуатирующим уязвимость в DNSSEC.

Атака KeyTrap позволяет вывести из строя DNS-сервер

Группа исследователей из нескольких немецких университетов и институтов обнаружила уязвимость в DNSSEC — наборе расширений протокола DNS, которые предназначены для повышения его безопасности, в первую очередь для противодействия DNS-спуфингу.

Атака, эксплуатирующая эту уязвимость, которую они назвали KeyTrap, позволяет вывести из строя DNS-сервер, отправив ему единственный вредоносный пакет данных. Рассказываем подробнее об этой атаке.

Как работает атака KeyTrap и чем она опасна

Публично об уязвимости в DNSSEC стало известно только сейчас, однако она была обнаружена еще в декабре 2023 года и зарегистрирована как CVE-2023-50387. Ей присвоена оценка 7,5 по шкале CVSS 3.1 и уровень опасности «высокий». Полностью информация об уязвимости и соответствующей атаке пока не обнародована.

Суть KeyTrap состоит в следующем. Атакующий создает собственный DNS-сервер, отвечающий на запросы кэширующих DNS-серверов (то есть серверов, которые непосредственно обслуживают запросы клиентов) вредоносным пакетом. Далее злоумышленник заставляет кэширующий сервер запросить DNS-запись у вредоносного DNS-сервера, который в ответ отправляет криптографически подписанную вредоносную DNS-запись. При этом подпись выполнена таким образом, что в процессе ее проверки атакуемый DNS-сервер зависает на продолжительное время с загрузкой процессора 100%.

По словам исследователей, в зависимости от используемого на DNS-сервере ПО, эта атака может с помощью единственного вредоносного пакета заставить сервер зависнуть на срок от 170 секунд до 16 часов. В результате атаки KeyTrap можно не только лишить доступа к веб-контенту всех клиентов, которые пользуются выведенным из строя DNS-сервером, но и помешать работе различных инфраструктурных сервисов, таких как защита от спама, обработка цифровых сертификатов (PKI) и безопасная междоменная маршрутизация (RPKI).

Сами исследователи называют KeyTrap «самой серьезной из когда-либо обнаруженных атак на DNS-серверы». Интересно, что изъяны в логике проверки подписи, которые делают эту атаку возможной, обнаружены еще в одной из самых ранних версий спецификации DNSSEC, опубликованной в 1999 году. То есть данной уязвимости без малого четверть века.

Уязвимость CVE-2023-50387 заложена в спецификации DNSSEC еще в 1999 году

Предпосылки для KeyTrap содержатся еще в RFC-2035 — спецификации DNSSEC, опубликованной в 1999 году

Защита от KeyTrap

Исследователи уведомили всех разработчиков программного обеспечения для DNS-серверов и крупнейших публичных DNS-провайдеров. Закрывающие уязвимость CVE-2023-50387 обновления и рекомендации по безопасности уже доступны для PowerDNS, NLnet Labs Unbound и Internet Systems Consortium BIND9. Так что если вы администрируете DNS-сервер, самое время установить для него обновления.

Следует, впрочем, иметь в виду, что проблемы в логике DNSSEC, которые являются предпосылкой для атаки KeyTrap, имеют фундаментальный характер и полностью устранить их не так уж легко. Поскольку уязвимость находится в самом стандарте, а не в конкретных реализациях, выпущенные разработчиками ПО для DNS-серверов заплатки решают проблему лишь частично. По словам исследователей, «в случае атаки на запатченный DNS-сервер мы все еще получим 100% загрузки процессора, но сервер сможет отвечать клиентам».

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

Советы

Как отключить слежку в iOS?

У вас есть iPhone, iPad или iPod? Потратьте несколько минут на настройку служб геолокации, чтобы сэкономить заряд батареи и сохранить конфиденциальность перемещений.