Ny SAD DNS-attack för att infoga falska data i DNS-cachen

Ett team av forskare från University of California, Riverside har publicerat en ny variant av SAD DNS-attacken (CVE-2021-20322) som fungerar trots skydd som lades till förra året för att blockera CVE-2020-25705-sårbarheten. Den nya metoden liknar i allmänhet förra årets sårbarhet och skiljer sig endast i användningen av en annan typ av ICMP-paket för att kontrollera aktiva UDP-portar. Den föreslagna attacken tillåter ersättning av fiktiv data i DNS-serverns cache, som kan användas för att ersätta IP-adressen för en godtycklig domän i cachen och omdirigera förfrågningar till domänen till angriparens server.

Den föreslagna metoden fungerar endast i Linux-nätverksstacken på grund av dess koppling till särdragen hos ICMP-paketbearbetningsmekanismen i Linux, som fungerar som en källa till dataläckage som förenklar bestämningen av UDP-portnumret som används av servern för att skicka en extern begäran. Ändringar som blockerar informationsläckage antogs i Linux-kärnan i slutet av augusti (fixen inkluderades i kärnan 5.15 och septemberuppdateringar av kärnans LTS-grenar). Fixningen går ut på att byta till att använda SipHash-hash-algoritmen i nätverkscachar istället för Jenkins Hash. Statusen för att åtgärda sårbarheten i distributioner kan bedömas på dessa sidor: Debian, RHEL, Fedora, SUSE, Ubuntu.

Enligt forskarna som identifierade problemet är cirka 38 % av öppna lösare i nätverket sårbara, inklusive populära DNS-tjänster som OpenDNS och Quad9 (9.9.9.9). När det gäller serverprogramvara kan en attack utföras genom att använda paket som BIND, Unbound och dnsmasq på en Linux-server. Problemet visas inte på DNS-servrar som körs på Windows- och BSD-system. För att framgångsrikt genomföra en attack är det nödvändigt att använda IP-spoofing, d.v.s. det krävs att angriparens internetleverantör inte blockerar paket med en falsk käll-IP-adress.

Som en påminnelse går SAD DNS-attacken förbi skydden som lagts till DNS-servrar för att blockera den klassiska DNS-cacheförgiftningsmetoden som föreslogs 2008 av Dan Kaminsky. Kaminskys metod manipulerar den lilla storleken på DNS-fråge-ID-fältet, som bara är 16 bitar. För att välja rätt DNS-transaktionsidentifierare som krävs för värdnamnspoofing räcker det att skicka cirka 7000 140 förfrågningar och simulera cirka 1 tusen fiktiva svar. Attacken går ut på att skicka ett stort antal paket med en fiktiv IP-bindning och med olika DNS-transaktionsidentifierare till DNS-resolvern. För att förhindra cachning av det första svaret innehåller varje dummysvar ett något modifierat domännamn (2.example.com, 3.example.com, XNUMX.example.com, etc.).

För att skydda mot denna typ av attack implementerade DNS-servertillverkare en slumpmässig fördelning av antalet källnätverksportar från vilka upplösningsbegäranden skickas, vilket kompenserade för den otillräckliga storleken på identifieraren. Efter att ha implementerat skydd för att skicka ett fiktivt svar, förutom att välja en 16-bitars identifierare, blev det nödvändigt att välja en av 64 tusen portar, vilket ökade antalet alternativ för val till 2^32.

SAD DNS-metoden låter dig radikalt förenkla bestämningen av nätverksportnumret och reducera attacken till den klassiska Kaminsky-metoden. En angripare kan upptäcka åtkomst till oanvända och aktiva UDP-portar genom att dra fördel av läckt information om aktiviteten hos nätverksportar vid bearbetning av ICMP-svarspaket. Metoden tillåter oss att minska antalet sökalternativ med 4 storleksordningar - 2^16+2^16 istället för 2^32 (131_072 istället för 4_294_967_296). Läckaget av information som gör att du snabbt kan fastställa aktiva UDP-portar orsakas av ett fel i koden för bearbetning av ICMP-paket med fragmenteringsförfrågningar (ICMP Fragmentation Needed flag) eller omdirigering (ICMP Redirect-flagga). Att skicka sådana paket ändrar tillståndet för cachen i nätverksstacken, vilket gör det möjligt att utifrån serverns svar avgöra vilken UDP-port som är aktiv och vilken som inte är det.

Attackscenario: När en DNS-resolver försöker lösa ett domännamn, skickar den en UDP-fråga till DNS-servern som betjänar domänen. Medan resolvern väntar på ett svar kan en angripare snabbt fastställa källportnumret som användes för att skicka förfrågan och skicka ett falskt svar till den, som efterliknar DNS-servern som betjänar domänen med IP-adressförfalskning. DNS-resolvern kommer att cachelagra data som skickas i det falska svaret och kommer under en tid att returnera IP-adressen som ersatts av angriparen för alla andra DNS-förfrågningar för domännamnet.

Källa: opennet.ru

Lägg en kommentar