Neue Sicherheitslücken in AMD- und Intel-Prozessoren: AEPIC & SQUIP

Internationale Expertenteams weisen Schwachstellen in zahlreichen aktuellen CPU-Typen von AMD und Intel nach, die auch künftige ARM-Chips treffen könnten.

Lesezeit: 3 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 107 Beiträge

(Bild: aepicleak.com)

Von
  • Christof Windeck

Die Sicherheitslücke AEPIC Leak steckt in aktuellen Intel-Prozessoren der Generationen Ice Lake, Tiger Lake und Alder Lake (Core i-10000, 11000, 12000, Xeon SP Gen 3). Bei AEPIC Leak handelt es sich nicht um einen Seitenkanal, sondern um einen Bug der Mikroarchitektur: Die Sicherheitsexperten von der Sapienza Uni Rom, der TU Graz, von Amazon AWS und CISPA nutzen vielmehr die Register des Advanced Programmmable Interrupt Controllers (APIC), um Daten aus den CPU-Caches zu lesen.

Genauer gesagt lesen sie undefinierte Bereiche der sogenannten Superqueue (SQ), die bei Intel-Prozessoren mit Kernen vom Typ Sunny Cove die Caches der Level 2 und 3 verbindet.

Per AEPIC-Leak-Angriff (CVE-2022-21233) lassen sich geheime Schlüsseldaten auslesen, sogar aus vermeintlich sicher geschützten SGX-Enklaven.

Allerdings haben nur Nutzer mit Admin-Rechten Zugriff auf die APIC-Register. Das mindert das Risikopotenzial von AEPIC-Leak-Angriffen erheblich. Die Sicherheitsforscher nennen auch eine Reihe von Schutzmaßnahmen gegen AEPIC Leak und empfehlen Intel jedoch, diesen Fehler in künftigen CPU-Kernen zu vermeiden.

Pietro Borrello und Andreas Kogler stellen AEPIC Leak auf der Black Hat USA 2022 vor.

Update

Intel stellt als Gegenmaßnahme gegen AEPIC Leak SGX-Patches und Microcode-Updates bereit, siehe Intel Security Advisory Intel-SA-00657 (2022.2 IPU - Intel Processor Advisory). Demnach stuft Intel das Risiko der Sicherheitslücke als "Mittel" ein.

AMD liefert weitere Informationen zu SQUIP im AMD Security Bulletin AMD-SB-1039 (Execution Unit Scheduler Contention Side-Channel Vulnerability on AMD Processors). Dort findet sich auch eine Liste der betroffenen Ryzen-, Epyc- und Ryzen-Threadripper-Prozessoren. Demnach gilt auch für CVE-2021-46778 die Risikostufe "Mittel".

Bei SQUIP, der die Scheduler-Queue von Prozessorkernen nutzt, handelt es sich um einen Seitenkanal – ähnlich wie bei den Sicherheitslücken vom Spectre-Typ. Beim „Scheduler Queue Contention Side Channel“ beobachtet und manipuliert der Angreifer die Scheduler-Queue, die die anstehenden Befehle auf die einzelnen Rechenwerke des Prozessor verteilt.

Der SQUIP-Angriff beobachtet und manipuliert die Scheduler-Queue, um Daten abzulauschen.

(Bild: SQUIP: Exploiting the Scheduler Queue Contention Side Channel, Stefan Gast, Jonas Juffinger, Martin Schwarz, Gururaj Saileshwar, Andreas Kogler, Simone Franza, Markus Köstl, Daniel Gruss (Lamarr Security Research, Graz University of Technology, Georgia Institute of Technology))

Während CPU-Kerne von Intel-Prozessoren gemeinsame Scheduler für sämtliche vorhandenen Rechenwerke haben, fanden die Sicherheitsforscher heraus, dass AMD-Prozessoren der Generationen Zen 2 und Zen 3 sowie Apples M-Prozessoren sogenannte „Per-Execution-Unit Scheduler Designs“ verwenden, also mehrere Scheduler pro CPU-Kern. Jede Scheduler-Queue versorgt nur bestimmte Rechenwerke.

Die AMD-Prozessorkerne haben wiederum Rechenwerke mit unterschiedlichen Eigenschaften. So führt nur die ALU1 Multiplikationen, Divisionen und CRC-Operationen aus. Folglich teilt der Scheduler solche Aufgaben immer der ALU1 zu.

Indem die Experten die Scheduler-Queue ALQ1 für diese ALU1 nun gezielt befüllten, konnten sie reproduzierbare Verzögerungen erzeugen, die sich messen lassen – beispielsweise mithilfe von Performance Countern, die die CPU praktischerweise selbst bereitstellt. Die Zeitmessung funktionierrt aber auch mit unpriviligierten Timer-Reads, die keine Admin-Rechte benötigen.

Durch diese Messungen der Verarbeitungszeiten, die etwa für die Multiplikation bestimmter Daten nötig sind, lassen sich Rückschlüsse auf diese Daten ziehen. Das gelingt vor allem dann gut, wenn der „Beobachtungs-Thread“ (also quasi die Malware) als zweiter Thread (Sibling Thread) auf dem zweiten logischen Prozessorkern eines CPU-Kerns mit Simultaneous Multithreading (SMT) läuft. Daher empfehlen die Sicherheitsforscher als Gegenmaßnahme gegen SQUIP, auf SMT zu verzichten. Es sind aber auch Gegenmaßnahmen in Software möglich.

Grundsätzlich wäre SQUIP auch bei ARM-Prozessorkernen mit mehreren Scheduler-Queues und SMT ein Sicherheitsrisiko, wie die Autoren erklären. Solche sind bisher aber wohl noch nicht auf dem Markt.

An der Aufdeckung des Seitenkanals SQUIP waren wie an AEPIC Leak Martin Schwarzl, Andreas Kogler und Daniel Gruss von der TU Graz beteiligt. Bei SQUIP kooperierten sie mit Lamarr Security Research beziehungsweise Stefan Gast, der ebenfalls an der TU Graz tätig war, sowie mit dem Georgia Institute of Technology.

Mehr von c't Magazin Mehr von c't Magazin

(ciw)