Wie vorhergesagt, mehr Verzweigungsvorhersageprozessor Angriffe werden entdeckt

Wie vorhergesagt, werden mehr Prozessorangriffe mit Verzweigungsvorhersage entdecktEnlargeEd Dunens

Forscher vom College von William und Mary, Carnegie Mellon, die University of California Riverside und Binghamton Die Universität hat einen Sicherheitsangriff beschrieben, der die spekulative Ausführungsmerkmale moderner Prozessoren zu lecken sensible Informationen und untergraben die Sicherheitsgrenzen, die Betriebssysteme und Software zum Schutz wichtiger Daten.

Das kommt mir wahrscheinlich bekannt vor.

Die Spectre-Attacken, die Anfang dieses Jahres veröffentlicht wurden, machen sich das zunutze der spekulativen Ausführungsmerkmale moderner Prozessoren zu lecken heikle Informationen. Der neue Angriff mit dem Namen BranchScope von der Forscher teilen eine gewisse Ähnlichkeit mit Variante 2 des Spectre Angriff, da sowohl BranchScope als auch Spectre 2 die Vorteile der Verhalten des Branch Predictor des Prozessors.

Bei spekulativer Ausführung läuft der Prozessor vor woher Das Programm ist es tatsächlich und versucht, Anweisungen auszuführen bevor es sicher sein kann, ob diese Anweisungen tatsächlich sein werden Lauf. Zum Beispiel, wenn ein Programm prüft, ob zwei Zahlen gleich sind und macht eine Sache, wenn sie sind und eine andere, wenn sie nicht sind, Der Prozessor wird das Ergebnis erraten und spekulativ ausführen resultierende Aktion. Wenn sich später herausstellt, dass der Prozessor erraten hat falsch, die spekulativen Ergebnisse werden weggeworfen und zumindest in einem abstrakter Sinn, es ist, als ob die falsche Vermutung nie passiert ist. Das Der Prozessor nimmt an der Stelle auf, an der er aufgehört hat, und führt die Aktion aus dass es stattdessen genommen haben sollte.

Die Spectre-Angriffe treten insgesamt wegen des Prozessors auf setzt die Dinge nicht so um, wie sie sein sollten. Während Der Prozessor kehrt korrekt zu seiner spekulativen Ausführung zurück – wenn dies der Fall ist funktioniert nicht, Programme funktionieren einfach nicht mehr richtig – es funktioniert nicht ganz so perfekt. Dies macht sich insbesondere dann bemerkbar kommt in den Cache des Prozessors: spekulative Ausführung kann die verursachen Prozessor zum Laden von Daten in den Cache (oder alternativ zum Entfernen von Daten) aus dem Cache), und diese Cache-Änderungen bleiben bestehen, auch wenn sie fehlerhaft sind es wird spekuliert. Sorgfältig geschriebene Software kann diese erkennen Änderungen zwischenspeichern und daraus geheime Informationen ableiten.

Der Branch Predictor des Prozessors ist eines seiner Kernstücke spekulative Ausführungsmaschinerie. Während die Branch Predictors in der Die neuesten Prozessoren sind komplex und arbeiten im Allgemeinen in einem ähnliche Weise. Der Prozessor verfolgt die Adresse der Verzweigung Anweisungen, ob der Zweig genommen wurde oder nicht, und wenn die Verzweigung wird genommen, die Adresse des nächsten Befehls, der sein soll execute – das heißt, das Ziel der Verzweigung. Der Branch Predictor bietet zwei verwandte Vorhersagen: ob der Zweig genommen wird oder nicht, und wenn es genommen wird, was ist das Ziel.

BranchScope und Spectre 2 nutzen beide unterschiedliche Teile des Verzweigungsprädiktors. Specter 2 stützte sich auf einen Teil namens Branch Target Buffer (BTB) – Die Datenstruktur innerhalb des Prozessors Damit wird das Zweigziel aufgezeichnet. BranchScope leckt stattdessen Informationen unter Verwendung der Richtung der Vorhersage – ob es wahrscheinlich genommen werden oder nicht – was in der Musterhistorie gespeichert ist Tabelle (PHT).

Die PHT hält eine Art laufende Punktzahl von kürzlich genommenen Zweigen zu erinnern, ob diese Zweige genommen wurden oder nicht. Normalerweise ist es ein Zwei-Bit-Zähler mit vier Zuständen: stark genommen, schwach genommen, schwach nicht genommen und stark nicht genommen. Jedes Mal, wenn ein Zweig ist vergeben, der Wert des Zählers wird in Richtung “stark vergeben” verschoben; jeder Wenn es nicht genommen wird, wird es in Richtung “stark nicht genommen” verschoben. Diese Design bedeutet, dass ein gelegentlicher Fehler das Ergebnis nicht verändert der vorhersage: ein zweig, der fast immer besetzt ist, bleibt stehen prognostizieren Sie als genommen, auch wenn es gelegentlich nicht tatsächlich genommen wird. Das Ändern der Vorhersage erfordert zwei aufeinanderfolgende falsche Vorhersagen. Diese Design liefert nachweislich bessere Ergebnisse als ein Ein-Bit-Zähler das sagt einfach eine Verzweigung voraus, die auf dem basiert, was das letzte Mal geschah es wurde genommen.

