15. Mai 2008
Das
Debian Projekt hat eine
Warnung
zu einem Sicherheitsproblem mit OpenSSL/OpenSSH
veröffentlicht.
Die einschlägigen Medien haben schon ausführlich berichtet, ob der Dringlichkeit und des Umfangs des Problems
bittet CERT.at nochmals um Beachtung der folgenden Hinweise:
Beschreibung
Die unter Debian erzeugten OpenSSH und OpenSSL Keys waren verwundbar, da die vom
Pseudo Random Number Generator erzeugten Zufallszahlen nicht wirklich zufällig waren.
Auswirkungen
Dies bedeutet, dass gewisse SSH Keys und OpenSSL Zertifikate für einen Angreifer
erratbar und die damit verschlüsselten Nachrichten entschlüsselbar sind.
Damit ist die Serverauthentizitätsprüfung mittels Hostkeys und die Userauthentisierung durch
SSH Authorized Keys nicht mehr sicher.
Betroffene Systeme
Der Fehler betrifft OpenSSL ab Version 0.9.8c-1, diese wurde 17. 9. 2006 von
Debian veröffentlicht und auch von abgeleiteten Linux-Distributionen wie Ubuntu oder Knoppix übernommen.
Die alte "stable" Version "sarge" ist nicht betroffen.
Der Fehler betrifft die Erzeugung von Schlüsseln: wo diese dann eingesetzt werden spielt keine Rolle.
Ein simpler Update der Software löst das Problem daher nicht: es müssen auch alle mit den besagten
Versionen erstellten Schlüssel ersetzt werden!
Abhilfe
Es wird dringend empfohlen, die von Debian und Ubuntu bereitgestellten
Patches zu installieren.
Siehe
http://www.debian.org/security/2008/dsa-1571,
http://www.debian.org/security/2008/dsa-1576
und
http://www.ubuntu.com/usn/usn-612-1.
Hintergrund
Ursprünglich haben die Debian Entwicker einen Funktionsaufruf in
OpenSSL entfernt, der die Zufallszahlen durchmischen sollte,
weil das Analysetool 'valgrind' ziemlich viele Warnungen wegen nicht
initialisierter Variablen aufwarf. Das hat zur Folge dass der
Zuffallszahlengenerator nur noch die PID (ProzessID) als Grundlage der
Zufallszahl heranzieht: also eine Zahl zwischen 0 und 32768.
Nach Bekanntwerden der Sicherheitslücke hatte Debian zuerst ein Vulnerability Check Tool bereitgestellt
(
http://security.debian.org/project/extra/dowkd/dowkd.pl.gz), welches
eine Liste aller verwundbaren Schlüssel in allen ihren gängigen Kombinationen (also
Format wie OpenSSL, OpenSSH, OpenVPN ... , Bit-Breite wie 1024, 2048...
Typ RSA, DSA, etc..) enthält.
Diese Liste aller möglichen Schlüsselpaare ist auch schon in automatisierten
Test- aber auch Angriffstools eingebaut worden. Dies bedeutet, dass auch
technisch wenig versierte Angreifer ("script kiddies") diese Lücke trivial ausnützen können.
Was bedeutet dies in der Praxis?
Überall, wo die Schlüssel direkt zur Authentisierung verwendet
werden, kann ein Attacker mittels Durchprobieren der entsprechenden
Schlüssel in das System eindringen. (z.b.: authorized_keys bei SSH)
Jede aufgezeichnete Kommunikation, die mit diesen Schlüsseln
gesichert war, ist innerhalb kurzer Zeit entschlüsselbar.
Überall, wo Schlüssel, Signaturen oder Zertifikate zur Verifikation
des Gegenübers oder der Nutzdaten eingesetzt werden, ist eine
Verfälschung dieser Informationen möglich.
Das betrifft auch gekaufte (HTTPS-) Zertifikate oder CACert-Zertifikate, wenn sie
vom User mit OpenSSL direkt erstellt wurden und nur zur Signierung an
die CA geschickt wurden.
Bei Fragen: Kontakt
Quellen: Debian, Ubuntu, ISC, Adrian Dabrowski