AMD hat die potenzielle Anfälligkeit von AMD Zen 3-CPUs für den Spectre-STL-Angriff bestätigt

AMD hat einen Bericht veröffentlicht, in dem die Sicherheit der in Prozessoren der Zen-3-Serie implementierten PSF-Optimierungstechnologie (Predictive Store Forwarding) analysiert wird. Die Studie bestätigte theoretisch die Anwendbarkeit der im Mai 4 identifizierten Spectre-STL-Angriffsmethode (Spectre-v2018). PSF-Technologie, in der Praxis wurden jedoch bisher keine Codevorlagen gefunden, die zu einem Angriff führen könnten, und die Gesamtgefahr wird als unbedeutend eingeschätzt.

Erinnern wir uns daran, dass der Spectre-v4-Angriff (Speculative Store Bypass) auf der Wiederherstellung von Daten basiert, die sich im Prozessor-Cache abgelegt haben, nachdem das Ergebnis der spekulativen Ausführung von Vorgängen bei der Verarbeitung abwechselnder Schreib- und Lesevorgänge mithilfe indirekter Adressierung verworfen wurde. Wenn ein Lesevorgang auf einen Schreibvorgang folgt (z. B. mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), ist der Offset der Leseadresse möglicherweise bereits bekannt, da ähnliche Vorgänge ausgeführt werden (Lesevorgänge sind). werden viel häufiger durchgeführt und Lesevorgänge können aus dem Cache durchgeführt werden) und der Prozessor kann spekulativ Lesevorgänge vor Schreibvorgängen durchführen, ohne auf die Berechnung des Indirektionsoffsets des Schreibvorgangs warten zu müssen.

Mit dieser Funktion kann ein Lesebefehl an einer Adresse auf einen alten Wert zugreifen, während der Speichervorgang noch nicht abgeschlossen ist. Wenn ein Vorhersagefehler vorliegt, wird die erfolglose spekulative Operation verworfen, aber Spuren ihrer Ausführung verbleiben im Prozessor-Cache und können mit einer der Methoden zur Bestimmung des Cache-Inhalts basierend auf einer Analyse von Zugriffsänderungen abgerufen werden Zeit für zwischengespeicherte und nicht zwischengespeicherte Daten.

PSF wird AMD Zen 3-Prozessoren hinzugefügt und optimiert STLF (Store-To-Load-Forwarding), das Lesevorgänge spekulativ ausführt, indem es die Beziehung zwischen Lese- und Schreibvorgängen vorhersagt. Bei der Verwendung von klassischem STLF führt der Prozessor eine „Lade“-Operation für die Daten durch, die direkt vom vorherigen „Speicher“-Befehl weitergeleitet wurden, ohne darauf zu warten, dass das Ergebnis tatsächlich in den Speicher geschrieben wird, sondern stellt sicher, dass die beim „Laden“ verwendeten Adressen und „store“-Befehle stimmen überein. Die PSF-Optimierung macht die Adressprüfung spekulativ und führt eine „Lade“-Operation durch, bevor die Adressinformationen berechnet wurden, wenn zuvor ein Speicher-/Ladepaar ausgeführt wurde, das eine einzelne Adresse manipuliert. Wenn die Vorhersage fehlschlägt, wird der Status zurückgesetzt, die Daten verbleiben jedoch im Cache.

Ein Angriff auf PSF ist nur im Rahmen einer Privilegienebene möglich, deckt nur den aktuellen Prozesskontext ab und wird durch Adressraumisolationsmethoden oder Hardware-Sandbox-Mechanismen blockiert. In diesem Fall können möglicherweise Software-Sandboxing-Methoden in Prozessen von dem Problem betroffen sein. Der Angriff stellt eine Bedrohung für Systeme wie Browser, virtuelle Codeausführungsmaschinen und JITs dar, die Code von Drittanbietern innerhalb eines einzelnen Prozesses ausführen (der Angriff könnte dazu führen, dass nicht vertrauenswürdiger Sandbox-Code Zugriff auf andere Prozessdaten erhält).

AMD hat eine Reihe von Methoden zum vollständigen oder selektiven Deaktivieren von PSF bereitgestellt, hat jedoch angesichts des vernachlässigbaren Risikos für die meisten Anwendungen empfohlen, diese Optimierung nicht standardmäßig zu deaktivieren. Um Prozesse selektiv zu schützen, die diejenigen isolieren, die nicht vertrauenswürdigen Code ausführen, wird vorgeschlagen, PSF durch Setzen der MSR-Bits „SSBD“ und „PSFD“ zu deaktivieren, auch für einzelne Threads. Für den Linux-Kernel wurden Patches mit der Implementierung der Befehlszeilenoptionen „psfd“ und „nopsfd“ vorbereitet, die steuern, wie PSF ein- und ausgeschaltet wird.

Source: opennet.ru

Kommentar hinzufügen