Noua variantă de atac SAD DNS pentru inserarea de date false în cache-ul DNS

Un grup de cercetători de la Universitatea din California, Riverside, a publicat o nouă variantă a atacului SAD DNS (CVE-2021-20322), care funcționează în ciuda protecției adăugate anul trecut pentru a bloca vulnerabilitatea CVE-2020-25705. Noua metodă este în general similară cu vulnerabilitatea de anul trecut și se deosebește doar prin utilizarea unui alt tip de pachete ICMP pentru a verifica porturile UDP active. Atacul propus permite substituirea datelor falsificate în memoria cache a serverului DNS, ceea ce poate fi folosit pentru a schimba în cache adresa IP a unui domeniu arbitrar și a redirecționa cererile către domeniu pe serverul atacatorului.

Metoda propusă funcționează doar în stiva de rețea Linux din cauza legăturii cu particularitatea de lucru a mecanismului de procesare a pachetelor ICMP în Linux, care reprezintă sursa de scurgeri de date, care facilitează determinarea numărului portului UDP utilizat. serverul pentru a trimite cererea externă. Modificările care blochează scurgerea de informații au fost acceptate în nucleul Linux la sfârșitul lunii august (corecția a fost inclusă în nucleul 5.15 și în actualizările din septembrie ale ramurilor LTS ale nucleului). Corecția constă în trecerea la utilizarea algoritmului de hashenare SipHash în locul Jenkins Hash în cache-urile de rețea. Statutul remedierii vulnerabilității în distribuții poate fi evaluat pe aceste pagini: Debian, RHEL, Fedora, SUSE, Ubuntu.

Conform datelor cercetătorilor care au descoperit problema, vulnerabilitatea afectează aproximativ 38% din rezolvatoarele deschise aflate în rețea, incluzând servicii DNS populare, cum ar fi OpenDNS și Quad9 (9.9.9.9). În ceea ce privește software-ul serverului, atacul poate fi realizat pe un server Linux utilizând pachete precum BIND, Unbound și dnsmasq. La serverele DNS care rulează pe sisteme Windows și BSD, problema nu se manifestă. Pentru a efectua cu succes atacul, este necesar să se utilizeze spoofing IP, adică este necesar ca providerul atacatorului să nu blocheze pachetele cu o adresă IP de origine falsificată.

Amintim că atacul SAD DNS permite ocolirea protecției adăugate la serverele DNS pentru a bloca metoda clasică de otrăvire a cache-ului DNS, propusă în 2008 de Dan Kaminsky. Metoda Kaminsky manipulează dimensiunea nesemnificativă a câmpului cu identificatorul cererii DNS, care este de doar 16 biți. Pentru a găsi identificatorul corect al tranzacției DNS, necesar pentru spoofing-ul numelui gazdelor, este suficient să se trimită aproximativ 7000 de cereri și să se simuleze în jur de 140 de mii de răspunsuri fictive. Atacul constă în trimiterea către rezolvatorul DNS a unui număr mare de pachete cu o legătură fictivă la IP și cu diferite identificatoare ale tranzacției DNS. Pentru a preveni cache-irea primului răspuns, fiecare răspuns fictiv indică un nume de domeniu ușor modificat (1.example.com, 2.example.com, 3.example.com etc.).

Pentru a proteja împotriva acestui tip de atac, producătorii de servere DNS au implementat distribuția aleatorie a numerelor porturilor de rețea de origine, de unde se trimit cererile de rezolvare, ceea ce a compensat dimensiunea insuficient de mare a identificatorului. După implementarea protecției, pentru a trimite un răspuns fictiv, pe lângă găsirea identificatorului de 16 biți, a devenit necesar să fie găsit și unul dintre cele 64 de mii de porturi, ceea ce a crescut numărul de variante posibile la 2^32.

Metoda SAD DNS permite simplificarea radicală a determinării numărului portului de rețea și reduce atacul la metoda clasică a lui Kaminsky. Atacatorul poate identifica solicitările către porturile UDP neutilizate și active, profitând de scurgerea informațiilor asupra activității porturilor de rețea în timpul procesării pachetelor ICMP de răspuns. Metoda permite o reducere de 4 ordini de magnitudine a numărului de variante de încercare — 2^16+2^16 în loc de 2^32 (131_072 în loc de 4_294_967_296). Scurgerea informațiilor care permit determinarea rapidă a porturilor UDP active este cauzată de o deficiență în codul de procesare a pachetelor ICMP cu cereri de fragmentare (flamul ICMP Fragmentation Needed) sau redirecționare (flamul ICMP Redirect). Trimiterea acestor pachete modifică starea cache-ului în stiva de rețea, ceea ce permite, pe baza reacției serverului, să se determine care dintre porturile UDP este activ și care nu.

Scenariul atacului: Atunci când un rezolvator DNS încearcă să determine un nume de domeniu, acesta trimite o solicitare UDP către serverul DNS care deservește domeniul. În momentul în care rezolvatorul așteaptă un răspuns, atacatorul poate determina rapid numărul portului de origine folosit pentru a trimite solicitarea și pentru a trimite un răspuns fals, pretinzând că este serverul DNS care deservește domeniul, folosind spoofing. adrese IPRezolvatorul DNS va stoca în cache datele transmise în răspunsul fals și pentru o perioadă, pentru toate celelalte solicitări DNS ale numelui de domeniu, va returna adresa IP falsificată de atacator.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster