LVI — eine neue Klasse von Angriffen auf den Mechanismus der spekulativen Ausführung in CPUs.

Veröffentlicht wurden Informationen über eine neue Angriffsart LVI (Load Value Injection, CVE-2020-0551) auf den Mechanismus der spekulativen Ausführung in Intel-CPUs, die zur Organisation von Schlüssel- und Geheimdatenlecks aus Intel SGX-Enklaven und anderen Prozessen verwendet werden können.

Die neue Angriffsart basiert auf Manipulationen der gleichen mikroarchitektonischen Strukturen wie bei den Angriffen MDS (Microarchitectural Data Sampling), Spectre und Meltdown. Diese neuen Angriffe werden durch bestehende Schutzmaßnahmen gegen Meltdown, Spectre, MDS und ähnliche Angriffe nicht blockiert. Um einen effektiven Schutz gegen LVI zu gewährleisten, sind Änderungen der Hardware im CPU erforderlich. Bei der Implementierung eines softwarebasierten Schutzes durch das Hinzufügen der LFENCE-Anweisung nach jeder Speicherladeoperation und den Austausch der RET-Anweisung durch POP, LFENCE und JMP entstehen zu hohe Overheadkosten — Schätzungen der Forscher zufolge würde ein vollständiger softwarebasierter Schutz zu einem Rückgang der Leistung um das 2- bis 19-fache führen.

Teilweise wird die Schwierigkeit, das Problem zu beheben, dadurch gemildert, dass die Angriffe derzeit mehr theoretischer als praktischer Natur sind (der Angriff ist theoretisch möglich, aber sehr schwer umzusetzen und bisher nur in synthetischen Tests reproduzierbar).
Das Unternehmen Intel zugewiesen dem Problem ein moderates Gefahrenlevel (5,6 von 10) und die ein Firmware- und SDK-Update für die SGX-Umgebung, in dem versucht wurde, den Angriff auf Umwegen zu blockieren. Die vorgeschlagenen Angriffsmethoden sind derzeit nur auf Intel-Prozessoren anwendbar, jedoch ist es nicht ausgeschlossen, dass LVI auch auf andere Prozessoren anpassbar ist, auf die Angriffe der Meltdown-Klasse zutreffen.

Das Problem wurde im April letzten Jahres von dem Forscher Jo Van Bulck von der Universität Leuven entdeckt. Daraufhin wurden mit Unterstützung von 9 Forschern anderer Universitäten fünf grundlegende Angriffsmethoden entwickelt, von denen jede weitere spezifische Varianten. Unabhängig davon haben Forscher von Bitdefender im Februar dieses Jahres ebenfalls wurde entdeckt eine der Angriffsvarianten von LVI, die an Intel gemeldet wurde. Die Angriffsmöglichkeiten variieren durch die Nutzung verschiedener mikroarchitektonischer Strukturen wie Store Buffer (SB), Line Fill Buffer (LFB), FPU-Kontextwechsel-Buffer und Level-1-Daten-Cache (L1D), die zuvor in Angriffen wie ZombieLoad, RIDL, Fallout, LazyFP, Foreshadow und Meltdown.

LVI - eine neue Klasse von Angriffen auf den Mechanismus der spekulativen Ausführung in CPUs

Das Hauptmerkmal des Unterschieds zwischen LVI und den MDS-Angriffen besteht darin, dass MDS die Definition des Inhalts mikroarchitektonischer Strukturen manipuliert, die nach spekulativer Fehlerverarbeitung oder den Lade- und Speicheroperationen im Cache verbleiben, während
LVI-Angriffe es ermöglichen, die Daten des Angreifers in mikroarchitektonische Strukturen einzufügen, um das nachfolgende spekulative Ausführen von Code des Opfers zu beeinflussen. Durch diese Manipulationen kann der Angreifer Inhalte geschützter Datenstrukturen in anderen Prozessen extrahieren, während bestimmter Code auf dem Ziel-CPU-Kern ausgeführt wird.

LVI - eine neue Klasse von Angriffen auf den Mechanismus der spekulativen Ausführung in CPUs

