Bundesamt für Sicherheit in der Informationstechnik

G 5.78 DNS-Spoofing

Um im Internet mit einem anderen Rechner kommunizieren zu können, wird dessen IP-Adresse benötigt. Da solche Nummern nicht sehr einprägsam sind, ordnet das Domain Name System (DNS) einer solchen IP -Adresse einen Name zu.

Von DNS-Spoofing ist die Rede, wenn es einem Angreifer gelingt, die Zuordnung zwischen einem Rechnernamen und der zugehörigen IP-Adresse zu fälschen, also wenn ein Name in eine falsche IP-Adresse bzw. die IP-Adresse in einen falschen Namen umgewandelt wird. Beim klassischen DNS-Spoofing wird nicht der Client-PC durch Schadsoftware manipuliert, sondern es werden Schwachstellen in der DNS-Kommunikation ausgenutzt. Hierdurch sind unter anderem die folgenden Angriffe möglich:

  • r-Dienste (rsh, rlogin, rsh): Diese Dienste erlauben eine Authentisierung anhand des Namens des Clients. Der Server kennt die IP-Adresse des Clients und fragt über DNS nach dessen Namen. Durch DNS-Manipulationen kann sich ein Angreifer unbefugt beim r-Dienst anmelden und Zugriff auf schützenswerte Informationen erlangen.
  • Web-Spoofing: Ein Angreifer könnte die Adresse www.bsi.bund.de einem falschen Rechner zuweisen. Bei der Eingabe von http://www.bsi.bund.de würde dieser falsche Rechner angesprochen werden.

Wie leicht es ist, DNS-Spoofing durchzuführen, hängt davon ab, wie das Netz des Angegriffenen konfiguriert ist. Da kein Rechner alle DNS-Informationen der Welt besitzen kann, ist er immer auf Informationen anderer DNS-Server angewiesen. Um die Häufigkeit von DNS-Abfragen zu verringern, speichern die meisten Resolving DNS-Server Informationen, die sie von anderen DNS-Servern erhalten haben, für eine gewisse Zeit zwischen.

Eine weitere Möglichkeit, um Schaden per DNS-Spoofing anzurichten, ist ein Einbruch in einen DNS-Server. Dieser Fall soll hier aber nicht weiter betrachtet werden. Vielmehr geht es darum, prinzipielle Gefahren beim Einsatz von DNS aufzuzeigen.

Beispiele:

  • Ein Benutzer auf dem Rechner pc.kunde.de will zuerst auf www.firma-x.de und dann auf den Konkurrenten www.firma-y.de zugreifen. Um auf www.firma-x.de zugreifen zu können, muss er die zugehörige IP-Adresse bei seinem Resolving DNS-Server ns.kunde.de nachfragen. Dieser kennt die Adresse noch nicht und fragt beim Advertising DNS-Server ns.firma-x.de nach. Dieser antwortet mit der IP-Adresse, die von ns.kunde.de an den Benutzer weitergeleitet und gespeichert wird. Befindet sich in dem Antwortpaket von ns.firma-x.de neben der IP-Adresse von www.firma-x.de auch eine falsche IP-Adresse für den Rechnernamen www.firma-y.de, so wird diese gespeichert. Versucht der Benutzer nun, auf www.firma-y.de zuzugreifen, fragt der eigene Resolving DNS-Server nicht mehr beim DNS-Server ns.firma-y.de nach, vielmehr gibt er die Informationen weiter, die ihm von ns.firma-x.de untergeschoben wurden. In aktuellen Versionen von DNS-Server-Produkten ist der Angriff in dieser Form nicht mehr möglich. Es existieren jedoch modifizierte, beziehungsweise verbesserte Varianten des Angriffs, die auch bei aktuellen Versionen erfolgreich sind.
  • Firma X weiß, dass ein Benutzer mit dem Rechner pc.kunde.de auf den Konkurrenzrechner www.firma-y.de zugreifen will. Firma X verhindert dies, indem sie den DNS-Server ns.kunde.de nach der Adresse www.firma-x.de fragt. Dieser muss beim DNS-Server ns.firma-x.de nachfragen und bekommt wie im ersten Beispiel auch die falschen Angaben über www.firma-y.de zurück.

Diese beiden Beispiele beruhen darauf, dass ein DNS-Server zusätzliche Daten akzeptiert, die er gar nicht angefordert hat. In neuen Versionen von DNS-Software (z. B. BIND) ist dieser Fehler beseitigt, so dass diese Art von Angriffen verhindert wird. Es ist allerdings unter Verwendung von IP-Spoofing noch immer möglich, falsche DNS-Einträge zu erzeugen. Dieser Angriff ist aber technisch anspruchsvoller, vergleiche dazu auch G 5.48 IP-Spoofing .

Beide Angriffsformen haben eines gemeinsam: Ziel ist es, dass der angegriffene Rechner falsche Zuordnungen von IP-Adressen und Namen zwischenspeichert, man spricht hierbei von Cache-Poisoning. Da DNS-Server Domain-Informationen, wie im zweiten Beispiel beschrieben, zwischenspeichern, können sich diese gefälschten Daten weit verbreiten. Werden entsprechende Anfragen an den manipulierten DNS-Server gestellt, liefert dieser als Antwort die gefälschten Daten. Der Empfänger der Antwort speichert die gefälschten Daten ebenfalls zwischen und sein Cache ist somit ebenfalls "vergiftet". Die gespeicherten Daten haben eine definierbare Haltbarkeit (Time To-Live, TTL). Wird der Resolving DNS-Server nach einer manipulierten Adresse gefragt, so wird er erst dann wieder einen anderen DNS-Server anfragen, wenn die Haltbarkeit abgelaufen ist. So ist es möglich, dass sich manipulierte DNS-Informationen lange halten können, obwohl sie auf dem ursprünglich angegriffenen DNS-Serer bereits wieder korrigiert sind.

Cache-Poisoning ist bezüglich DNS eine der gefährlichsten Angriffsformen. Gelingt es einem Angreifer beispielsweise die Namensauflösung für eine Domain zu übernehmen, indem er die Einträge so manipuliert, dass seine DNS-Server befragt werden, sind alle Subdomains automatisch mitbetroffen.

Stand: 12. EL Stand 2011