Der ultimative Leitfaden zur Verhinderung von DNS-basierten DDoS-Angriffen

Wenn es um DNS geht, hat Cricket Liu das Buch buchstäblich geschrieben. Er hat alle fünf Ausgaben von O'Reillys "DNS and BIND" -Buch mitverfasst, das allgemein als endgültiger Leitfaden für alle Fragen im Zusammenhang mit dem Domain Name System gilt. Cricket ist derzeit Chief Infrastructure Officer bei Infoblox.

DNS ist eindeutig eine wichtige Komponente der Computernetzwerke, aber es gibt Zeiten, in denen diese Tools für Fehlverhalten verwendet werden können. Im New Tech Forum dieser Woche befasst sich Cricket mit dem wachsenden Problem von DNS-basierten DDoS-Angriffen und wie man damit umgeht. - Paul Venezia

DNS-basierte DDoS-Angriffe: Wie sie funktionieren und wie sie gestoppt werden können

Der DNS-basierte DDoS (Distributed Denial-of-Service-Angriff) ist zu einem der häufigsten destruktiven Angriffe im Internet geworden. Aber wie funktionieren sie? Und was können wir tun, um uns gegen sie zu verteidigen?

In diesem Artikel werde ich beschreiben, wie DDoS sowohl die Exploit- als auch die Ziel-DNS-Infrastruktur angreift. Ich werde Ihnen auch zeigen, was Sie tun können, um sich und andere zu schützen.

Die große Parodie

Das Generieren eines DDoS-Angriffs mithilfe der DNS-Infrastruktur ist bemerkenswert einfach: Die Angreifer senden Anfragen an Nameserver über das Internet, und diese Nameserver geben Antworten zurück. Anstatt die Abfragen von ihren eigenen IP-Adressen zu senden, fälschen die Angreifer die Adresse ihres Ziels - dies kann ein Webserver, ein Router, ein anderer Nameserver oder fast jeder Knoten im Internet sein.

Das Spoofing von DNS-Abfragen ist besonders einfach, da sie normalerweise über UDP (das verbindungslose User Datagram Protocol) übertragen werden. Das Senden einer DNS-Abfrage von einer beliebigen IP-Adresse ist ungefähr so ​​einfach und hat ungefähr den gleichen Effekt wie das Schreiben der Absenderadresse einer anderen Person auf eine Postkarte.

Das Spoofing von Abfragen reicht jedoch nicht aus, um ein Ziel außer Gefecht zu setzen. Wenn die Antworten auf diese Abfragen nicht größer wären als die Abfragen selbst, würde ein Angreifer das Ziel genauso gut mit gefälschten Abfragen überfluten. Nein, um den Schaden für das Ziel zu maximieren, sollte jede Abfrage eine sehr große Antwort zurückgeben. Es stellt sich heraus, dass dies sehr einfach zu initiieren ist.

Seit dem Aufkommen von EDNS0, einer Reihe von Erweiterungen für DNS, die 1999 eingeführt wurden, können UDP-basierte DNS-Nachrichten viele Daten übertragen. Eine Antwort kann bis zu 4.096 Byte groß sein. Die meisten Abfragen haben dagegen eine Länge von weniger als 100 Byte.

Es war einmal relativ schwierig, eine so große Antwort im Namespace des Internets zu finden. Jetzt, da Unternehmen mit der Bereitstellung von DNSSEC, den DNS-Sicherheitserweiterungen, begonnen haben, ist dies viel einfacher. DNSSEC speichert kryptografische Schlüssel und digitale Signaturen in Datensätzen im Namespace. Diese sind positiv enorm.

Sie können ein Beispiel für eine Antwort aus der isc.org-Zone sehen, die DNSSEC-Einträge in meinem Blog enthält. Die Größe der Antwort beträgt 4.077 Byte, verglichen mit einer Abfrage von nur 44 Byte.

Stellen Sie sich jetzt Bildangreifer aus dem Internet vor, die diese gefälschte Abfrage von der IP-Adresse Ihres Webservers an die Nameserver von isc.org senden. Für jede 44-Byte-Abfrage erhält Ihr Webserver eine 4.077-Byte-Antwort, was einem fast 93-fachen Verstärkungsfaktor entspricht.

Lassen Sie uns eine schnelle Berechnung durchführen, um herauszufinden, wie schlimm dies werden könnte. Angenommen, jeder Angreifer verfügt über eine relativ bescheidene 1-Mbit / s-Verbindung zum Internet. Er kann ungefähr 2.840 44-Byte-Anfragen pro Sekunde über diesen Link senden. Dieser Abfragestream würde dazu führen, dass Antworten im Wert von fast 93 Mbit / s Ihren Webserver erreichen. Alle 11 Angreifer repräsentieren 1 Gbit / s.

