OROM-Sicherheit (Option ROM) in macOS
Hinweis: OROMs werden aktuell nicht auf Mac-Computern mit Apple Chips unterstützt.
OROM-Sicherheit bei Mac-Computern mit Apple T2 Security Chip
Sowohl bei Thunderbolt- als auch bei PCIe-Geräten kann ein „Option ROM“, kurz „OROM“, d. h. ein Erweiterungs-ROM physisch an das Gerät angeschlossen werden. (Hierbei handelt es sich in der Regel nicht um einen echten ROM, sondern um einen wiederbeschreibbaren Chip, der Firmware speichert.) Auf UEFI-basierten Systemen besteht diese Firmware normalerweise aus einem UEFI-Treiber, der von der UEFI-Firmware eingelesen und ausgeführt wird. Der ausgeführte Code hat die Aufgabe, die Hardware zu initialisieren und zu konfigurieren, von der er abgerufen wird, damit die Hardware für den Rest der Firmware nutzbar gemacht werden kann. Diese Funktion ist erforderlich, damit spezialisierte Hardware anderer Anbieter in frühesten Startphasen geladen und betrieben werden kann – zum Beispiel zum Starten von externen RAID-Arrays.
Da aber OROMs generell wiederbeschreibbar sind, kann ein Angreifer den OROM eines legitimen Peripheriegeräts überschreiben. Der Code des Angreifers wird frühzeitig im Startvorgang ausgeführt und kann die Ausführungsumgebung manipulieren und die Integrität nachfolgend geladener Software verletzen. Wenn der Angreifer sein eigenes schadhaftes Gerät in das System einschleust, ist er ebenfalls in der Lage, bösartigen Code auszuführen.
In macOS 10.12.3 wurde das Verhalten von Mac-Computern, die nach 2011 auf den Markt kamen, so geändert, dass beim Starten des Mac-Computers standardmäßig keine OROMs ausgeführt werden, sofern nicht eine bestimmte Tastenkombination gedrückt wird. Diese Kombination von Schlüsseln dient dem Schutz vor schädlichen OROMs, die versehentlich in die macOS-Startsequenz eingeführt werden. Das Standardverhalten des Dienstprogramms für Firmware-Passwörter wurde wie folgt geändert: Wenn der Benutzer nun ein Firmware-Passwort festlegt, können OROMs nicht ausgeführt werden, selbst wenn die Tastenkombination gedrückt wird. Dies ist eine Schutzmaßnahme gegen einen physisch anwesenden Angreifer, der in böser Absicht einen schädlichen OROM einschleust. Für Benutzer, die weiterhin OROMs ausführen müssen und ein Firmware-Passwort definiert haben, kann mit dem Befehlszeilenprogramm firmwarepasswd
von macOS eine vom Standard abweichende Option konfiguriert werden.
Sicherheit bei OROM-Sandbox
In macOS 10.15 wurde die UEFI-Firmware aktualisiert. Sie enthält nun einen Mechanismus für das Sandboxing von OROMs und das Entziehen von Berechtigungen von OROMs. Die UEFI-Firmware führt üblicherweise den gesamten Code (inklusive OROMs) auf der höchsten Berechtigungsstufe für die CPU aus (als „Ring 0“ bezeichnet). Außerdem verwendet sie einen einzelnen, gemeinsam genutzten virtuellen Speicherbereich für den gesamten Code und alle Daten. Ring 0 ist die Berechtigungsstufe, auf der der macOS-Kernel ausgeführt wird, wohingegen Apps auf der niedrigeren Berechtigungsstufe Ring 3 ausgeführt werden. Die OROM-Sandbox entzieht OROMs die Berechtigung, indem sie wie der Kernel die virtuelle Speichertrennung nutzt und dann veranlasst, dass die OROMs in Ring 3 ausgeführt werden.
Die Sandbox sorgt zudem für eine deutliche Einschränkung sowohl der Schnittstellen, die die OROMs aufrufen können (ähnlich wie beim Filtern von Systemaufrufen in Kernels), als auch der Art des Geräts, als das sich ein OROM registrieren kann (ähnlich wie bei App-Genehmigungen). Dieses Design bietet den Vorteil, dass schädliche OROMs innerhalb von Ring 0 keine direkten Schreibvorgänge mehr ausführen können. Stattdessen sind sie auf die sehr enge und gut definierte Sandbox-Schnittstelle beschränkt. Diese beschränkte Schnittstelle reduziert die Angriffsfläche erheblich und zwingt Angreifer dazu, zuerst die Sandbox zu überwinden und ihre Berechtigungen aufzustocken.