1 Punkte von GN⁺ 2024-11-09 | 1 Kommentare | Auf WhatsApp teilen

Eine neue Ära der macOS-Sandbox-Escapes: Übersehene Angriffsflächen und die Entdeckung von mehr als 10 neuen Schwachstellen

  • Auf macOS-Systemen laufen die meisten Prozesse in einer eingeschränkten Sandbox-Umgebung. Selbst wenn ein Angreifer Remote Code Execution (RCE) erlangt, sind seine Möglichkeiten begrenzt. Der nächste Schritt besteht darin, die Sandbox zu umgehen, um umfassendere Dateizugriffsrechte zu erhalten.
  • Bei der Untersuchung bestehender Probleme zur Aufdeckung von Sandbox-Escape-Schwachstellen wurden wichtige übersehene Angriffsflächen und neue Angriffstechniken entdeckt. Dadurch konnten mehrere neue Sandbox-Escape-Schwachstellen identifiziert werden: CVE-2023-27944, CVE-2023-32414, CVE-2023-32404, CVE-2023-41077, CVE-2023-42961, CVE-2024-27864, CVE-2023-42977 usw.

Über die macOS-Sandbox

App-Sandbox

  • Die meisten Anwendungen laufen aufgrund der Anforderungen des Mac App Store mit Einschränkungen durch die App-Sandbox. Sandbox-Anwendungen müssen bestimmte Berechtigungen besitzen und werden nach Eintritt in die Sandbox containerisiert, wodurch Dateivorgänge eingeschränkt werden.
  • Dateien, die von Sandbox-Anwendungen erstellt werden, sind standardmäßig quarantänisiert, und Sandbox-Apps können dieses Attribut nicht entfernen.
  • Anwendungen ohne Sandbox haben uneingeschränkten Zugriff auf alle Benutzerdaten und Systemressourcen. Anwendungen mit Sandbox-Einschränkungen haben dagegen nur begrenzten Zugriff.
  • Geforkte Kindprozesse erben die Sandbox-Einschränkungen des Elternprozesses, aber Prozesse, die über LaunchService.framework gestartet werden, erben diese Einschränkungen nicht.

Service-Sandbox

  • Die meisten Apple-Daemon-Dienste laufen im Kontext einer Service-Sandbox. Sie werden durch Sandbox-Profile eingeschränkt, die an Systemorten definiert sind.
  • Service-Sandboxes sind in der Regel nicht containerisiert, und Dateien sind standardmäßig nicht quarantänisiert.

Angriffsfläche

Bisher gängige Methoden

Angriff über LaunchService.framework

  • Es gibt eine Methode, nicht-sandboxierte Anwendungen über das systemweite LaunchService-Framework anzugreifen. Beispielsweise kann CVE-2021-30864 die Umgebungsvariable $HOME der systemweiten, nicht-sandboxierten Anwendung Terminal.app manipulieren.
  • Es ist möglich, neue nicht-sandboxierte Anwendungen abzulegen und auszuführen, aber neu abgelegte Anwendungen werden quarantänisiert, wodurch ihre Ausführung verhindert wird.

Angriff auf verfügbare Mach-Services

  • Es gibt eine Methode, verfügbare Mach-Services anzugreifen, die im App-Sandbox-Profil aufgeführt sind. Informationen zu allen Mach-Services des Systems sind in der Datei /System/Library/xpc/launchd.plist gespeichert.

Neue, übersehene Methode

  • XPC-Services, die in der PID-Domäne existieren, sind ein übersehener Dienstetyp. Sie werden auf Anforderung von Anwendungen gestartet und beendet, wenn die anfordernde Anwendung beendet wird.
  • XPC-Services in der PID-Domäne können von Sandbox-Anwendungen aufgerufen werden, ohne zusätzliche Berechtigungs- oder Sandbox-Prüfungen.

Neue Schwachstellen und Exploits

Beta-No-CVE-1

  • Diese Schwachstelle betrifft nur Beta-Versionen von macOS Sonoma.
  • Die Schwachstelle befindet sich im XPC-Service /System/Library/PrivateFrameworks/StorageKit.framework/XPCServices/storagekitfsrunner.xpc.
  • Dieser Service kann ohne Sandbox-Einschränkungen ausgeführt werden und beliebige Systembefehle ausführen.

