DNS-Poisoning.

Als ich gestern Abend routinemäßig den Security Bulletin von Microsoft für den gestrigen Windows-Update-Tag gelesen hatte, muss ich zugeben, dass ich beim Wort „DNS-Poisoning“ gezuckt und beschlossen habe, sofort am Mittwochmorgen auf unseren Servern, auf denen DNS-Serverdienste laufen, zu patchen. DNS-Poisoning ist eine recht üble Geschichte, die einem graue Haare wachsen lassen kann. Vom Prinzip her funktioniert das so:

Ein DNS-Server löst Anfragen auf, die ihm gestellt werden. Will ich zum Beispiel zu einem Webserver surfen, gebe ich die Adresse www.blafasel.de in den Browser ein. Der Browser wiederum lässt über die TCP/IP-Implementierung des Rechners diese Anfrage vom zuständigen DNS-Server zu einer IP-Adresse auflösen, zu dem er dann Kontakt aufnimmt.

Nun arbeiten praktisch alle DNS-Server mit einem Cache, speichern also eine DNS-Abfrage für einen bestimmten Zeitraum, um eventuell nachfolgende Abfragen nicht sofort neu vornehmen zu müssen, sondern sie aus dem Cache beantworten zu können. Dieser Cache ist also letztendlich eine eigene, dynamische Datenbank eines jeden DNS-Servers und basiert darauf, dass die nur Einträge enthält, die der DNS-Server auch tatsächlich selbst vorgenommen hat.

DNS-Poisoning, also das „DNS-Vergiften“, beschreibt den Ansatz, dass von außen her versucht wird, diesen Cache zu manipulieren, ihm also falsche Daten unterzujubeln. Das ist insofern eine üble Geschichte, weil für gewöhnlich der Aussage eines DNS-Servers getraut wird und man als Nutzer nicht ohne weiteres feststellen kann, ob die Antwort des DNS-Servers tatsächlich korrekt ist oder nicht. Ist der Cache eines DNS-Servers nicht manipulationssicher, wäre der DNS-Server für eine Menge Missbrauch offen – beispielsweise könnte man einer Adresse einer Bank einfach mal eben eine andere IP-Adresse zuordnen und Datenverkehr umleiten.

Mit DNS-Poisoning gab es schon in der Vergangenheit immer wieder mehr oder weniger große Probleme, beispielsweise beim legendären Internic-Hack aus dem Jahre 1997. Aus diesem Grund haben die Entwickler von DNS-Servern ihre Caches dadurch abgesichert, dass Einträge mit eindeutigen Schlüsseln abgesichert werden, die sie selbst mit jedem Cache-Eintrag erstellen und verifizieren. Tanzt da ein Eintrag mit einem falschen Schlüssel aus der Reihe, wird er nicht berücksichtigt.

Der Knackpunkt, weshalb Microsoft gestern einen Patch für DNS-Server und DNS-Clients ausliefert und im übrigen auch Entwickler praktisch aller anderen DNS-Server-Implementierungen, ist, dass die Entropie offensichtlich zu klein ist, also der Raum für diese Schlüssel. Wäre dies der Fall – eine Bestätigung hierfür steht vom Sicherheitsexperten Dan Kaminsky, der das Sicherheitsloch gefunden und gemeldet hat, noch aus – wäre es möglich, gültige Schlüssel auf irgendwelche Weisen zu ermitteln und den DNS-Cache mit falschen Eingaben zu vergiften.

Aus diesem Grund sind die gestern veröffentlichten Windows-Patches unbedingt einzuspielen, was analog auch für aktuelle Patches für andere DNS-Serversoftware gilt.

[Nähere Informationen bei Heise oder Golem]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *