Nový útok SAD DNS pro vložení falešných dat do mezipaměti DNS

Tým výzkumníků z University of California, Riverside zveřejnil novou variantu útoku SAD DNS (CVE-2021-20322), která funguje navzdory ochranám přidaným v loňském roce k blokování zranitelnosti CVE-2020-25705. Nová metoda je obecně podobná loňské zranitelnosti a liší se pouze použitím jiného typu ICMP paketů pro kontrolu aktivních UDP portů. Navrhovaný útok umožňuje substituci fiktivních dat do mezipaměti serveru DNS, pomocí kterých lze nahradit IP adresu libovolné domény v mezipaměti a přesměrovat požadavky na doménu na server útočníka.

Navržená metoda funguje pouze v linuxovém síťovém zásobníku kvůli jeho napojení na zvláštnosti mechanismu zpracování paketů ICMP v Linuxu, který funguje jako zdroj úniku dat, což zjednodušuje určení čísla portu UDP používaného serverem k odeslání externí požadavek. Změny, které blokují únik informací, byly do linuxového jádra přijaty na konci srpna (oprava byla zahrnuta v jádře 5.15 a zářijových aktualizacích LTS větví jádra). Oprava se scvrkává na přechod na použití hashovacího algoritmu SipHash v síťových mezipamětích namísto Jenkins Hash. Stav opravy zranitelnosti v distribucích lze posoudit na těchto stránkách: Debian, RHEL, Fedora, SUSE, Ubuntu.

Podle výzkumníků, kteří problém identifikovali, je zranitelných asi 38 % otevřených resolverů v síti, včetně oblíbených DNS služeb, jako jsou OpenDNS a Quad9 (9.9.9.9). Pokud jde o serverový software, útok lze provést pomocí balíčků jako BIND, Unbound a dnsmasq na serveru Linux. Problém se neobjevuje na serverech DNS běžících na systémech Windows a BSD. Pro úspěšné provedení útoku je nutné použít IP spoofing, tzn. je vyžadováno, aby útočníkův ISP neblokoval pakety s falešnou zdrojovou IP adresou.

Připomínáme, že útok SAD DNS obchází ochrany přidané k serverům DNS, aby zablokoval klasickou metodu otravy mezipaměti DNS navrženou v roce 2008 Danem Kaminským. Kaminského metoda manipuluje s malou velikostí pole ID dotazu DNS, které je pouze 16 bitů. Pro výběr správného DNS transakčního identifikátoru potřebného pro falšování názvů hostitele stačí odeslat přibližně 7000 140 požadavků a simulovat asi 1 tisíc fiktivních odpovědí. Útok se scvrkává na odeslání velkého počtu paketů s fiktivní vazbou IP a s různými identifikátory transakcí DNS do DNS resolveru. Aby se zabránilo ukládání první odpovědi do mezipaměti, obsahuje každá fiktivní odpověď mírně upravený název domény (2.example.com, 3.example.com, XNUMX.example.com atd.).

K ochraně před tímto typem útoku implementovali výrobci DNS serverů náhodné rozdělení počtu portů zdrojové sítě, ze kterých jsou odesílány požadavky na rozlišení, čímž byla kompenzována nedostatečně velká velikost identifikátoru. Po implementaci ochrany pro odesílání fiktivní odpovědi vyvstala kromě výběru 16bitového identifikátoru nutnost vybrat jeden z 64 tisíc portů, čímž se počet možností výběru zvýšil na 2^32.

Metoda SAD DNS umožňuje radikálně zjednodušit určení čísla síťového portu a zredukovat útok na klasickou Kaminského metodu. Útočník může odhalit přístup k nepoužívaným a aktivním portům UDP tím, že využije uniklé informace o aktivitě síťových portů při zpracování paketů odpovědí ICMP. Metoda nám umožňuje snížit počet možností vyhledávání o 4 řády - 2^16+2^16 místo 2^32 (131_072 místo 4_294_967_296). Únik informací, které umožňují rychle určit aktivní porty UDP, je způsoben chybou v kódu pro zpracování ICMP paketů s požadavky na fragmentaci (příznak ICMP Fragmentation Needed) nebo přesměrování (příznak ICMP Redirect). Odesláním takových paketů se změní stav cache v síťovém zásobníku, což umožňuje na základě odpovědi serveru určit, který UDP port je aktivní a který ne.

Scénář útoku: Když se překladač DNS pokusí přeložit název domény, odešle dotaz UDP na server DNS obsluhující doménu. Zatímco překladač čeká na odpověď, útočník může rychle určit číslo zdrojového portu, který byl použit k odeslání požadavku, a odeslat na něj falešnou odpověď, čímž se vydává za server DNS obsluhující doménu pomocí falšování IP adres. DNS resolver uloží data odeslaná ve falešné odpovědi do mezipaměti a po nějakou dobu bude vracet IP adresu nahrazenou útočníkem pro všechny ostatní DNS požadavky na název domény.

Zdroj: opennet.ru

Přidat komentář