Who ya gonna call?
Die Prozessor-Sicherheitslücken Spectre und Meltdown halten auch noch mehr als drei Jahre nach ihrer Entdeckung Cybersicherheitsexpert:innen und Software-Entwickler:innen auf der ganzen Welt auf Trab. Eine Gruppe internationaler Forscher:innen, darunter CISPA-Faculty Dr. Michael Schwarz, hatte 2017 Schwachstellen in der Hardware von Mikroprozessoren entdeckt, aus denen sich unterschiedliche Angriffsszenarien entwickeln lassen. Große Softwareunternehmen halten zwar seither mit Betriebssystem- und Software-Patches sowie mit Microcode-Updates dagegen. Einige dieser Gegenmaßnahmen haben sich aber als weniger wirksam herausgestellt als angenommen. CISPA-Forschungsgruppenleiter Dr. Marco Patrignani hat zusammen mit seinem Kollegen Marco Guarnieri vom IMDEA Software Institute ein Modell entwickelt, mit dem einige der Schutzmaßnahmen gegen Spectre-Angriffe schon vor ihrer Implementierung formal verifiziert werden können. Ihr Paper „Exorcising Spectres with Secure Compilers“ wurde auf der renommierten IT-Konferenz CCS angenommen.
Ist die Rede von Spectre (zu Deutsch: Gespenst oder Geist), denkt zumindest in der Cybersicherheits-Community längst niemand mehr an den Bond-Streifen aus dem Jahr 2015. Eher wird hier der Ruf nach den Ghostbusters laut. Denn die Sicherheitslücke erschütterte bei ihrem Bekanntwerden die IT-Welt und treibt noch heute ihr Unwesen. Kein Wunder, denn fast alle Prozessoren, die seit Mitte der 90er-Jahre hergestellt wurden, sind davon betroffen. Milliarden private Rechner, Smartphones, Serverstrukturen und Clouddienste waren lange Zeit unbemerkt einem Angriffsrisiko von enormem Ausmaß ausgesetzt.
Zum Verhängnis wird den Prozessoren, auch CPU (Central Processing Unit) genannt, ihr leistungsoptimiertes Design. Um Rechenzeiten zu verkürzen, versuchen sie in Phasen geringer Auslastung vorauszuahnen, welche Berechnungen als nächstes gebraucht werden. Noch bevor der Befehl dazu tatsächlich gegeben wird, beginnt die CPU parallel zu anderen Aufgaben mit dem Rechnen. Man spricht hierbei von spekulativer Ausführung (speculative execution). Die Ergebnisse der Berechnungen werden im Cache zwischengespeichert und sind schnell abrufbar, falls sie gebraucht werden. Falls nicht, werden sie verworfen. Allerdings hat sich gezeigt, dass die verworfenen Daten eine Spur im Cache-Speicher hinterlassen und dort von Angreifer:innen ausgelesen werden können. So werden zum Beispiel im Browser gespeicherte Passwörter oder Informationen aus auf dem Desktop geöffneten Dokumenten zugänglich. Als wäre das nicht schlimm genug, konnten die Forscher:innen außerdem zeigen, dass es möglich ist, Schadcode einzuschleusen, der die spekulative Ausführung geschickt manipuliert. Die Malware kann dafür sorgen, dass ganz bestimmte Daten im Cache-Speicher landen. Die CPU liefert Angreifer:innen damit selbst sensibelste Daten quasi auf Bestellung.
Um Spectre-Angriffe zu verhindern, spielen Softwarebetreiber:innen ständig Updates ein, mit denen die Lücke softwareseitig geschlossen werden soll. Wirklich beheben lässt sie sich damit allerdings nicht. Sicherheitsexpert:innen feilen deshalb an immer neuen Lösungen. Einige setzen dabei bei den sogenannten Compilern an, das sind Computerprogramme, welche Programmiersprache in eine vom Computer les- und ausführbare Sprache übersetzen. Die weit verbreiteten Compiler Visual C++ von Microsoft und C++ von Intel können beispielsweise inzwischen automatisch Spekulationsbarrieren einfügen. Das heißt die spekulative Ausführung wird überall dort, wo es um sensitive Daten geht, unterbunden. Zumindest in der Theorie funktioniert das gut. „Allerdings haben sich die Gegenmaßnahmen auf Compiler-Ebene noch nicht als wirklich sicher erwiesen“, erklärt CISPA-Forschungsgruppenleiter Marco Patrignani.
Der 34-Jährige hat zusammen mit Marco Guarnieri ein formales Modell entwickelt, mit dem Sicherheitsgarantien für Spectre-Schutzmaßnahmen auf Ebene der Compiler gegeben werden können. „Indem Softwarehersteller ihre Patches in unserer formalen Sprache modellieren und den Schritten in unserem Paper folgen, können sie die Sicherheit ihrer Patches beweisen, noch bevor sie sie implementieren. Gelingt das nicht, zeigt es ihnen, wo noch die Schwachstellen sind." In einem zweiten Schritt sollen die gewonnen Erkenntnisse in die Entwicklung von Compilern einfließen, erklärt Patrignani.
Patrignani ist seit 2017 am CISPA. Der 34-Jährige hat die vergangenen zwei Jahre in Kalifornien verbracht, wo er an dem vom Bundesministerium für Bildung und Forschung (BMBF) geförderten CISPA-Stanford-Programm teilgenommen hat. Für ihn eine unvergessliche Zeit. „Das war eine tolle Erfahrung. Es kommt ja nicht so häufig vor, dass man irgendwo langgeht und alle zehn Meter einen Turing-Award-Gewinner trifft.“ Der Turing- Award, benannt nach dem britischen Mathematiker, Krypto-Analytiker und Informatiker Alan Turin, gilt als höchste Auszeichnung in der Informatik. Mittlerweile leitet Marco Patrignani eine eigene Forschungsgruppe am CISPA. Saarbrücken kennt er aber schon einige Zeit länger. Von 2015 bis 2017 war er dort als Postdoc am Max-Planck-Institut für Softwaresysteme (MPI-SWS) beschäftigt. Patrignanis Hauptforschungsinteresse gilt der Sicherheit von Programmiersprachen und Compilern.