Spectre: IBMs Power6 mit In-Order-Execution anfällig, Intel erweitert Dokumentation
Der Programmierer David Schor konnte die Sicherheitslücke Spectre auf einem Power6-Prozessor aus dem Hause IBM ausnutzen, obwohl dieser mit einer In- statt Out-of-Order-Execution arbeitet. Ebenso sollen sich die MIPS-Kerne P5600 und P6600 angreifen lassen. Intel hat derweil seine Dokumentation für den Spectre-Schutzmechanismus Indirect Branch Control veröffentlicht.
Bisher galten bei Prozessoren zwei architektonische Grundlagen als Basis, um die Sicherheitslücke Spectre ausnutzen zu können: Eine Out-of-Order-Execution (OoO) sowie eine "Speculative Execution" (spekulative Ausführung) über die Sprungvorhersage. In ersterem Fall kann die CPU die Reihenfolge der zu erledigenden Aufgaben eigenständig sortieren, sodass diese nicht chronologisch erledigt werden müssen. Die Sprungvorhersage versucht, vorausschauend künftig zu erledigenden Code auszuführen. In beiden Fällen soll die Performance erhöht werden.
Wie David Schor von wikichips.org anhand eines Code-Stücks herausgefunden hat, lässt sich Spectre aber auch auf IBMs Power6-Prozessoren ausnutzen, obwohl die CPUs eine In-Order-Execution nutzen. Dafür könnte der Load Lookahead verantwortlich sein, womit eine aggressive spekulative Ausführung in der Theorie für Spectre ausreichen würde. Heise.de berichtet zugleich, dass sich MIPS' Rechenkerne P5600 und P6600 mittels Spectre angreifen lassen sollen.
Intel hat derweil seine Dokumentation zum Schutzmechanismus Indirect Branch Control als PDF veröffentlicht, um die hauseigenen Prozessoren gegen den zweiten Spectre-Angriff zu schützen. Vorher thematisierte der Chiphersteller bereits die Indirect Branch Restricted Speculation (IBRS), Single Thread Indirect Branch Predictors (STIBP) und Indirect Branch Predictor Barrier (IBPB). AMD behandelte die Themen jüngst in einem hauseigenen, achtseitigen Whitepaper.

Der MC 68060 hatte zum Beispiel branch prediction. Auch eine Variante der Vorhersage, obwohl er auch in Order war. Ist natürlich die frage, ob sowas wie spectr dort auch laufen würde.
War es nicht so, daß nur Heise das behauptet hat und alle haben es von denen dann abgeschrieben?
Spectre setzt spekulative Ausführungen der Sprungvorhersage voraus, wurde das nicht so auch immer von den CPU-Herstellern verlautbart?
Ja, meistens ist es so, aber man darf das halt nicht automatisch gleichsetzen.
Daß es OoO ohne Spec Execution gibt wusste ich auch nicht, man lernt nie aus:O
Technisch richtig, Speculative Execution wird aber nahezu synonym mit Out of Order verwendet. Es gibt kaum OoO-CPUs ohne spekulative Ausführung (Ausnahmen wurden zumindest von mir genannt) und der hier vorliegende umgekehrte Fall dürfte noch weniger bekannt sein.
Warum sollte Spectre auch OoO voraussetzen?
War es nicht so, daß nur Heise das behauptet hat und alle haben es von denen dann abgeschrieben?
Spectre setzt spekulative Ausführungen der Sprungvorhersage voraus, wurde das nicht so auch immer von den CPU-Herstellern verlautbart?