V různých implementacích protokolu DNSSEC byly identifikovány dvě chyby zabezpečení, které ovlivňují překladače BIND, PowerDNS, dnsmasq, Knot Resolver a Unbound DNS. Tyto chyby zabezpečení by mohly způsobit odmítnutí služby pro překladače DNS, které provádějí ověření DNSSEC, a způsobit vysoké zatížení procesoru, které narušuje zpracování jiných dotazů. K provedení útoku stačí odeslat požadavek DNS resolveru pomocí DNSSEC, který vede k volání do speciálně navržené DNS zóny na serveru útočníka.
Zjištěné problémy:
- CVE-2023-50387 (kódové označení KeyTrap) – Při přístupu do speciálně navržených DNS zón to vede k odmítnutí služby kvůli značné zátěži CPU a dlouhé době provádění kontrol DNSSEC. Pro provedení útoku je nutné umístit doménovou zónu se škodlivým nastavením na DNS server ovládaný útočníkem a také zajistit, aby do této zóny měl přístup rekurzivní DNS server, o jehož odmítnutí se útočník snaží. .
Škodlivá nastavení zahrnují použití kombinace konfliktních klíčů, záznamů RRSET a digitálních podpisů pro zónu. Pokus o ověření pomocí těchto klíčů má za následek časově náročné operace náročné na zdroje, které mohou zcela zatížit CPU a zablokovat zpracování dalších požadavků (například se tvrdí, že při útoku na BIND bylo možné zastavit zpracování ostatní požadavky na 16 hodin).
- CVE-2023-50868 (kódové označení NSEC3) je odmítnutí služby kvůli významnému výpočtu hashů v záznamech NSEC3 (Next Secure v3) při zpracování speciálně vytvořených odpovědí DNSSEC. Metoda útoku je podobná první zranitelnosti s tím rozdílem, že na serveru DNS útočníka je vytvořena speciálně navržená sada záznamů NSEC3 RRSET.
Je třeba poznamenat, že výskyt výše uvedených zranitelností je způsoben definicí ve specifikaci DNSSEC o schopnosti serveru DNS odesílat všechny dostupné kryptografické klíče, zatímco resolvery musí zpracovávat všechny přijaté klíče, dokud není kontrola úspěšně dokončena nebo všechny přijaté klíče byly ověřeny.
В качестве мер для блокирования уязвимостей в резолверах ограничено максимальное число ключей DNSSEC, задействованных в процессе построения цепочки доверия, и максимальное число вычислений хэшей для NSEC3, а также лимитированы повторные попытки проверки для каждого RRSET (комбинации ключей и подписей) и каждого ответа server.
Chyby zabezpečení jsou opraveny v aktualizacích Unbound (1.19.1), PowerDNS Recursor (4.8.6, 4.9.3, 5.0.2), Knot Resolver (5.7.1), dnsmasq (2.90) a BIND (9.16.48, 9.18.24 .9.19.21 a XNUMX). Stav zranitelnosti v distribucích lze posoudit na těchto stránkách: Debian, Ubuntu, SUSE, RHEL, Fedora, Arch Linux, Gentoo, Slackware, NetBSD, FreeBSD.
Verze serveru DNS BIND 9.16.48, 9.18.24 a 9.19.21 navíc opravila několik dalších chyb zabezpečení:
- CVE-2023-4408 Analýza velkých zpráv DNS může způsobit vysoké zatížení procesoru.
- CVE-2023-5517 – Požadavek na speciálně vytvořenou reverzní zónu může vést ke zhroucení kvůli spuštění kontroly potvrzení. Problém se objevuje pouze v konfiguracích s povoleným nastavením „nxdomain-redirect“.
- CVE-2023-5679 – Rekurzivní detekce hostitele může vést ke zhroucení kvůli aktivaci kontroly hlášení na systémech s podporou DNS64 a povoleným „serve-stale“ (nastavení, aktivace zastaralé mezipaměti a aktivace zastaralé odpovědi).
- CVE-2023-6516 Speciálně vytvořené rekurzivní dotazy mohou způsobit vyčerpání paměti, kterou mají k dispozici.
Zdroj: opennet.ru
