Im Juli 2015 veröffentlichte der Hacker Phineas Fisher rund 400 GB an Daten des italienischen Überwachungsanbieters Hacking Team, darunter interne E-Mails. Unter diesen fand Costin Raiu von Kaspersky Lab eine Verhandlung aus dem Jahr 2013, in der der Exploit-Verkäufer Vitaliy Toropov dem Hacking Team einen Silverlight-Zero-Day anbot, der „vor 2,5 Jahren geschrieben“ worden sei und „alle Chancen habe, in den nächsten Jahren weiter zu überleben“ – ein Hinweis darauf, dass ein Exploit ohne Patch und ohne öffentliche Details möglicherweise noch Systeme infizierte, wenn Kaspersky ihn nur finden könnte.

Zero-Days werden üblicherweise zufällig entdeckt, bei der forensischen Aufarbeitung eines Sicherheitsvorfalls. Raiu versuchte das Gegenteil: Er erstellte ein Profil des Autors. Er zog die Proof-of-Concept-Exploits heran, die Toropov zwischen 2011 und 2013 bei Bug-Bounty-Programmen veröffentlicht hatte, bevor seine öffentlichen Offenlegungen versiegten, und bemerkte drei Debugging-Strings, die in den Dateien wiederholt auftauchten – Überbleibsel, die Entwickler routinemäßig und unbeabsichtigt in kompiliertem Code ausliefern. Im Juli schrieb er sie in eine YARA-Regel und verteilte diese über Kasperskys automatisches Exploit-Abwehrwerkzeug und sein kundengemeinsames Telemetrienetzwerk – und wartete.

Monate vergingen ohne Ergebnis. Dann, am 25. November 2015, passte eine Kundenmaschine im Nahen Osten: ein Silverlight-Exploit für Remotecodeausführung, der auf Code aus Toropovs veröffentlichtem Taschenrechner-PoC aufbaute. Stunden später tauchte eine zweite Probe auf VirusTotal auf, hochgeladen aus Laos und kompiliert am 21. Juli – zwei Wochen nachdem die geleakten E-Mails online gegangen waren. Kaspersky meldete die Schwachstelle, und Microsoft lieferte im Januar 2016 einen „kritischen“ Patch für den Silverlight-BinaryReader-Fehler aus.

Man kann einen Exploit jagen, den man noch nie gesehen hat: indem man den Autor fingerabdruckt, nicht die Probe – seine veröffentlichten Proof-of-Concepts tragen Debug-Strings, die die private Arbeit möglicherweise erbt.

Das Leak wurde als Frühwarnsystem zweckentfremdet: Ein gestohlener Verkaufsprospekt verriet Verteidigern, welcher ungesehene Exploit existierte, ungefähr wie alt er war und wer ihn gebaut hatte.

Urheberschaft ist eine Signatur: Exploit-Autoren verwenden ihre Bibliotheken wieder, und Debug-Code überlebt tendenziell bis in kompilierte Binärdateien, sodass veröffentlichte PoCs private Folgearbeiten fingerabdrucken können.

Das Sensornetzwerk existierte bereits: Eine YARA-Regel über Kasperskys Opt-in-Telemetrie verwandelte Tausende Kundenmaschinen in Stolperdrähte, ohne dass etwas Neues ausgerollt werden musste.

Die defensive Etikette hinterließ die Spur: Die Jahre, die Toropov damit verbrachte, Fehler verantwortungsvoll bei Bounty-Programmen offenzulegen – mit veröffentlichten PoCs –, wurden zum Fingerabdruck seiner nicht offengelegten Exploits.

Angriffszuordnung funktioniert auch umgekehrt: Die Gewohnheiten eines Autors sind eine Signatur. Wenn man das Artefakt nicht finden kann, modelliert man seinen Hersteller anhand dessen, was er veröffentlicht hat, und lässt die Sensoren auf die Übereinstimmung warten.

Kaspersky fand keine weiteren Proben, was darauf hindeutet, dass der Käufer den Exploit gezielt einsetzte; Raiu schätzte seinen Wert auf dem Zero-Day-Markt auf 20.000–40.000 US-Dollar. Toropov sagte gegenüber WIRED, der Exploit „sei nicht seiner“, nachdem er den Code untersucht hatte, bestätigte jedoch, dass die PoC-Teile von ihm stammten. Raiu nannte es das erste Mal, dass es seinem Team gelungen sei, etwas zu fangen, das es geplant hatte zu jagen, und merkte an, dass die Technik nun auf den öffentlichen Code anderer Verkäufer angewendet werden könne. Microsofts Patch beseitigte die konkrete Bedrohung; die Methode – den Autor fingerabdrucken und dann warten – blieb im Werkzeugkasten.

DEN BELEGEN FOLGEN

Die Quellen

  1. Hacking Team's Leak Helped Researchers Hunt Down a Zero-Day WIRED · wired.com ·