Zranitelnosti KeyTrap a NSEC3, které se týkají většiny implementací DNSSEC

V různých implementacích protokolu DNSSEC byly odhaleny dvě zranitelnosti, které se dotýkají DNS resolverů BIND, PowerDNS, dnsmasq, Knot Resolver a Unbound. Zranitelnosti umožňují způsobit výpadek DNS resolverů, které provádějí validaci pomocí DNSSEC, kvůli vysoké zátěži CPU, která brání zpracování jiných dotazů. K provedení útoku stačí poslat na DNS resolver používající DNSSEC dotaz, který vede k обращению к специально оформленной DNS-зоне на сервере злоумышленника.

Identifikované problémy:

  • CVE-2023-50387 (kódové jméno KeyTrap) – při přístupu ke speciálně vytvořeným DNS zónám dochází k výpadku z důvodu vytvoření značné zátěže na CPU a dlouhého provádění kontroly DNSSEC. K provedení útoku je nutné umístit na kontroločním DNS serveru doménovou zónu se škodlivými nastaveními, a také docílit, aby se na tuto zónu obrátil rekursivní DNS server, jehož výpadku se domáhá útočník.

    Škodlivá nastavení spočívají v použití kombinace protichůdných klíčů, záznamů RRSET a digitálních podpisů pro zónu. Pokus o kontrolu pomocí těchto klíčů vede k provádění dlouhých operací náročných na zdroje, které mohou zcela zatížit CPU a blokovat zpracování jiných dotazů (například se uvádí, že při útoku na BIND bylo možné zastavit zpracování jiných dotazů na 16 hodin).

  • CVE-2023-50868 (kódové jméno NSEC3) – výpadek z důvodu provádění značných výpočtů při vypočítávání hashů v záznamech NSEC3 (Next Secure v3) při zpracování speciálně formátovaných odpovědí DNSSEC. Metoda útoku připomíná první zranitelnost, s výjimkou toho, že na DNS serveru útočníka je vytvořen speciálně formátovaný soubor záznamů NSEC3 RRSET.

Je pozorováno, že vznik výše uvedených zranitelností je způsoben definicí ve specifikaci DNSSEC, která umožňuje DNS serveru odesílat všechny dostupné kryptografické klíče, přičemž resolvery musí zpracovávat jakékoli obdržené klíče, dokud kontrola neskončí úspěšně nebo dokud nebudou ověřeny všechny obdržené klíče.

Jako opatření k blokování zranitelností v resolverech bylo omezeno maximální počet klíčů DNSSEC používaných při vytváření řetězce důvěry a maximální počet hashovacích výpočtů pro NSEC3, a také jsou omezeny opakované pokusy ověření pro každou RRSET (kombinace klíčů a podpisů) a každou odpověď. serveru.

Zranitelnosti byly odstraněny 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 a 9.19.21). Stav odstranění zranitelností v distribučních verzích lze posoudit na těchto stránkách: Debian, Ubuntu, SUSE, RHEL, Fedora, Arch Linux, Gentoo, Slackware, NetBSD, FreeBSD.

V verzích DNS serveru BIND 9.16.48, 9.18.24 a 9.19.21 bylo navíc odstraněno několik zranitelností:

  • CVE-2023-4408 — analýza velkých DNS zpráv může vést k vysokému zatížení CPU.
  • CVE-2023-5517 — dotaz na specificky vytvořenou reverzní zónu může vést k havárii kvůli selhání assert kontroly. Problém se projevuje pouze v konfiguracích s aktivovaným nastavením „nxdomain-redirect“.
  • CVE-2023-5679 — rekurzivní určení hostitele může vést k havárii kvůli selhání assert kontroly na systémech s aktivovanou podporou DNS64 a „serve-stale“ (nastavení stale-cache-enable a stale-answer-enable).
  • CVE-2023-6516 — speciálně vytvořené rekurzivní dotazy mohou vést k vyčerpání dostupné paměti pro proces.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster