Der kleine OpenSSL-Wegweiser

Seite 2: Tools und Listen

Inhaltsverzeichnis

Um verwundbare Schlüssel aufzuspüren, gibt es inzwischen ein Sammelsurium von Tools und Blacklists. Das Problem ist jedoch, dass derzeit kein Programm alle verwundbaren Schlüssel aufstöbern kann. Blacklists existieren bislang nur für ausgewählte Schlüsseltypen und Längen, vornehmlich die der Standard-Einstellungen. Man kann sich also auf die darauf beruhenden Sicherheitssperren nicht verlassen und die Scanvorgänge müssen regelmäßig mit aktualisierten, erweiterten Listen wiederholt werden. Nachfolgend ist der Stand vom 2. Juni zusammengefasst. Wir werden versuchen, die aktuellen Entwicklungen auch in den kommenden Tagen nachzutragen, können dies jedoch nicht garantieren.

Das wichtigste Testprogramm ist das offizielle Debian-Perl-Skript zum Aufspüren von verwundbaren SSH-Schlüsseln namens dowkd.pl. Es kann sowohl einzelne Dateien analysieren als auch die User-Verzeichnisse durchsuchen und SSH-Server übers Netz prüfen. Inzwischen unterstützt es zwar die authorized_keys2-Datei, doch einen Blinden Flecken hat es noch: Es berücksichtigt nur die beiden Default-Schlüssellängen RSA-2048 und DSA-1024.

Das Skript lässt sich aber erweitern. Auf einer privaten Website stehen zusätzliche Listen bereit, die sich nach dem Entpacken an das Skript anhängen lassen, etwa mit bzip2 -cd rsa-4096-le.blacklist.bz2 >> dowkd.pl. Zusätzlich ist aber auch das Perl-Skript in Zeile 126 so anzupassen, dass es die zusätzlichen Bitlängen nicht von vornherein ausschließt. Zum Testen anderer Schlüsseltypen eignet sich dowkd.pl jedoch nicht, weil seine Blacklists auf SSH-Schlüssel zugeschnitten sind.

Für Debian-basierte Systeme gibt es die Pakete openssh-blacklist, openvpn-blacklist und openssl-blacklist. Die Pakete für openvpn und openssl enthalten auch die zugehörigen Testprogramme openvpn-vulnkey beziehungsweise openssl-vulnkey zum Prüfen lokaler Schlüsseldateien. Das Testprogramm ssh-vulnkey für SSH-Schlüssel befindet sich im aktualisierten openssh-client-Paket. Bis auf die Möglichkeit, SSH-Server übers Netz zu testen, ist ssh-vulnkey vom Funktionsumfang her mit dowkd.pl vergleichbar. Das openssl-blacklist-Paket gibt es allerdings bislang nur im Ubuntu-Repository. Für Debian-Admins gibt es jedoch eine speziell angepasste Version.

Die Blacklists umfassen jeweils unterschiedliche Schlüsseltypen und -längen. Für OpenSSL-Schlüssel gibt es Listen für RSA-1024 und RSA-2048; die Liste für OpenVPN-Schlüssel (Preshared Keys) deckt lediglich das Default-Format RSA-2048 ab. Die SSH-Blacklists eignen sich für Schlüssel in den Formaten DSA-1024 sowie RSA-2048. Den Test-Tools für OpenSSL und OpenVPN ist gemein, dass sie nur einzelne lokale Dateien prüfen können. Skripte, die mit ihnen ein System nach verwundbaren Schlüsseln durchforsten und dergleichen müssen sich Anwender selber basteln.

Wer die Erkennungsleistung für SSH-Schlüssel verbessern möchte, kann zusätzliche Blacklist-Dateien – etwa für Schlüssel mit 4096 Bit oder für auf Big-Endian- und 64-Bit-Prozessoren erzeugte Schlüssel – aus einem erweiterten openssh-blacklist-Paket installieren. Mit ihnen erkennt ssh-vulnkey und damit der SSH-Server auch die zusätzlichen Schlüssel-Varianten.

Die neuen Blacklists müssen jedoch noch in das richtige Format gebracht werden. Die folgenden Befehle erledigen die Nachrüstung:

# cd /etc/ssh
# wget http://love.hole.fi/atte/openssh-blacklist/openssh-blacklist_0.3.tar.gz
# tar zxf open*gz
# cp black* open*/
# cd open*
# cat *DSA-1024* | sed -e 's/.*\(....................\)$/\1/g' \
| grep -v ^\# | sort -u >../blacklist.DSA-1024
# cat *RSA-1024* | sed -e 's/.*\(....................\)$/\1/g' \
| grep -v ^\# | sort -u >../blacklist.RSA-1024
# cat *RSA-2048* | sed -e 's/.*\(....................\)$/\1/g' \
| grep -v ^\# | sort -u >../blacklist.RSA-2048
# cat *RSA-4096* | sed -e 's/.*\(....................\)$/\1/g' \
| grep -v ^\# | sort -u >../blacklist.RSA-4096

Somit kann man verantwortungsbewussten Admins eigentlich nur raten, alle Zertifikate, die auf Debian-Varianten im fraglichen Zeitraum von September 2006 bis Mai 2008 erstellt wurden, so schnell wie möglich zu widerrufen und neue auszustellen. Wieviel Zeit dazu noch bleibt, ist sehr schwer einzuschätzen. Bislang sind uns keine öffentlich verfügbaren Tools für Angriffe auf OpenVPN, IPSec und Co bekannt. Man darf aber getrost davon ausgehen, dass bereits daran gearbeitet wird.

Bei SSH-Servern hingegen besteht sofortiger Handlungsbedarf – und zwar sofort im Sinne von "jetzt gleich", denn die Angriffe laufen bereits. Jeder, der einen SSH-Server in Betrieb hat, bei dem er nicht absolut sicher sein kann, dass niemand einen Debian-Key dort eingetragen hat, sollte unverzüglich nach den bereits in Listen erfassten Schlüsseln suchen und diese sperren.

Tickende Zeitbomben sind aufgezeichnete Verbindungen, über die verschlüsselt vertrauliche Daten übertragen wurden. Mit den richtigen Tools, die in Hackerkreisen sicher bald verfügbar sind, kann ein Angreifer, dem beispielsweise eine PCAP-Datei mit einer kompletten SSH-Sitzung in die Hand fällt, unter Umständen das Passwort herausfischen – oder aus einer mitgeschnittenen https-Verbindung die Online-Banking-PIN.

Siehe dazu auch:

(ju)