Nov SAD napad DNS za vstavljanje lažnih podatkov v predpomnilnik DNS

Skupina raziskovalcev s kalifornijske univerze v Riversideu je objavila novo različico napada SAD DNS (CVE-2021-20322), ki deluje kljub lani dodanim zaščitam za blokiranje ranljivosti CVE-2020-25705. Nova metoda je na splošno podobna lanski ranljivosti in se razlikuje le v uporabi drugačne vrste paketov ICMP za preverjanje aktivnih vrat UDP. Predlagani napad omogoča zamenjavo fiktivnih podatkov v predpomnilnik strežnika DNS, ki se lahko uporabijo za zamenjavo naslova IP poljubne domene v predpomnilniku in preusmeritev zahtev na domeno na napadalčev strežnik.

Predlagana metoda deluje samo v omrežnem skladu Linux zaradi svoje povezave s posebnostmi mehanizma za obdelavo paketov ICMP v Linuxu, ki deluje kot vir uhajanja podatkov, kar poenostavlja določanje številke vrat UDP, ki jih strežnik uporablja za pošiljanje zunanja zahteva. Spremembe, ki preprečujejo uhajanje informacij, so bile sprejete v jedro Linuxa konec avgusta (popravek je bil vključen v jedro 5.15 in septembrske posodobitve za veje LTS jedra). Popravek se zmanjša na prehod na uporabo algoritma zgoščevanja SipHash v omrežnih predpomnilnikih namesto Jenkins Hash. Stanje odpravljanja ranljivosti v distribucijah je mogoče oceniti na teh straneh: Debian, RHEL, Fedora, SUSE, Ubuntu.

Po mnenju raziskovalcev, ki so prepoznali težavo, je približno 38 % odprtih razreševalcev v omrežju ranljivih, vključno s priljubljenimi storitvami DNS, kot sta OpenDNS in Quad9 (9.9.9.9). Kar zadeva strežniško programsko opremo, se lahko napad izvede z uporabo paketov, kot so BIND, Unbound in dnsmasq na strežniku Linux. Težava se ne pojavi na strežnikih DNS, ki se izvajajo v sistemih Windows in BSD. Za uspešno izvedbo napada je potrebno uporabiti IP spoofing, tj. zahteva se, da napadalčev ponudnik internetnih storitev ne blokira paketov z lažnim izvornim naslovom IP.

Kot opomnik, napad SAD DNS zaobide zaščite, dodane strežnikom DNS, da blokira klasično metodo zastrupitve predpomnilnika DNS, ki jo je leta 2008 predlagal Dan Kaminsky. Kaminskyjeva metoda manipulira z majhno velikostjo polja ID poizvedbe DNS, ki je le 16 bitov. Za izbiro pravilnega identifikatorja transakcij DNS, ki je potreben za ponarejanje imena gostitelja, je dovolj, da pošljete približno 7000 zahtev in simulirate približno 140 tisoč izmišljenih odgovorov. Napad se zmanjša na pošiljanje velikega števila paketov s fiktivno vezavo IP in z različnimi identifikatorji transakcije DNS v razreševalec DNS. Da bi preprečili predpomnjenje prvega odgovora, vsak navidezni odgovor vsebuje rahlo spremenjeno ime domene (1.example.com, 2.example.com, 3.example.com itd.).

Za zaščito pred tovrstnim napadom so proizvajalci DNS strežnikov uvedli naključno porazdelitev števila izvornih omrežnih vrat, iz katerih se pošiljajo zahteve za razrešitev, kar je nadomestilo nezadostno velikost identifikatorja. Po implementaciji zaščite za pošiljanje fiktivnega odgovora je bilo poleg izbire 16-bitnega identifikatorja treba izbrati enega od 64 tisoč vrat, kar je povečalo število možnosti izbire na 2^32.

Metoda SAD DNS vam omogoča radikalno poenostavitev določanja številke omrežnih vrat in zmanjšanje napada na klasično metodo Kaminsky. Napadalec lahko zazna dostop do neuporabljenih in aktivnih vrat UDP tako, da izkoristi uhajajoče informacije o dejavnosti omrežnih vrat pri obdelavi odzivnih paketov ICMP. Metoda nam omogoča zmanjšanje števila možnosti iskanja za 4 velikostne rede - 2^16+2^16 namesto 2^32 (131_072 namesto 4_294_967_296). Uhajanje informacij, ki vam omogočajo hitro določanje aktivnih vrat UDP, je posledica napake v kodi za obdelavo paketov ICMP z zahtevami za fragmentacijo (zastavica ICMP Fragmentation Needed) ali preusmeritev (zastavica ICMP Redirect). Pošiljanje takšnih paketov spremeni stanje predpomnilnika v omrežnem skladu, kar omogoča, da na podlagi odziva strežnika ugotovimo, katera UDP vrata so aktivna in katera ne.

Scenarij napada: Ko razreševalnik DNS poskuša razrešiti ime domene, pošlje poizvedbo UDP strežniku DNS, ki služi domeni. Medtem ko razreševalec čaka na odgovor, lahko napadalec hitro ugotovi številko izvornih vrat, ki je bila uporabljena za pošiljanje zahteve, in ji pošlje lažni odgovor, pri čemer se predstavlja kot strežnik DNS, ki služi domeni, s ponarejanjem naslovov IP. Reševalec DNS bo predpomnil podatke, poslane v lažnem odgovoru, in nekaj časa vračal naslov IP, ki ga je napadalec zamenjal za vse druge zahteve DNS za ime domene.

Vir: opennet.ru

Dodaj komentar