Beta-No-CVE-2

  • Diese Schwachstelle betrifft ebenfalls nur Beta-Software.
  • Die Schwachstelle befindet sich im XPC-Service /System/Library/PrivateFrameworks/AudioAnalyticsInternal.framework/XPCServices/AudioAnalyticsHelperService.xpc.
  • Beliebige Pfade können komprimiert werden, und die erzeugte ZIP-Datei wird nicht quarantänisiert.

CVE-2023-27944

  • Die Schwachstelle befindet sich im XPC-Service /System/Library/PrivateFrameworks/TrialServer.framework/XPCServices/TrialArchivingService.xpc.
  • Dieser Service läuft in einer Service-Sandbox, aber abgelegte Dateien werden nicht quarantänisiert.

CVE-2023-32414

  • Die Schwachstelle befindet sich im XPC-Service /System/Library/PrivateFrameworks/DesktopServicesPriv.framework/XPCServices/ArchiveService.xpc.
  • Dieser Service läuft in einer Service-Sandbox, aber abgelegte Dateien werden nicht quarantänisiert.

CVE-2023-32404

  • Die Schwachstelle befindet sich im XPC-Service /System/Library/PrivateFrameworks/WorkflowKit.framework/XPCServices/ShortcutsFileAccessHelper.xpc.
  • Dieser Service kann ohne Sandbox-Einschränkungen ausgeführt werden und verfügt über besondere TCC-Berechtigungen für vollständigen Festplattenzugriff.

CVE-2023-41077

  • Die Schwachstelle befindet sich im XPC-Service /System/Library/Frameworks/ImageCaptureCore.framework/XPCServices/mscamerad-xpc.xpc.
  • Dieser Service kann ohne Sandbox-Einschränkungen ausgeführt werden und verfügt über besondere TCC-Berechtigungen für den direkten Zugriff auf Fotos und entfernbare Volumes.

1 Kommentare

 
GN⁺ 2024-11-09
Hacker-News-Kommentare
  • Es wirkt seltsam, XPC-Dienste einzeln zu patchen; das scheint eher ein Designproblem der Sandbox selbst zu sein. Es wird hinterfragt, warum so viele XPC-Dienste aus Sandbox-Apps heraus zugänglich sind

    • macOS sollte einen fähigkeitsbasierten Darwin-Container statt einer Blacklist haben
    • SBPL (Sandbox Profile Language) ist interessant. Weitere Informationen dazu gibt es auf GitHub
    • Es stellt sich die Frage, ob es auf macOS einen Scheme-Interpreter gibt, der SBPL verarbeitet
    • sandbox-exec scheint das zu übernehmen
  • Sicherheits-Frameworks verursachen neue Probleme, und es fühlt sich nicht so an, als wäre die Sicherheit dadurch stärker geworden

    • Wie das niederländische Steuerrecht ist es eine Aneinanderreihung von Patches und wirkt bereits fast so, als hätte es Bewusstsein entwickelt
  • Es ist sehr wahrscheinlich, dass weiterhin XPC-bezogene Schwachstellen gefunden werden, und es wird mit fortlaufenden CVEs gerechnet, sofern Apple seinen Ansatz zur Härtung von Diensten nicht neu gestaltet

  • Man liebt und hasst die Sandbox zugleich

    • Die Sandbox ist eine großartige zweite Verteidigungslinie, aber große Unternehmen verweigern oft die Behebung von RCEs, wenn diese nicht aus der Sandbox ausbrechen können, und nutzen sie dadurch als primäre Verteidigungslinie
  • macOS wurde nicht für feingranulare Berechtigungen entworfen und lässt sich nicht einfach auf die bestehende Mac-OS- und NeXTSTEP-Technologie aufsetzen

    • Als App-Entwickler und nicht als Sicherheitsforscher wurden mehrere Umgehungen gefunden, aber das Meldesystem für Sicherheitslücken von Apple ist so ineffizient, dass man schließlich aufgegeben hat
    • macOS ist zum Opfer von Security-Theater geworden und schadet Nutzern und Entwicklern
  • Auch unter iOS existieren Schwachstellen, bei rund 2 Milliarden aktiven Geräten

  • XPC-Dienste in der PID-Domäne sind ein cleverer Weg, Sandbox-Beschränkungen zu umgehen, und Apples Patch wirkt wie ein Provisorium

    • Die Art und Weise, wie die Vererbung der Sandbox funktioniert, müsste grundlegend neu gestaltet werden
  • Es wird gefragt, ob ein Ausbruch aus der Sandbox einfach in einen Zustand ohne Sandbox zurückführt oder in einen Zustand mit höheren Rechten