Eine neue SAD DNS-Angriffsvariante zur Einspeisung gefÀlschter Daten in den DNS-Cache

Eine Gruppe von Forschern der University of California, Riverside, hat eine neue Variante des SAD DNS-Angriffs (CVE-2021-20322) veröffentlicht, die trotz der im letzten Jahr implementierten Schutzmaßnahmen zur Blockierung der CVE-2020-25705-Schwachstelle funktioniert. Der neue Ansatz Ă€hnelt im Wesentlichen der Schwachstelle des Vorjahres und unterscheidet sich lediglich durch die Verwendung eines anderen Typs von ICMP-Paketen zur ÜberprĂŒfung aktiver UDP-Ports. Der vorgeschlagene Angriff ermöglicht die Einspeisung gefĂ€lschter Daten in den Cache des DNS-Servers, was verwendet werden kann, um die IP-Adresse einer beliebigen Domain im Cache zu ersetzen und Anfragen an die Domain auf den Server des Angreifers umzuleiten.

Die vorgeschlagene Methode funktioniert nur im Linux-Netzwerkstack, da sie an eine Besonderheit der ICMP-Paketverarbeitung in Linux gebunden ist, die eine Quelle fĂŒr Datenlecks darstellt, die die Bestimmung der verwendeten UDP-Portnummer erleichtert. Server um eine externe Anfrage zu senden. Änderungen, die die Informationslecks blockieren, wurden Ende August in den Linux-Kernel aufgenommen (der Fix wurde in den Kernel 5.15 und die September-Updates der LTS-Kernels aufgenommen). Die Korrektur besteht darin, dass in den Netzwerk-Caches der SipHash-Hashalgorithmus anstelle von Jenkins Hash verwendet wird. Der Status der Behebung der Schwachstelle in den Distributionen kann auf den folgenden Seiten ĂŒberprĂŒft werden: Debian, RHEL, Fedora, SUSE, Ubuntu.

Laut den Forschern, die das Problem entdeckt haben, sind etwa 38 % der im Internet befindlichen offenen Resolver von dieser Schwachstelle betroffen, darunter beliebte DNS-Dienste wie OpenDNS und Quad9 (9.9.9.9). Was die Server-Software betrifft, so kann der Angriff auf Linux-Servern durchgefĂŒhrt werden, die Pakete wie BIND, Unbound und dnsmasq verwenden. Auf DNS-Servern, die mit Windows und BSD-Systemen betrieben werden, tritt das Problem nicht auf. Um den Angriff erfolgreich durchzufĂŒhren, ist IP-Spoofing erforderlich, d.h. der Anbieter des Angreifers darf Pakete mit einer gefĂ€lschten Quell-IP-Adresse nicht blockieren.

Wir erinnern daran, dass der SAD DNS-Angriff es ermöglicht, den Schutz zu umgehen, der in DNS-Servern implementiert wurde, um die klassische Methode der DNS-Cache-Vergiftung zu blockieren, die 2008 von Dan Kaminsky vorgeschlagen wurde. Die Methode von Kaminsky manipuliert die geringe GrĂ¶ĂŸe des Identifikationsfeldes der DNS-Anfrage, das nur 16 Bit betrĂ€gt. Um die korrekte DNS-Transaktions-ID, die fĂŒr das Spoofen des Hostnamens erforderlich ist, zu erraten, reicht es aus, etwa 7000 Anfragen zu senden und etwa 140.000 gefĂ€lschte Antworten zu simulieren. Der Angriff besteht darin, eine große Anzahl von Paketen mit einer gefĂ€lschten IP-Bindung und verschiedenen DNS-Transaktions-IDs an den DNS-Resolver zu senden. Um zu verhindern, dass die erste Antwort zwischengespeichert wird, wird in jeder gefĂ€lschten Antwort ein leicht abgewandelter Domainname angegeben (1.example.com, 2.example.com, 3.example.com usw.).

Um sich gegen diese Art von Angriff zu schĂŒtzen, haben die Hersteller von DNS-Servern die zufĂ€llige Verteilung der Ausgangsportnummern eingefĂŒhrt, von denen aus die Anfragen zur Auflösung gesendet werden, wodurch der nicht ausreichend große Identifizierer kompensiert wurde. Nach der Implementierung des Schutzes wurde es notwendig, neben dem Erraten der 16-Bit-Identifikationsnummer auch einen von 64.000 Ports zu erraten, was die Anzahl der Möglichkeiten auf 2^32 erhöhte.

Die SAD DNS-Methode ermöglicht es erheblich, die Bestimmung der Portnummer zu vereinfachen und den Angriff auf die klassische Methode von Kaminsky zu reduzieren. Der Angreifer kann Zugriffe auf ungenutzte und aktive UDP-Ports ermitteln, indem er Informationen ĂŒber die AktivitĂ€t der Netzwerkports aus den verarbeiteten ICMP-Paketen ableitet. Die Methode reduziert die Anzahl der möglichen Kombinationen um den Faktor 10.000 — 2^16+2^16 anstelle von 2^32 (131_072 anstelle von 4_294_967_296). Die Informationsleckage, die eine schnelle Bestimmung aktiver UDP-Ports ermöglicht, ist auf einen Fehler im Code zur Verarbeitung von ICMP-Paketen mit Fragmentierungsanfragen (ICMP-Flag Fragmentation Needed) oder Umleitungen (ICMP-Flag Redirect) zurĂŒckzufĂŒhren. Der Versand solcher Pakete verĂ€ndert den Zustand des Caches im Netzwerk-Stack, wodurch anhand der Reaktion des Servers festgestellt werden kann, welcher UDP-Port aktiv und welcher nicht aktiv ist.

Angriffsszenario: Wenn ein DNS-Resolver versucht, einen Domainnamen zu bestimmen, sendet er eine UDP-Anfrage an den zustĂ€ndigen DNS-Server. In dem Moment, in dem der Resolver auf eine Antwort wartet, kann der Angreifer schnell die ursprĂŒngliche Portnummer ermitteln, die fĂŒr die Anfrage verwendet wurde, und eine gefĂ€lschte Antwort an diesen Port senden, indem er sich als zustĂ€ndiger DNS-Server ausgibt und Spoofing verwendet. IP-AdressenDer DNS-Resolver wird die im gefĂ€lschten Antwortpaket enthaltenen Daten in den Cache legen und eine Zeit lang bei allen anderen DNS-Anfragen fĂŒr den Domainnamen die vom Angreifer vorgetĂ€uschte IP-Adresse zurĂŒckgeben.

Quelle: opennet.ru

60GB SSD 8Gb DDR4