LVI ist eine neue Klasse von Angriffen auf den spekulativen Ausführungsmechanismus in der CPU

Veröffentlicht Informationen über eine neue Klasse von Angriffen LVI (Lastwertinjektion, CVE-2020-0551) über den spekulativen Ausführungsmechanismus in Intel-CPUs, der zum Durchsickern von Schlüsseln und geheimen Daten aus Intel SGX-Enklaven und anderen Prozessen verwendet werden kann.

Eine neue Klasse von Angriffen basiert auf der Manipulation derselben mikroarchitektonischen Strukturen, die bei Angriffen verwendet werden MDS (Mikroarchitekturdaten-Sampling), Spectre und Meltdown. Gleichzeitig werden neue Angriffe nicht durch bestehende Schutzmethoden gegen Meltdown, Spectre, MDS und andere ähnliche Angriffe blockiert. Ein wirksamer LVI-Schutz erfordert Hardwareänderungen an der CPU. Wenn der Schutz programmgesteuert organisiert wird, indem der Compiler nach jedem Ladevorgang aus dem Speicher den LFENCE-Befehl hinzufügt und den RET-Befehl durch POP, LFENCE und JMP ersetzt, wird zu viel Overhead aufgezeichnet – laut Forschern führt ein vollständiger Softwareschutz zu einer Verringerung Leistung um das 2- bis 19-fache.

Ein Teil der Schwierigkeit, das Problem zu blockieren, wird durch die Tatsache ausgeglichen, dass der Angriff derzeit eher theoretisch als praktisch ist (der Angriff ist theoretisch möglich, aber sehr schwer umzusetzen und nur in synthetischen Tests reproduzierbar).
Intel angeeignet Das Problem weist ein mittleres Gefahrenniveau auf (5.6 von 10) und veröffentlicht Aktualisierung der Firmware und des SDK für die SGX-Umgebung, wobei versucht wurde, den Angriff mithilfe einer Problemumgehung zu blockieren. Die vorgeschlagenen Angriffsmethoden sind derzeit nur auf Intel-Prozessoren anwendbar, es kann jedoch nicht ausgeschlossen werden, dass LVI für andere Prozessoren angepasst wird, auf die Angriffe der Meltdown-Klasse anwendbar sind.

Das Problem wurde im vergangenen April vom Forscher Jo Van Bulck von der Universität Leuven identifiziert. Anschließend wurden unter Beteiligung von neun Forschern anderer Universitäten fünf grundlegende Angriffsmethoden entwickelt, von denen jede die Existenz spezifischerer ermöglicht Optionen. Unabhängig davon haben im Februar dieses Jahres auch Forscher von Bitdefender festgestellt gefunden eine der LVI-Angriffsvarianten und meldete sie Intel. Die Angriffsvarianten zeichnen sich durch die Verwendung unterschiedlicher mikroarchitektonischer Strukturen aus, wie beispielsweise des bisher verwendeten Speicherpuffers (SB, Store Buffer), Füllpuffers (LFB, Line Fill Buffer), FPU-Kontextwechselpuffers und First-Level-Cache (L1D). bei Angriffen wie z ZombieLoad, RIDL, Fallout, LazyFP, Vorboten и Kernschmelze.

LVI ist eine neue Klasse von Angriffen auf den spekulativen Ausführungsmechanismus in der CPU

Die wichtigste Ehrungen Der LVI gegen MDS-Angriffe besteht darin, dass MDS die Bestimmung des Inhalts mikroarchitektonischer Strukturen manipuliert, die nach spekulativer Fehlerbehandlung oder Lade- und Speichervorgängen im Cache verbleiben
Bei LVI-Angriffen können die Daten des Angreifers in mikroarchitektonische Strukturen eingefügt werden, um die anschließende spekulative Ausführung des Codes des Opfers zu beeinflussen. Mithilfe dieser Manipulationen kann ein Angreifer den Inhalt privater Datenstrukturen in anderen Prozessen extrahieren, wenn er bestimmten Code auf dem Ziel-CPU-Kern ausführt.

LVI ist eine neue Klasse von Angriffen auf den spekulativen Ausführungsmechanismus in der CPU

