Sigurnosne ranjivosti KeyTrap i NSEC3 koje utječu na većinu implementacija DNSSEC-a

U različitim implementacijama protokola DNSSEC otkrivene su dvije ranjivosti koje utiču na DNS rezolvere BIND, PowerDNS, dnsmasq, Knot Resolver i Unbound. Ranjivosti omogućuju izazivanje odbijanja usluge DNS rezolverima koji vrše validaciju uz pomoć DNSSEC-a, zbog pojave visokog opterećenja CPU-a što ometa obradu drugih zahtjeva. Za izvršenje napada dovoljno je poslati na DNS rezolver koji koristi DNSSEC zahtjev koji dovodi do pristupa specijalno oblikovanoj DNS zoni na serveru napadača.

Otkrivene poteškoće:

  • CVE-2023-50387 (kodno ime KeyTrap) — pri pristupu specijalno oblikovanim DNS zonama dolazi do odbijanja usluge zbog stvaranja značajnog opterećenja CPU-a i dugog trajanja provjere DNSSEC-a. Da bi se napad izvršio, potrebno je postaviti na napadačevom DNS serveru domensku zonu s malicioznim postavkama, kao i osigurati pristup toj zoni od strane rekurzivnog DNS servera čije odbijanje usluge osigurava napadač.

    Maliciozne postavke svode se na korištenje kombinacije sukobljenih ključeva, RRSET zapisa i digitalnih potpisa za zonu. Pokušaj provjere uz korištenje tih ključeva dovodi do dugotrajnih operacija koje zahtijevaju puno resursa, zbog čega CPU može biti potpuno opterećen, ometajući obradu drugih zahtjeva (na primjer, navodi se da je napadom na BIND obustavljena obrada drugih zahtjeva na 16 sati).

  • CVE-2023-50868 (kodno ime NSEC3) — odbijanje usluge zbog izvršenja značajnih proračuna pri izračunu hash-eva u NSEC3 zapisima (Next Secure v3) tijekom obrade specijalno oblikovanih DNSSEC odgovora. Metoda napada nalikuje prvoj ranjivosti, osim što se na DNS serveru napadača kreira specijalno oblikovani set NSEC3 RRSET zapisa.

Ističe se da su pojavljivanje gore spomenutih ranjivosti uzrokovane definicijom u specifikaciji DNSSEC mogućnosti slanja svih dostupnih kriptografskih ključeva od strane DNS servera, pri čemu rezolviri trebaju obraditi sve primljene ključeve dok provjera ne završi uspješno ili dok svi primljeni ključevi ne budu provjereni.

Kako bi se spriječile ranjivosti u resolverima, maksimalni broj DNSSEC ključeva korištenih u procesu gradnje lanca povjerenja te maksimalni broj izračuna hash-a za NSEC3 su ograničeni, kao i broj ponovnih pokušaja provjere za svaki RRSET (kombinacije ključeva i potpisa) i svaki odgovor. poslužitelja.

Ranjivosti su ispravljene u ažuriranjima Unbound (1.19.1), PowerDNS Recursor (4.8.6, 4.9.3, 5.0.2), Knot Resolver (5.7.1), dnsmasq (2.90) i BIND (9.16.48, 9.18.24 i 9.19.21). Status ispravljenih ranjivosti u distribucijama možete procijeniti na ovim stranicama: Debian, Ubuntu, SUSE, RHEL, Fedora, Arch Linux, Gentoo, Slackware, NetBSD, FreeBSD.

U verzijama DNS poslužitelja BIND 9.16.48, 9.18.24 i 9.19.21 dodatno su otkrivene još neke ranjivosti:

  • CVE-2023-4408 — obrada velikih DNS poruka može rezultirati velikim opterećenjem CPU-a.
  • CVE-2023-5517 — zahtjev specifično formatirane povratne zone može izazvati rušenje zbog aktivacije assert provjere. Problema se pojavljuje samo u konfiguracijama s uključenim postavkama «nxdomain-redirect».
  • CVE-2023-5679 — rekurzivno određivanje hosta može prouzročiti rušenje zbog aktivacije assert provjere na sustavima s uključenom podrškom za DNS64 i «serve-stale» (postavke stale-cache-enable i stale-answer-enable).
  • CVE-2023-6516 — posebno formatirani rekurzivni zahtjevi mogu dovesti do iscrpljivanja dostupne memorije procesa.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster