Alert!

Nur NIST P-521 betroffen: PuTTY-Lücke kompromittiert private SSH-Schlüssel

Bereits seit sieben Jahren schlummert die Lücke im freien Terminalclient PuTTY. Angreifer müssen jedoch einige Hürden nehmen, um SSH-Schlüssel zu klauen.

In Pocket speichern vorlesen Druckansicht 45 Kommentare lesen
Stilisiertes Bild mit rötlichen Leiterbahnen, offenem Schloss im Vordergrund und den Worten Data Leak, Security, Exploit found

(Bild: Black_Kira/Shutterstock.com)

Lesezeit: 4 Min.

Der freie Terminal-Client PuTTY trug seit Version 0.68 – veröffentlicht im Jahr 2017 – einen Programmierfehler mit sich herum, der Angreifern die Rekonstruktion privater SSH-Schlüssel des Typs NIST P-521 ermöglicht. Dafür müssen sie jedoch entweder ihr Opfer auf einen präparierten SSH-Server locken oder vom betroffenen Schlüssel signierte Git-Commits abfangen. Bei NIST P-521 handelt es sich um ein Verfahren der Kryptografie auf elliptischen Kurven (Elliptic Curve Cryptography, ECC).

Die Sicherheitslücke mit der CVE-ID CVE-2024-31497 (das BSI vergibt in seiner Warnmeldung einen CVSS-Wert von 8,3 und eine hohe Risikoklasse) fanden Forscher der Ruhr-Universität Bochum; auf der Mailingliste oss-security erklärten sie einige Details. So liegt der Fehler in einer Besonderheit des PuTTY-eigenen Zufallszahlengenerators begründet. Dieser enthielt eine mathematische Ungenauigkeit, welche die in ECC-Verfahren unverzichtbaren Nonces ("number used once", Einmal-Nummer) unter bestimmten Bedingungen leichter erratbar macht. Diese Zufallszahlen dürfen für wirksame Verschlüsselung und Signatur jedoch nicht vorhersagbar sein.

Die Auswirkungen dieses Fehlers sind gravierend: Ein Angreifer, der einen vom Opfer frequentierten SSH-Server kontrolliert und dort etwa 60 SSH-Nachrichten abfangen kann, kann den geheimen ECDSA-Schlüssel rekonstruieren und mit den gleichen Berechtigungen nutzen wie sein Opfer. Dieser SSH-Identitätsklau ist ein Schreckensszenario für Server-Admins und Softwareentwickler, die Code per SSH in Git-Repositories ablegen.

Es sind jedoch bei Weitem nicht alle PuTTY-Nutzer betroffen. Nur solche, die SSH-Schlüssel nach dem EC-Verfahren NIST P-521 – was den Kreis der Opfer drastisch einschränkt. Zudem müssen diese PuTTY nutzen, eine SSH-Verbindung mit bereits vom Angreifer übernommener Infrastruktur aufbauen und eine Weile halten. Ein passives Abhören der verschlüsselten Pakete – etwa durch einen Angreifer, der lediglich eine Firewall im Netz des Opfers kontrolliert – ist zudem nicht zielführend.

Bereits seit 2001 bedient sich PuTTY eigener Verfahren, um pseudo-zufällige Werte zu erzeugen; nach Aussage der Entwickler liegt das daran, dass Windows in früheren Versionen schlicht keinen kryptografisch zuverlässigen Zufallszahlengenerator enthielt. Der nun veröffentlichte Sicherheitsfehler ist jedoch nicht seit 23, sondern "erst" seit gut 7 Jahren in PuTTY enthalten: Die im Februar 2017 erschienene Version 0.68 unterstützte erstmals ECC-Verfahren und führte auch den Fehler ein. Die am vorgestrigen Montag, 15. April erschienene Version 0.81 behebt ihn wiederum. Und das nachhaltig: Die Entwickler haben ihr fehlerbehaftetes Verfahren zur Erstellung von Pseudozufallszahlen komplett weggeworfen und greifen auf die in RFC 6979 standardisierte Methode zurück.

Doch nicht allein PuTTY ist betroffen, auch Programme, die sich auf PuTTY als integrierten SSH-Client stützen, erben die Sicherheitslücke. So sind TortoiseSVN, TortoiseGIT, WinSCP, FileZilla und möglicherweise weitere Programme aus der langen Liste auf PuTTY basierender Software anfällig. Nutzer dieser Software müssen überprüfen, welche Maßnahmen sie unverzüglich ergreifen sollten.

Zusätzlich sollten sie sicherstellen, ob ihr SSH-Schlüssel vom Typ ecdsa-sha2-nistp521 ist – das lässt sich am einfachsten mit dem SSH-Schlüsselwerkzeug PuTTYgen überprüfen. Lädt der Nutzer seinen SSH-Schlüssel aus der entsprechenden Datei in PuTTYgen, zeigt das Programm ihn im Feld "Public key for pasting into OpenSSH authorized_keys file" an. Lautet die erste Zeile "ecdsa-sha2-nistp521", handelt es sich um einen anfälligen Schlüssel.

Erscheint der Schlüsseltyp "ecdsa-sha2-nistp521" als erste Zeile im PuTTYgen-Fenster, ist Vorsicht geboten.

(Bild: Screenshot / heise security)

Zur Vorsicht sollten Anwender ihren SSH-Schlüssel in diesem Fall austauschen – insbesondere, wenn sie viel mit öffentlich zugänglichen Git-Repositories arbeiten oder häufig SSH-Verbindungen zu möglicherweise fremdbestimmten Servern aufbauen. Das kann besonders für Verwalter größerer Serverfarmen viel Arbeit bedeuten, ist aber notwendig: Der Schlüssel ist schlicht nicht mehr vertrauenswürdig.

PuTTY ist ein Urgestein der Admin-Werkzeuge – die Versionsgeschichte des freien SSH-Clients geht bis ins Jahr 1999 zurück. Immer wieder war das beliebte Tool Ziel von Malware- und Malvertising-Kampagnen, so auch vor wenigen Wochen.

(cku)