
Forscher von drei europäischen Universitäten haben
die Details des ersten bekannten Angriffs auf
SGX enthüllt .
Mit dem Befehlssatz SGX (Software Guard eXtensions) kann die Anwendung Enklaven erstellen - Bereiche im virtuellen Adressraum, die durch andere Prozesse, einschließlich des Betriebssystemkernels, vor dem Lesen und Schreiben von außerhalb dieses Bereichs geschützt sind. Enklaven werden auf Hardware- und Softwareebene isoliert: Dieser Speicher ist physisch vom restlichen Prozessorspeicher getrennt und verschlüsselt.
Der
Plundervolt- Angriff (CVE-2019-11157) verwendet die Betriebssystemschnittstelle, um die Spannung und Frequenz des Intel-Prozessors zu steuern - dieselbe Schnittstelle, die zum Übertakten der CPU während des Übertaktens verwendet wird. Durch Ändern der CPU-Spannung werden in wenigen Minuten Daten aus der Enklave extrahiert, einschließlich der Verschlüsselungsschlüssel.
Demo-Exploit-Code
auf GitHub veröffentlicht . Anfällige Prozessoren:
- Intel Core 6, 7, 8, 9 und 10 Generationen
- Intel Xeon E3 v5 und v6
- Intel Xeon E-2100 und E-2200
Den Forschern ist es gelungen, die Konzepte zweier bekannter Angriffe zu kombinieren:
- Rowhammer : Ändern Sie den Bitwert einer DRAM-Zelle von 1 auf 0 und umgekehrt, indem Sie Daten in benachbarte Zellen schreiben.
- CLKSCREW Processor Power Manipulation Dynamische Spannungs- und Frequenzskalierung (DVFS).
Plundervolt kombiniert die Prinzipien, die diesen beiden Angriffen zugrunde liegen. Durch DVFS wird die Spannung in den SGX-Speicherzellen geändert, was zu unerwünschten Datenänderungen in der Enklave führt.
Die Arbeit basiert auf früheren Reverse Engineering von Intel-Prozessoren. Er enthüllte, welche Register MSR (ModelSpecific Register) für die dynamische Änderung der CPU-Spannung nach einem Programmbefehl verantwortlich sind. Solche Register befinden sich in allen Intel-Prozessoren.
MSR undokumentiertes Registerschema mit Adresse 0x150Wie sich herausstellte, tritt bei anfälligen Prozessoren eine vorhersehbare Bitänderung auf. Beispielsweise ergibt im Core i3-7100U-Prozessor mit einem Spannungsabfall von 118 mV die Operation
0x80D36 * 0x21 = 0x109b3f6
einen vorhersagbar fehlerhaften Wert von
0xffffffffe109b417
bei einer Frequenz von 2 GHz.
Weitere Beispiele für fehlgeschlagene Multiplikationen im Core i3-7100U bei 2 GHz:
Diese kleinen Änderungen verletzen nicht die Privatsphäre von SGX. Stattdessen führen sie Fehler in SGX-Datenverarbeitungsvorgänge ein. Mit anderen Worten, Plundervolt knackt SGX nicht, sondern ändert das Ergebnis: „Unterspannung führt zu einer Änderung der Bits in den Prozessorbefehlen wie Multiplikation oder AES-Verschlüsselungsrunden (AES-NI)“, erklärt David Oswald, Akademiker an der Universität von Birmingham, einer der Autoren des wissenschaftlichen arbeiten. „Da SGX Daten nur verschlüsselt, wenn sie gelesen und in den Speicher geschrieben werden (jedoch nicht im Prozessor), werden diese Fehler durch den SGX-Speicherschutz nicht verhindert (da fehlerhafte Werte selbst in den Speicher geschrieben werden).“
Mit Plundervolt können Sie verschlüsselte Nachrichten sehen, die die SGX-Enklave verlassen, und dann den geheimen Schlüssel wiederherstellen, der ursprünglich zum Verschlüsseln von Daten verwendet wurde.


Forscher haben die Wirksamkeit des Angriffs durch die Einführung von Fehlern bei der Implementierung von Intel RSA-CRT und AES-NI in der SGX-Enklave nachgewiesen. Sie waren in der Lage, vollständige kryptografische Schlüssel mit geringem Rechenaufwand wiederherzustellen.
Code zum Testen des Angriffs (Repository auf GitHub)Der beschriebene Angriff erfordert keine radikale Erhöhung der Spannung, so dass die physische Sicherheit des Chips nicht gefährdet wird. Tatsächlich macht diese Eigenschaft von Plundervolt einen Angriff noch gefährlicher. Eine weitere gefährliche Eigenschaft ist, dass es viel schneller ist als die meisten anderen Angriffe auf Intel-Prozessoren wie Spectre, Meltdown, Zombieload, RIDL und andere. Die Tabelle zeigt die Anzahl der Iterationen, bis ein Multiplikationsfehler (
0xAE0000 * 0x18
) bei unterschiedlichen Unterspannungswerten im I3-7100U bei 2 GHz auftritt:
Das Ändern von Bits in AES-Multiplikationen ist sehr schnell. Das Abrufen eines AES-Schlüssels dauert beispielsweise einige Minuten, einschließlich der Berechnung, die erforderlich ist, um den Schlüssel aus dem fehlgeschlagenen Chiffretext abzurufen, sagt Oswald.
Unglücklicherweise für Angreifer ist der Plundervolt-Angriff aus der Ferne schwierig durchzuführen. Sie können einen Benutzer nicht auf eine Website locken und JavaScript ausführen. Die CPU-Spannung ändert sich bei dieser Methode nicht. Damit Plundervolt funktioniert, muss ein Opfer auf dem Computer als Root oder Administrator angemeldet sein. Dies erfordert Social Engineering und den Einsatz zusätzlicher Exploits.
Plundervolt
funktioniert nicht in virtualisierten Umgebungen wie virtuellen Maschinen und Cloud-Computing-Diensten, in denen das Gastbetriebssystem keinen Zugriff auf die Schnittstelle hat, die die Prozessorspannung steuert.
Plundervolt ist jedoch ein ernstes Problem. Das Forscherteam hat Intel im Juni 2019 über die Sicherheitsanfälligkeit informiert, und der CPU-Hersteller arbeitet seitdem an Patches. Firmware- und BIOS-Updates wurden am 10. Dezember 2019 als Teil der
INTEL-SA-00289- Sicherheitsempfehlungen veröffentlicht. Nach der Installation der Patches im BIOS können Sie die Schnittstelle zur Verwaltung von Spannung und Taktfrequenz deaktivieren.
Eine technische Beschreibung des Angriffs finden Sie in dem
wissenschaftlichen Artikel (pdf) , der im
Proceedings of the 41. IEEE Symposium on Security and Privacy Collection veröffentlicht wird.