AMD untersucht eine mit Zen 3 eingeführte Spectre-like Schwachstelle
Im Großen und Ganzen hat die neue Zen-3-Architektur von AMD viel Lob eingeheimst: abermals verbesserte IPC bei gleich gebliebenem Takt, deutlich verbesserte Spiele-Performance dank überarbeiteter Cache-Architektur, etliche neue Features und Funktionen und das alles bei erheblich niedrigerem Stromverbrauch trotz höherer Anzahl an Kernen gegenüber den jüngsten Intel-CPUs.
Doch es gab auch ein paar schiefe Zwischentöne. Da wäre zum einen die mangelhafte Verfügbarkeit der Ryzen 5000. Dafür zeigten Kunden und Medien allerdings weitestgehend Verständnis. Wer fremdfertigen lässt wie AMD es tut und sich im Vorfeld auf eine bestimmte Anzahl an Wafer festlegen muss, die er bucht, findet sich dann eben in der Falle, wenn ein Produkt aufgrund guter Leistungen stärker nachgefragt wird als vermutet/erhofft. Mit einzelnen Modellen wird das erst jetzt, mehr als 4 Monate nach der Markteinführung, langsam besser. Noch immer liegt der Straßenpreis jedoch über der UVP.
Der zweite Punkt betrifft die Aspekte WHEA-Errors im Eventlog ggf. flankiert von Abstürzen, sowie USB-Problemen mit den neuen Chipsätzen der 500er Serie, die womöglich ihren gemeinsamen Ursprung in den erweiterten Stromspartechniken haben, die mit Zen 3 eingeführt wurden. AMD untersucht das gerade und die letzten AGESA-Versionen brachten wohl Linderung, was zeigt, dass AMD auf der richtigen Spur ist.
Nun jedoch hat AMD selbst ein Whitepaper veröffentlicht, ausgerechnet zur Markteinführung der Server-Version von Zen 3 namens Milan, das eine mit Zen 3 neu eingeführte Schwachstelle beschreibt, die ähnlich wie Spectre V4 einzustufen ist. Wir erinnern uns: Anfang 2018 wurde eine neue Klasse an Schwachstellen in modernen Prozessoren bekannt, die deren leistungssteigernde Features wie Speculative Execution, Branch Prediction und Out of Order Execution für Seitenkanal-Angriffe ausnutzen. Inzwischen sind ein Dutzend dieser Schwachstellen in bestimmten Varianten bekannt. Ziel ist es dabei stets, Daten eines Tasks, Prozesses oder einer Instanz abzugreifen, auf den/die man eigentlich keinen Zugriff haben sollte.
Während Zen 3 und Zen 2 einige Mitigationen in Hardware erhielten zur Absicherung gegen die alten, bekannten Spectre-like Lücken, hat AMD bei Zen 3 offenbar eine neue Schwachstelle aufgerissen. Die Rede ist dabei von Predictive Store Forwarding (PSF), eine Technologie, die eingeführt wurde, um Abhängigkeiten zwischen Load und Store aufzulösen und dem Prozessor damit die Möglichkeit zu eröffnen, spekulativ weiter vorauszurechnen mit dem Ziel, die Leistung zu erhöhen. Dieses Feature schafft jedoch laut AMD zwei Möglichkeiten für einen Angreifer ähnlich wie bei Spectre V4 über Umwege an Daten zu gelangen, die ihn nichts angehen:
CAUSES OF INCORRECT PSF
Incorrect PSF predictions can occur due to at least the following two reasons. First, it is possible that the store/load pair had a dependency for a while but later stops having a dependency. This can occur if the address of either the store or load changes during the execution of the program.The second source of incorrect PSF predictions can occur if there is an alias in the PSF predictor structure. The PSF predictor is designed to track stores/load pairs based on portions of their RIP. It is possible that a store/load pair which does have a dependency may alias in the predictor with another store/load pair which does not. This may result in incorrect speculation when the second store/load pair is executed.
[..]
SECURITY ANALYSIS
Previous research has shown that when CPUs speculate on non-architectural paths it can lead to the potential of side channel attacks. In particular, programs that implement isolation, also known as ‘sandboxing’, entirely in software may need to be concerned with incorrect CPU speculation, which can occur due to bad PSF predictions.Because PSF speculation is limited to the current program context, the impact of bad PSF speculation is similar to that of speculative store bypass (e.g., Spectre v4). In both cases, a security concern arises if code exists that implements some kind of security control which can be bypassed when the CPU speculates incorrectly. This may occur if a program (such as a web browser) hosts pieces of untrusted code and the untrusted code is able to influence how the CPU speculates in other regions in a way that results in data leakage. This is similar to the security risk with other Spectre-type attacks.
In dem Whitepaper beschreibt AMD auch, wie PSF per MSR-Register-Änderungen deaktiviert werden kann, empfiehlt jedoch nicht, dies generell zu tun.
In der Zwischenzeit hat die auf Linux spezialisierte Webseite Phoronix einige Tests durchgeführt mit aktiviertem und deaktiviertem PSF. Diese zeigen im Mittel eine vernachlässigbare Auswirkung auf die Performance (59,38 vs. 59,19, also nicht einmal 1 Prozent). Bei einzelnen Aufgaben können die Auswirkungen allerdings durchaus größer sein, die Einzelwerte der Benchmark-Suite hat Phoronix leider nicht einzeln aufgeschlüsselt.