Montag, 1. M�rz 2010


Topthema

Mittwoch, 28. Juni 2006 | Topthema

About Security #61: Angriffe auf TCP/IP — DNS-Spoofing

(Link zum Artikel: http://www.entwickler.de/php/kolumnen/029718)

Thema dieser Folge ist ein Angriff auf ein Protokoll der TCP/IP-Anwendungsschicht: DNS Spoofing. Das DNS-Protokoll (Domain Name System) dient der Umwandlung von Domain-Namen in die entsprechende IP-Adresse und umgekehrt. Beim DNS Spoofing wird dem Opfer eine falsche Antwort auf eine DNS-Anfrage untergeschoben.

Es gibt zwei Arten von DNS-Anfragen: rekursive und nichtrekursive. Ein Client stellt i.d.R. eine rekursive Anfrage, d.h. er m�chte die endg�ltige Antwort erhalten. Nameserver untereinander verwenden nichtrekursive Anfragen: Jeder Server nennt nur die IP-Adressen, die er selbst verwaltet. Kennt er die IP-Adresse eines Domain-Namens nicht, nennt er einen Nameserver, der die Antwort kennen k�nnte. Der Anfragende wird so zum zust�ndigen Nameserver vermittelt, der dann die gew�nschte IP-Adresse nennt.

About Security: Die komplette Serie
Die Namensaufl�sung

Wird ein Domain-Name, z.b. www.ein-name.example, aufgerufen, wird vom Client eine entsprechende rekursive DNS-Anfrage an den 'domain'-Port (53) des lokal zust�ndigen Nameservers gesendet. Dieser sendet ggf. nichtrekursive DNS-Anfragen an andere Nameserver, um die zugeh�rige IP-Adresse zu ermitteln. Diese speichert er zur Beantwortung zuk�nftiger Anfragen f�r eine gewisse Zeit in seinem Cache.

Unterscheidung von DNS-Paketen

Der Header eines DNS-Pakets enth�lt ein Identifikationsfeld (ID, Identification oder Transaction-ID, 16 Bit), das f�r die Zuordnung empfangener Antworten zur entsprechenden Anfrage verwendet wird. Will ein Angreifer eine falsche Antwort auf eine DNS-Anfrage einschleusen, muss er die korrekte ID kennen oder erraten und sein Paket schicken, bevor die Antwort des zust�ndigen DNS-Servers ankommt. Sofern der Netzwerkverkehr des Opfers oder seines Nameservers belauscht werden kann, ist dies kein Problem.

Aber auch ohne Belauschen der ID ist ein Angriff nicht unm�glich. Zum einen nummerieren einige Nameserver die Anfragen einfach durch, zum anderen ist bei nicht vorhersagbaren IDs ein Brute-Force-Angriff m�glich. F�r das 16-Bit-Feld m�ssten 65.536 Werte ausprobiert werden. Bei 100 Byte pro Antwort m�ssten ca. 6,2 MByte �bertragen werden, was bei einer 1-MBit-Anbindung ca. 60 Sekunden dauern w�rde. Verhindert der Angreifer parallel durch einen Denial-of-Service-Angriff eine Antwort des zust�ndigen Nameservers, steigen seine Chancen, die falsche Antwort einzuschleusen, deutlich.

Beispiel: Angriff ohne Lauschen bei aufsteigenden ID-Werten

Ein Angreifer m�chte sich als Webserver eines Unternehmens, www.spoof.example, ausgeben. Wenn ein Opfer diese Adresse besucht, wird eine entsprechende rekursive Anfrage an seinen zust�ndigen Nameserver (dns.opfer.example) gesendet. Dieser sendet dann selbst eine nichtrekursive Anfrage an einen anderen Nameserver.

Normaler Ablauf:
DNS-Abfrage: Normaler Ablauf

Der Angreifer kann nun versuchen, vor dem f�r spoof.example zust�ndigen Nameserver (dns.spoof.example) zu antworten. Verwendet er die korrekte ID, wird dns.opfer.example die Antwort akzeptieren und dem Opfer �bermitteln. Wenn er die DNS-Anfrage von dns.opfer.example belauschen kann, ist dies einfach: Er sendet eine gef�lschte Antwort mit der belauschten ID im Header, die dns.opfer.example akzeptiert und an seinen Client weiterreicht.

Ablauf mit Lauschen durch den Angreifer:
DNS-Abfrage: Ablauf mit Lauschen durch Angreifer

Ohne Lauschen kennt der Angreifer weder die korrekte ID noch den Zeitpunkt der Anfrage. Er mu� daher selbst aktiv werden.

N E U ! Security aktuell
T�glich aktuelle Security-Infos!

Voraussetzung ist, dass der Angreifer die Kontrolle �ber einen Nameserver hat, z.B. dns.unwichtig.example f�r die Domain unwichtig.example. Um die aktuell verwendete ID zu erfahren, sendet er dns.opfer.example eine rekursive Anfrage nach einem Rechner aus seinem eigenen Namensraum, z.B. total.unwichtig.example. Der sucht daraufhin mit nichtrekursiven Anfragen nach der passenden IP-Adresse. Irgendwann wird eine Anfrage an den f�r unwichtig.example zust�ndigen Angreifer geschickt. Die ID dieser Anfrage verr�t ihm die IDs der n�chsten von dns.opfer.example verschickten Anfragen.

Vorbereitung des Angriffs

Als n�chsten Schritt sendet der Angreifer eine rekursive Anfrage nach www.spoof.example an dns.opfer.example, gefolgt von mehreren (inzwischen k�nnen ja andere Anfragen gesendet worden sein) gef�lschten Antworten darauf, mit laufend hochgez�hlten ID-Werten. dns.opfer.example sendet nichtrekursive Anfragen f�r www.spoof.example und empf�ngt parallel die gef�lschten Antworten.

Durchf�hrung des Angriffs

Die Antwort mit passendem ID-Wert wird als korrekt akzeptiert, alle anderen Antworten verworfen. Dies betrifft insbesondere die danach eintreffende Antwort des eigentlich zust�ndigen Nameservers dns.spoof.example.

Der Cache des Nameservers des Opfers ist damit vergiftet. Anfragen nach www.spoof.example beantwortet er danach mit der gef�lschten IP-Adresse, auch die anf�ngliche Anfrage des Angreifers. Der kann den Erfolg seines Angriffs so sofort kontrollieren und bei einem Fehlschlag, z.B. auf Grund noch g�ltiger Daten im Cache, wiederholen.

Gegenma�nahmen

Um derartige Angriffe zu verhindern oder zumindest zu erschweren, werden die ID-Werte wie bereits oben erw�hnt nicht einfach hochgez�hlt, sondern zuf�llig erzeugt. Der Angreifer kann also aus ihm bekannten ID-Werten nicht auf die n�chsten verwendeten Werte schlie�en. Jedenfalls theoretisch. Praktisch kommt es immer wieder einmal vor, dass f�r die Erzeugung der ID-Werte vorhersagbare Zufallszahlengeneratoren verwendet werden, sodass der Angreifer aus mehreren ihm bekannten Werten die n�chsten erzeugten mit hoher Wahrscheinlichkeit berechnen kann.

In der n�chsten Folge werden weitere Angriffe auf TCP/IP beschrieben, u.a. eine weitere M�glichkeit zum Vergiften des DNS-Caches.

Wenn Sie Fragen oder Themenvorschl�ge haben, k�nnen Sie diese gerne an die angegebene E-Mail-Adresse senden oder im Security-Forum einbringen!

Carsten Eilers

About Security � �bersicht zum aktuellen Thema "Angriffe auf TCP/IP"

Kommentare

Folgende Links könnten Sie auch interessieren