Un grup de cercetători de la Universitatea din Tel Aviv și Centrul Interdisciplinar din Herzliya (Israel) a dezvoltat o nouă metodă de atac (), care permite utilizarea oricăror rezolvatoare DNS ca amplificatoare de trafic, oferind o amplificare de până la 1621 de ori în numărul de pachete (pentru fiecare cerere trimisă la rezolvator, se pot obține 1621 de cereri trimise către serverul victimei) și până la 163 de ori în trafic.
Problema este legată de modul de funcționare al protocolului și afectează toate serverele DNS care suportă procesarea recursivă a cererilor, inclusiv (CVE-2020-8616), (CVE-2020-12667), (CVE-2020-10995), și (CVE-2020-12662), precum și serviciile DNS publice Google, Cloudflare, Amazon, Quad9, ICANN și alte companii. Corectarea problemei a fost coordonată cu dezvoltatorii serverelor DNS, care au lansat simultan actualizări pentru a remedia vulnerabilitatea din produsele lor. Protecția împotriva atacului a fost implementată în versiunile
, , , .
Atacul se bazează pe utilizarea de către atacator a cererilor care fac referire la un număr mare de înregistrări NS fictive, care sunt delegate pentru rezolvarea numelui, dar fără a specifica în răspuns înregistrările glue cu informații despre adresele IP ale serverelor NS. De exemplu, atacatorul trimite o cerere pentru rezolvarea numelui sd1.attacker.com, controlând serverul DNS responsabil pentru domeniul attacker.com. Ca răspuns la solicitarea rezolvatorului către serverul DNS al atacatorului, se furnizează un răspuns care delege rezolvarea adresei sd1.attacker.com unui server DNS al victimei prin specificarea în răspuns a înregistrărilor NS fără detalii despre IP-urile serverelor NS. Deoarece serverul NS menționat nu a fost întâlnit anterior și adresa sa IP nu este specificată, rezolvatorul încearcă să determine adresa IP a serverului NS, trimițând o cerere către serverul DNS al victimei, care gestionează domeniul țintă (victim.com).
Problema este că atacatorul poate returna o listă uriașă de servere NS unice cu nume fictive inexistentă ale subdomeniilor victimei (fake-1.victim.com, fake-2.victim.com,… fake-1000.victim.com). Rezolvatorul va încerca să trimită o solicitare serverului DNS al victimei, dar va primi un răspuns că domeniul nu a fost găsit, după care va încerca să determine următorul server NS din listă și așa mai departe, până când vor fi verificate toate înregistrările NS enumerate de atacator. Astfel, pentru o solicitare a atacatorului, rezolvatorul va trimite un număr enorm de solicitări pentru a determina gazdele NS. Deoarece numele serverelor NS sunt generate aleatoriu și se referă la subdomenii inexistente, acestea nu sunt extrase din cache, iar fiecare solicitare a atacatorului generează un val de solicitări către serverul DNS care deservește domeniul victimei.
Cercetătorii au analizat gradul de vulnerabilitate al rezolvatorilor DNS publici și au determinat că, atunci când se trimit solicitări către rezolvatorul CloudFlare (1.1.1.1), se poate obține o amplificare a numărului de pachete (PAF, Packet Amplification Factor) de 48 de ori, Google (8.8.8.8) — 30 de ori, FreeDNS (37.235.1.174) — 50 de ori, OpenDNS (208.67.222.222) — 32 de ori. Indicatori mai semnificativi sunt observați pentru
Level3 (209.244.0.3) — 273 de ori, Quad9 (9.9.9.9) — 415 de ori
SafeDNS (195.46.39.39) — 274 de ori, Verisign (64.6.64.6) — 202 de ori,
Ultra (156.154.71.1) — 405 de ori, Comodo Secure (8.26.56.26) — 435 de ori, DNS.Watch (84.200.69.80) — 486 de ori, și Norton ConnectSafe (199.85.126.10) — 569 de ori. Pentru serverele bazate pe BIND 9.12.3, prin paralele solicitărilor, nivelul de amplificare poate ajunge la 1000. În Knot Resolver 5.1.0, nivelul de amplificare este de aproximativ câteva zeci de ori (24-48), deoarece determinarea numelui NS se face secvențial și se lovește de o limitare internă a numărului de pași necesari pentru rezolvarea numelui, permise pentru o solicitare.
Se disting două strategii principale de apărare. Pentru sistemele cu DNSSEC folosi pentru a preveni ocolirea cache-ului DNS, deoarece solicitările sunt trimise cu nume aleatorii. Esența metodei constă în generarea răspunsurilor negative fără a apela la servere DNS autoritative, utilizând verificarea pe intervale prin DNSSEC. O metodă mai simplă este de a limita numărul de nume care pot fi determinate prin procesarea unei singure solicitări delegaționate, dar această metodă poate cauza probleme cu unele configurații existente, deoarece limitele nu sunt definite în protocol.
Sursa: opennet.ro
