Grupa istraživača s Telavivskog sveučilišta i Međudisciplinarnog centra u Herceliji (Izrael) novu metodu napada (), koja omogućuje korištenje bilo kojih DNS-resolvera kao pojačala prometa, osiguravajući pojačanje do 1621 puta u broju paketa (na svaki poslani upit resolveru, može se ostvariti slanje 1621 upita na poslužitelj žrtve) i do 163 puta po prometu.
Problemi proizlaze iz karakteristika rada protokola i pogađaju sve DNS poslužitelje koji podržavaju rekurzivnu obradu upita, uključujući (CVE-2020-8616), (CVE-2020-12667), (CVE-2020-10995), i (CVE-2020-12662), kao i javne DNS usluge Google, Cloudflare, Amazon, Quad9, ICANN i drugih kompanija. Ispravak problema koordiniran je s programerima DNS poslužitelja koji su istovremeno objavili ažuriranja s uklanjanjem ranjivosti u svojim proizvodima. Zaštita od napada implementirana je u izdanju
, , , .
Napad se temelji na korištenju upita napadača koji se pozivaju na veliki broj prethodno neviđenih lažnih NS zapisa, kojima se delegira određivanje imena, ali bez navođenja glue zapisa s informacijama o IP adresama NS poslužitelja. Na primjer, napadač šalje upit za određivanje imena sd1.attacker.com, kontrolirajući DNS poslužitelj koji odgovara za domenu attacker.com. U odgovoru na upit resolvera DNS poslužitelju napadača, daje se odgovor koji delegira određivanje adrese sd1.attacker.com DNS poslužitelju žrtve putem navođenja NS zapisa u odgovoru bez detalja o IP adresama NS poslužitelja. Budući da navedeni NS poslužitelj prethodno nije bio viđen i njegova IP adresa nije navedena, resolver pokušava odrediti IP adresu NS poslužitelja, šaljući upit DNS poslužitelju žrtve koji vodi ciljnu domenu (victim.com).
Problem je u tome što napadač može da izda ogroman spisak nespojivih NS-servera sa nepostojećim lažnim poddomenima žrtve (fake-1.victim.com, fake-2.victim.com,… fake-1000.victim.com). Rezolver će pokušati da pošalje upit DNS-serveru žrtve, ali će dobiti odgovor da domen nije pronađen, nakon čega će probati da utvrdi sledeći NS-server na listi i tako do onog trenutka kada iscrpi sve navedene NS-rekordove koje je napadač dostavio. Prema tome, za jedan upit napadača, rezolver će poslati ogroman broj upita za utvrđivanje NS-hostova. Pošto se imena NS-servera formiraju nasumično i upućuju na nepostojeće poddomene, ne uzimaju se iz keša, a svaki upit napadača dovodi do bujice upita ka DNS-serveru koji se brine o domenu žrtve.
Istraživači su proučili stepen izloženosti problema javnih DNS-rezolvera i utvrdili da se prilikom slanja upita rezolveru CloudFlare (1.1.1.1) može postići povećanje broja paketa (PAF, Packet Amplification Factor) čak 48 puta, Google (8.8.8.8) – 30 puta, FreeDNS (37.235.1.174) – 50 puta, OpenDNS (208.67.222.222) – 32 puta. Značajniji pokazatelji primećeni su za
Level3 (209.244.0.3) – 273 puta, Quad9 (9.9.9.9) – 415 puta.
SafeDNS (195.46.39.39) – 274 puta, Verisign (64.6.64.6) – 202 puta,
Ultra (156.154.71.1) – 405 puta, Comodo Secure (8.26.56.26) – 435 puta, DNS.Watch (84.200.69.80) – 486 puta, i Norton ConnectSafe (199.85.126.10) – 569 puta. Za servere zasnovane na BIND 9.12.3, zbog paralelizacije upita, nivo pojačanja može dosegnuti do 1000. U Knot Resolver 5.1.0, nivo pojačanja iznosi otprilike nekoliko desetina puta (24-48), jer se određivanje NS-imena vrši sekvencijalno i nailazi na interno ograničenje broja koraka razjašnjenja imena dozvoljenih za jedan upit.
Izdvajaju se dve osnovne strategije zaštite. Za sisteme s DNSSEC koristiti za sprečavanje zaobilaženja DNS keša, pošto se upiti šalju sa nasumičnim imenima. Suština metode je u generisanju negativnih odgovora bez pozivanja na autoritativne DNS-servere, koristeći proveru prema intervalima kroz DNSSEC. Jednostavniji način je ograničavanje broja imena koja se mogu utvrditi prilikom obrade jednog delegiranog upita, ali takva metoda može stvoriti probleme s nekim postojećim konfiguracijama, pošto limiti nisu definisani u protokolu.
Izvor: opennet.ru
