Ny variant af SAD DNS-angreb til indsættelse af falske data i DNS-cachen

En gruppe forskere fra University of California, Riverside, har offentliggjort en ny variant af SAD DNS-angrebet (CVE-2021-20322), som fungerer trods de beskyttelser, der blev tilføjet sidste år for at blokere sårbarheden CVE-2020-25705. Den nye metode ligner generelt den tidligere sårbarhed, men adskiller sig blot ved at bruge en anden type ICMP-pakker til at kontrollere aktive UDP-porte. Det foreslåede angreb muliggør indsættelse af falske data i DNS-serverens cache, hvilket kan bruges til at ændre IP-adressen for et vilkårligt domæne i cachen og omdirigere forespørgsler til domænet til en ondsindet server.

Den foreslåede metode fungerer kun i Linux-netværksstakken på grund af knytningen til, hvordan ICMP-pakkebehandlingsmekanismen i Linux fungerer, hvilket er en kilde til datalækager, der letter bestemmelsen af det anvendte UDP-portnummer. serveren for at sende en ekstern forespørgsel. Ændringer, der blokkerer datalækager, blev accepteret i Linux-kernen i slutningen af august (rettelsen blev en del af kerne 5.15 og de septemberopdateringer af LTS-kernerne). Rettelsen går ud på at skifte til at bruge SipHash-hash-algoritmen i netværkscacherne i stedet for Jenkins Hash. Status for udbedring af sårbarheden i distributionerne kan vurderes på følgende sider: Debian, RHEL, Fedora, SUSE, Ubuntu.

Ifølge de forskere, der har identificeret problemet, er cirka 38% af de åbne resolvere, der er tilgængelige online, sårbare, inklusive populære DNS-tjenester som OpenDNS og Quad9 (9.9.9.9). Hvad angår serversoftware, kan angrebet udføres på en Linux-server med pakker som BIND, Unbound og dnsmasq. På DNS-servere, der kører med Windows- og BSD-systemer, opstår problemet ikke. For at udføre angrebet med succes skal der anvendes IP-spoofing, dvs. det kræves, at udbyderen af den angribende enhed ikke blokerer pakker med en falsk kilde-IP-adresse.

Vi minder om, at SAD DNS-angrebet muliggør at omgå den beskyttelse, der er tilføjet i DNS-servere for at blokere den klassiske metode til DNS-cache-forgiftning, foreslået af Dan Kaminsky i 2008. Kaminskys metode manipulerer med den beskedne størrelse af identifikationsnummerfeltet for DNS-forespørgslen, som kun er 16 bit. For at finde den korrekte DNS-transaktionsidentifikator, der er nødvendig for at spoofe et værtsnavn, er det tilstrækkeligt at sende omkring 7000 forespørgsler og simulere ca. 140.000 falske svar. Angrebet består i at sende et stort antal pakker til DNS-resolveren med en falsk binding til IP og med forskellige DNS-transaktionsidentifikatorer. For at forhindre caching af det første svar angives der i hvert falskt svar et lidt ændret domænenavn (1.example.com, 2.example.com, 3.example.com osv.).

For at beskytte mod denne type angreb har producenterne af DNS-servere implementeret tilfældig tildeling af startnetværksporte, som forespørgslerne sendes fra, hvilket kompenserer for den ikke tilstrækkeligt store størrelse af identifikatoren. Efter implementeringen af beskyttelsen blev det foruden at finde den 16-bit identifikator nødvendigt også at finde en af 64.000 porte, hvilket øgede antal muligheder for søgning til 2^32.

SAD DNS-metoden muliggør en dramatisk forenkling af bestemmelsen af netværkets portnummer og reducerer angrebet til den klassiske metode fra Kaminsky. Angrebne kan bestemme adgangen til ubrugte og aktive UDP-porte ved at udnytte lækagen af oplysninger om aktiviteten af netværksporte ved behandling af svarende ICMP-pakker. Metoden muliggør en reduktion af mulighederne for brute force af en faktor på 10.000 - 2^16+2^16 i stedet for 2^32 (131_072 i stedet for 4_294_967_296). Lækagen af oplysninger, der gør det muligt hurtigt at identificere aktive UDP-porte, skyldes mangler i koden til behandling af ICMP-pakker med fragmenteringsanmodninger (flag ICMP Fragmentation Needed) eller omdirigering (flag ICMP Redirect). Sending af sådanne pakker ændrer cache-tilstanden i netværksstakken, hvilket gør det muligt at bestemme, hvilken UDP-port der er aktiv, og hvilken der ikke er, baseret på serverens reaktion.

Angrebsscenario: Når en DNS-resolver forsøger at bestemme domænenavnet, sender den en UDP-forespørgsel til den tilhørende DNS-server. I det øjeblik, hvor resolveren venter på svar, kan angriberen hurtigt identificere det oprindelige portnummer, der blev brugt til at sende forespørgslen, og sende et falsk svar til det samme portnummer, og udgive sig for at være den tilhørende DNS-server ved hjælp af spoofing. IP-adresserDNS-resolveren vil placere de data, der blev sendt i det falske svar, i cachen og i en periode returnere den indsatte IP-adresse til alle andre DNS-forespørgsler for domænenavnet.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster