Skip to content

Thunderstrike - Via Thunderbolt in die Firmware des Macs, Teil 1

Die von Intel und Apple entwickelte Thunderbolt-Schnittstelle ist technisch eine Kombination aus DisplayPort und PCI Express. PCI Express - da war doch was mit der Sicherheit? Genau: PCI Express erlaubt den direkten Zugriff auf den Speicher (Direct Memory Access, DMA), und den kann ein Angreifer nutzen, um Schadcode einzuschleusen oder Daten auszuspähen. Entsprechende Angriffe über Thunderbolt wurden bereits 2012 und 2013 vorgestellt.

Bekanntlich gilt bei Angriffen ja im Allgemeinen der Grundsatz "Schlimmer geht immer!", und im Fall von Thunderbolt hat Trammell Hudson das auf dem 31. Chaos Communication Congress (31C3) eindrucksvoll demonstriert. Und das ganz ohne DMA.

Teil 1: Mit direkten Zugriff in die Firmware des Macs

Der von Trammell Hudson Thunderstrike genannte Angriff (seit 2014 kommen Angriffe und Schwachstellen ja nicht mehr ohne werbewirksamen Namen aus, wenn sie ernst genommen werden wollen) nutzt eine Schwachstelle in Apples EFI Boot ROM Firmware aus, um über ein Thunderbolt Option-ROM den Rechner zu kompromittieren.

Der Angriff wird detailliert in einer kommentierten Version des 31C3-Vortrags (den es auch als Video auf YouTube gibt) vorgestellt. Außerdem gibt es eine FAQ.

Der Schwachstelle in Apples EFI Boot ROM Firmware auf der Spur...

Erst mal ist das "Boot ROM" schon lange kein ROM mehr, sondern ein unter bestimmten Umständen beschreibbares EEPROM. Das hat für die Hersteller den Vorteil, dass sie es bei Bedarf aktualisieren können. Entweder, um neue Features einzuführen, oder sehr viel öfter um erkannte Fehler oder sogar Schwachstellen zu beheben. Der Nachteil ist, dass sich unter Umständen auch Schadsoftware daran zu schaffen machen kann.

Für seine Forschungen verschaffte sich Trammell Hudson direkten Zugriff auf das Boot-ROM: Er öffnete den Rechner und verband den EEPROM-Chip mit einem selbst entwickelten Flash-Lese- und Schreib-Tool auf Basis eines Teensy-Boards.

Vorherige Untersuchungen anderer Forscher führten zu dem Ergebnis, dass es irgend eine Art von Signatur-Prüfung des ROM-Inhalts geben musste, da der Rechner mit einem manipulierten Boot-ROM nicht mehr bootete. Trammell Hudson fand heraus, dass es sich dabei um eine Software-Prüfung handelt, ein TPM (Trusted Platform Module) oder ähnliche Hardwarelösung ist nicht daran beteiligt. Was aus Angreifersicht gut ist, denn Software lässt sich manipulieren, um die Signaturprüfung zu umgehen, ein TPM nicht.

Bei einer genaueren Analyse des auf Intels EFI-Referenzimplementierung basierenden Boot-ROMs stellte Trammell Hudson fest, dass lediglich eine einfache CRC32-Prüfsumme geprüft wird, keine kryptographische Prüfsumme oder Signatur. Ein manipuliertes Boot-ROM wird also verwendet, wenn die Prüfsumme stimmt. Und die kann problemlos neu berechnet und der vorhandene Wert entsprechend geändert werden.

Kann Software das Boot ROM ändern?

Spezielle Hardware kann also den ROM-Inhalt ändern, und das so, dass der Rechner danach weiterhin bootet. Als nächstes stellt sich die Frage, ob das nicht auch Software auf dem Rechner erreichen kann. Und wenn nicht, warum nicht.

Das Boot-ROM ist nicht direkt mit der CPU verbunden, sondern über den Platform Controller Hub (PCH), der Zugriff wird über die Management Engine (ME) kontrolliert. Die verhindert Schreibzugriffe auf das ROM, nachdem es gesperrt wurde (ursprünglich ist es ungesperrt). Und diese Sperre wird sehr früh im Boot-Prozess gesetzt.

Diese Sperre muss aber irgendwie umgangen werden können, schließlich veröffentlicht Apple ziemlich oft Firmware-Updates. Das für deren Installation verwendete GUI-Programm nutzt "unter der Haube" das Kommandozeilentool bless. Das kopiert die neue Firmware-Datei vom Typ SCAP in die EFI Recovery Partition und setzt eine EFI NVRAM Variable mit dem Namen efi-apple-recovery, die auf die Update-Datei verweist. Was bless nicht macht, ist die SCAP-Datei in irgend einer Form zu prüfen. Falls sie beschädigt ist, ist das Boot-ROM nach dem Update ebenfalls beschädigt und der Rechner kann nicht mehr starten.

Bei der Analyse der SCAP-Datei stieß Trammell Hudson auf eine RSA2048(SHA256())-Signatur. Die wird irgendwann während des Bootens im Recovery-Mode geprüft, bevor die SCAP-Datei ins ROM geschrieben wird. Das muss passieren, bevor die Datei bless übergeben wird, denn bless verarbeitet auch eine beschädigte Datei und legt damit das Gerät lahm.

Weitere Untersuchungen zeigten, dass die Signaturprüfung rein Software-basiert erfolgt, die ME oder andere Hardware ist nicht beteiligt. Was wiederum bedeutet, dass die Prüfung umgangen werden kann. Wobei bei allen bisherigen Untersuchungen weiterhin der direkte Hardwarezugriff nötig war, um das Boot-ROM zu manipulieren. Was zur Frage führt, ob diese Manipulationen auch ohne Zugang zum ROM möglich sind.

Das ist der Moment, in dem Thunderbolt in Spiel kommt. Wie, erfahren Sie in der nächsten Folge!

Carsten Eilers

Trackbacks

Dipl.-Inform. Carsten Eilers am : Thunderstrike - Via Thunderbolt in die Firmware des Macs, Teil 2

Vorschau anzeigen
Auch in dieser Folge geht es um den von Trammell Hudson entwickelten Thunderstrike-Angriff, den er auf dem 31. Chaos Communication Congress (31C3) vorgestellt hat. Er wird detailliert in einer kommentierten Version des 31C3-Vortrags (den es auch

Dipl.-Inform. Carsten Eilers am : Thunderstrike - Via Thunderbolt in die Firmware des Macs, Teil 3

Vorschau anzeigen
Noch einmal geht es um den von Trammell Hudson entwickelten Thunderstrike-Angriff, den er auf dem 31. Chaos Communication Congress (31C3) vorgestellt hat. Er wird detailliert in einer kommentierten Version des 31C3-Vortrags (den es auch als Vid