Informationen ĂŒber die neue Klasse von Angriffen (Load Value Injection, ) auf den Mechanismus der spekulativen AusfĂŒhrung in Intel-CPUs, die zur DurchfĂŒhrung von SchlĂŒssel- und Geheimdatenlecks aus Intel SGX-Enclaves und anderen Prozessen verwendet werden können.
Die neue Angriffs-Klasse basiert auf Manipulationen der gleichen mikroarchitektonischen Strukturen wie bei den Angriffen (Microarchitectural Data Sampling), . Dabei werden neue Angriffe nicht durch bestehende SchutzmaĂnahmen gegen Meltdown, Spectre, MDS und Ă€hnliche Angriffe blockiert. Um einen effektiven Schutz gegen LVI zu gewĂ€hrleisten, sind Hardware-Ănderungen an der CPU erforderlich. Bei der Absicherung ĂŒber Software, durch das HinzufĂŒgen der LFENCE-Anweisung nach jeder Speicherladung und das Ersetzen der RET-Anweisung durch POP, LFENCE und JMP, entstehen zu hohe Kosten â SchĂ€tzungen von Forschern zufolge wĂŒrde ein vollstĂ€ndiger Software-Schutz die Leistung zwischen 2-19 mal verringern.
Teilweise wird die Schwierigkeit, das Problem zu blockieren, dadurch ausgeglichen, dass der Angriff derzeit eher theoretischer als praktischer Natur ist (der Angriff ist theoretisch möglich, aber sehr schwer in der Umsetzung und nur in synthetischen Tests reproduzierbar).
Intel-Unternehmen das Problem als mĂ€Ăig gefĂ€hrlich (5,6 von 10) und ein Firmware-Update und SDK fĂŒr die SGX-Umgebung bereitgestellt, um den Angriff zu umgehen. Die vorgeschlagenen Angriffsmethoden sind derzeit nur fĂŒr Intel-Prozessoren anwendbar, jedoch ist eine Anpassung von LVI fĂŒr andere Prozessoren, die fĂŒr Meltdown-Angriffe anfĂ€llig sind, nicht ausgeschlossen.
Das Problem wurde im April letzten Jahres von dem Forscher Jo Van Bulck von der UniversitĂ€t Löwen entdeckt, nach dem fĂŒnf grundlegende Angriffsstrategien entwickelt wurden, an denen 9 Forscher anderer UniversitĂ€ten beteiligt waren, von denen jede die Existenz spezifischerer ermöglicht. UnabhĂ€ngig davon veröffentlichten im Februar dieses Jahres auch Forscher von Bitdefender Ergebnisse. eine der Angriffsmöglichkeiten von LVI und darĂŒber in Intel berichtet. Die Angriffsmöglichkeiten unterscheiden sich durch die Verwendung verschiedener mikroarchitektonischer Strukturen, wie z. B. Store Buffer (SB), Line Fill Buffer (LFB), Kontextwechsel-Puffer der FPU und Level-1-Cache (L1D), die zuvor in Angriffen wie , , , , und .
Das Haupt von LVI im Vergleich zu den MDS-Angriffen besteht darin, dass MDS die Definition des Inhalts mikroarchitektonischer Strukturen manipuliert, die im Cache nach spekulativer Behandlung von Ausnahmen (Fault) oder Load- und Store-Operationen verbleiben, wÀhrend
LVI-Angriffe es ermöglichen, dass die Daten des Angreifers in mikroarchitektonische Strukturen eingefĂŒgt werden, um die nachfolgende spekulative AusfĂŒhrung des Codes des Opfers zu beeinflussen. Durch solche Manipulationen kann der Angreifer den Inhalt geschĂŒtzter Datenstrukturen in anderen Prozessen wĂ€hrend der AusfĂŒhrung bestimmter Codes auf dem Ziel-CPU-Kern extrahieren.
FĂŒr im Code des Opfers spezielle Code-Sequenzen (Gadgets), in denen ein vom Angreifer kontrollierter Wert geladen wird, und das Laden dieses Wertes fĂŒhrt zur Erzeugung von Ausnahmen (Fault, Abort oder Assist), die das Ergebnis verwerfen und die Anweisung erneut ausfĂŒhren. Bei der Behandlung der Ausnahme entsteht ein spekulatives Fenster, wĂ€hrend dessen die im Gadget verarbeiteten Daten auslaufen. Insbesondere beginnt der Prozessor, einen Abschnitt des Codes (Gadget) im spekulativen Modus auszufĂŒhren, stellt dann fest, dass die Vorhersage fehlerhaft war, und setzt die VorgĂ€nge in ihren ursprĂŒnglichen Zustand zurĂŒck, aber die im Prozess der spekulativen AusfĂŒhrung verarbeiteten Daten verbleiben im L1D-Cache und in mikroarchitektonischen Puffern und sind fĂŒr die Extraktion mit bekannten Methoden zur Bestimmung von Restdaten ĂŒber SeitenkanĂ€le zugĂ€nglich.
Die Ausnahme «assist» wird im Gegensatz zu «fault» im Prozessor ohne den Aufruf von Software-Handlern verarbeitet. Assist kann beispielsweise auftreten, wenn das Bit A (Accessed) oder D (Dirty) in der Seitentabelle des Speichers aktualisiert werden muss. Die gröĂte Schwierigkeit bei Angriffen auf andere Prozesse liegt darin, wie man das Auftreten von Assist initiieren kann, indem man den Zielprozess manipuliert. Derzeit gibt es keine zuverlĂ€ssigen Methoden, dies zu tun, aber in Zukunft könnte dies möglich sein. Die Möglichkeit, einen Angriff durchzufĂŒhren, ist derzeit nur fĂŒr Intel SGX-Enklaven bestĂ€tigt; andere Szenarien sind theoretisch oder können unter synthetischen Bedingungen reproduziert werden (es sind bestimmte Gadgets im Code erforderlich).
Mögliche Angriffsvektoren:
- Datenlecks aus Kernelstrukturen in den Benutzerprozess. Der im Linux-Kernel vorhandene Schutz gegen Angriffe der Klasse Spectre 1 sowie der SMAP-Schutzmechanismus (Supervisor Mode Access Prevention) verringern erheblich die Wahrscheinlichkeit eines LVI-Angriffs. ZusĂ€tzlicher Schutz im Kernel kann erforderlich sein, falls in Zukunft einfachere Methoden zur DurchfĂŒhrung von LVI-Angriffen entdeckt werden.
- Datenlecks zwischen verschiedenen Prozessen. FĂŒr den Angriff sind bestimmte Codefragmente in der Anwendung und die Bestimmung der Methode zur Ausnahmebehandlung im Zielprozess erforderlich.
- Datenlecks aus der Host-Umgebung in das Gastsystem. Der Angriff wird als zu komplex eingestuft und erfordert die DurchfĂŒhrung verschiedener schwer umsetzbarer Schritte und Vorhersagen ĂŒber die AktivitĂ€ten im System.
- Datenlecks zwischen Prozessen in verschiedenen Gastsystemen. Der Angriffsvektor Àhnelt der Organisation eines Datenlecks zwischen verschiedenen Prozessen, erfordert jedoch zusÀtzlich komplexe Manipulationen, um die Isolierung zwischen den Gastsystemen zu umgehen.
Forschern wurden veröffentlicht mit einer Demonstration der Prinzipien zur DurchfĂŒhrung eines Angriffs, aber sie sind derzeit fĂŒr tatsĂ€chliche Angriffe ungeeignet. Das erste Beispiel ermöglicht die Umleitung der spekulativen AusfĂŒhrung von Code im Zielprozess anhand des rĂŒckorientierten Programmierens., Return-Oriented Programming). In diesem Beispiel tritt ein speziell prĂ€parierter Prozess als Ziel auf, der die erforderlichen Gadgets enthĂ€lt (die Anwendung der Angriffe auf reale externe Prozesse ist erschwert). Das zweite Beispiel ermöglicht es, in die Berechnungen wĂ€hrend der AES-VerschlĂŒsselung innerhalb des Intel SGX-Enklaves einzudringen und einen Datenleck wĂ€hrend der spekulativen AusfĂŒhrung von Anweisungen zu organisieren, um den verwendeten VerschlĂŒsselungsschlĂŒssel wiederherzustellen.

Quelle: opennet.ru
