Weniger als 24 Stunden, nachdem Microsoft CVE-2020-0601 offengelegt hatte – die kritische Windows-CryptoAPI-Schwachstelle, die Microsoft am 14. Januar 2020 nach einem vertraulichen Hinweis der NSA gepatcht hatte –, twitterte der Forscher Saleem Rashid Bilder von Rick Astleys „Never Gonna Give You Up“, das auf GitHub.com und NSA.gov über HTTPS lief. Der Rickroll war die Demonstration: Sein Exploit brachte Edge und Chrome dazu, gespoofte Seiten als echt verifiziert zu behandeln, wobei Brave, andere Chrome-Derivate und Internet Explorer wahrscheinlich ebenfalls betroffen waren. Firefox zeigte keine Anzeichen einer Betroffenheit.
Die Schwachstelle zerstörte die Zertifikatsvalidierung für Websites, Software-Updates, VPNs und andere sicherheitskritische Verwendungen unter Windows 10, einschließlich Windows Server 2016 und 2019, vollständig. Die Mechanik: CryptoAPI vertraute den mit jedem Zertifikat gelieferten Elliptische-Kurven-Parametern, anstatt standarddefinierte Kurven zu verlangen, sodass ein Angreifer eigene Generatorparameter liefern konnte – wodurch Windows sich auf einen vom Angreifer gewählten öffentlichen Schlüssel „einigen“ konnte und gefälschte Zertifikate als echt durchgingen.
Rashid sagte, der Exploit habe etwa 100 Zeilen Code verwendet, und er könne ihn auf 10 komprimieren, wenn er „ein paar nützliche Tricks“ wegließe. Die Geschwindigkeit der Demonstration – innerhalb eines Tages, gegen eine ohne öffentliche technische Beschreibung offengelegte Schwachstelle – zeigte, wie wenig Abstand zwischen „gepatchter Schwachstelle“ und „weaponisiertem Exploit“ blieb, wenn die Ursache ein Designfehler und kein Speicherfehler ist.
Der Ursprung der Offenlegung verlieh der Geschichte ihre Ironie: Die NSA hatte den Fehler vertraulich gemeldet, dessen praktische Wirkung auch die Identitätsfälschung der eigenen Website der NSA umfasste. Der Rickroll – die übliche humoristische Demonstration ernster Sicherheitslücken – machte die Identitätsfälschung sofort auch für Laien sichtbar.
Eine Krypto-Bibliothek, die die Elliptische-Kurven-Parameter des Angreifers akzeptiert, lässt den Angreifer den Schlüssel wählen, auf den sich die Mathematik einigt – die Verifikation wird zum bloßen Abnicken.
Die Ursache ist ein Designprinzip, kein Implementierungsfehler: Vom Aufrufer gelieferte kryptografische Parameter zu akzeptieren verwandelt Agilität in universelle Fälschung.
Der Wirkungsradius umfasste alles, was TLS schützt – Websites, Software-Updates, VPNs – auf allen Windows-10- und Server-2016/2019-Rechnern.
Ein funktionierender Spoof gelang in etwa 100 Zeilen innerhalb eines Tages nach der Offenlegung, bevor die meisten Verteidiger den Patch überhaupt eingespielt hatten.
Das Demonstrationsziel war der Melder des Fehlers selbst, wodurch sich der Fehlermodus unmöglich als theoretisch abtun ließ.
Kryptografische Agilität ist Angriffsfläche: Jeder Parameter, den ein Verifizierer von der nicht vertrauenswürdigen Seite akzeptiert, ist ein Regler, an dem der Angreifer drehen kann – die Konstanten fest verdrahten, nichts Optionales verifizieren.
Microsofts Patch vom 14. Januar 2020 behob die CryptoAPI-Validierungsschwachstelle für Windows 10 und die betroffenen Serverversionen; die Quelle berichtet von keiner Ausnutzung in freier Wildbahn über Rashids Demonstration hinaus.
DEN BELEGEN FOLGEN
Die Quellen
- Critical Windows 10 vulnerability used to Rickroll the NSA and Github Ars Technica · arstechnica.com ·