Zum Hauptinhalt Zur Navigation

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.
/ Marc Sauter
23 Kommentare News folgen (öffnet im neuen Fenster)
Ein Wafer mit Sandy-Bridge-Chips (Bild: Intel)
Ein Wafer mit Sandy-Bridge-Chips Bild: Intel

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(öffnet im neuen Fenster) ). 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(öffnet im neuen Fenster) : 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.


Relevante Themen