Das Unternehmen AMD hat Informationen über eine neue Klasse von mikroarchitektonischen Angriffen auf seine Prozessoren bekannt gegeben – die TSA (Transient Scheduler Attack). Dieser Angriff ermöglicht es einem Angreifer, die Mechanismen zur Isolierung von CPUs zu umgehen und Daten zu bestimmen, die in anderen Kontexten verarbeitet werden, zum Beispiel die Informationen im Benutzerbereich zu identifizieren, die auf Kernel-Ebene verarbeitet werden, oder Daten aus einem Gastbetriebssystem zu erfahren, die in einem anderen Gastbetriebssystem verwendet werden.
Die Schwachstellen wurden während der Entwicklung eines Tools entdeckt, das von Forschern der Microsoft und der ETH Zürich erstellt wurde, um die mikroarchitektonische Isolation zwischen verschiedenen Zugriffsbereichen wie dem Kernel, virtuellen Maschinen und Prozessen einem Stresstest zu unterziehen.
Die Angriffsmetode basiert auf der Abhängigkeit der Ausführungszeit bestimmter Anweisungen vom Zustand mikroarchitektonischer Strukturen. Wenn der Prozessor auf den schnellen Abschluss einer Datenleseanweisung aus dem Speicher wartet (zum Beispiel in der Annahme, dass die Daten im L1-Cache vorhanden sind), und es ihm nicht gelingt, die Daten erfolgreich zu erhalten, tritt ein Zustand der "falschen Vollständigkeit" (false completion) auf. In diesem Fall kann der Prozessor noch vor der Feststellung dieses Zustands spekulative Ausführungen anderer Operationen planen, die von dem Ergebnis der Speicherladeanweisung abhängen.
Da der Ladevorgang nicht abgeschlossen ist, werden die damit verbundenen Daten vom Prozessor als ungültig betrachtet, und die Ladeoperation wird später erneut wiederholt. Abhängige Operationen werden ebenfalls erneut ausgeführt, sobald die korrekten Daten verfügbar sind. In diesem Fall erfolgt jedoch kein Pipeline-Flush nach der Ausführung der Anweisung, für die der Zustand der "falschen Vollständigkeit" festgestellt wurde, und inkorrekte Daten können an abhängige Operationen weitergeleitet werden.
Das Durchführen solcher Operationen verändert nicht den Zustand des Caches und des TLB (Translation Lookaside Buffer), d.h. die Daten können nicht mit traditionellen Methoden zur Bestimmung des Cache-Zustands wiederhergestellt werden. Diese Daten beeinflussen jedoch die Ausführungszeit anderer Instruktionen. Die Analyse der Ausführungszeit kann als Quelle für Informationslecks aus mikroarchitektonischen Strukturen dienen, die nach der spekulativen Ausführung anderer Operationen verbleiben.
Je nach Quelle der Extraktion verbleibender Daten wurden zwei Schwachstellen identifiziert:
- CVE-2024-36350 (TSA-SQ — TSA Store Queue) — ein Leck aus dem temporären Speicherpuffer für Schreiboperationen (Store Queue), das es ermöglicht, das Ergebnis von Schreibinstruktionen im Speicher zu bestimmen.
- CVE-2024-36357 (TSA-L1 — TSA L1 Data Cache) — ein Leck durch den L1D-Cache.
Die Schwachstellen treten bei AMD-Prozessorfamilien (Fam19h) auf der Basis der Mikroarchitekturen Zen 3 und Zen 4 auf. Zum Beispiel ist das Problem in den Serien CPU AMD Ryzen 5000/6000/7000/8000, AMD EPYC Milan/Milan-X/Genoa/Genoa-X/Bergamo/Siena, AMD Instinct MI300A, AMD Ryzen Threadripper PRO 7000 WX, AMD EPYC Embedded 7003/8004/9004/97X4 sowie AMD Ryzen Embedded 5000/7000/V3000 vorhanden.
Die notwendigen Änderungen zur Behebung der Sicherheitsanfälligkeit sind Teil des Dezember-Updates des Mikrocode und der PI-Firmware (Platform Initialization), die an die OEM-Hersteller geliefert wurden. Die Patches zum Schutz vor dieser Anfälligkeit wurden zur Integration in den Linux-Kernel bereitgestellt (um den Schutz zu deaktivieren, der sich negativ auf die Leistung auswirkt, ist die Kernel-Befehlszeilenoption „tsa=off“ vorgesehen). Die Korrektur wurde ebenfalls im Xen-Hypervisor hinzugefügt. Um die Anfälligkeit zu beheben, sind sowohl das Mikrocode-Update als auch die Aktivierung des Schutzmodus auf Kernel- oder Hypervisor-Ebene erforderlich.
Quelle: opennet.ru
