Mitglieder des Forscherteams, das Anfang letzten Jahres die Hardware-Sicherheitslücken Meltdown und Spectre ans Licht gebracht hat, haben nun Schwachstellen in Intels Software Guard Extensions (SGX) enthüllt. Michael Schwarz, Daniel Gruss und Samuel Weiser zeigen in ihrer neuesten wissenschaftlichen Veröffentlichung, wie sich die SGX-Enklaven im Prozessor dazu missbrauchen lassen, Schadcode zu verstecken, der selbst vor dem Administrator des Systems sicher ist.

SGX steckt in einer Reihe von Intel-Prozessoren seit der Skylake-Architektur und wird vor allem in Cloud-Rechenzentren verwendet, um Krypto-Operationen zu schützen. Seltener wird es auch auf Desktop-Rechnern eingesetzt, um mit DRM geschützte Videos zu dekodieren.

Eine Blackbox im Prozessor

Mit SGX können Programme Code in einen geschützten Speicherbereich des Systems laden, der vom Intel-Prozessor selbst verwaltet wird. Nach der Provisionierung einer solchen Enklave kann auf dem System laufender Code in diese nicht mehr hineingucken und die dort vorhandene Software nicht mehr ändern. Selbst privilegierte Systemprozesse werden von der Hardware davon abgehalten, den Inhalt der Enklave zu lesen oder gar zu verändern. Außerdem kann ein sogenannter Remote Attestation Server jederzeit aus dem Netz verifizieren, dass der in der Enklave laufende Code nicht manipuliert wurde.

Die Kommunikation mit der Enklave läuft über einen Kerneltreiber und ist durch die Hardware-Schutzfunktionen von SGX stark eingeschränkt. Eine solche Enklave ist also typischerweise eine Art Blackbox-Software, die Daten vom Betriebssystem entgegennimmt, bearbeitet und dann neue Werte zurückgibt.

Der innerhalb der Enklave laufende Code unterliegt dabei starken Einschränkungen. Zum Beispiel darf er keine Systemaufrufe ausführen, das muss der Rest der Applikation erledigen, die über den Kerneltreiber mit der Enklave verbunden ist. Ist die Enklave erst einmal eingerichtet, wird der Inhalt vor dem Rest des Systems geschützt, damit keine Daten heraussickern, die eigentlich geheim bleiben sollten.

Lange Zeit musste Code, der im normalen Betriebsmodus von SGX laufen soll, mit einem von Intel zertifizierten Entwicklerschlüssel signiert sein. Ansonsten führte der Prozessor ihn nicht aus. Intel stellt dabei recht hohe Sicherheitsanforderungen an Firmen, die solche Schlüssel nutzen und SGX-Code programmieren wollen. Die zweite Version der Architektur erlaubt allerdings die sogenannte Flexible Launch Control, bei der nicht mehr Intel, sondern der Systemadministrator bestimmt, wer lauffähigen Code signieren kann.

Malware, die vor Systemadministratoren sicher ist

Den Forschern der TU Graz ist es nun gelungen, Schadcode in eine solche Enklave einzubringen. Das ist vor allem deshalb brisant, da dieser Schadcode über die SGX-Funktionen vor dem Rest des Systems geschützt wird und selbst von Administratoren mit Systemrechten nicht mehr entfernt werden kann. Gruss und seinen Forscherkollegen schafften es, über Sicherheitslücken in der Launch-Control-Funktionalität von Intel an Schlüssel zu kommen, mit denen sie Schadcode in eine Enklave laden können. Das Problem, dass dieser Code keine Systemaufrufe ausführen kann, um das System außerhalb der Enklave zu manipulierten, lösen sie mit der bewährten Hacker-Technik Return-Oriented Programming (ROP).

ROP macht sich legitimen Code auf einem System – in diesem Fall in einem Programm, das mit der Enklave kommunizieren soll – zu Nutze, um bösartige Funktionen auszuführen. Dabei puzzelt sich der Angreifer aus harmlosen Instruktionen der Software, die in den Speicher geladen wurden (sogenannten Gadgets), neue Funktionen zusammen, die seine Schadcode-Funktionen umsetzen. So springt er von einem Teil der harmlosen Applikation so geschickt zum nächsten, dass aus einfachen Rechenoperationen ein Angriff wird, der Daten auf dem System verändert oder geheime Informationen ausliest.

Mit dieser Technik schaffen es die Forscher dann schließlich auch, von einer geschützen Enklave aus, den dazugehörigen Programmcode auf dem Rest des Systems so zu missbrauchen, dass sie geheime Daten auslesen oder das System lahmlegen können. Dabei können Sicherheitsfunktionen wie Address Space Layout Randomization (ASLR) sie nicht aufhalten. Die Forscher postulieren somit einen Angriff, der sensible Exploits oder Schadcode in einer Enklave versteckt und dann von außerhalb des Systems ausgelöst wird. Das hindert Schutzsoftware und Sicherheitstechniker daran, die Exploits oder den geheimen Schadcode vor dem Angriff zu entdecken, da er durch SGX vor dem Rest des Systems versteckt wird.

SGX im BIOS abschalten

Der Angriff ist extrem kompliziert und eignet sich deswegen wohl nur für ganz spezielle, gezielte Attacken. Etwa wenn ein Zero-Day-Exploit im Spiel ist, der viel wert ist und den der Angreifer so lange wie möglich vor dem Rest der Welt verstecken will. Gruss und seine Kollegen nutzen die Funktion Transactional Synchronization eXtensions (TSX) für ihren ROP-Angriff. Dementsprechend nennen sie einen Teil ihres Angriffes TSX-based Address Probing (TAP). Da sie TSX missbrauchen, um ihre ROP-Gadgets zu finden, sind nur die Intel-Prozessoren verwundbar, die TSX-Befehle unterstützen. Bisher gibt es keine Software-Updates, die vor den postulierten Angriffen schützen. Allerdings kann man die SGX-Funktionen auf allen Systemen, die sie verwenden, im BIOS abschalten. Bisher scheint das der einzige wirksame Schutz gegen eine solche Art Angriff zu sein.

Gegenüber dem englischen IT-Nachrichtenportal The Register sagte ein Intel-Vertreter, dass man die Schwachstellen als außerhalb dessen betrachte, vor dem SGX schützen soll. Die Aufgabe von SGX sei es, Code in einer Schutzumgebung auszuführen. Laut Intel liegt es demnach beim Systembesitzer sicherzustellen, dass der in eine SGX-Enklave geladene Code vertrauenswürdig sei. In der Zwischenzeit arbeiten Gruss und seine Forscherkollegen allerdings schon daran, Software zu entwickeln, die vor ihren Angriffen schützt. Die Schutzfunktionen könnten laut den Forschern allerdings zu Geschwindigkeitsverlusten führen. (fab)