Für Spectre 2 bereitet ein Angreifer das BTB vor und führt es sorgfältig aus Verzweigungsbefehle, damit der BTB einen vorhersehbaren Inhalt mit hat Ein Zielbefehl, der, wenn er spekulativ ausgeführt wird, stört der Cache des Prozessors auf erkennbare Weise. Das Opferprogramm dann rennt und macht einen Zweig. Der Angreifer prüft dann, ob die Cache wurde gestört; die Messung dieser Störung leckt Information.

Bei dem neuen Angriff bereitet ein Angreifer die PHT und den laufenden Zweig vor Anweisungen, damit die PHT immer einen bestimmten Zweig annimmt ist genommen oder nicht genommen. Der Opfercode läuft dann und macht ein Zweig, der möglicherweise die PHT stört. Der Angreifer dann führt weitere eigene Verzweigungsbefehle aus, um diese Störung zu erkennen zum PHT; Der Angreifer weiß, dass einige Zweige sein sollten vorhergesagt in eine bestimmte Richtung und prüft, ob die Der Code des Opfers hat diese Vorhersage geändert.

Die Forscher sahen sich nur Intel-Prozessoren an, bei denen die Angriffe, um Informationen zu verlieren, die durch Intels SGX (Software) geschützt sind Guard Extensions), eine Funktion, die bei bestimmten Chips zum Herausschneiden gefunden wurde kleine Abschnitte von verschlüsseltem Code und Daten, so dass auch die Betriebssystem (oder Virtualisierungssoftware) kann nicht darauf zugreifen. Sie beschrieben auch Möglichkeiten, wie der Angriff gegen Adressen verwendet werden kann Raumlayout Randomisierung und Daten in Verschlüsselung und zu schließen Bildbibliotheken.

Spectre 2 hat sowohl Betriebssystem als auch Hardware provoziert Änderungen, weitere Hardwarekorrekturen sind geplant. Die Forscher schlagen vor dass eine ähnliche Kombination von Lösungen für erforderlich wäre BranchScope; Einige Software kann geändert werden, um Verzweigungen zu beseitigen, und Hardware könnte geändert werden, um das Spekulative aufzuteilen Ausführungsdatenstrukturen auf dem Prozessor, so dass ein Prozess konnte keinen anderen angreifen.

Wie bei Spectre 2 ist nicht klar, wie viel Software vorhanden ist wirklich anfällig für BranchScope-Angriffe. In beiden Fällen Angreifer brauchen die Fähigkeit, Code auf einem Opfersystem auszuführen, damit diese Angriffe wird niemals für den ersten Einstieg in ein System verwendet. Was sie machen, Es wird jedoch gezeigt, dass die Isolationsgrenzen, die haben lange als existent vorausgesetzt, werden durch die spekulative Ausführungshardware, die wesentlich ist Hochleistungsprozessoren. Darüber hinaus zeigt BranchScope dies Spectre ist nicht der einzige Weg, durch den dieses Spekulativ geht Ausführung kann ausgenutzt werden.

Grundsätzlich enthält der Prozessor viele interne Zustände (einschließlich Register, Caches, Verzweigungsvorhersage, Speicherpuffer und mehr), dass spekulative Ausführung ändern kann. Die architektonische state – die Teile, die direkt vom Prozessor freigelegt und manipuliert wurden Veröffentlichte, dokumentierte Anweisungen – werden von der Website ordnungsgemäß aufbewahrt spekulative Hardware. Angriffe wie Spectre und BranchScope existieren weil der nicht-architektonische Zustand – die Teile, die repräsentieren Implementierungsdetails des Prozessors, die sich von Familie zu Familie ändern können für die Familie, und die für Programme nicht direkt zugänglich sind – ist es nicht vollständig erhalten bleiben. Spekulative Hinrichtung (und die Nicht-architektonischer Zustand, von dem es abhängt) soll geschehen unsichtbar, ohne Hinweis auf das laufende Programm, dass es ist auftreten.

Angriffe wie Spectre 2 und BranchScope sind die Folge. Es ist Es wird wahrscheinlich Jahre dauern, bis die Forscher all das festgestellt haben verschiedene Möglichkeiten, wie die spekulative Ausführungshardware sein kann verwendet, um Informationen auf diese Weise zu lecken, und es wird noch länger dauern Bevor robuste, universelle Abwehrkräfte zur Verfügung stehen, stoppen die Anschläge.

Update: In einer Erklärung sagt Intel: Wir haben mit diesen Forschern zusammengearbeitet und wir haben das festgestellt Das von ihnen beschriebene Verfahren ähnelt dem bisher bekannten Seitenkanal Exploits. Wir gehen davon aus, dass bestehende Software Abhilfemaßnahmen für vorbekannte Seitenkanal-Exploits, beispielsweise die Nutzung von Side kanalresistente Kryptographie wird in ähnlicher Weise wirksam gegen die in diesem Artikel beschriebene Methode. Wir glauben an eine enge Partnerschaft mit der Forschungsgemeinschaft ist eine der besten Möglichkeiten, um zu schützen Kunden und ihre Daten, und wir sind dankbar für die Arbeit von diese Forscher.

Like this post? Please share to your friends:
Leave a Reply

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: