// HEISE ONLINE — HARDWARE & GADGET
Lahmer x86-Befehl hebelt triviale Schutzfunktion aus
Der mächtige System Management Mode (SMM) von x86-Prozessoren ist ein bevorzugtes Ziel von Angriffen. Ein Trick hebelt eine SMM-Schutzfunktion aus.
Sicherheitsforscher haben die SMM-Schutzfunktion in x86-Prozessoren erfolgreich ausgetrickst.
This article is also available in
English.
It was translated with technical assistance and editorially reviewed before publication.
Der besondere CPU-Betriebsmodus System Management Mode (SMM) von x86-Prozessoren beschäftigt Sicherheitsforscher seit Jahrzehnten. Sie fördern immer wieder neue SMM-Schwachstellen zutage. Der SMM ist ein beliebtes Ziel von Angreifern, weil Code, der in diesem Betriebsmodus läuft, maximale Zugriffsrechte hat.
Auf der Def Con 34 führte der Sicherheitsforscher Christopher Domas alias xoreaxeaxeax vor, wie sich eine von mehreren Schutzfunktionen des SMM aushebeln lässt. Dieser Schutz besteht darin, dass stets sämtliche Kerne eines Prozessors gemeinsam in den SMM wechseln müssen. Die Idee dahinter: Wenn entweder alle Kerne oder kein einziger im SMM laufen, dann bleibt kein Kern übrig, auf dem Malware laufen kann, um SMM-Funktionen anzugreifen.
Doch mit einem Proof-of-Concept (PoC) weist Domas die Schwachstelle „smiiiiiiiiiiiiiiii“ nach. Allerdings muss der Angriffscode dabei für unterschiedliche CPU-Typen maßgeschneidert sein.
Die Schwachstelle „smiiiiiiiiiiiiiiii“ ist für sich genommen kein Angriff und hat auch keine CVE-Nummer. Christopher Domas weist jedoch darauf hin, dass mehr als 100 SMM-Schwachstellen bekannt sind, von denen sich manche nun möglicherweise per smiiiiiiiiiiiiiiii für Angriffe missbrauchen lassen. Dafür eignen sich im Prinzip Angriffe nach dem Konzept TOCTOU: Time-of-Check to Time-of-Use.
Der SMM ist unverzichtbar, beispielsweise um Energiesparfunktionen (Power Management) der Hardware zu steuern.
Weil die Risiken des SMM seit Jahren bekannt sind, schränken aktuelle Betriebssysteme und UEFI-BIOS-Versionen den Zugriff darauf ein. Beispielsweise verlangt Microsoft in den Richtlinien für Computer mit Windows-Logo, dass das UEFI-BIOS eine Tabelle mit zulässigen Adressbereichen für SMM-Zugriffe enthält. Andere Zugriffe blockiert das System.
Der Code, mit dem das Betriebssystem die CPU in den SMM umschaltet, läuft auf irgendeinem CPU-Kern, beispielsweise Core 1. Damit nun auch alle anderen Kerne in den SMM wechseln, schickt dieser Core 1 eine entsprechende Aufforderung an alle anderen Kerne, beispielsweise auch Core 0. Doch diese SMM-Aufforderung läuft nach 1 Sekunde ab. Diese Wartefrist (Timeout) dient dazu, dass die anderen Kerne aktuelle Aufgaben noch erledigen können.