Nyt SAD DNS-angreb for at indsætte falske data i DNS-cachen

Et team af forskere fra University of California, Riverside har offentliggjort en ny variant af SAD DNS-angrebet (CVE-2021-20322), der virker på trods af beskyttelser tilføjet sidste år for at blokere CVE-2020-25705-sårbarheden. Den nye metode ligner generelt sidste års sårbarhed og adskiller sig kun i brugen af ​​en anden type ICMP-pakker til at kontrollere aktive UDP-porte. Det foreslåede angreb giver mulighed for substitution af fiktive data i DNS-serverens cache, som kan bruges til at erstatte IP-adressen på et vilkårligt domæne i cachen og omdirigere anmodninger til domænet til angriberens server.

Den foreslåede metode virker kun i Linux-netværksstakken på grund af dens forbindelse til de særlige kendetegn ved ICMP-pakkebehandlingsmekanismen i Linux, som fungerer som en kilde til datalækage, der forenkler bestemmelsen af ​​det UDP-portnummer, der bruges af serveren til at sende en ekstern anmodning. Ændringer, der blokerer for informationslækage, blev indført i Linux-kernen i slutningen af ​​august (rettelsen var inkluderet i kerne 5.15 og september-opdateringer til kernens LTS-grene). Rettelsen går ud på at skifte til at bruge SipHash-hash-algoritmen i netværkscaches i stedet for Jenkins Hash. Status for at rette sårbarheden i distributioner kan vurderes på disse sider: Debian, RHEL, Fedora, SUSE, Ubuntu.

Ifølge forskerne, der identificerede problemet, er omkring 38 % af åbne resolvere på netværket sårbare, herunder populære DNS-tjenester som OpenDNS og Quad9 (9.9.9.9). Hvad angår serversoftware, kan et angreb udføres ved at bruge pakker som BIND, Unbound og dnsmasq på en Linux-server. Problemet vises ikke på DNS-servere, der kører på Windows- og BSD-systemer. For at kunne udføre et angreb med succes er det nødvendigt at bruge IP-spoofing, dvs. det er påkrævet, at hackerens internetudbyder ikke blokerer pakker med en falsk kilde-IP-adresse.

Som en påmindelse omgår SAD DNS-angrebet beskyttelsen tilføjet til DNS-servere for at blokere den klassiske DNS-cache-forgiftningsmetode, som blev foreslået i 2008 af Dan Kaminsky. Kaminskys metode manipulerer den lille størrelse af DNS-forespørgsels-ID-feltet, som kun er 16 bit. For at vælge den korrekte DNS-transaktionsidentifikator, der er nødvendig for spoofing af værtsnavne, er det nok at sende cirka 7000 anmodninger og simulere omkring 140 tusind fiktive svar. Angrebet bunder i at sende et stort antal pakker med en fiktiv IP-binding og med forskellige DNS-transaktions-id'er til DNS-resolveren. For at forhindre caching af det første svar indeholder hvert dummy-svar et let ændret domænenavn (1.example.com, 2.example.com, 3.example.com osv.).

For at beskytte mod denne type angreb implementerede DNS-serverproducenter en tilfældig fordeling af antallet af kildenetværksporte, hvorfra der sendes opløsningsanmodninger, hvilket kompenserede for den utilstrækkelige størrelse af identifikatoren. Efter at have implementeret beskyttelse til afsendelse af et fiktivt svar, ud over at vælge en 16-bit identifikator, blev det nødvendigt at vælge en af ​​64 tusinde porte, hvilket øgede antallet af valgmuligheder til 2^32.

SAD DNS-metoden giver dig mulighed for radikalt at forenkle bestemmelsen af ​​netværksportnummeret og reducere angrebet til den klassiske Kaminsky-metode. En angriber kan registrere adgang til ubrugte og aktive UDP-porte ved at drage fordel af lækket information om aktiviteten af ​​netværksporte ved behandling af ICMP-svarpakker. Metoden giver os mulighed for at reducere antallet af søgemuligheder med 4 størrelsesordener - 2^16+2^16 i stedet for 2^32 (131_072 i stedet for 4_294_967_296). Lækket af information, der giver dig mulighed for hurtigt at bestemme aktive UDP-porte, er forårsaget af en fejl i koden til behandling af ICMP-pakker med fragmenteringsanmodninger (ICMP Fragmentation Needed flag) eller omdirigering (ICMP Redirect flag). Afsendelse af sådanne pakker ændrer tilstanden af ​​cachen i netværksstakken, hvilket gør det muligt, baseret på serverens svar, at bestemme, hvilken UDP-port der er aktiv, og hvilken der ikke er.

Angrebsscenarie: Når en DNS-resolver forsøger at løse et domænenavn, sender den en UDP-forespørgsel til den DNS-server, der betjener domænet. Mens resolveren venter på et svar, kan en angriber hurtigt bestemme kildeportnummeret, der blev brugt til at sende anmodningen, og sende et falsk svar til den, idet han efterligner DNS-serveren, der betjener domænet ved hjælp af IP-adresse-spoofing. DNS-resolveren vil cache de data, der er sendt i det falske svar, og vil i nogen tid returnere den IP-adresse, der erstattes af angriberen med alle andre DNS-anmodninger om domænenavnet.

Kilde: opennet.ru

Tilføj en kommentar