1 Punkte von GN⁺ 2025-03-10 | 1 Kommentare | Auf WhatsApp teilen

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
  • 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
    • 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
  • 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

 
GN⁺ 2025-03-10
Hacker-News-Kommentare
  • Apples neueste SoCs unterstützen verschachtelte Virtualisierung, und im M4 iPad Pro wird ein Exclave für die Kamera-LED verwendet
    • Es wird gehofft, dass die nächste Überarbeitung des Apple Platform Security Guide den SK-Exclave und Baseband-Mitigations für Wi‑Fi-Radarerkennung behandelt
  • Apple hat einige spezifische Ergänzungen zu SPTM vorgenommen
    • XNU wird zu einer von Mikro-Kerneln inspirierten Architektur refaktoriert, um die Codebasis zu verkleinern und sicherheitskritische Aufgaben zu isolieren
    • Die Isolierung des Speicherraums erfolgt mit Hilfe des Secure Page Table Monitor (SPTM)
    • Sicherheitskritische Aufgaben wie Code-Signing, Rechteprüfung, Developer Mode und Restricted Execution Mode werden vom Trusted eXecution Monitor (TXM) verarbeitet
  • Wahrscheinlich wird dies über ARMs TrustZone-Technologie umgesetzt
    • Im XNU-Quellcode gibt es mehrere Verweise auf einen Übergang zum Konzept der sicheren Welt von TrustZone
    • Es gibt mehr als 150 TrustZone-CVEs
  • Google hat vor einigen Jahren pKVM auf Pixel-Geräten mithilfe von Hardware-verschachtelter Virtualisierung implementiert und den Code in den Linux-Mainline-Kernel upstream eingebracht
    • Abgesehen von der Debian-"Linux Terminal"-VM wurden jedoch keine Schutzfunktionen angekündigt, die pKVM/AVF verwenden
  • Steve glaubte, dass ein Laptop ein Tagebuch sei, und dachte, dass er dafür Verantwortung trage
    • Wenn Tim Steves Überzeugung nicht geteilt hätte, wäre er nicht CEO geworden
    • Es gibt die Meinung, dass Steve fehlt
  • Apple baut den XNU-Kernel zu Exclaves um
    • Der Autor dieses Beitrags hat einen sehr ausgefeilten und gut geschriebenen Text verfasst
    • Als jemand, der Exclaves verfolgt hat, wird er ebenfalls als gut geschrieben angesehen
  • Ich bin mit diesem Wissensniveau nicht vertraut, frage mich aber, ob man den Enclave selbst angreifen könnte, um höhere Privilegien als im Kernel zu erlangen
    • Es wird gefragt, ob diese Hardware so etwas wie ein Coprozessor ist
  • Es wird gefragt, welche Auswirkungen das auf die Sicherheit von macOS haben wird
    • Laut Apple-Dokumentation wird SPTM nicht verwendet
    • Der Exclave, der derzeit den Kameraindikator anzeigt, gilt nicht für macOS, könnte aber in Zukunft relevant werden
  • Apple ist hervorragend darin, seine "Plantage" zu schützen
    • Es wird jedoch gefragt, was einen vor Apple selbst schützt
    • Es wird gefragt, ob jemals über die Möglichkeit eines "letzten geohot" nachgedacht wurde
  • Apple könnte SPTM verwenden, um den Wechsel zwischen der sicheren und der nicht sicheren Welt zu verwalten
    • Der Grund sei, dass es kein TrustZone gebe