für Ausbeutungsproblem im Code des Opferprozesses sollten uns treffen Spezielle Codesequenzen (Gadgets), in die ein vom Angreifer gesteuerter Wert geladen wird und das Laden dieses Werts dazu führt, dass Ausnahmen (Fault, Abort oder Assist) ausgelöst werden, das Ergebnis verworfen und die Anweisung erneut ausgeführt wird. Wenn eine Ausnahme verarbeitet wird, erscheint ein spekulatives Fenster, in dem die im Gadget verarbeiteten Daten verloren gehen. Insbesondere beginnt der Prozessor mit der Ausführung eines Codeabschnitts (Gadget) im spekulativen Modus, stellt dann fest, dass die Vorhersage nicht gerechtfertigt war und setzt die Vorgänge auf ihren ursprünglichen Zustand zurück, die während der spekulativen Ausführung verarbeiteten Daten werden jedoch im L1D-Cache abgelegt und mikroarchitektonischen Puffern und steht für den Abruf aus ihnen unter Verwendung bekannter Methoden zur Bestimmung von Restdaten über Drittkanäle zur Verfügung.

Die „Assist“-Ausnahme wird im Gegensatz zur „Fault“-Ausnahme intern vom Prozessor behandelt, ohne dass Software-Handler aufgerufen werden müssen. Eine Unterstützung kann beispielsweise auftreten, wenn das A-Bit (Zugriff) oder das D-Bit (Dirty) in der Speicherseitentabelle aktualisiert werden muss. Die Hauptschwierigkeit bei der Durchführung eines Angriffs auf andere Prozesse besteht darin, wie durch Manipulation des Opferprozesses eine Unterstützung eingeleitet werden kann. Derzeit gibt es keine zuverlässigen Möglichkeiten, dies zu tun, aber es ist möglich, dass sie in Zukunft gefunden werden. Die Möglichkeit eines Angriffs wurde bisher nur für Intel SGX-Enklaven bestätigt, andere Szenarien sind theoretisch oder unter synthetischen Bedingungen reproduzierbar (erfordert das Hinzufügen bestimmter Gadgets zum Code).

LVI ist eine neue Klasse von Angriffen auf den spekulativen Ausführungsmechanismus in der CPU

LVI ist eine neue Klasse von Angriffen auf den spekulativen Ausführungsmechanismus in der CPU

Mögliche Angriffsvektoren:

  • Datenverlust aus Kernelstrukturen in Prozesse auf Benutzerebene. Der Schutz des Linux-Kernels vor Spectre-1-Angriffen sowie der SMAP-Schutzmechanismus (Supervisor Mode Access Prevention) verringern die Wahrscheinlichkeit eines LVI-Angriffs erheblich. Das Hinzufügen zusätzlicher Schutzmaßnahmen für den Kernel kann erforderlich sein, wenn in Zukunft einfachere LVI-Angriffsmethoden identifiziert werden.
  • Datenverlust zwischen verschiedenen Prozessen. Der Angriff erfordert das Vorhandensein bestimmter Codeteile in der Anwendung und die Definition einer Methode zum Auslösen einer Ausnahme im Zielprozess.
  • Datenverlust von der Host-Umgebung zum Gastsystem. Der Angriff wird als zu komplex eingestuft und erfordert verschiedene schwer umzusetzende Schritte und Vorhersagen der Aktivität im System.
  • Datenverlust zwischen Prozessen in verschiedenen Gastsystemen. Der Angriffsvektor kommt dem Organisieren von Datenlecks zwischen verschiedenen Prozessen nahe, erfordert aber zusätzlich komplexe Manipulationen, um die Isolation zwischen Gastsystemen zu umgehen.

Von Forschern herausgegeben mehrere Prototypen mit einer Demonstration der Prinzipien der Durchführung eines Angriffs, sie sind jedoch noch nicht für die Durchführung realer Angriffe geeignet. Das erste Beispiel ermöglicht es Ihnen, die spekulative Codeausführung im Opferprozess umzuleiten, ähnlich wie bei der rückgabeorientierten Programmierung (ROP,Rückgabeorientierte Programmierung). In diesem Beispiel handelt es sich bei dem Opfer um einen speziell vorbereiteten Prozess, der die notwendigen Gadgets enthält (einen Angriff auf echte Prozesse Dritter durchzuführen ist schwierig). Das zweite Beispiel ermöglicht es uns, in die Berechnungen während der AES-Verschlüsselung innerhalb der Intel SGX-Enklave einzugreifen und ein Datenleck während der spekulativen Ausführung von Anweisungen zu organisieren, um den Wert des für die Verschlüsselung verwendeten Schlüssels wiederherzustellen.


Source: opennet.ru

Kommentar hinzufügen