Novi SAD DNS napad za umetanje lažnih podataka u DNS keš memoriju

Tim istraživača sa Univerziteta Kalifornije, Riverside objavio je novu varijantu SAD DNS napada (CVE-2021-20322) koja radi uprkos zaštiti koja je dodata prošle godine da blokira ranjivost CVE-2020-25705. Nova metoda je općenito slična prošlogodišnjoj ranjivosti i razlikuje se samo u korištenju drugačijeg tipa ICMP paketa za provjeru aktivnih UDP portova. Predloženi napad omogućava zamjenu fiktivnih podataka u keš DNS servera, koji se može koristiti za zamjenu IP adrese proizvoljnog domena u kešu i preusmjeravanje zahtjeva na domenu na server napadača.

Predložena metoda radi samo u Linux mrežnom stogu zbog svoje povezanosti s posebnostima ICMP mehanizma obrade paketa u Linuxu, koji djeluje kao izvor curenja podataka koji pojednostavljuje određivanje broja UDP porta koji poslužitelj koristi za slanje eksterni zahtjev. Promjene koje blokiraju curenje informacija usvojene su u Linux kernel krajem avgusta (popravka je uključena u kernel 5.15 i septembarska ažuriranja LTS grana kernela). Popravka se svodi na prelazak na korištenje SipHash algoritma za heširanje u mrežnim kešovima umjesto Jenkins Hasha. Status popravljanja ranjivosti u distribucijama može se procijeniti na ovim stranicama: Debian, RHEL, Fedora, SUSE, Ubuntu.

Prema istraživačima koji su identifikovali problem, oko 38% otvorenih rešavača na mreži je ranjivo, uključujući popularne DNS servise kao što su OpenDNS i Quad9 (9.9.9.9). Što se tiče serverskog softvera, napad se može izvesti korištenjem paketa kao što su BIND, Unbound i dnsmasq na Linux serveru. Problem se ne pojavljuje na DNS serverima koji rade na Windows i BSD sistemima. Za uspješno izvođenje napada potrebno je koristiti IP spoofing, tj. potrebno je da napadačev ISP ne blokira pakete sa lažnom izvornom IP adresom.

Podsjetimo, SAD DNS napad zaobilazi zaštitu dodanu DNS serverima kako bi blokirao klasičnu metodu trovanja DNS keš memorije koju je 2008. predložio Dan Kaminsky. Metod Kaminskog manipuliše malom veličinom ID polja DNS upita, koje iznosi samo 16 bita. Da biste odabrali ispravan identifikator DNS transakcije neophodan za lažiranje imena hosta, dovoljno je poslati približno 7000 zahtjeva i simulirati oko 140 hiljada fiktivnih odgovora. Napad se svodi na slanje velikog broja paketa sa fiktivnim IP vezom i sa različitim identifikatorima DNS transakcija u DNS rezolver. Da bi se spriječilo keširanje prvog odgovora, svaki lažni odgovor sadrži malo izmijenjeno ime domene (1.example.com, 2.example.com, 3.example.com, itd.).

Da bi se zaštitili od ove vrste napada, proizvođači DNS servera implementirali su slučajnu distribuciju broja izvornih mrežnih portova sa kojih se šalju zahtjevi za razrješenje, što je kompenziralo nedovoljno veliku veličinu identifikatora. Nakon implementacije zaštite za slanje fiktivnog odgovora, pored odabira 16-bitnog identifikatora, postalo je potrebno odabrati jedan od 64 hiljade portova, što je povećalo broj opcija za odabir na 2^32.

SAD DNS metoda vam omogućava da radikalno pojednostavite određivanje broja mrežnog porta i smanjite napad na klasičnu Kaminsky metodu. Napadač može otkriti pristup neiskorištenim i aktivnim UDP portovima tako što će iskoristiti procurile informacije o aktivnosti mrežnih portova prilikom obrade ICMP paketa odgovora. Metoda nam omogućava da smanjimo broj opcija pretraživanja za 4 reda veličine - 2^16+2^16 umjesto 2^32 (131_072 umjesto 4_294_967_296). Curenje informacija koje vam omogućavaju da brzo odredite aktivne UDP portove je uzrokovano greškom u kodu za obradu ICMP paketa sa zahtjevima za fragmentaciju (ICMP Fragmentation Needed flag) ili preusmjeravanjem (ICMP Redirect flag). Slanje ovakvih paketa menja stanje keš memorije u mrežnom steku, što omogućava da se na osnovu odgovora servera odredi koji je UDP port aktivan, a koji ne.

Scenario napada: Kada DNS razrješavač pokuša riješiti ime domene, on šalje UDP upit DNS serveru koji opslužuje domen. Dok razrješavač čeka na odgovor, napadač može brzo odrediti broj izvornog porta koji je korišten za slanje zahtjeva i poslati lažni odgovor na njega, lažno predstavljajući DNS server koji opslužuje domenu koristeći lažiranje IP adrese. DNS razrješavač će keširati podatke poslane u lažnom odgovoru i neko vrijeme vraćati IP adresu koju je napadač zamijenio za sve druge DNS zahtjeve za ime domene.

izvor: opennet.ru

Dodajte komentar