- DNS Forgery
-
Cache Poisoning (dt. Temporärspeichervergiftung) ist ein Internet-Angriff, bei dem ein Angreifer in den Cache eines Nameservers gefälschte Daten einbringt. Ziel ist es, Clients, die unwissentlich auf diese gefälschten Daten zugreifen, auf manipulierte Webseiten zu lenken. Eine wirksame Gegenmaßnahme wäre der Einsatz von DNSSEC, dieses ist aber noch nicht sehr weit verbreitet.
Inhaltsverzeichnis
Methoden
Antworten vor dem zuständigen Server
Bei dieser auch DNS Forgery genannten Methode wird der angegriffene DNS-Server zuerst aufgefordert, eine rekursive Anfrage zu stellen. Mit dem Ziel, vor dem zuständigen Server die Antwort zu liefern, schickt der Angreifer gefälschte Antworten an den DNS-Server[1]. Um dies zu erschweren, werden DNS-Anfragen mit einer Query-ID (16 bit) gesichert.
Angriff über zusätzliche Daten
Im öffentlichen DNS sind einzelne DNS-Server nur für Teilbereiche des gesamten DNS autoritativ. Bekommt ein DNS-Server eine Anfrage für einen Bereich, in dem er nicht autoritativ ist, kann er die Anfrage an den nächsten DNS-Server weiterleiten. Um unnötige Last zu vermeiden, können DNS-Server die Antworten anderer Server auf Anfragen lokal in einem Cache speichern. In diesem Fall könnte die Weiterleitung der o. g. Anfrage an einen weiteren Server wegfallen und sofort eine Antwort gesendet werden. Ein DNS-Teilnehmer, der an einen Nameserver eine Anfrage sendet, übernimmt die erhaltene Antwort ungeprüft eine vorgegebene Zeit lang in seinen Cache. Neben der eigentlichen Antwort werden oft auch zusätzliche (legitime) Daten (Glue Records) übermittelt, die ebenfalls im Cache gespeichert werden. Das Cache Poisoning beruht darauf, in diesen zusätzlichen Daten ein oder mehrere gefälschte Resource Records zu verstecken.
Genauer formuliert: In der Authority Section des Antwortpakets wird der umzuleitende Name (z. B. de.wikipedia.org) als angeblicher DNS-Server eingetragen und in der Additional Section die IP-Adresse (z. B. 1.2.3.4) eines vom Angreifer kontrollierten Servers.
Ablaufbeispiel
- Ein Cracker bringt den Nameserver XX unter seine Kontrolle. Er manipuliert diesen derart, dass jedes mal, wenn nach einem Namen aus der Domain beispiel.de gefragt wird, ungefragt der gefälschte Record de.wikipedia.org 1.2.3.4 mitgeliefert wird.
- Der öffentliche Nameserver YY möchte den Namen test.beispiel.de auflösen. Er sendet eine entsprechende Anfrage an den zuständigen (vom Cracker kontrollierten) Nameserver XX. Dieser manipulierte Nameserver antwortet mit der korrekten IP-Adresse, liefert aber zusätzlich den gefälschten Record de.wikipedia.org 1.2.3.4 mit. Dieser wird vom anfragenden Server YY ungeprüft in den Cache übernommen.
- Zu einem späteren Zeitpunkt versucht ein User, den Namen de.wikipedia.org aufzulösen und wendet sich an den öffentlichen Nameserver YY. Der Nameserver findet den (gefälschten) Record in seinem Cache und sendet dem User gutgläubig die IP-Adresse 1.2.3.4 zurück.
- Der User möchte auf de.wikipedia.org zugreifen, wird aber – für ihn nicht erkennbar – auf eine falsche Web-Seite mit der IP-Adresse 1.2.3.4 geleitet.
Praxis
Cache-Poisoning-Angriffe über die Additional Section sind in den 2000er Jahren selten geworden. Aktuelle Nameserver akzeptieren keine ungefragt mitgelieferten Records mehr. Akzeptiert werden nur noch Records aus der tatsächlich angefragten Domain (sogenannte in-bailiwick-Records).
Siehe auch
Quellen
Wikimedia Foundation.