andranik123 - stock.adobe.com
Was ist eigentlich DNS-Cache-Poisoning?
Per DNS-Angriffstechniken versuchen Kriminelle an Daten zu gelangen. Dabei wird der Benutzer an eine vom Angreifer kontrollierte, aber falsche IP-Adresse, weitergeleitet.
DNS-Cache-Poisoning beziehungsweise DNS-Spoofing ist eine Angriffstechnik, bei der der Computer des Opfers „denkt“, dass er Informationen an eine bestimmte, legitime Adresse sendet, diese in Wahrheit aber an eine andere übertragen werden. Auf diese Weise wird der Traffic gekapert, um Zugangs- oder persönliche Daten zu stehlen.
Werfen wir zunächst einen kurzen Blick auf DNS und DNS-Caching: Das Domain Name System (DNS) ist der weltweite Katalog für IP-Adressen und Domainnamen und DNS Caching ist das System, das diese Adressen auf DNS-Servern auf der ganzen Welt speichert. Um DNS-Abfragen schnell beantworten zu können, haben die ursprünglichen Entwickler ein verteiltes DNS-System erstellt.
Jeder Server speichert dabei eine Liste von ihm bekannten DNS-Einträgen. Wenn der nächstgelegene DNS-Server die vom Nutzer benötigte IP-Adresse nicht kennt, fragt er andere DNS-Server, bis er die IP-Adresse für die Website findet, die der Nutzer besuchen möchte. Der DNS-Server speichert diesen neuen Eintrag dann im Zwischenspeicher (Cache) des Nutzers.
Das Problem hierbei ist, dass dieser Ansatz nicht auf das heutige Internet angelegt ist. Störungen wurden zwar seltener, aber immer noch reicht ein falsch konfigurierter DNS-Server aus, der DNS-Einträge von einem Server in China abgerufen hat, und plötzlich ist Facebook weltweit nicht mehr erreichbar.
Während es in diesem Fall wohl eher ein Versehen war, wurde WikiLeaks Opfer eines gezielten DNS-Cache Poisoning-Angriffs, bei dem der Datenverkehr auf eine gefälschte Seite umgeleitet wurde. Für Durchschnittsnutzer ist diese Angriffsart heimtückisch und schwer zu erkennen, da der Vorgang stark auf Vertrauen beruht. Die wenigsten Nutzer überprüfen tatsächlich, ob die Seite in ihrem Browser auch tatsächlich die Seite ist, die sie aufgerufen haben. Und genau das wird von Angreifern ausgenutzt.
Die Angriffstechniken im Überblick
Wie funktioniert nun solch ein Angriff? Im Grunde geht es darum, dass der nächstgelegene DNS-Server einen Eintrag aufweist, der den Benutzer an die falsche, von einem Angreifer kontrollierte Adresse weiterleitet. Hierzu können Hacker folgende Techniken verwenden.
Response Forgery mittels Birthday Attack
DNS authentifiziert keine Antworten auf wiederkehrende Anfragen, entsprechend ist die erste Antwort im Cache gespeichert. Angreifer nutzen das „Geburtstagsparadoxon“, um eine gefälschte Antwort an den Antragsteller zu antizipieren und zu senden.
Bei einer Birthday Attack wird mittels Wahrscheinlichkeitsrechnung versucht, die Transaktions-ID der DNS-Anfrage zu erraten, so dass die gefälschte Antwort mit dem gefälschten DNS-Eintrag vor der eigentlichen Antwort an den Benutzer gelangt. Ein solcher Angriff garantiert zwar keinen Erfolg, aber wenn er gelingt, kann der Angreifer den Traffic vom Zeitpunkt des gefälschten DNS-Eintrags bis zum Ablauf der Time-to-Live (TTL) einsehen.
Kaminskys Exploit
Kaminskys Exploit ist eine Variation der Birthday Attack und wurde schon auf der BlackHat 2008 präsentiert. Zuerst sendet der Angreifer einem Ziel-Resolver, also einem Programm, das als Schnittstelle zwischen Anwendung und Nameserver fungiert, eine DNS-Abfrage für eine nicht existierende Domain, wie „fake.varonis.com“.
Der Resolver leitet die Anfrage dann an den Nameserver weiter, um die IP-Adresse für die falsche Subdomain zu erhalten. An dieser Stelle überschwemmt der Angreifer den Resolver mit einer großen Anzahl gefälschter Antworten und hofft, dass eine dieser Fälschungen mit der Transaktions-ID der ursprünglichen Anfrage übereinstimmt. Im Erfolgsfall hat der Angreifer den DNS-Cache des Ziel-Resolvers mit einer gefälschten IP-Adresse für (in diesem Beispiel) varonis.com vergiftet. Der Resolver wird in der Folge bis zur TTL bei jeder Anfrage auf die gefälschte IP-Adresse verweisen.
Eavesdropping/Man-in-the-Middle-Angriff
Schließlich kann ein Angreifer mit entsprechendem Zugriff auf das Netzwerk den lokalen DNS-Verkehr beobachten und den Cache mit einer Vielzahl von Techniken vergiften. Befindet sich der Angreifer bereits im Netzwerk, stellt dies auf vielen Ebenen eine ernsthafte Gefahr dar, nicht nur in Bezug auf DNS-Cache-Poisoning.
Wie erkennt man DNS-Cache-Poisoning?
Zur Identifizierung solcher Attacken führt kein Weg an der Überwachung der DNS-Server vorbei. Die Anzahl der DNS-Anfragen ist jedoch so groß, dass eine manuelle Überwachung scheitern muss. Stattdessen sollte man auf automatisierte Analysen setzen, die in der Lage sind, normales DNS-Verhalten von Angriffen zu unterscheiden.
So deutet ein plötzlicher Anstieg der DNS-Aktivität aus einer einzigen Quelle bezüglich einer einzelnen Domain auf eine mögliche Birthday Attack hin. Ein weiteres Warnsignal ist die Zunahme der DNS-Aktivität aus einer einzigen Quelle, die den DNS-Server nach mehreren Domänennamen ohne Rekursion abfragt. Dies deutet auf einen Versuch hin, einen Eintrag zu finden, der für Cache Poisoning verwendet werden kann.
Sichere Zukunft?
DNSSEC ist ein neues DNS-Protokoll, das DNS-Anfragen verschlüsselt, um die hier beschriebenen Fälschungen zu verhindern. Dieses Protokoll ist jedoch noch nicht weit verbreitet, da es den DNS-Prozess verlangsamt.
„Die wenigsten Nutzer überprüfen tatsächlich, ob die Seite in ihrem Browser auch tatsächlich die Seite ist, die sie aufgerufen haben. Und genau das wird von Angreifern ausgenutzt.“
Klaus Nemelka, Varonis
DNS over HTTPS (DoH) ist eine konkurrierende Spezifikation für die nächste Version von DNS, um DNS-Anfragen sicher zu halten, ohne die Geschwindigkeit wie DNSSEC zu beeinträchtigen. Die Zukunft wird zeigen, welcher Standard sich hier durchsetzen und damit DNS sicherer gestalten wird.
Über den Autor:
Klaus Nemelka ist Technical Evangelist von Varonis Systems.
Die Autoren sind für den Inhalt und die Richtigkeit ihrer Beiträge selbst verantwortlich. Die dargelegten Meinungen geben die Ansichten der Autoren wieder.