Intel-Unternehmen Mikrocode-Update, das (CVE-2019-14607), durch Manipulation der dynamischen Spannungs- und Frequenzregelung in der CPU das Beschädigen von Datenzellen zu initiieren, auch in Bereichen, die bei Berechnungen in isolierten Intel SGX-Enklaven verwendet werden. Der Angriff wird als Plundervolt bezeichnet und ermöglicht potenziell einem lokalen Benutzer, seine Privilegien im System zu erhöhen, einen Dienst zu verweigern und auf geschützte Daten zuzugreifen.
Der Angriff stellt nur im Kontext von Berechnungsmanipulationen in SGX-Enklaven eine Gefahr dar, da er Root-Rechte im System voraussetzt. Im einfachsten Fall kann ein Angreifer Verzerrungen in den Informationen hervorrufen, die in der Enklave verarbeitet werden, aber in komplexeren Szenarien wird nicht ausgeschlossen, dass gespeicherte private Schlüssel in der Enklave wiederhergestellt werden, die für die Verschlüsselung mit RSA-CRT- und AES-NI-Algorithmen verwendet werden. Diese Technik kann auch dazu verwendet werden, Fehler in ursprünglich korrekten Algorithmen zu erzeugen, um Schwachstellen im Umgang mit Speicher zu provozieren, beispielsweise um auf Bereiche jenseits des zugewiesenen Puffers zuzugreifen.
Prototypcode für den Angriff auf GitHub
Die Methode besteht darin, Bedingungen zu schaffen, unter denen unvorhergesehene Datenverzerrungen bei Berechnungen in SGX entstehen, gegen die die Anwendung von Verschlüsselung und Speicherauthentifizierung in der Enklave keinen Schutz bietet. Um Verzerrungen hervorzurufen, können gängige Programmierschnittstellen zur Regelung von Frequenz und Spannung verwendet werden, die normalerweise zur Reduzierung des Energieverbrauchs im Leerlauf und zur Aktivierung maximaler Leistung bei intensiven Arbeiten eingesetzt werden. Die Frequenz- und Spannungseigenschaften betreffen den gesamten Chip und beeinflussen auch die Durchführung von Berechnungen in der isolierten Enklave.
Durch Änderung der Spannung können Bedingungen geschaffen werden, unter denen die Ladung nicht ausreicht, um die Speicherzelle innerhalb der CPU zu regenerieren, und ihr Wert sich ändert. Der Schlüsselunterschied zu dem Angriff ist, dass RowHammer es ermöglicht, den Inhalt einzelner Bits im DRAM-Speicher zu ändern, indem Daten aus benachbarten Zellen zyklisch gelesen werden, während Plundervolt es ermöglicht, Bits innerhalb der CPU zu ändern, wenn die Daten bereits aus dem Speicher geladen wurden, um Berechnungen durchzuführen. Diese spezifische Eigenschaft ermöglicht es, die in SGX implementierten Mechanismen zur Integritätsüberprüfung und Datenverschlüsselung im Speicher zu umgehen, da die Werte im Speicher korrekt bleiben, jedoch bei Operationen mit ihnen verfälscht werden können, bevor das Ergebnis im Speicher gespeichert wird.
Wenn dieser geänderte Wert im Multiplikationsprozess während der Verschlüsselung verwendet wird, wird der resultierende Chiffretext inkorrekt. Da der Angreifer die Möglichkeit hat, einen Handler in SGX für die Verschlüsselung seiner Daten anzusprechen, kann er durch das Auslösen von Fehlern Statistiken über die Änderung des Chiffretexts am Ausgang sammeln und innerhalb weniger Minuten den in der Enklave gespeicherten Schlüssel wiederherstellen. Der ursprüngliche Text am Eingang und der korrekte Chiffretext am Ausgang sind bekannt, der Schlüssel bleibt unverändert, und die Ausgabe des inkorrekten Chiffretexts weist auf die Verfälschung eines Bits auf den entgegengesetzten Wert hin.
Durch die Analyse der angesammelten Paare von korrekten und verfälschten Chiffretexten bei verschiedenen Fehlern kann man mithilfe von Differential Fault Analysis-Methoden (DFA, ) mögliche Schlüssel, die für die symmetrische AES-Verschlüsselung verwendet werden, und anschließend, durch die Analyse der Überschneidungen von Schlüsseln in verschiedenen Gruppen, den gesuchten Schlüssel bestimmen.

Das Problem betrifft verschiedene Intel-Prozessoren, einschließlich Intel Core CPUs der 6. bis 10. Generation sowie der 5. und 6. Generation der Xeon E3, der 1. und 2. Generation der Intel Xeon Scalable, Xeon D,
Xeon W und Xeon E.
Wir erinnern daran, dass die SGX-Technologie (
Software Guard Extensions) erschien in den Intel Core Prozessoren der sechsten Generation (Skylake) und eine Reihe von Anweisungen, die es Anwendungen auf Benutzerebene ermöglichen, geschützte Speicherbereiche — Enklaven — zuzuweisen, deren Inhalt selbst von der Kernel und Code, die in den Modi ring0, SMM und VMM ausgeführt werden, nicht gelesen oder geändert werden kann. Eine Übergabe der Kontrolle an den Code in der Enklave ist nicht mit traditionellen Übergabefunktionen und Manipulationen von Registern und Stacks möglich — zur Übergabe der Kontrolle an die Enklave wird eine speziell entwickelte neue Anweisung verwendet, die die Berechtigungen überprüft. Gleichzeitig kann der in der Enklave platzierte Code klassische Methoden des Aufrufs verwenden, um auf Funktionen innerhalb der Enklave zuzugreifen, sowie eine spezielle Anweisung, um externe Funktionen aufzurufen. Zum Schutz vor Hardwareangriffen, wie dem Anschluss eines DRAM-Moduls, wird eine Verschlüsselung des Enklavenspeichers eingesetzt.
Quelle: opennet.ru
