Novi SAD DNS napad za umetanje lažnih podataka u DNS predmemoriju

Tim istraživača s kalifornijskog sveučilišta Riverside objavio je novu varijantu SAD DNS napada (CVE-2021-20322) koja radi usprkos zaštiti dodanoj prošle godine za blokiranje ranjivosti CVE-2020-25705. Nova metoda općenito je slična prošlogodišnjoj ranjivosti i razlikuje se samo u korištenju različite vrste ICMP paketa za provjeru aktivnih UDP portova. Predloženi napad omogućuje zamjenu fiktivnih podataka u predmemoriju DNS poslužitelja, koji se mogu koristiti za zamjenu IP adrese proizvoljne domene u predmemorije i preusmjeravanje zahtjeva na domenu na napadačev poslužitelj.

Predložena metoda radi samo u Linux mrežnom stogu zbog svoje povezanosti s osobitostima mehanizma obrade ICMP paketa u Linuxu, koji djeluje kao izvor curenja podataka koji pojednostavljuje određivanje broja UDP porta koji koristi poslužitelj za slanje vanjski zahtjev. Promjene koje blokiraju curenje informacija usvojene su u Linux kernelu krajem kolovoza (popravak je uključen u kernel 5.15 i rujanska ažuriranja LTS grana kernela). Popravak se svodi na prebacivanje na korištenje algoritma za raspršivanje SipHash u mrežnim predmemorijama 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 identificirali problem, oko 38% otvorenih rješavača na mreži je ranjivo, uključujući popularne DNS usluge kao što su OpenDNS i Quad9 (9.9.9.9). Što se tiče poslužiteljskog softvera, napad se može izvesti korištenjem paketa kao što su BIND, Unbound i dnsmasq na Linux poslužitelju. Problem se ne pojavljuje na DNS poslužiteljima koji rade na Windows i BSD sustavima. Za uspješno izvođenje napada potrebno je koristiti IP spoofing, tj. potrebno je da napadačev ISP ne blokira pakete s lažnom izvornom IP adresom.

Podsjetimo, SAD DNS napad zaobilazi zaštite dodane DNS poslužiteljima kako bi blokirao klasičnu metodu trovanja DNS predmemorije koju je 2008. godine predložio Dan Kaminsky. Kaminskyjeva metoda manipulira malenom veličinom ID polja DNS upita, koja iznosi samo 16 bita. Da biste odabrali ispravan identifikator DNS transakcije potreban za lažiranje naziva hosta, dovoljno je poslati približno 7000 zahtjeva i simulirati oko 140 tisuća fiktivnih odgovora. Napad se svodi na slanje velikog broja paketa s fiktivnim IP vezanjem i s različitim identifikatorima DNS transakcija DNS rješavaču. Kako bi se spriječilo predmemoriranje prvog odgovora, svaki lažni odgovor sadrži blago izmijenjen naziv domene (1.example.com, 2.example.com, 3.example.com, itd.).

Kako bi se zaštitili od ove vrste napada, proizvođači DNS poslužitelja implementirali su slučajnu raspodjelu broja izvorišnih mrežnih portova s ​​kojih se šalju zahtjevi za rješavanje problema, čime je kompenzirana nedovoljno velika veličina identifikatora. Nakon implementacije zaštite za slanje fiktivnog odgovora, osim odabira 16-bitnog identifikatora, postalo je potrebno odabrati jedan od 64 tisuće portova, čime je broj opcija za odabir povećan na 2^32.

SAD DNS metoda omogućuje vam da radikalno pojednostavite određivanje broja mrežnog priključka i smanjite napad na klasičnu Kaminsky metodu. Napadač može otkriti pristup neiskorištenim i aktivnim UDP priključcima iskorištavanjem procurjelih informacija o aktivnosti mrežnih priključnica prilikom obrade ICMP paketa odgovora. Metoda nam omogućuje smanjenje broja 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ćuju brzo određivanje aktivnih UDP portova uzrokovano je greškom u kodu za obradu ICMP paketa sa zahtjevima za fragmentaciju (oznaka ICMP Fragmentation Needed) ili preusmjeravanje (oznaka ICMP Redirect). Slanjem takvih paketa mijenja se stanje predmemorije u mrežnom stogu, što omogućuje da se na temelju odgovora poslužitelja utvrdi koji je UDP port aktivan, a koji nije.

Scenarij napada: Kada DNS rezolver pokuša razriješiti naziv domene, on šalje UDP upit DNS poslužitelju koji opslužuje domenu. Dok razrješivač čeka odgovor, napadač može brzo odrediti izvorni broj porta koji je korišten za slanje zahtjeva i poslati lažni odgovor na njega, lažno predstavljajući DNS poslužitelj koji opslužuje domenu koristeći lažiranje IP adrese. DNS razrješivač će predmemorirati podatke poslane u lažnom odgovoru i neko će vrijeme vraćati IP adresu koju je napadač zamijenio za sve ostale DNS zahtjeve za naziv domene.

Izvor: opennet.ru

Dodajte komentar