SQUIP, ein neuer Angriff, der AMD-Prozessoren betrifft und zu Datenlecks führt

eine Gruppe von IForscher der TU Graz (Österreich), früher bekannt für die Entwicklung der Attacken MDS, NetSpectre, Throwhammer und ZombieLoad, hat einen neuen Seitenkanalangriff offenbart (CVE-2021-46778) in der Scheduler-Warteschlange des AMD-Prozessors, die verwendet wird, um die Ausführung von Anweisungen in verschiedenen Ausführungseinheiten der CPU zu planen.

Der Angriff, gerufen SQUIP ermöglicht es, die in den Berechnungen verwendeten Daten in einem anderen Prozess zu bestimmen oder virtuelle Maschine oder einen verborgenen Kommunikationskanal zwischen Prozessen oder virtuellen Maschinen organisieren, der den Austausch von Daten ermöglicht, ohne die Systemzugriffskontrollmechanismen zu durchlaufen.

Die AMD-CPUs basierend auf 1., 2. und 3. Zen-Mikroarchitekturen Generation (AMD Ryzen 2000-5000, AMD Ryzen Threadripper, AMD Athlon 3000, AMD EPYC) Sind betroffen wenn die Simultaneous Multithreading (SMT)-Technologie verwendet wird.

Moderne CPUs verwenden ein superskalares Design, bei dem mehrere Befehle gleichzeitig ausgeführt werden, um die Leistung zu maximieren. Diese CPUs verarbeiten Befehle in einer Pipeline über mehrere Stufen: (1) Abrufen, (2) Decodieren, (3) Programmieren/Ausführen und (4) Abrufen.

Der Angriff basiert auf der Bewertung des Auftretens von Konflikten (Konkurrenzebene) in verschiedenen Scheduler-Warteschlangen und erfolgt durch die Messung von Verzögerungen beim Starten von Prüfoperationen, die in einem anderen SMT-Thread auf derselben physischen CPU durchgeführt werden. Zur Analyse der Inhalte wurde die Prime+Probe-Methode verwendet, bei der die Warteschlange mit einem Satz von Referenzwerten gefüllt und die Änderungen durch Messen der Zugriffszeit auf diese zum Zeitpunkt des Neuladens bestimmt werden.

Die Programm-/Ausführungsstufe kann Befehle außerhalb der Reihenfolge verarbeiten, um die Parallelität auf Befehlsebene zu maximieren. Wir beschreiben kurz jede dieser Phasen:

-Suche. Die CPU sucht nach der nächsten auszuführenden Anweisung aus dem L1i-Cache. 
-Dekodieren. Um eine effiziente Ausführung zu ermöglichen, werden die erhaltenen Anweisungen (Makrooperationen) in eine oder mehrere einfachere Mikrooperationen (µops) dekodiert und in eine µop-Warteschlange gestellt. Diese µops werden in das Backend eingespeist, wo sie geplant und ausgeführt werden.
-Planen/Laufen. Der/die Scheduler verfolgen, welche µops zur Ausführung bereit sind (verfügbare Eingaben haben) und planen sie dynamisch (außerhalb der Reihenfolge) für die verfügbaren Ausführungseinheiten. Ein CPU-Kern hat mehrere Ausführungseinheiten und kann mehrere arithmetische und logische Einheiten (ALUs), Verzweigungsausführungseinheiten (BRUs), Adresserzeugungseinheiten (AGUs) haben.

Während des Experiments Forscher konnten den privaten 4096-Bit-RSA-Schlüssel vollständig neu erstellen Wird verwendet, um digitale Signaturen mit der kryptografischen Bibliothek mbedTLS 3.0 zu erstellen, die den Montgomery-Algorithmus verwendet, um eine Zahl zu einem Potenzmodul zu erheben. 50.500 Spuren wurden benötigt, um den Schlüssel zu bestimmen.

Die gesamte Angriffszeit betrug 38 Minuten. Es werden Angriffsvarianten demonstriert, die ein Leck zwischen verschiedenen Prozessen und virtuellen Maschinen schaffen, die vom KVM-Hypervisor gesteuert werden. Es wird auch gezeigt, dass das Verfahren verwendet werden kann, um eine verdeckte Datenübertragung zwischen virtuellen Maschinen mit einer Rate von 0,89 Mbit/s und zwischen Prozessen mit einer Rate von 2,70 Mbit/s mit einer Fehlerrate von weniger als 0,8 % zu orchestrieren.

Der CPU-Kern ist in mehrere logische Kerne oder Threads unterteilt, die unabhängige Befehlsströme ausführen, aber Ressourcen wie den L1i-Cache gemeinsam nutzen. µops dieser Threads teilen sich auch Ausführungseinheiten dynamisch, um eine höhere Gesamtauslastung zu ermöglichen. Die Aufteilung verschiedener Teile des Kernels.
Dies geschieht durch kompetitiven Austausch. AMD Zen-Architekturen erlauben zwei Threads
pro Kern. Diese Threads können von einem einzelnen Programm oder von verschiedenen Programmen stammen, die vom Betriebssystem verwaltet werden.

Intel-Prozessoren sind nicht anfällig angreifen, da sie eine einzige Scheduling-Warteschlange verwenden, während anfällige AMD-Prozessoren separate Warteschlangen für jede Ausführungseinheit verwenden.

Als Lösung zum Blockieren von Informationslecks, AMD empfohlen dass Entwickler verwenden Algorithmen, die mathematische Berechnungen immer in konstanter Zeit durchführen, unabhängig von der Art der verarbeiteten Daten, und verhindern auch Forking auf der Grundlage geheimer Daten.

Wenn Sie daran interessiert sind, mehr darüber zu erfahren, können Sie die Details im folgenden Link.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.