AMD & Intel: Spectre-Angriff missbraucht Micro-Op-Cache
Fast alle x86-CPUs seit 2011 (Intel) respektive 2017 (AMD) sind betroffen, mögliche Mitigationen sollen sehr viel Performance kosten.

I See Dead μOps - so heißt ein neuer Seitenkanalangriff, mit dem sich ähnlich wie mit den mannigfaltigen Spectre-Varianten eigentlich geschützte Daten aus einem Prozessor extrahieren lassen (PDF). Ein Forschungsteam der University of California und der University of Virginia warnt vor Gegenmaßnahmen, da diese die effektive Leistung der CPUs drastisch verringern könnten.
Bisherige Spectre-Attacken machten sich primär die spekulative Ausführung per Sprungvorhersage zunutze, um Informationen aus internen Puffern oder Arbeitsspeicher auszulesen, bei I See Dead μOps jedoch wird mehrere Ebenen tiefer angesetzt: Alle Intel-Prozessoren seit Sandy Bridge (2011) und Summit Ridge respektive Zen (2017) nutzen einen sogenannten Micro-Op-Cache.
Dieser kleine SRAM-Puffer fasst mehrere Hundert oder gar Tausende bereits vom Frontend decodierter Befehle, welche von dort zum Scheduler und den Rechenwerken gelangen. Ein solches Vorgehen spart Energie und beschleunigt die Geschwindigkeit des entsprechenden Codes drastisch, weil die Instruktionen nicht erst neu decodiert werden müssen.
Der Micro-Op-Cache ist äußerst wichtig
Allerdings hat diesen Vorgehen den eklatanten Nachteil, dass keine Sicherheitsprüfung der unverschlüsselten Befehle stattfindet und genau das macht sich I See Dead μOps zunutze. Das Team vergleicht das Vorgehen mit einem hypothetischen Flug: So werde das Ticket bei der Sicherheitskontrolle nicht geprüft, da dies am Gate ohnehin geschieht - dummerweise sitzen die Informationen dann ungeschützt im Wartebereich.
Bisherige Anti-Spectre-Maßnahmen wirken daher auch bei I See Dead μOps nicht, da sie später in der Pipeline greifen. Das Team hat AMD und Intel bereits im April 2021 über den Seitenkanalangriff in Kenntnis gesetzt, bisher existiert aber kein Microcode-Update als Schutz. In dem Paper wird zudem ausgeführt, dass mögliche Mitigationen die Performance deutlich senken könnten.
Der Micro-Op-Cache ist ein sehr wichtiger Faktor für die Leistung einer CPU, seit Jahren erweitern AMD und Intel daher die Menge an Einträgen in diesen Puffern und selbst ARM hat seit dem Cortex-A77 einen Micro-Op-Cache in den eigenen CPU-Designs verbaut. Laut ARM müssen in 85 Prozent der Fälle die Instruktionen nicht neu decodiert werden, sondern können direkt an das Backend geleitet werden.
Eine sehr Performance-kritische Mitigation stellt das Flushen des Micro-Op-Caches dar, hierzu muss aber vorher der iTLB (Instruction Translation Lookaside Buffer) geleert werden - so wie bei Intels SGX. Eine andere Option sind Counter, diese ständig abzufragen, kostet aber ebenfalls viel Leistung.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
ein virtualisierer könnte ggf. Dummysequenzen von Befehlen die nix am Zustand ändern...
Nicht bei dieser Art der Forschung: Das sind Design Flaws in der Hardware bzw. dem...
Sofern man keine shared VMs in der Cloud laufen hat, braucht einen das neue Problem...
Der wurde 1994 von NexGen eingeführt, 1995 kam die erste CPU von Intel mit Micro-Ops...