Menü

Lücke im Bind-Name-Server hat weitreichende Auswirkungen

Lesezeit: 2 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 137 Beiträge
Von

Die Konsequenzen des Fehlers im Zufallszahlengenerator des DNS-Servers Bind9 sind erheblich weitreichender als es seine Einstufung "mittel" durch den Hersteller ISC vermuten lässt. Betroffenen Nameservern droht zwar keine besondere unmittelbare Gefahr, sehr wohl aber deren Nutzern. Auf Nachfragen von heise Security schätzte Amit Klein, der die Lücke entdeckte, dass rund die Hälfte aller Nameserver mit Bind9 läuft und die jüngste Schwachstelle daher potenziell das gesamte Internet betrifft. Demnach wäre ein erheblicher Teil der DNS-Infrastruktur empfänglich für Cache-Poisoning-Angriffe, die ahnungslose Nutzer im großen Stil unbemerkt auf falsche IP-Adressen umleiten können, unter denen beispielsweise Phishing-Seiten angeboten werden. Ein inzwischen veröffentlichtes Advisory des CERT-Bund bewertet das durch die Lücke entstehende Risiko ebenfalls als "sehr hoch".

Auch Johannes Ullrich vom Internet Storm Center hält die Schwachstelle für "ein großes Ding". Er schätzt, dass es möglicherweise Monate dauern wird, bis das DNS-Netz gegen die Schwachstelle imun ist. Der Zeitrahmen dürfte auch davon abhängen, wie schnell Distributoren mit aktualisierten Paketen herauskommen. Inzwischen haben RedHat, Fedora und Debian reagiert und fehlerbereinigte Bind9-Pakete im Angebot.

Der zentrale Schutz gegen DNS-Cache-Poisioning ist, dass es nahezu unmöglich sein sollte, die richtige 16-bittige Transaction-ID vorherzusagen. Denn mit ihr ist es möglich, einem Nameserver eine falsche IP-Adresse zu einem ihm unbekannten Rechnernamen unterzujubeln. Weil die IP und Rechnername im Cache landen, antwortet ein vergifteter Nameserver auch auf nachfolgende Anfragen nach dem Rechnernamen mit der falschen Adresse. Durch den fehlerhaften Zufallszahlengenerator des alten Bind9 folgen auf gerade Transaction-IDs höchstens zehn verschiedene IDs, die sich aus der geraden ID berechnen lassen.

Möglichst schnell kommt man mit dem so genannten CNAME-Chaining an eine gesuchte Transaction-ID: Der Angreifer fragt den zu vergiftenden Nameserver nach der IP eines Rechnernamens, für den ein DNS-Server unter seiner Kontrolle zuständig ist. Dadurch bekommt der Angreifer-Server vom anvisierten DNS-Server eine entsprechende Anfrage samt Transaction-ID. Ist sie ungerade, geht die Antwort zurück, der angefragte Rechner sei nur ein Alias (CNAME) für einen weiteren Host in der Angreifer-Domain. Dies erzeugt im angegriffenen DNS-Server automatisch eine neue Anfrage mit einer neuen ID.

Dieses Spiel wiederholt sich, bis der Angreifer-Server eine gesuchte ID erhält. Nach dem Erhalt einer geraden Transaction-ID kommt es auf Geschwindigkeit an, denn die Vergiftung muss erfolgen, bevor der anvisierte DNS-Server eine andere Anfrage bearbeiten kann. Dies erschwert laut Ullrich zwar den Angriff auf stark belastete DNS-Server, kann ihn aber nicht verhindern.

Um die Server gegen diese Angriffe zu sichern, sollte man auf die neue Version wechseln. Mögliche Workarounds für DNS-Server, für die derzeit keine Aktualisierung infrage kommt, sind mit Nachteilen verbunden. Noch am ehesten infrage kommt die Option, firmeninterne DNS-Server als Forwarder einzurichten, der nur bei einem (möglichst gepatchten) Master-DNS-Server etwa des Providers anfragt. Auch das erhöht jedoch die Latenz für Namensauflösungen. Das Caching ganz auszuschalten ist in der Regel aus Performancegründen keine Option.

Die Schwachstelle lässt sich auf einen krassen Implementierungsfehler zurückführen. Bind9 verwendet als Pseudozufallszahlengenerator einen so genannten "Bilateral Stop/Go LFSR Generator". Doch statt in diesem wie üblich nur das unterste Bit der XOR-Verknüpfung seiner beiden 32-Bit-Zustandsregister zu benutzen, verwendeten die Entwickler kurzerhand gleich ganze 16 Bits als Transaction-ID. Damit enthüllt der DNS-Server mit jeder Transaction-ID einen erheblichen Teil des Zustandes seines internen Zufallszahlengenerators. Das Besondere an geraden Transaction-IDs ist, dass sich aus ihnen bei dem verwendeten Generator die Bits der jeweils nachfolgenden ID sehr genau vorhersagen lassen. Von dem eigentlich 16 Bit langen Zufallswert mit seinen mehr als 65000 Möglichkeiten bleiben nur noch rund drei Bit Zufall, nämlich 10 Möglichkeiten, übrig.

Betrachtet man die Bedeutung des Internet und sieht dann, dass Software, die als Fundament des gesamten Internet gilt, mit solch krassen Qualitätsproblemen zu kämpfen hat, laufen einem kalte Schauer den Rücken herunter. Kein Wunder, dass sich der Hersteller ISC lieber in Schweigen hüllt und Anfragen zu der Problematik nicht beantwortet. Dass es auch anders geht, zeigt das OpenBSD-Projekt, das traditionell der Sicherheit einen hohen Stellenwert einräumt. Aus einem Posting auf einer öffentlichen Projekt-Mailingliste geht hervor, dass die Betreuer des Bind-Paketes von OpenBSD bereits bei der Umstellung auf Bind9 vorsorglich den Zufallszahlengenerator ausgetauscht haben, da ihnen seine Zuverlässigkeit fragwürdig erschien. So erzeugt in Bind9 auf OpenBSD-Systemen ein so genannter Linear Congruential Generator (LCG) das Transaction-IDs und OpenBSD ist von dem Problem somit nicht betroffen.

Siehe dazu auch:

(cr)