Nytt trist DNS-angrep for å sette inn falske data i DNS-cachen

Et team av forskere fra University of California, Riverside har publisert en ny variant av SAD DNS-angrepet (CVE-2021-20322) som fungerer til tross for beskyttelser lagt til i fjor for å blokkere CVE-2020-25705-sårbarheten. Den nye metoden er generelt lik fjorårets sårbarhet og skiller seg bare i bruk av en annen type ICMP-pakker for å sjekke aktive UDP-porter. Det foreslåtte angrepet gjør det mulig å erstatte fiktive data i DNS-serverbufferen, som kan brukes til å erstatte IP-adressen til et vilkårlig domene i hurtigbufferen og omdirigere forespørsler til domenet til angriperens server.

Den foreslåtte metoden fungerer bare i Linux-nettverksstabelen på grunn av dens tilkobling til særegenhetene til ICMP-pakkebehandlingsmekanismen i Linux, som fungerer som en kilde til datalekkasje som forenkler bestemmelsen av UDP-portnummeret som brukes av serveren for å sende en ekstern forespørsel. Endringer som blokkerer informasjonslekkasje ble tatt i bruk i Linux-kjernen i slutten av august (rettelsen ble inkludert i kjerne 5.15 og septemberoppdateringer til LTS-grenene til kjernen). Løsningen koker ned til å bytte til å bruke SipHash-hash-algoritmen i nettverksbuffere i stedet for Jenkins Hash. Status for å fikse sårbarheten i distribusjoner kan vurderes på disse sidene: Debian, RHEL, Fedora, SUSE, Ubuntu.

I følge forskerne som identifiserte problemet, er omtrent 38 % av åpne løsere på nettverket sårbare, inkludert populære DNS-tjenester som OpenDNS og Quad9 (9.9.9.9). Når det gjelder serverprogramvare, kan et angrep utføres ved å bruke pakker som BIND, Unbound og dnsmasq på en Linux-server. Problemet vises ikke på DNS-servere som kjører på Windows- og BSD-systemer. For å lykkes med å utføre et angrep, er det nødvendig å bruke IP-spoofing, dvs. det kreves at angriperens Internett-leverandør ikke blokkerer pakker med en falsk kilde-IP-adresse.

Som en påminnelse omgår SAD DNS-angrepet beskyttelsen lagt til DNS-servere for å blokkere den klassiske DNS-cache-forgiftningsmetoden foreslått i 2008 av Dan Kaminsky. Kaminskys metode manipulerer den lille størrelsen på DNS-spørrings-ID-feltet, som bare er 16 biter. For å velge riktig DNS-transaksjonsidentifikator som er nødvendig for forfalskning av vertsnavn, er det nok å sende omtrent 7000 forespørsler og simulere omtrent 140 tusen fiktive svar. Angrepet koker ned til å sende et stort antall pakker med en fiktiv IP-binding og med forskjellige DNS-transaksjonsidentifikatorer til DNS-resolveren. For å forhindre bufring av det første svaret, inneholder hvert dummy-svar et litt modifisert domenenavn (1.example.com, 2.example.com, 3.example.com, etc.).

For å beskytte mot denne typen angrep implementerte DNS-serverprodusenter en tilfeldig fordeling av antall kildenettverksporter som oppløsningsforespørsler sendes fra, noe som kompenserte for den utilstrekkelig store størrelsen på identifikatoren. Etter å ha implementert beskyttelse for å sende et fiktivt svar, i tillegg til å velge en 16-bits identifikator, ble det nødvendig å velge en av 64 tusen porter, noe som økte antallet valgmuligheter til 2^32.

SAD DNS-metoden lar deg radikalt forenkle bestemmelsen av nettverksportnummeret og redusere angrepet til den klassiske Kaminsky-metoden. En angriper kan oppdage tilgang til ubrukte og aktive UDP-porter ved å dra nytte av lekket informasjon om aktiviteten til nettverksporter ved behandling av ICMP-svarpakker. Metoden lar oss redusere antall søkealternativer med 4 størrelsesordener - 2^16+2^16 i stedet for 2^32 (131_072 i stedet for 4_294_967_296). Lekkasjen av informasjon som lar deg raskt fastslå aktive UDP-porter er forårsaket av en feil i koden for behandling av ICMP-pakker med fragmenteringsforespørsler (ICMP Fragmentation Needed-flagg) eller omdirigering (ICMP Redirect-flagg). Sending av slike pakker endrer tilstanden til cachen i nettverksstakken, noe som gjør det mulig å bestemme, basert på serverens svar, hvilken UDP-port som er aktiv og hvilken som ikke er det.

Angrepsscenario: Når en DNS-løser prøver å løse et domenenavn, sender den en UDP-spørring til DNS-serveren som betjener domenet. Mens løseren venter på et svar, kan en angriper raskt finne kildeportnummeret som ble brukt til å sende forespørselen og sende et falskt svar til den, og etterligne DNS-serveren som betjener domenet ved å bruke IP-adresseforfalskning. DNS-løseren vil hurtigbufre dataene som ble sendt i det falske svaret og vil i noen tid returnere IP-adressen som er erstattet av angriperen for alle andre DNS-forespørsler for domenenavnet.

Kilde: opennet.ru

Legg til en kommentar