G 5.78 DNS-Spoofing

Um im Internet mit einem anderen Rechner kommunizieren zu können, benötigt man dessen IP-Adresse. Diese Adresse setzt sich aus vier Zahlen zwischen 0 und 255 zusammen, also zum Beispiel 194.95.176.226. Da solche Nummern nicht sehr einprägsam sind, wird einer solchen IP-Adresse fast immer ein Name zugeordnet. Das Verfahren hierzu nennt sich DNS (Domain Name System). So kann der WWW-Server des BSI sowohl unter http://www.bsi.bund.de als auch unter http://194.95.176.226 angesprochen werden, da der Name bei der Abfrage in die IP-Adresse umgewandelt wird.

Die Datenbanken, in denen den Rechnernamen die zugehörigen IP-Adressen zugeordnet sind und den IP-Adressen entsprechende Rechnernamen, befinden sich auf sogenannten Nameservern. Für die Zuordnung zwischen Namen und IP-Adressen gibt es zwei Datenbanken: In der einen wird einem Namen seine IP-Adresse zugewiesen und in der anderen einer IP-Adresse der zugehörige Name. Diese Datenbanken müssen miteinander nicht konsistent sein! 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, d. h. daß ein Name in eine falsche IP-Adresse bzw. umgekehrt umgewandelt wird.

Dadurch sind unter anderem die folgenden Angriffe möglich:

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 Rechner angewiesen. Um die Häufigkeit von DNS-Abfragen zu verringern, speichern die meisten Nameserver Informationen, die sie von anderen Nameservern erhalten haben, für eine gewisse Zeit zwischen.

Ist ein Angreifer in einen Nameserver eingebrochen, kann er auch die zur Verfügung gestellten Informationen abändern. Der Fall eines direkten Einbruchs auf einen Nameserver soll hier nicht weiter betrachtet werden. Vielmehr geht es darum, prinzipielle Schwächen im DNS aufzuzeigen.

Anhand zweier Beispiele sollen unterschiedliche Methoden aufgezeigt werden, mit denen DNS-Spoofing möglich ist.

1. 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, muß er erst die zugehörige IP-Adresse bei seinem Nameserver ns.kunde.de nachfragen. Dieser kennt die Adresse auch nicht und fragt beim Nameserver von 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 noch eine beliebige IP-Adresse für für den Rechnernamen www.firma-y.de, so wird auch diese gespeichert. Versucht der Benutzer nun, auf www.firma-y.de zuzugreifen, fragt der eigene Nameserver ns.kunde.de nicht mehr bei dem Nameserver ns.firma-y.de nach, vielmehr gibt er die Informationen weiter, die ihm von ns.firma-x.de untergeschoben wurden.

2. Firma X weiß, daß ein Benutzer mit dem Rechner pc.kunde.de auf den Konkurrenzrechner www.firma-y.de zugreifen will. Firma X verhindert dies, indem sie den Nameserver ns.kunde.de nach der Adresse www.firma-x.de fragt. Dieser muß beim Nameserver ns.firma-x.de nachfragen und bekommt wie in Beispiel 1 auch die falschen Angaben über www.firma-y.de zurück.

Diese beiden Beispiele beruhen darauf, daß ein Nameserver auch zusätzliche Daten, die er gar nicht angefordert hat, akzeptiert. In neuen Versionen bestimmter Software (z. B. bind) ist dieser Fehler beseitigt, so daß 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 jedoch technisch viel anspruchsvoller.


© Copyright by Bundesamt für Sicherheit in der Informationstechnik 2000