Wo würden unsoziale Angreifer 10 Freunde finden, die ihnen bei einem Angriff helfen? Eigentlich brauchen sie keine. Sie werden ein Botnetz von Tausenden von Computern verwenden.

Der ultimative Effekt ist verheerend. In ihrem vierteljährlichen globalen DDoS-Angriffsbericht meldete Prolexic (ein DDoS-Minderungsunternehmen) kürzlich einen DNS-basierten Angriff gegen einen Kunden mit mehr als 167 Gbit / s. Prolexic berichtete weiter, dass die durchschnittliche DDoS-Angriffsbandbreite in einem einzigen Quartal um 718 Prozent auf 48 Gbit / s gestiegen ist .

Aber warte! Könnten die isc.org-Nameserver nicht geändert werden, um zu erkennen, dass sie immer wieder nach denselben Daten von derselben IP-Adresse abgefragt werden? Könnten sie den Angriff nicht unterdrücken?

Sie können es auf jeden Fall. Die Nameserver von isc.org sind jedoch nicht die einzigen, mit denen ein Angreifer seinen Datenverkehr verstärken kann. Sicher, es gibt andere autorisierende Nameserver, die der Angreifer verwenden könnte, aber noch schlimmer sind offene rekursive Nameserver.

Ein offener rekursiver Nameserver ist einfach ein Nameserver, der rekursive Abfragen von jeder IP-Adresse verarbeitet. Ich kann ihm diese Abfrage nach isc.org-Daten senden und sie wird mir antworten, und Sie können das Gleiche tun.

Es sollten nicht viele offene rekursive Nameserver im Internet vorhanden sein. Die Funktion eines rekursiven Nameservers besteht darin, Daten im Namen von DNS-Clients im Internet-Namespace nachzuschlagen, z. B. auf Ihrem Laptop oder Smartphone. Die Netzwerkadministratoren, die rekursive Nameserver einrichten (z. B. Ihre IT-Abteilung), beabsichtigen normalerweise, sie für eine bestimmte Community (z. B. Sie und Ihre Kollegen) zu verwenden. Sofern sie keine Dienste wie OpenDNS oder Google Public DNS ausführen, bedeutet dies nicht, dass sie von den Bürgern Moldawiens verwendet werden. Daher konfigurieren gemeinnützige, sicherheitsbewusste und vor allem kompetente Administratoren Zugriffskontrollen auf ihren rekursiven Nameservern, um ihre Verwendung auf autorisierte Systeme zu beschränken.

Wie groß könnte ein Problem sein, wenn rekursive Nameserver geöffnet werden? Ziemlich groß. Das Open Resolver-Projekt hat eine Liste von 33 Millionen offenen rekursiven Nameservern gesammelt . Hacker können gefälschte Abfragen bei so vielen von ihnen auslösen, wie sie möchten, um isc.org-Daten auf Ihrem Webserver, Nameserver oder Grenzrouter zu spucken, bis sie ersticken.

So funktionieren DNS-basierte DDoS-Angriffe. Zum Glück haben wir einige Möglichkeiten, sie zu bekämpfen.

Wie man den Sturm übersteht

Die erste Aufgabe besteht darin, Ihre DNS-Infrastruktur zu instrumentieren, damit Sie wissen, wann Sie angegriffen werden. Zu viele Organisationen haben keine Ahnung, wie hoch ihre Abfrage ist, sodass sie nie wissen würden, ob sie überhaupt angegriffen werden.

Das Ermitteln Ihrer Abfragelast kann so einfach sein wie die Verwendung der integrierten Statistikunterstützung von BIND. Der BIND-Nameserver speichert Daten in seiner Statistikdatei, wenn Sie rndc-Statistiken ausführen.Zum Beispiel oder in einem konfigurierbaren Statistikintervall. Sie können die Statistiken auf Abfragerate, Socket-Fehler und andere Hinweise auf einen Angriff untersuchen. Machen Sie sich keine Sorgen, wenn Sie sich noch nicht sicher sind, wie ein Angriff aussehen wird. Ein Teil des Ziels der Überwachung von DNS besteht darin, eine Basislinie festzulegen, damit Sie feststellen können, was abnormal ist.

Schauen Sie sich als Nächstes Ihre mit dem Internet verbundene Infrastruktur an. Beschränken Sie sich nicht auf Ihre externen autorisierenden Nameserver. Überprüfen Sie Ihre Switch- und Router-Infrastruktur, Ihre Firewalls und Ihre Verbindungen zum Internet. Identifizieren Sie einzelne Fehlerquellen. Bestimmen Sie, ob Sie sie einfach (und kostengünstig) beseitigen können.

