Spectre Reborn: Neue CPU-Sicherheitslücke "I see dead µOps" entdeckt

Painkiller

Moderator
Teammitglied
Moin :kaffee:

wie es scheint hat ein Team der University of Virginia School of Engineering eine neue Möglichkeit entdeckt, um erfolgreich einen Seitenkanalangriff auf x86-CPUs auszuführen. Das Team taufte diese neue Möglichkeit "I see dead µOps".

Ihre Möglichkeit führt über den Micro-Op-Cache ins Herz der CPUs. Dieser ist in allen Intel Core i-CPUs seit Sandy Bridge (also Core i 2xxx-Serie) enthalten. Ebenfalls betrifft die Lücke sämtliche AMD-CPUs mit Zen-Architektur.

Auch davon betroffen sind Server-CPUs alá AMD Epyc und Intel Xeon (seit 2011er Modelreihe). Evtl. sind davon auch ARM-Prozessoren betroffen. Ein Statement hierzu steht noch aus.

Was ist der Micro-Op-Cache?
Der Micro-Op-Cache ist im Grunde eine extrem schneller SRAM, welcher dazu da ist, eine große Menge an bereits vom Frontend dekodierten Mikrooperationen in Rechenwerknähe zu speichern. Je kürzer die Wege, umso höher der Geschwindigkeitsgewinn. Da diese Operationen dadurch besonders schnell geladen werden können, steigert dies die Rechengeschwindigkeit der CPUs, gesetz dem Fall das die Vorhersage korrekt war.

Dead Ops_1.png


Dead Ops_2.png


Wie kann man sich den Angriff vorstellen?
Ashish Venkat von der der University of Virginia School of Engineering erklärt das Ganze relativ anschaulich:
"Stellen Sie sich ein hypothetisches Sicherheitsszenario am Flughafen vor, bei dem die Flughafensicherheit Sie (den Schadcode) einlässt, ohne Ihre Bordkarte zu überprüfen (Validierung), weil es (1) schnell und effizient ist und (2) Sie am Gate ohnehin auf Ihre Bordkarte überprüft werden."
Man befindet sich quasi ohne Überprüfung im Wartebereich.
"Ein Computerprozessor macht etwas ähnliches. Er sagt voraus, dass die Überprüfung bestanden wird und könnte Anweisungen in die Pipeline (Wartebereich) lassen. Wenn die Vorhersage falsch ist, wirft er diese Anweisungen schließlich aus der Pipeline, aber da könnte es bereits zu spät sein, weil diese Anweisungen während des Wartens in der Pipeline Seiteneffekte hinterlassen könnten, die ein Angreifer später ausnutzen könnte, um andere Prozesse im Micro-Op-Cache zu belauschen."

Was macht den Angriffsvektor so gefährlich?
Im Grunde vorallem die Tatsache das alle aktuellen Spectre-Abwehrmechanismen gegen diese Lücke nutzlos sind. Das Team hat dies durch einen Proof-of-Concept Angriff demonistiert. Ihnen gelang es Intels LFENCE-Verteididung zu umgehen und komprimierten und unverschlüsselten Code in einem Wartebereich zu plazieren. Und genau in diesem "Wartezimmer" in das der Code platziert wird, kommt der Angriff zu stande. Den Angreifern gelingt es so, Daten durch den Micro-Op-Cache zu schmuggeln.
Die aktuellen Sicherheitsmaßnahmen gereifen daher erst viel zu spät um das verhindern zu können.

Die Angriffe funktionieren auch bei nebeneinander liegende SMT-Threads, die auf demselben physischen Kern, aber auf unterschiedlichen logischen Kernen laufen.

Der Nachteil des Ganzen: Angriffe welche durch diese Lücke ausgeführt werden, dauern sehr lange.




Gibt es bereits Sicherheitsmaßnahmen/Updates gegen diese Lücke?
Stand heute: Nein
Die Entwickler haben AMD und Intel im April 2021 über diesen Angriffsvektor infomiert. Aber von keinem der beiden stehen bis jetzt Microcode-Updates bereit.


Haben Sicherheitsmaßnahmen/Patches Auswirkung auf die Performance?
Das Team rund um Ashish Venkat vermutet dies. Die Performanceeibußen werden viel höher sein, als bei den vorherigen Updates. Wieviel höher lässt sich zum momentanen Zeitpunkt noch nicht sagen. Patches über Intels Software Guard Extensions (SGX), würden zum Beispiel enorm vielLeistung kosten, da laut dem Team zuvor die iTLB (Instruction Translation Lookaside Buffer) geleert werden müssten.

Gruß
Pain

Quellen:
 
Zuletzt bearbeitet:
Die Entwickler haben AMD und Intel im April 2021 über diesen Angriffsvektor infomiert. Aber von keinem der beiden stehen bis jetzt Microcode-Updates bereit.
Wenn da nicht die Jahreszahl falsch ist halte ich das für extrem unverantwortlich. 1 Monat ist viel zu wenig Vorwarnung um irgendwelche Maßnahmen umzusetzen.
 
Wenn da nicht die Jahreszahl falsch ist halte ich das für extrem unverantwortlich. 1 Monat ist viel zu wenig Vorwarnung um irgendwelche Maßnahmen umzusetzen.
Ja, das dachte ich mir auch als ich die Quellen gelesen habe. Entweder ist das wirklich falsch, aber heute hab ich das gleiche auf Computerbase gelsen. Aber 1 Monat ist schon viel zu wenig Zeit für Microcode-Updates. Da bin ich völlig bei dir! :daumen:
 
Micro-Op-Cache ins Herz der CPUs. Dieser ist in allen Intel Core i-CPUs seit Sandy Bridge (also Core i 2xxx-Serie) enthalten.
Das ist doch schon bedeutend älter. Das wurde meines Kenntnisstandes nach bei Intel schon mit dem Pentium Pro eingeführt und bei AMD spätestens mit dem K7. Wäre jetzt an der Stelle interessant zu wissen, wieviele CPU-Generation da bisher getestet wurden bzw. man dort zur Hand hatte.
 
Micro-OP Cache, also das Cachen von decodierten CISC Befehlen auf dazugehörige RISC Abfolgen, war genau einer der großen Auslöser für den Leistungssprung von Sandy und von Zen 1.
Nicht zu verwechseln mit normalem Instruktions-Cache im DIE, den gibt es tatsächlich schon deutlich länger.
 
Via Zhaoxin dürfte noch rückständig genug sein dass es den Cache da schlicht nicht gibt.
Echte RISC CPUs sollten eigentlich aussen vor sein, da gibt es den Decoder Schritt ja gar nicht.
 
Naja, dann greifen also alle demnächst wieder zu Bleistift und Papier und gut is :D
Wer braucht schon Computer ?
Aber, wer auch immer Schadsoftware entwickelt, findet immer einen Weg, diese in Umlauf zu bringen. Egal was und wieviele Sicherheitsmaßnahmen es gibt und geben wird.
 
Zurück