Podatności KeyTrap i NSEC3, które dotyczą większości implementacji DNSSEC

W różnych implementacjach protokołu DNSSEC zidentyfikowano dwie luki, które dotyczą resolverów DNS BIND, PowerDNS, dnsmasq, Knot Resolver i Unbound. Luki te pozwalają na osiągnięcie odmowy świadczenia usług przez resolvery DNS, które wykonują walidację przy użyciu DNSSEC, z powodu wzrostu obciążenia CPU, które uniemożliwia przetwarzanie innych zapytań. Aby przeprowadzić atak, wystarczy wysłać do resolvera DNS używającego DNSSEC zapytanie, które prowadzi do odwołania się do specjalnie skonfigurowanej strefy DNS na serwerze atakującego.

Zidentyfikowane problemy:

  • CVE-2023-50387 (kodowa nazwa KeyTrap) — odwołując się do specjalnie skonfigurowanych stref DNS dochodzi do odmowy świadczenia usług z powodu generowania znacznego obciążenia CPU i długiego czasu wykonywania weryfikacji DNSSEC. Aby przeprowadzić atak, należy umieścić na kontrolowanym przez atakującego serwerze DNS domenę z złośliwymi ustawieniami oraz doprowadzić do odwołania się do tej strefy przez rekurencyjny serwer DNS, którego odmowy świadczenia usług wymaga atakujący.

    Złośliwe ustawienia sprowadzają się do użycia dla strefy kombinacji konfliktujących kluczy, rekordów RRSET i certyfikatów cyfrowych. Próba weryfikacji z użyciem tych kluczy prowadzi do wykonywania długotrwałych operacji wymagających dużych zasobów, które mogą całkowicie obciążyć CPU i zablokować przetwarzanie innych zapytań (na przykład twierdzi się, że podczas ataku na BIND udało się zatrzymać przetwarzanie innych zapytań na 16 godzin).

  • CVE-2023-50868 (kodowa nazwa NSEC3) — odmowa świadczenia usług z powodu wykonywania znacznych obliczeń podczas obliczania hashy w rekordach NSEC3 (Next Secure v3) przy przetwarzaniu specjalnie skonfigurowanych odpowiedzi DNSSEC. Metoda ataku przypomina pierwszą lukę, z tą różnicą, że na serwerze DNS atakującego tworzy się specjalnie skonfigurowany zestaw rekordów NSEC3 RRSET.

Zauważono, że pojawienie się wyżej wymienionych luk jest spowodowane zdefiniowaniem w specyfikacji DNSSEC możliwości wysyłania przez serwer DNS wszystkich dostępnych kluczy kryptograficznych, podczas gdy resolvery powinny przetwarzać dowolnie otrzymane klucze, dopóki weryfikacja nie zakończy się pomyślnie lub wszystkie otrzymane klucze nie zostaną zweryfikowane.

Aby zablokować luki w resolverach, ograniczono maksymalną liczbę kluczy DNSSEC używanych w procesie budowania łańcucha zaufania oraz maksymalną liczbę obliczeń skrótów dla NSEC3, a także ograniczono ponowne próby weryfikacji dla każdego RRSET (kombinacje kluczy i podpisów) i każdej odpowiedzi. serwera.

Luki zostały usunięte w aktualizacjach 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 usunięcia luk w dystrybucjach można ocenić na stronach: Debian, Ubuntu, SUSE, RHEL, Fedora, Arch Linux, Gentoo, Slackware, NetBSD, FreeBSD.

W wersjach serwera DNS BIND 9.16.48, 9.18.24 i 9.19.21 dodatkowo usunięto kilka luk:

  • CVE-2023-4408 — analiza dużych wiadomości DNS może prowadzić do wysokiego obciążenia CPU.
  • CVE-2023-5517 — zapytanie o specjalnie skonfigurowaną strefę odwrotną może prowadzić do awarii z powodu wywołania kontroli assert. Problematyczne zachowanie występuje tylko w konfiguracjach z włączoną opcją «nxdomain-redirect».
  • CVE-2023-5679 — rekurencyjne określenie hosta może prowadzić do awarii z powodu wywołania kontroli assert na systemach z włączoną obsługą DNS64 i «serve-stale» (opcje stale-cache-enable i stale-answer-enable).
  • CVE-2023-6516 — specjalnie skonfigurowane zapytania rekurencyjne mogą prowadzić do wyczerpania dostępnej pamięci procesu.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster