SSL Zertifikat von SuperFish gestohlen
Mit einfachsten Mitteln konnte der Hacker Robert Graham von Errata Security das SSL Zertifikat aus Superfish extrahieren und so zur Entschlüsselung von Datenströmen diverser Lenovo Rechnern nutzen. Dabei brauchte er keine Voodoo-Technik und auch nicht sonderlich lange um das passwortgeschützte Zertifikat zu entwenden und zu entschlüsseln.
Entwenden des Schlüssels
Graham musste zunächst das Zertifikat, welches verschlüsselt und passwortgeschützt ist aus Superfish extrahieren. Dazu hat er einfach einen Debugger benutzt und einen Haltepunkt (BreakPoint) direkt nach dem entschlüsseln des eigenen Programms (wie es bei Malware typisch ist) gesetzt.
Da nun das Programm entschlüsselt im Speicher lag, konnte er es mit dem Programm procdump da raus holen. Das Ergebnis war jedoch eine Binärdatei, das heißt da waren diverse binäre Zeichen mit enthalten.
Mit dem Programm strings kann man jedoch alles binäre wegschmeißen und erhält eine Datei mit lesbarem Text. Der Schlüssel war dann in dieser Datei enthalten.
Den Schlüssel jetzt zu finden ist nicht schwer: Einfach nach Private Key
suchen und fertig. Tatsächlich lag der Schlüssel mehrfach in der Datei.
Schlüssel entschlüsseln
Mit dem Schlüssel kann man nun im Grunde SSL Verbindungen (z.B. HTTPS) entschlüsseln und dem entsprechend den Datenfluss mitlesen. Da es so keinen Passwort-Cracker für SSL PEM Dateien gibt, hat Graham sich einen eigenen geschrieben.
Da die Brute-Force Methode (alle denkbaren Kombinationen an Zeichen durchgehen) Jahre dauert, fiel die Wahl auf ein Wörterbuch-Verfahren. Dabei benutzte er ein Wörterbuch mit Standardwörtern, wurde jedoch nicht fündig. Im memory-Dump (der Output vom Debugger von vorhin) muss eigentlich der Schlüssel auf drin enthalten sein. Aus der Datei, die strings lieferte, nahm er dann alle Wörter mit Kleinbuchstaben (da sonst 150.000 Wörter vorhanden wären) und wurde mit dem Wort „komodia“ nach 10 Sekunden fündig.
Mit dem OpenSSL tool kann man nun die Schlüssel entschlüsseln und so nun benutzen.
Reaktion von Lenovo
Da Superfish unter Lenovo vorinstalliert ist, hat Lenovo direkt ein Deinstallationstool mit Tipps zum entfernen aller Superfish Zertifikate und Einträge.