Plundervolt ist eine neue Angriffsmethode auf Intel-Prozessoren, die die SGX-Technologie betrifft

Intel veröffentlicht Mikrocode-Update, das das Problem behebt Verwundbarkeit (CVE-2019-14607), erlauben Durch Manipulation des dynamischen Spannungs- und Frequenzkontrollmechanismus in der CPU können Schäden am Inhalt von Datenzellen entstehen, auch in Bereichen, die für Berechnungen in isolierten Intel SGX-Enklaven verwendet werden. Der Angriff heißt Plundervolt und ermöglicht es einem lokalen Benutzer möglicherweise, seine Privilegien auf dem System zu erweitern, einen Denial-of-Service auszulösen und Zugriff auf sensible Daten zu erhalten.

Der Angriff ist nur im Zusammenhang mit Manipulationen an Berechnungen in SGX-Enklaven gefährlich, da für die Ausführung Root-Rechte im System erforderlich sind. Im einfachsten Fall kann ein Angreifer eine Verfälschung der in der Enklave verarbeiteten Informationen erreichen, in komplexeren Szenarien besteht jedoch keine Möglichkeit, die in der Enklave gespeicherten privaten Schlüssel, die zur Verschlüsselung verwendet werden, mithilfe der Algorithmen RSA-CRT und AES-NI wiederherzustellen ausgeschlossen. Die Technik kann auch verwendet werden, um Fehler in anfänglich korrekten Algorithmen zu generieren, um Schwachstellen bei der Arbeit mit dem Speicher zu provozieren, beispielsweise um den Zugriff auf einen Bereich außerhalb der Grenzen des zugewiesenen Puffers zu organisieren.
Prototypcode zur Durchführung eines Angriffs veröffentlicht auf GitHub

Der Kern der Methode besteht darin, Bedingungen für das Auftreten unerwarteter Datenverfälschungen während der Berechnungen in SGX zu schaffen, vor denen die Verwendung von Verschlüsselung und Speicherauthentifizierung in der Enklave keinen Schutz bietet. Um Verzerrungen einzuführen, stellte sich heraus, dass es möglich war, Standard-Softwareschnittstellen zur Steuerung von Frequenz und Spannung zu verwenden, die normalerweise verwendet werden, um den Stromverbrauch während der Leerlaufzeit des Systems zu reduzieren und die maximale Leistung bei intensiver Arbeit zu aktivieren. Frequenz- und Spannungseigenschaften erstrecken sich über den gesamten Chip, einschließlich der Auswirkungen der Datenverarbeitung in einer isolierten Enklave.

Durch Ändern der Spannung können Sie Bedingungen schaffen, unter denen die Ladung nicht ausreicht, um eine Speicherzelle in der CPU zu regenerieren, und sich ihr Wert ändert. Wesentlicher Unterschied zum Angriff ReihenHammer besteht darin, dass Sie mit RowHammer den Inhalt einzelner Bits im DRAM-Speicher ändern können, indem Sie zyklisch Daten aus benachbarten Zellen lesen, während Sie mit Plundervolt Bits innerhalb der CPU ändern können, wenn die Daten bereits zur Berechnung aus dem Speicher geladen wurden. Mit dieser Funktion können Sie die in SGX verwendeten Integritätskontroll- und Verschlüsselungsmechanismen für Daten im Speicher umgehen, da die Werte im Speicher zwar korrekt bleiben, aber bei Operationen mit ihnen verfälscht werden können, bevor das Ergebnis in den Speicher geschrieben wird.

Wenn dieser geänderte Wert im Multiplikationsprozess des Verschlüsselungsprozesses verwendet wird, wird die Ausgabe mit falschem Chiffretext abgelehnt. Durch die Möglichkeit, einen Handler in SGX zu kontaktieren, um seine Daten zu verschlüsseln, kann ein Angreifer, der Fehler verursacht, Statistiken über Änderungen im ausgegebenen Chiffretext sammeln und in wenigen Minuten den Wert des in der Enklave gespeicherten Schlüssels wiederherstellen. Der ursprüngliche Eingabetext und der korrekte Ausgabe-Chiffretext sind bekannt, der Schlüssel ändert sich nicht und die Ausgabe eines falschen Chiffretexts zeigt an, dass ein Bit in den entgegengesetzten Wert verzerrt wurde.

Nach der Analyse der Wertepaare korrekter und beschädigter Chiffretexte, die sich bei verschiedenen Fehlern angesammelt haben, mithilfe von Methoden der differenziellen Fehleranalyse (DFA, Differenzielle Fehleranalyse) Dürfen vorhersagen Wahrscheinliche Schlüssel, die für die symmetrische AES-Verschlüsselung verwendet werden, und dann durch Analyse der Schnittmengen von Schlüsseln in verschiedenen Sätzen den gewünschten Schlüssel bestimmen.

Von dem Problem sind verschiedene Modelle von Intel-Prozessoren betroffen, darunter auch Intel-Core-CPUs mit 6
10. Generation sowie die fünfte und sechste Generation von Xeon E3, die erste und zweite Generation von Intel Xeon Scalable, Xeon D,
Xeon W und Xeon E.

Wir möchten Sie daran erinnern, dass die SGX-Technologie (Software Guard-Erweiterungen) erschien in den Intel Core-Prozessoren der sechsten Generation (Skylake) und bietet eine Reihe von Anweisungen, die es Anwendungen auf Benutzerebene ermöglichen, geschlossene Speicherbereiche – Enklaven – zuzuweisen, deren Inhalte nicht einmal vom Kernel und Code gelesen oder geändert werden können, der in den Modi Ring0, SMM und VMM ausgeführt wird. Es ist unmöglich, die Kontrolle über herkömmliche Sprungfunktionen und Manipulationen mit Registern und dem Stapel an den Code in der Enklave zu übertragen. Um die Kontrolle an die Enklave zu übertragen, wird ein speziell erstellter neuer Befehl verwendet, der eine Autoritätsprüfung durchführt. In diesem Fall kann der in der Enklave platzierte Code klassische Aufrufmethoden verwenden, um auf Funktionen innerhalb der Enklave zuzugreifen, und spezielle Anweisungen, um externe Funktionen aufzurufen. Die Enclave-Speicherverschlüsselung dient zum Schutz vor Hardwareangriffen wie der Verbindung mit einem DRAM-Modul.

Source: opennet.ru

Kommentar hinzufügen