Neue Attacke auf Daten von virtuellen Maschinen

Die IT-Sicherheitsforscherin Sophia D’Antoine von Trail of Bits hat im Blog des Unternehmens die Beschreibung einer neuen Methode zur Datenübertragung zwischen isolierten virtuellen Maschinen veröffentlicht, deren Prozesse auf einem physischen Prozessor ausgeführt werden – einer so genannten Seitenkanalattacke.

Die Schaffung eines Seitenkanals für virtuelle Maschinen ist an sich nichts Neues – es gibt Attacken, die darauf basieren, dass virtuelle Maschinen, die auf ein und demselben physischen Rechner laufen, ein und dieselbe Hardware benutzen, insbesondere den Cache des Prozessors. Da jeder Systemprozess in der Lage ist, den Zustand des Caches mit Hilfe von Befehlen zum Löschen und Laden des Arbeitsspeicherinhalts zu steuern, kann die eine virtuelle Maschine den Speicherinhalt der anderen virtuellen Maschine aus dem Cache herausziehen. Solche Angriffe werden zum Diebstahl von Chiffrierungsschlüsseln, zur Identifizierung einer physischen Maschine aus einer virtuellen Maschine in der Cloud und zum direkten Datenaustausch zwischen virtuellen Maschinen über die physische Ebene eingesetzt.

Die von D’Antoine vorgeschlagene Seitenkanalmethode besteht in der Ausnutzung von Artefakten der Pipeline, die bei der Optimierung der Out-of-Order-Befehlsausführung auftreten. Das Exploit platziert in der Pipeline einen Thread, der die Änderung der Ausführungsfolge provoziert. Wenn auf demselben Prozessorkern ein Thread aus einer anderen virtuellen Maschine ausgeführt wird, führt die Änderung der Befehlsausführungsfolge dazu, dass die Daten aus dem einen Thread bei der Verarbeitung des anderen Threads benutzt werden. Vergleicht das Exploit das erhaltene Resultat der Befehlsausführung mit dem erwarteten Resultat, erhält es auf diese Weise Daten, die zu der anderen virtuellen Maschine gehören.

Die Forscherin weist darauf hin, dass das Speichermodell einer x86/64-Architektur zu den starken Modellen gehört, das bedeutet, dass die Pipeline selbst bei einer Änderung der Befehlsausführungsfolge die Reihenfolge der Lösch- und Ladebefehle aus dem Speicher befolgt. Doch dabei können sich die Befehle zum Löschen und Laden aus verschiedenen Threads miteinander vermischen, was es dem einen Thread ermöglicht, die Daten des anderen zu stehlen.

„Daraus folgt, dass die Pipeline, selbst wenn Ihre virtuelle Maschine von anderen virtuellen Maschinen isoliert ist, nicht in der Lage ist, die Befehle aus Ihren Prozessen von den Befehlen fremder Prozesse zu unterscheiden, und wir können das zu unseren Zwecken ausnutzen“, schreibt D’Antoine.

Die vorgestellte Angriffsmethode nutzt faktisch einen fundamentalen Fehler in der х86/64-Prozessarchitektur aus, was eine Gegenwehr wesentlich erschwert. Bisher ist nichts über die Entwicklung eines Proof-of-Concept-Exploits bekannt.

Quelle: Trail of Bits

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.