Der Startvorgang beim Mac war bisher durch einen physikalischen Angreifer kompromittierbar. Nach dem Update auf macOS Sierra 10.12.2 werden standardmäßig keine Option ROMs mehr geladen, die sich auf angeschlossenen Thunderbolt / PCIe Geräten befinden. Um in jedem Fall sicherzugehen, sollte man ein Firmware-Paßwort setzen.
Daß der Boot-Prozeß von Computern angreifbar ist, war schon viele Jahre bekannt. In 2012 wurde klar, daß Macs dabei keine Ausnahme waren. In CSI MacMark: Rootkit mit Thunderbolt habe ich das Thema zum ersten Mal ausführlich behandelt. Die Grundidee von Hacker Snare besteht darin, den Speicherort in externen Geräten, der per Design für optionale Treiber gedacht ist, mit Malware zu bestücken. Diese externe Firmware wird während des Rechnerstarts in einem sehr frühen Stadium aufgerufen noch bevor das Betriebssystem selbst geladen wird. Dadurch hat sie die Möglichkeit, die Firmware des Rechners zu kompromittieren und in Folge dessen das Firmware-Paßwort abzufangen oder den Kernel des Systems noch vor seinem Start zu verändern.
Die beiden Gründe, warum wir trotzdem nicht alle auf infizierten Computern arbeiten, sind:
Später wurde Snares Idee weiter fortgeführt von Trammell Hudson wie ich in CSI MacMark: Thunderstrike Bootkit beschrieben habe. Apple hatte diese spezielle Angriffsvariante jedoch kurz darauf entschärft. Trammell hat dann mit Hackern von LegbaCore eine Version 2 von Thunderstrike entwickelt.
Apple hat Ende 2015 die beiden Hacker von LegbaCore eingestellt und gegen Ende 2016 auch Snare.
Die Probleme mit den Option ROMs und Angriffsvarianten darüber wurden langsam zum Hobby von immer mehr Hackern. So zeigte Ulf Frisk ein Gerät, das das FileVault Paßwort während eines Neustarts auslesen konnte. Bevor macOS startet, hat das EFI die Kontrolle und in der alten Version vor Dezember 2016 erlaubte dies nämlich Thunderbolt / PCIe Geräten, den Hauptspeicher direkt zu lesen und zu schreiben (DMA, Direct Memory Access). Das ist mit dem Dezember Update nicht mehr möglich und Ulf schreibt im selben Blogeintrag, der Mac wäre nun hinsichtlich dieses Angriffs eines der sichersten Geräte.
Wenn macOS selbst gestartet ist, ist kein DMA mehr möglich, weil macOS die I/O MMU (Input Output Memory Management Unit) verwendet, die angeschlossenen Geräten nur kontrollierten indirekten Zugriff auf den Hauptspeicher gestattet. Ulf demonstriert hier, daß er bei Linux und Windows sofort DMA nutzen kann, um mit einem externen PCIe Gerät den laufenden Kernel zu kompromittieren.
Auf dem Mac muß er für denselben Hack erst die I/O MMU (VT-d) deaktivieren gemäß Apples Anleitung, indem er in den Recovery Mode bootet und dann die entsprechenden Boot Parameter setzt. Das läßt sich allerdings verhindern, wenn man ein Firmware Paßwort aktiv hat.
Das bringt mich zu den etwas engstirnigen Aussagen von Matthew Garrett auf dem 32C3 von 2015.
Hier ist eine deutschsprachige Kurzfassung seiner Aussagen.
In einem Punkt hatte er recht: Der Mac Boot Prozeß ließ sich zu der Zeit tatsächlich noch wie in CSI MacMark: Rootkit mit Thunderbolt beschrieben kompromittieren. Matthew ging es darum, daß selbst verschlüsselte Platten nicht sicher sind, wenn der Boot Prozeß unsicher ist. Das ist ebenfalls korrekt, denn die Eingabe des Firmware Paßwortes kann in dem Fall abgefangen werden. Den Boot Prozeß von Linux und Windows PCs findet er auch nicht super sicher, aber dank UEFI Secure Boot oder TPM zufriedenstellender zum damaligen Zeitpunkt als auf dem Mac.
Die Engstirnigkeit besteht darin, sich nur auf den Boot Vorgang zu konzentrieren, denn wie Ulf oben im Video in seinem Vortrag zeigt, ist der Kernel bei Linux und Windows standardmäßig im Gegensatz zu macOS per DMA angreifbar und eine etwaige Full Disk Encryption aushebelbar. Matthews mehr oder weniger sicherer Bootvorgang ist völlig nutzlos, wenn das Betriebssystem anschließend dem Angreifer alles per DMA auf dem Silbertablett serviert.
Demzufolge war man 2015 auf Apple Hardware insgesamt nicht weniger sicher unterwegs als auf PCs, wenn es einem wie Matthew um die Sicherheit der verschlüsselten Festplatte ging. Und seit Ende 2016 ist man mit dem Mac definitiv sicherer auch in dieser Hinsicht, weil der Angriff über die Firmware nicht mehr funktioniert und macOS out of the box nicht per DMA übernommen werden kann. PCs mit Linux und Windows bieten weiterhin je nach Hardware eventuell auch einen relativ sicheren Boot Vorgang, aber dort reißt das jeweilige Betriebssystem mit seinem Hintern wieder alles um, was der tolle Boot Prozeß mühsam absichern mußte. Seine Sprüche hätte sich Matthew also bereits auf dem 32C3 schon in die Haare schmieren können und heute erst recht.
Ein Angriff dieser Art würde in der Praxis den Normaluser auch niemals treffen, denn man benötigt, wie oben beschrieben, direkten Zugang zum Gerät und spezielle Hardware plus böse Firmware in deren Option ROM. Selbst wenn es also technisch so schlimm gewesen wäre, wie Matthew es darstellte, wären so oder so nur hochinteressante Einzelpersonen in Gefahr gewesen, nicht jedoch der durchschnittliche Club Mate schlürfende Wichtigtuer mit ungewaschenem Haar auf Hackerkonferenzen oder Joe User von nebenan. Panikmache und dicke Hose vom feinsten.
Xeno Kovah, der von LegbaCore zu Apple kam, hat in einer Serie von Tweets auf die Neuerungen hingewiesen am 15. Dezember 2016. Auch in Apples Dokumentation finden sich Details. Dies sind die wichtigsten Punkte:
Option-Shift-Command-Period
.sudo nvram enable-legacy-orom-behavior=1
bzw. sudo nvram -d enable-legacy-orom-behavior
firmwarepasswd -h
ansehen.sudo firmwarepasswd -setpasswd -setmode command
gefolgt von einem Neustart.Macht das Update auf 10.12.2, setzt ein Firmware Paßwort und genießt den sichersten Mac aller Zeiten.