SWAPGS eine neue spekulative Ausführungsanfälligkeit

SWAPGS-Exploit-2

Die Bitdefender-Forscher haben eine neue Sicherheitslücke identifiziert zum Mechanismus der spekulativen Ausführung von Anweisungen in modernen Prozessoren, welches den Namen SWAPGS erhielt, Dies entspricht dem Namen des Prozessorbefehls, der das Problem verursacht.

Verletzlichkeit ermöglicht es einem unprivilegierten Angreifer, den Inhalt von Kernel-Speicherbereichen zu ermitteln oder durch die Ausführung virtueller Maschinen. Das Problem wurde bei Intel-Prozessoren (x86_64) bestätigt und betrifft teilweise AMD-Prozessoren, für die der primäre Angriffsvektor nicht aufgeführt ist.

Zuvor implementierte Spectre- und Meltdown-Anti-Schwachstellen-Methoden bieten keinen Schutz vor SWAPGS-Angriffen mit Intel-Prozessoren, es wurden jedoch bereits Lösungen für Linux, ChromeOS, Android und Windows vorgeschlagen.

Die Schwachstelle gehört zur Spectre v1-Klasse und basiert auf der Idee, Daten aus dem Prozessor-Cache abzurufen, die nach der spekulativen Ausführung von Anweisungen verbleiben.

Konvertierungsvorhersageblöcke in modernen CPUs nutzen die proaktive Ausführung einiger Anweisungen, deren Ausführung wahrscheinlicher ist, um die Leistung zu verbessern, ohne jedoch auf die Berechnung aller Faktoren zu warten, die ihre Ausführung bestimmen (z. B. wenn Übergangsbedingungen oder Zugriffsparameter noch nicht berechnet wurden).

Wenn die Prognose nicht bestätigt wird, verwirft der Prozessor das Ergebnis der spekulativen Ausführung, aber die dabei verarbeiteten Daten werden im Cache des Prozessors abgelegt und können mithilfe von Methoden zur Bestimmung des Cache-Inhalts über Kanäle von Drittanbietern wiederhergestellt werden, die die Änderung der Zugriffszeit auf zwischengespeicherte und nicht zwischengespeicherte Daten analysieren.

Über SWAPGS

Die Besonderheit des neuen Angriffs besteht in der Nutzung eines Lecks, das bei der spekulativen Ausführung der SWAPGS-Anweisung entsteht, Wird in Betriebssystemen verwendet, um den GS-Registrierungswert zu überschreiben, wenn die Steuerung vom Benutzerbereich an den Betriebssystemkernel übertragen wird (der im Benutzerbereich verwendete GS-Wert wird durch den in Kerneloperationen verwendeten Wert ersetzt).

Der Linux-Kernel in GS speichert den per_cpu-Zeiger, das für den Zugriff auf Kerneldaten verwendet wird, und verweist auf TLS (Thread Local Storage) im Benutzerbereich.

Um einen doppelten Aufruf der SWAPGS-Anweisung nach wiederholtem Kernel-Zugriff aus dem Kernel-Space oder bei der Ausführung von Code, der keinen GS-Register-Ersatz erfordert, auszuschließen, wird vor der Anweisung eine Prüfung und ein bedingter Übergang durchgeführt.

Der spekulative Ausführungsmechanismus verhindert die Codeausführung mit der SWAPGS-Anweisung. ohne auf das Prüfergebnis zu warten, und wenn der ausgewählte Zweig nicht festgeschrieben ist, wird das Ergebnis verworfen.

Deshalb Es kann vorkommen, dass spekulativ ein Zweig ausgewählt wird, der die Ausführung von SWAPGS angibt, aber während der spekulativen Ausführung wird der Wert des GS-Registers durch den SWAPGS-Befehl geändert und in abhängigen Speicheroperationen verwendet, die auf der CPU zwischengespeichert werden.

Die Forscher schlugen zwei Angriffsszenarien vor. für die Exploit-Prototypen erstellt wurden.

  • Das erste Szenario basiert auf der Situation, in der die SWAPGS-Anweisung nicht spekulativ ausgeführt wird, obwohl sie in der tatsächlichen Ausführung verwendet wird, und das zweite Szenario ist das Gegenteil, in dem die SWAPGS-Anweisung spekulativ ausgeführt wird, obwohl dies eigentlich nicht der Fall sein sollte.
  • Für jedes Szenario gibt es zwei operative Optionen: Der Angreifer kann den Wert an einer bestimmten Adresse im Kernelbereich ermitteln und der Angreifer kann an zufälligen Adressen im Kernel nach einem bestimmten Wert suchen.

Der Fix erfordert die Installation eines Kernel-Updates sowohl auf dem Hauptsystem als auch auf den Gastumgebungen, gefolgt von einem Systemneustart. Um den Schutz unter Linux zu deaktivieren, kann die Option „nospectre_v1“ verwendet werden, die auch Maßnahmen zur Blockierung der SWAPGS-Schwachstelle deaktiviert.

Der Fix ist als Patch für den Linux-Kernel verfügbar., das bereits in den Versionen 4.19.65, 5.2.7, 4.14.137, 4.9.188 und 4.4.188 enthalten ist, während für die verschiedenen Linux-Distributionen die entsprechenden Korrekturen im Laufe dieser und der folgenden Woche eintreffen werden.


Hinterlasse einen Kommentar

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

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.