Es gibt noch ein paar neue Informationen zum DNS Server der SPD. Johannes Boie von der Süddeutschen Zeitung, hatte sich mit uns in Verbindung gesetzt, weil er gerade eine Recherche zum Thema “Datenschutz bei den Parteien” durchführt, und dabei auf die DNS Server Verwirrung gestossen ist.
Nun hatte die SPD ja den Server bereits umkonfiguriert, sodass dieser für die Öffentlichkeit nicht mehr erreichbar war. Dennoch meldete ein
dig +short @dns2.spd.de version.bind TXT CH
brav die Versionsnummer “9.3.1″. Dies legte den Verdacht nahe, dass der Server nicht gegen den Kaminsky-Bug geschützt wurde.
Johannes Boie hat, wie er in seinem Blogeintrag schreibt, bei der SPD mal nachgefragt. Die Antwort der Genossen darauf würde wohl Sir Humphrey Appleby Respekt abnötigen:
“Diese Sicherheitslücke wurde bereits vor langer Zeit geschlossen. Man sollte sich nicht durch die angezeigte Versionsnummer blenden lassen, diese ist frei einstellbar.”
Die Antwort ist brilliant, denn diese Aussage lässt sich natürlich im Nachhinein nicht mehr überprüfen, da der Server sich durch die Öffentlichkeit nicht mehr abfragen lässt. Die Versionsnummer in bind9 ist tatsächlich frei einstellbar, üblicherweise findet man sie in /etc/bind/named.conf.options:
options {
directory “/var/cache/bind”;version “9.3.5-p2″;
// Weitere Einstellungen
};
Es ist also gut möglich, dass bind upgedatet wurde, und man beim Update die named.conf.options Datei bewusst nicht mit upgedatet hat, um vorhandene Einstellungen nicht zu überschreiben. Dabei wurde dann vergessen eine sinnvolle Versionsnummer einzugeben. Das überrascht, nimmt doch die Diskussion, ob es nun sinnvoll ist, seine Versionsnummer zu verschleiern, oder die reale Nummer zu nutzen, einigen Raum in praktisch allen Handbüchern ein. Dass es nicht zielführend ist, eine Versionsnummer einer verwundbaren Version zu verwenden ist dagegen selbstredend: Zieht so eine Versionsnummer doch Skript-Kiddies an, wie die Motten das Licht.
Mal diplomatisch gedacht, ist es natürlich clever die Version nicht zu ändern, dadurch lässt sich nämlich verschleiern, wann man das Update tatsächlich gemacht hat. Aus dieser Sicht ist das eine geschickte Lösung, oder? Yes, Minister!
es kann doch auch genausogut sein, daß die vorhandene Version mit dem Bugfix gepatcht wurde, oder? Die Aussage von der SPD lautet ja nicht “wir haben die neueste Version, aber den alten Versionsstring”, sondern “der Fehler wurde beseitigt”. Warum geht jeder automatisch davon aus, daß ein Update gemacht wurde?
Es ist im produktiven Umfeld durchaus üblich, daß man eine alte, funktionsfähige Version beibehält, und nur Security-Patches einspielt.
Das funktioniert natürlich nur, wenn der Hersteller einen Patch liefert. Das hab ich jetzt auf die Schnelle nicht bei isc.org finden können.
Das Bugfix hätte normalerweise dann aber auch eine andere Versionsnummer als die ungepatchte Version: z,B, wird aus “9.5.3″ nach einspielen des patches “9.5.3-p2″, wobei das “p2″ für den Patch steht.
Wenn man das nicht will, muss man in der Regel die Patches in den alten Programmcode einspielen. Das erfordert aber, dass man die Programme selber compiliert. Das geht zwar, aber welcher Admin macht das schon? Die Sicherheitsupdates der Binärdistributionen tauschen allesamt bei einem Update das gesamte Paket aus, im entsprechenden Fall eben durch die Version mit dem gewünschten Patch.
Realistischer ist da schon, dass man eine Konfigurationsdatei mit der option ‘version=”9.3.1″ nach dem Update wiedereingespielt hat, und dann vergessen die Versionsnummer anzupassen.
Bind ist eines der wenigen Programme wo man einen Versionsstring selber einspielen kann.