Intel-Prozessoren: Zwei undokumentierte Befehle für Microcode enttarnt

Sicherheitsexperten entdecken Befehle, mit denen sich das Verhalten von Intel-Prozessoren ändern lässt – bisher jedoch nur in einem speziellen Debugging-Modus.

In Pocket speichern vorlesen Druckansicht 98 Kommentare lesen

Die Version des vom Prozessor aktuell geladenen Microcode-Updates verrät unter Windows 10 etwa die Registry.

Lesezeit: 3 Min.
Inhaltsverzeichnis

Um Fehler in Prozessoren beheben zu können, nutzen Intel und AMD sogenannten Microcode, der sich updaten lässt. Das dreiköpfige Expertenteam "Chip Red Pill" hat nun bei Intel-Prozessoren zwei undokumentierte Befehle entdeckt, um Microcode zu verändern.

Wäre diese Manipulation im normalen Betriebsmodus der Prozessoren möglich, wäre das eine gewaltige Sicherheitslücke. Denn Microcode-Updates dienen unter anderem dazu, Sicherheitslücken etwa vom Spectre-Typ zu schließen. Bisher können die Sicherheitsforscher den CPU-Microcode aber nur in einem speziellen Debugging-Modus verändern, den sie "Red Unlock" nennen, und den sie über eine vor drei Jahren gepatchte Sicherheitslücke aktivieren. Dazu wiederum ist physischer Zugriff auf das jeweilige System nötig.

Mark Ermolov (@_markel___), Maxim Goryachy (@h0t_max) und Dmitry Sklyarov (@_Dmit) – die beiden letztgenannten arbeiten für die Firma Positive Technologies (PTE) – erforschen seit Jahren Intels Management Engine (ME) und weitere interne Funktionen von Intel-Prozessoren. Sie deckten unter anderem auch die ME-Sicherheitslücke Intel-SA-00086 auf, entschlüsselten im Herbst 2020 Microcode-Updates für Intel-Atom-Prozessoren und entdeckten die "HAP"-Option, mit der Prozessoren weiterlaufen, auch wenn die ME deaktiviert ist.

Durch diese Vorarbeiten sind die drei Experten überhaupt erst in der Lage, den Aufbau von Microcode-Updates genauer zu untersuchen; einen Teil ihrer Erkenntnisse teilen sie via GitHub.

Ermolov hat nun bei Twitter den Code eines EFI-Programms (ein UEFI-BIOS kann EFI-Bytecode ausführen) veröffentlicht, das bei einem Intel-Prozessor Microcode vom Control Register Bus (CRBUS) liest. Erst in einem zweiten Tweet reichte er die Information nach, dass die verwendeten undokumentierten CPU-Befehle zwar stets vom Prozessor decodiert werden, aber nur im erwähnten "Red Unlock"-Debuggingmodus funktionieren. Ansonsten gibt das Microcode Sequencer ROM (MSROM) den Fehlercode "Invalid Opcode" (#UD) zurück.

Anlässlich der Veröffentlichungen des Teams "Chip Red Pill" zu den Goldmont-Microcodes hatte Intel betont, dass Prozessoren im normalen Betriebsmodus nur solchen Microcode laden und ausführen, der die richtige digitale Signatur trägt. Daher lassen sich die nun entdeckten Befehle bisher nicht für Angriffe nutzen. Die Informationen sind vor allem für andere Sicherheitsforscher interessant.

Funktionsübersicht des Intel Trace Hub

(Bild: Intel)

Dass Intel- (und auch AMD-)Prozessoren undokumentierte Befehle ausführen, ist seit Jahrzehnten bekannt. Man kann sogar selbst danach suchen, etwa mit Sandsifter.

Wie das Chip-Red-Pill-Team bereits 2018 zeigte, enthalten Intel-Prozessoren eine Art eingebauten Logikanalysator: den "Trace Hub" mit "Visualization of Internal Signals Architecture" (VIS/VISA). Im normalen Systembetrieb ist der Trace Hub nicht erreichbar, weil er bestimmungsgemäß auch Zugriff auf sensible Daten ermöglicht. Vielmehr ist er für Hardware- und System-Entwickler gedacht, die ihn etwa mittels spezieller USB-3.0-Kabel über das sogenannte Direct Connect Interface (USB DCI) nutzen. Dazu wiederum muss man den Prozessor beziehungsweise das System in einen Debugging-Modus schalten, wozu man normalerweise Informationen benötigt, die Intel nur registrierten Entwicklern unter Geheimhaltungsvereinbarung überlässt (Non-Disclosure Agreement, NDA). Im "roten Debuggingmodus" (Red Unlock) sind besonders sensible Informationen zugänglich.

(ciw)