Über Apple Exclaves
(randomaugustine.medium.com)Probleme monolithischer Betriebssystem-Kernel
- Moderne Betriebssysteme sind im Allgemeinen in zwei zentrale Schutzdomänen unterteilt:
- Nichtprivilegierte Domäne (User Mode): Programme können leistungsstarke Operationen wie Dateizugriff oder Netzwerkkommunikation nicht direkt ausführen
- Privilegierte Domäne (Kernel Mode): Wenn ein Programm per Systemaufruf den Kernel auffordert, eine Aufgabe auszuführen, führt Kernel-Code diese Aufgabe aus und gibt das Ergebnis anschließend an den User Mode zurück
- Die meisten Betriebssysteme verwenden ein monolithisches Kernel-Design:
- Der Kernel besitzt uneingeschränkten Zugriff auf sämtliche Hardware, den Speicher und die Benutzerdaten des Systems
- Das wäre unproblematisch, wenn Software fehlerfrei wäre und keine Sicherheitsverletzungen versucht würden, in der Praxis gibt es jedoch Bugs und Sicherheitslücken
- Aufgrund der Größe monolithischer Kernel ist die Wahrscheinlichkeit von Sicherheitslücken höher, und eine einzelne Schwachstelle kann das gesamte System kompromittieren
- Ein Mikrokernel-Design stärkt die Sicherheit, indem es den Großteil der Funktionen aus dem Kernel entfernt und in separaten nichtprivilegierten Prozessen ausführt:
- Sicherheitsverbesserungen sind möglich
- Es kann jedoch zu Leistungseinbußen und höherer Komplexität in der Anwendungssoftware kommen
- Trotzdem werden monolithische Kernel wegen ihrer Performance-Vorteile weiterhin breit eingesetzt
- Apples XNU-Kernel:
- Gemeinsamer Kernel für iOS, macOS, tvOS, visionOS und watchOS
- Ein Mach-basierter Mikrokernel, der jedoch faktisch wie ein monolithischer Kernel arbeitet, weil die meisten Systemfunktionen im selben privilegierten Bereich laufen
- Daher können dieselben Sicherheitsprobleme wie bei monolithischen Kerneln auftreten
Bemühungen zur Isolierung
- Es wurden verschiedene software- und hardwarebasierte Isolationstechniken eingeführt:
- Microsoft Virtualisation-based Security (VBS) – wird in Windows Credential Guard verwendet
- Intel Software Guard Extension (SGX) und VT-X2
- ARM TrustZone – wird u. a. in Samsung Knox, Samsung Pay, Android Verified Boot und bei der sicheren PIN-Eingabe unter Android verwendet
Auch Apple hat seine Versuche, Daten vom Kernel zu trennen, schrittweise ausgeweitet
-
2013 — Apple Secure Enclave
- Erstmals 2013 im iPhone 5s eingeführt
- Die Secure Enclave läuft auf einem unabhängigen gehärteten CPU-Kern und arbeitet mit dem mikrokernelbasierten OS SepOS
- Der Kernel von SepOS verwendet Apples angepassten eingebetteten L4-Mikrokernel cL4
- Speichert und schützt sensible Daten wie kryptografische Schlüssel und biometrische Informationen (z. B. Face ID)
- Arbeitet unabhängig vom iOS-Kernel und stellt iOS Dienste nur über gesicherte Interaktionen bereit
- Selbst wenn der iOS-Kernel kompromittiert wird, bleibt die Secure Enclave unbeeinflusst, solange kein zusätzlicher Exploit gelingt
- Wichtig: Secure Enclave und Secure Exclave sind nicht dasselbe
-
2017 — Page Protection Layer (PPL)
- Sicherheitsfunktion, die mit dem A11-Prozessor des iPhone 8 und iPhone X eingeführt wurde
- Hardware- und softwarebasierte Funktion, die nur bestimmten Teilen des Kernels das Recht gibt, Seitentabellen im Speicher zu verändern
- Der Rest des Kernels ist bei Änderungen an Seitentabellen eingeschränkt
- Dadurch wird die Angriffsfläche kleiner und Umgehungsversuche werden seltener
- PPL fügte zwar eine zusätzliche Schutzschicht hinzu, ließ aber weiterhin die meisten Kernel-Rechte bestehen und konnte die Sicherheit daher nicht vollständig stärken
-
2021–2023 — Secure Page Table Monitor (SPTM)
- Neue Funktion, eingeführt mit dem A15-Prozessor des iPhone 13 und iOS 17
- Ersetzt PPL, schützt zusätzliche Speicherfunktionen und trennt diese in mehrere Subsysteme
- Verstärkt die Sicherheit durch Code-Signing-Prüfung und stellt sicher, dass nur von Apple signierter Code ausgeführt wird
- In diesem Zeitraum tauchten im XNU-Quellcode indirekte Hinweise auf exclave auf
- Es wurde vermutet, dass von SPTM verwaltete Subsysteme Exclaves sein könnten
-
2024 — Exclaves: grundlegender Umbau des Sicherheitsmodells von XNU
- Im XNU-Quellcode mit Unterstützung für M4- und A18-Prozessoren taucht das Exclave-Konzept auf
- Auf älteren Prozessoren sind Exclaves nicht aktiviert
- Damit wurde klar, dass Exclaves das Ergebnis einer umfassenden Neugestaltung des XNU-Sicherheitsmodells sind
-
XNU-Exclaves
Haftungsausschluss: Die interne Struktur der Exclaves ist nicht vollständig Open Source, daher können einige Aussagen auf Vermutungen oder Interpretationen beruhen
- Exclaves sind ein neues Funktionsbündel, das das bisherige monolithische Kernel-Sicherheitsmodell von XNU deutlich stärkt
- Exclaves sind von XNU isolierte Ressourcen, die selbst dann geschützt bleiben, wenn der Kernel kompromittiert wird
- Eigenschaften von Exclaves:
- Werden beim OS-Build vorab definiert
- Werden über einen Namen oder eine ID identifiziert
- Bestehen aus verschiedenen Typen
- Werden beim Boot initialisiert
- Sind als unabhängige Domänen organisiert
- SPTM schützt den Exclave-Speicher mit neuen, Exclaves gewidmeten Seitentypen
- Exclave-Ressourcentypen
- Gemeinsam genutzte Speicherpuffer – sowohl vom Kernel als auch von Exclaves zugänglich
- In XNU als schreibgeschützt oder Lese-/Schreibzugriff konfigurierbar
- Audiopuffer und Sensoren – stärken die Sicherheit der Zugriffsindikatoren für Kamera und Mikrofon
- Conclave – gruppiert mehrere Ressourcen in einer eigenen Sicherheitsdomäne; verwaltet durch einen Conclave Manager
- Dienste – führen Code in Exclaves aus, wenn XNU-Threads sie aufrufen
- Gemeinsam genutzte Speicherpuffer – sowohl vom Kernel als auch von Exclaves zugänglich
-
Secure Kernel — seL4-basiert?
- Damit Exclave-Dienste unabhängig von XNU laufen können, wurde ein neuer Kernel Secure Kernel (SK) eingeführt
- In den SK-Image-Dateien wurde der Versionsstring „cL4“ gefunden
- Wahrscheinlich basiert SK nicht auf Apples bestehendem cL4-Kernel (L4-basiert), sondern auf seL4
- Die IPC-Struktur, die XNU für die Kommunikation mit SK verwendet, ähnelt der von seL4
- In SK verwendete Strings enthalten viele Konzepte, die auch in seL4 vorkommen (z. B. capabilities, frames, untyped memory)
- Dass Apple im April 2024 der seL4 Foundation beigetreten ist, könnte daher kein Zufall sein
- Auch der Kernel des C1-Prozessors (Apples neuer Baseband-Chip) scheint auf L4 zu basieren
-
Sichere Welt — ARM TrustZone?
- SepOS läuft auf einem separaten Prozessor, SK hingegen auf dem schnellen Application Processor
- Dafür ist eine zusätzliche privilegierte Prozessorebene nötig → die Umsetzung könnte über eines der folgenden Verfahren erfolgen:
- Unterstützung für Virtualisierungserweiterungen
- Apples SPTM-Erweiterungen
- Am wahrscheinlichsten ist die Nutzung von ARM TrustZone
- TrustZone-Architektur
- Teilt das System in zwei Welten:
- Secure World – führt sicheren Code aus
- Insecure World – führt normalen Code aus (XNU und iOS laufen hier)
- Im XNU-Quellcode wurden viele Hinweise auf Umschaltungen zwischen Secure World und Insecure World gefunden
- Apple verwendet statt des von TrustZone vorgeschlagenen Trusted-Application-Modells ein Exclave-Service-Modell
- SK stellt Exclave-Dienste und -Ressourcen in einer isolierten Umgebung bereit → höhere Sicherheit
- Es dürfte äußerst schwierig sein, aus der Secure World in die Insecure World auszubrechen und XNU zu kompromittieren
- Teilt das System in zwei Welten:
- RINGGATE
- Apple könnte SPTM verwenden, um den Wechsel zwischen Secure World und Insecure World zu verwalten
- Im Code wird dieser Wechsel als „RINGGATE“ bezeichnet
Fazit
- Bedeutung der Einführung von Exclaves
- Um anhaltenden Angriffen durch hochentwickelte Bedrohungsakteure zu begegnen, hat Apple Exclaves eingeführt und damit das Sicherheitsniveau des Betriebssystems erhöht
- Durch die Isolierung sensibler Ressourcen werden folgende Effekte erwartet:
- Kleinere Angriffsfläche
- Geringere Auswirkungen einer einzelnen Kernel-Schwachstelle
- Die Absicherung monolithischer Kernel bleibt eine endlose Herausforderung, und Exclaves sind ein Ansatz, dieses Problem anzugehen
- Ob dies langfristig der richtige Weg ist oder nur eine Zwischenlösung, ist unklar
- Persönliche Hoffnung → künftig ein Redesign auf Basis von CHERI und ARM Morello 😊
- Derzeit ist es jedoch der größte Abwehrversuch unter Herstellern von Consumer-Geräten
- Dieser Artikel behandelt nicht im Detail, welche konkreten Komponenten in Exclaves verlagert wurden
- Aus Build-Images lässt sich schließen, dass unter anderem folgende Elemente in Exclaves laufen:
- Sichere Kamera-/Mikrofon-Indikatoren
- Teile der Funktionen der Apple Neural Engine (ANE)
- Einige Gerätetreiber
- Kommunikationskomponenten mit der Secure Enclave
- Aus Build-Images lässt sich schließen, dass unter anderem folgende Elemente in Exclaves laufen:
- Es ist möglich, dass künftig noch mehr Komponenten in Exclaves verlagert werden
- Die Sicherheitswirkung von Exclaves hängt vom Optimierungsgrad dieser Verlagerung ab
- Exclaves könnten auch in der Infrastruktur von Apple Private Cloud Compute zum Einsatz kommen
- Damit ließen sich in cloudbasierter KI hohe Sicherheits- und Datenschutzgarantien erreichen
1 Kommentare
Hacker-News-Kommentare