Berücksichtigen Sie nach Möglichkeit eine breite geografische Verteilung Ihrer externen autorisierenden Nameserver. Dies hilft natürlich, einzelne Fehlerquellen zu vermeiden, aber es hilft auch, wenn Sie nicht angegriffen werden. Ein rekursiver Nameserver, der einen Domainnamen in einer Ihrer Zonen auflöst, versucht, den autorisierenden Nameserver abzufragen, der ihm am nächsten liegt. Daher bietet die geografische Verteilung Ihren Kunden und Korrespondenten tendenziell eine bessere Leistung. Wenn Ihre Kunden in bestimmten Regionen gruppiert sind, versuchen Sie, einen autorisierenden Nameserver in ihrer Nähe zu platzieren, um die schnellsten Antworten zu erhalten.

Der vielleicht grundlegendste Weg, um DoS-Angriffe zu bekämpfen, ist die Überversorgung Ihrer Infrastruktur. Die gute Nachricht ist, dass eine Überprovisionierung Ihrer Nameserver nicht unbedingt teuer ist. Ein leistungsfähiger Nameserver kann Zehntausende oder sogar Hunderttausende von Abfragen pro Sekunde verarbeiten. Sie sind sich nicht sicher, wie hoch die Kapazität Ihrer Nameserver ist? Sie können Abfragetools wie dnsperf verwenden, um die Leistung Ihrer Nameserver zu testen. Verwenden Sie vorzugsweise eine Testplattform, die Ihren Produktionsnameservern in einem Labor ähnelt, und nicht die Produktionsserver selbst.

Die Entscheidung, wie viel Ihre Nameserver überprovisioniert werden sollen, ist subjektiv: Was ist Ihre Online-Präsenz wert? Gibt es andere Komponenten Ihrer mit dem Internet verbundenen Infrastruktur, die vor den Nameservern ausfallen? Offensichtlich ist es tollkühn, Geld für den Aufbau einer erstklassigen DNS-Infrastruktur hinter einem Grenzrouter oder einer Firewall auszugeben, die lange vor dem Ausfall Ihrer Nameserver ausfällt.

Wenn Geld keine Rolle spielt, kann es hilfreich sein zu wissen, dass hochmoderne DDoS-Angriffe auf die DNS-Infrastruktur 100 Gbit / s überschreiten können.

Die Verwendung von Anycast kann auch dazu beitragen, einem DDoS-Angriff zu widerstehen. Anycast ist eine Technik, mit der mehrere Server eine einzige IP-Adresse gemeinsam nutzen können. Sie funktioniert besonders gut mit DNS. Tatsächlich verwenden die Root-Nameserver des Internets Anycast seit Jahren, um Root-Zonendaten auf der ganzen Welt bereitzustellen, während die Liste der Roots weiterhin in eine einzelne UDP-basierte DNS-Nachricht passt.

Um Anycast bereitzustellen, müssen die Hosts, die Ihre Nameserver unterstützen, ein dynamisches Routing-Protokoll wie OSPF oder BGP ausführen. Der Routing-Prozess kündigt seinen Nachbar-Routern eine Route zu einer neuen virtuellen IP-Adresse an, die Ihr Nameserver abhört. Der Routing-Prozess muss außerdem intelligent genug sein, um die Werbung für diese Route zu beenden, wenn der lokale Nameserver nicht mehr reagiert. Sie können Ihren Routing-Daemon mit Code Ihrer eigenen Konstruktion an den Zustand Ihres Nameservers kleben - oder Sie können ein Produkt kaufen, das dies für Sie erledigt. Das NIOS von Infoblox bietet nicht zufällig Anycast-Unterstützung.

Wie verteidigt sich Anycast gegen DDoS-Angriffe? Angenommen, Sie haben sechs externe Nameserver in zwei Anycast-Gruppen (dh drei teilen sich eine Anycast-IP-Adresse und drei teilen sich eine andere). Jede Gruppe besteht aus einem Mitglied in den USA, einem in Europa und einem in Asien. Ein Host, der einen DDoS-Angriff gegen Sie ausführt, kann nur von einem beliebigen Punkt im Internet aus Datenverkehr an ein Mitglied einer der beiden Gruppen senden und damit nur angreifen. Wenn Angreifer nicht gleichzeitig genügend Datenverkehr aus Nordamerika, Europa und Asien beziehen können, um Ihre Infrastruktur zu überfluten, werden sie keinen Erfolg haben.