Für Nutzung des Problems im Code des Zielprozesses müssen vorhanden sein spezielle Code-Sequenzen (Gadgets), in denen ein von einem Angreifer kontrollierter Wert geladen wird. Das Laden dieses Wertes führt zu Ausnahmen (Fehler, Abbruch oder Unterstützung), die das Ergebnis verwerfen und die Anweisung erneut ausführen. Bei der Behandlung der Ausnahme entsteht ein spekulatives Fenster, in dem Informationen, die im Gadget verarbeitet werden, entwichen können. Insbesondere beginnt der Prozessor, ein Code-Segment (Gadget) im spekulativen Modus auszuführen, erkennt dann, dass die Vorhersage nicht eingetroffen ist und rollt die Operationen in ihren ursprünglichen Zustand zurück. Die während der spekulativen Ausführung verarbeiteten Daten verbleiben jedoch im L1D-Cache und in Mikroarchitektur-Puffern und sind mit bekannten Methoden zur Bestimmung von Restdaten über Seitenkanäle zugänglich.

Die Ausnahme „assist“ wird im Gegensatz zu „fault“ innerhalb des Prozessors ohne den Aufruf von Software-Handlern verarbeitet. Assist kann beispielsweise auftreten, wenn das Bit A (Accessed) oder D (Dirty) in der Speichertabelle aktualisiert werden muss. Die Hauptschwierigkeit bei der Durchführung eines Angriffs auf andere Prozesse besteht darin, wie man das Auftreten von assist initiiert, indem man den Zielprozess manipuliert. Derzeit gibt es keine zuverlässigen Methoden, dies zu tun, aber in Zukunft könnte es Lösungen geben. Bisher ist die Möglichkeit eines Angriffs nur für Intel SGX-Enklaven bestätigt, während andere Szenarien theoretisch oder unter synthetischen Bedingungen reproduzierbar sind (das Hinzufügen bestimmter Gadgets zum Code ist erforderlich).

LVI - eine neue Klasse von Angriffen auf den Mechanismus der spekulativen Ausführung in CPUs

LVI - eine neue Klasse von Angriffen auf den Mechanismus der spekulativen Ausführung in CPUs

Mögliche Angriffsvektoren:

  • Datenleck aus Kernel-Strukturen in Prozesse auf Benutzerebene. Der vorhandene Schutz des Linux-Kernels gegen Spectre 1-Angriffe sowie der SMAP (Supervisor Mode Access Prevention)-Schutzmechanismus verringern erheblich die Wahrscheinlichkeit eines LVI-Angriffs. Zusätzlicher Schutz im Kernel könnte erforderlich sein, wenn in Zukunft einfachere Methoden zur Durchführung von LVI-Angriffen festgestellt werden.
  • Datenleck zwischen verschiedenen Prozessen. Für einen Angriff sind bestimmte Codefragmente in der Anwendung und die Feststellung der Methode zur Ausnahmebehandlung im Zielprozess erforderlich.
  • Datenleck aus der Host-Umgebung ins Gastsystem. Der Angriff gehört zur Kategorie der zu komplexen Angriffe, die die Durchführung verschiedener schwer umsetzbarer Schritte erfordern und Vorhersagen über die Systemaktivität benötigen.
  • Datenleck zwischen Prozessen in verschiedenen Gastsystemen. Der Angriffsvektor ähnelt dem eines Datenlecks zwischen verschiedenen Prozessen, erfordert jedoch zusätzlich komplexe Manipulationen, um die Isolation zwischen den Gastsystemen zu umgehen.

Von Forschern veröffentlicht mehrere Prototypen mit einer Demonstration der Angriffsdurchführungsprinzipien, die jedoch derzeit für echte Angriffe ungeeignet sind. Das erste Beispiel ermöglicht es, die spekulative Ausführung von Code im Zielprozess umzuleiten, ähnlich wie bei der Rücksprungorientierten Programmierung (ROP, Return-Oriented Programming). In diesem Beispiel handelt es sich um einen speziell vorbereiteten Prozess, der die erforderlichen Gadgets enthält (der Einsatz der Angriffsmethode auf reale Drittprozesse gestaltet sich als schwierig). Im zweiten Beispiel wird es ermöglicht, in die Berechnungen bei der AES-Verschlüsselung innerhalb des Intel SGX-Enklaven einzudringen und während der spekulativen Ausführung von Anweisungen einen Datenleck zu organisieren, um den für die Verschlüsselung verwendeten Schlüssel wiederherzustellen.


Video abspielen

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster