Группа исследователей из нескольких немецких университетов и институтов обнаружила уязвимость в 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 году. То есть данной уязвимости без малого четверть века.
Защита от KeyTrap
Исследователи уведомили всех разработчиков программного обеспечения для DNS-серверов и крупнейших публичных DNS-провайдеров. Закрывающие уязвимость CVE-2023-50387 обновления и рекомендации по безопасности уже доступны для PowerDNS, NLnet Labs Unbound и Internet Systems Consortium BIND9. Так что если вы администрируете DNS-сервер, самое время установить для него обновления.
Следует, впрочем, иметь в виду, что проблемы в логике DNSSEC, которые являются предпосылкой для атаки KeyTrap, имеют фундаментальный характер и полностью устранить их не так уж легко. Поскольку уязвимость находится в самом стандарте, а не в конкретных реализациях, выпущенные разработчиками ПО для DNS-серверов заплатки решают проблему лишь частично. По словам исследователей, «в случае атаки на запатченный DNS-сервер мы все еще получим 100% загрузки процессора, но сервер сможет отвечать клиентам».
Нельзя исключать, что эксплуатация этой уязвимости может начаться на практике, результатом чего может быть непредсказуемый выход из строя DNS-серверов. На этот случай администраторам корпоративных сетей будет полезно заранее составить список запасных DNS-серверов, чтобы можно было менять их по мере надобности, сохраняя нормальную работу сети и доступ пользователей к веб-ресурсам.