Cache Poisoning
Cache Poisoning (dt. Temporärspeichervergiftung) ist ein Internet-Angriff, bei dem ein Hacker 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.Funktionsweise
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 Posioning 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 Hacker bringt den Nameserver XX unter seine Kontrolle. Er manipuliert diesen derartig, dass jedesmal, 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 Hacker 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 einen 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 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).