Schließlich gibt es eine Möglichkeit, die große geografische Verbreitung und Anycast gleichzeitig ohne erheblichen Kapitalaufwand zu nutzen: Verwenden Sie einen Cloud-basierten DNS-Anbieter. Unternehmen wie Dyn und Neustar betreiben eigene Anycast-Nameserver in Rechenzentren auf der ganzen Welt. Sie bezahlen sie, um Ihre Zonen zu hosten und Fragen zu Ihren Daten zu beantworten. Sie können weiterhin die direkte Kontrolle über Ihre Zonendaten behalten, indem Sie einen Anbieter bitten, seine Nameserver als Sekundärserver für Ihre Zonen zu konfigurieren und die Daten von einem Master-Nameserver zu laden, den Sie intern festlegen und verwalten. Stellen Sie nur sicher, dass Sie den Master versteckt ausführen (dh ohne dass ein NS-Datensatz darauf verweist), oder Sie laufen Gefahr, dass ein Angreifer ihn als einzelnen Fehlerpunkt angreift.

Ein Wort der Vorsicht bei der Verwendung von Cloud-basierten DNS-Anbietern: Die meisten stellen Ihnen zumindest teilweise die Anzahl der Anfragen in Rechnung, die ihre Nameserver für Daten in Ihren Zonen erhalten. Bei einem DDoS-Angriff können diese Abfragen dramatisch zunehmen (völlig außerhalb Ihrer Kontrolle und überhaupt nicht zu Ihrem Vorteil). Stellen Sie daher sicher, dass sie Vorkehrungen für den Umgang mit DDoS-Angriffen enthalten, ohne die Kosten des Datenverkehrs an Sie weiterzugeben.

So vermeiden Sie, dass Sie bei DDoS-Angriffen zum Komplizen werden

Jetzt wissen Sie, wie Sie Ihre DNS-Infrastruktur so konfigurieren, dass sie einem DDoS-Angriff widersteht. Es ist jedoch fast genauso wichtig sicherzustellen, dass Sie sich nicht an einem DDoS-Angriff gegen eine andere Person beteiligen.

Erinnern Sie sich an die Beschreibung, wie DNS-Server den Datenverkehr verstärken können? Angreifer können sowohl offene rekursive Nameserver als auch autorisierende Nameserver als Verstärker verwenden und gefälschte Abfragen senden, die dazu führen, dass die Nameserver Antworten senden, die mehr als 100-mal so groß sind wie die Abfrage an beliebige Ziele im Internet. Jetzt wollen Sie natürlich nicht das Ziel eines solchen Angriffs sein, aber Sie wollen auch kein Komplize sein. Der Angriff verwendet die Ressourcen Ihrer Nameserver sowie Ihre Bandbreite. Wenn das Ziel Maßnahmen ergreift, um den Datenverkehr von Ihrem Nameserver zu seinem Netzwerk zu blockieren, kann das Ziel nach Beendigung des Angriffs möglicherweise keine Domänennamen in Ihren Zonen auflösen.

Wenn Sie einen offenen rekursiven Nameserver ausführen, ist die Lösung einfach: Nicht. Es gibt nur sehr wenige Organisationen, die eine Berechtigung zum Ausführen eines Nameservers haben, der für rekursive Abfragen geöffnet ist. Google Public DNS und OpenDNS sind zwei, die mir in den Sinn kommen, aber wenn Sie dies lesen, sind Sie es wahrscheinlich nicht. Der Rest von uns sollte Zugriffskontrollen auf unsere rekursiven Nameserver anwenden, um sicherzustellen, dass nur autorisierte Abfrager sie verwenden. Dies bedeutet wahrscheinlich, DNS-Abfragen auf IP-Adressen in unseren internen Netzwerken zu beschränken, was bei jeder Nameserver-Implementierung, die es wert ist, einfach durchgeführt werden kann. (Der Microsoft DNS-Server unterstützt keine IP-Adress-basierten Zugriffssteuerungen für Abfragen. Lesen Sie, was Sie möchten.)

Was aber, wenn Sie einen autorisierenden Nameserver betreiben? Offensichtlich können Sie die IP-Adressen, von denen Sie Abfragen annehmen, nicht einschränken - oder zumindest nicht sehr (Sie können Abfragen von offensichtlich gefälschten IP-Adressen wie RFC 1918-Adressen ablehnen). Sie können die Antworten jedoch einschränken.

Zwei langjährige "weiße Hüte" im Internet, Paul Vixie und Vernon Schryver, stellten fest, dass DDoS-Angriffe, bei denen autorisierende Nameserver zur Verstärkung verwendet werden, bestimmte Abfragemuster aufweisen. Insbesondere senden Angreifer Nameservern immer wieder dieselbe Abfrage von derselben gefälschten IP-Adresse (oder demselben Adressblock), um eine maximale Verstärkung zu erreichen. Kein gut erzogener rekursiver Nameserver würde das tun. Es hätte die Antwort zwischengespeichert und nicht erneut gefragt, bis die Zeit bis zum Leben der Aufzeichnungen in der Antwort abgelaufen wäre.