Zwei Angriffe auf den Cache-Kanal-Vorhersagemechanismus in AMD-Prozessoren

Eine Forschergruppe der Technischen Universität Graz (Österreich), die zuvor für die Entwicklung von Angriffsmethoden bekannt war MDS, NetSpectre, Wurfhammer и ZombieLoad, führte Untersuchungen zu Hardwareoptimierungen speziell für AMD-Prozessoren durch und hat sich entwickelt zwei neue Methoden für Seitenkanalangriffe, die Datenlecks während des Betriebs des LXNUMX-Cache-Kanalvorhersagemechanismus von AMD-Prozessoren manipulieren. Die Techniken können verwendet werden, um die Wirksamkeit des ASLR-Schutzes zu verringern, Schlüssel in anfälligen AES-Implementierungen wiederherzustellen und die Wirksamkeit des Spectre-Angriffs zu erhöhen.

Es wurden Probleme bei der Implementierung des Kanalvorhersagemechanismus (Way Predictor) im Datencache der ersten Ebene (L1D) der CPU festgestellt, der zur Vorhersage verwendet wird, welcher Cache-Kanal eine bestimmte Speicheradresse enthält. Die bei AMD-Prozessoren verwendete Optimierung basiert auf der Überprüfung von μ-Tags (μTag). μTag wird berechnet, indem eine bestimmte Hash-Funktion auf die virtuelle Adresse angewendet wird. Während des Betriebs verwendet die Kanalvorhersage-Engine μTag, um den Cache-Kanal aus der Tabelle zu bestimmen. Somit ermöglicht μTag dem Prozessor, sich auf den Zugriff nur auf einen bestimmten Kanal zu beschränken, ohne alle Optionen durchsuchen zu müssen, was den Energieverbrauch der CPU erheblich senkt.

Zwei Angriffe auf den Cache-Kanal-Vorhersagemechanismus in AMD-Prozessoren

Beim Reverse Engineering der Implementierung des Kanalvorhersagesystems in verschiedenen Generationen von AMD-Prozessoren, die von 2011 bis 2019 veröffentlicht wurden, wurden zwei neue Seitenkanal-Angriffstechniken identifiziert:

  • Collide+Probe – ermöglicht es einem Angreifer, den Speicherzugriff für Prozesse zu verfolgen, die auf demselben logischen CPU-Kern ausgeführt werden. Der Kern der Methode besteht darin, virtuelle Adressen zu verwenden, die Kollisionen in der Hash-Funktion zur Berechnung von μTag verursachen, um den Speicherzugriff zu verfolgen. Im Gegensatz zu den auf Intel-Prozessoren eingesetzten Flush+Reload- und Prime+Probe-Angriffen nutzt Collide+Probe keinen gemeinsam genutzten Speicher und funktioniert ohne Kenntnis der physischen Adressen.
  • Laden+Neuladen – ermöglicht Ihnen die sehr genaue Bestimmung der Speicherzugriffsspuren auf demselben physischen CPU-Kern. Die Methode basiert auf der Tatsache, dass sich eine physikalische Speicherzelle nur einmal im L1D-Cache befinden kann. Diese. Der Zugriff auf dieselbe Speicherzelle an einer anderen virtuellen Adresse führt dazu, dass die Zelle aus dem L1D-Cache entfernt wird, sodass der Speicherzugriff verfolgt werden kann. Obwohl der Angriff auf gemeinsam genutztem Speicher basiert, werden Cache-Zeilen nicht geleert, sodass Stealth-Angriffe möglich sind, bei denen keine Daten aus dem Cache der letzten Ebene entfernt werden.

Basierend auf den Techniken Collide+Probe und Load+Reload haben Forscher mehrere Seitenkanal-Angriffsszenarien demonstriert:

  • Es wird die Möglichkeit aufgezeigt, mithilfe von Methoden einen versteckten indirekten Kommunikationskanal zwischen zwei Prozessen zu organisieren, der eine Datenübertragung mit Geschwindigkeiten von bis zu 588 kB pro Sekunde ermöglicht.
  • Mithilfe von Kollisionen in μTag war es möglich, die Entropie für verschiedene Varianten von ASLR (Address Space Layout Randomization) zu reduzieren und den ASLR-Schutz im Kernel auf einem vollständig aktualisierten Linux-System zu umgehen. Es wird die Möglichkeit aufgezeigt, einen Angriff zur Reduzierung der ASLR-Entropie durchzuführen, sowohl von Benutzeranwendungen als auch mithilfe von JavaScript-Code, der in einer Sandbox-Umgebung ausgeführt wird, und Code, der in einer anderen Gastumgebung ausgeführt wird.

    Zwei Angriffe auf den Cache-Kanal-Vorhersagemechanismus in AMD-Prozessoren

  • Basierend auf der Collide+Probe-Methode wurde ein Angriff implementiert, um den Verschlüsselungsschlüssel aus einer anfälligen Implementierung wiederherzustellen (basierend auf T-Tisch) AES-Verschlüsselung.
  • Durch die Verwendung der Collide+Probe-Methode als Datenerfassungskanal war der Spectre-Angriff in der Lage, private Daten aus dem Kernel zu extrahieren, ohne den gemeinsamen Speicher zu nutzen.

Die Schwachstelle tritt bei AMD-Prozessoren auf, die auf Mikroarchitekturen basieren
Bulldozer, Piledriver, Steamroller, Zen (Ryzen, Epic), Zen+ und Zen2.
AMD wurde am 23. August 2019 über das Problem informiert, aber bisher habe den Bericht nicht veröffentlicht mit Informationen zum Blockieren der Sicherheitslücke. Den Forschern zufolge kann das Problem auf der Mikrocode-Aktualisierungsebene blockiert werden, indem MSR-Bits bereitgestellt werden, um das Kanalvorhersagesystem selektiv zu deaktivieren, ähnlich wie Intel es getan hat, um die Deaktivierung von Verzweigungsvorhersagemechanismen zu steuern.

Zwei Angriffe auf den Cache-Kanal-Vorhersagemechanismus in AMD-Prozessoren

Source: opennet.ru

Kommentar hinzufügen