Une nouvelle ère des évasions du sandbox de macOS : surfaces d’attaque négligées et découverte de plus de 10 nouvelles vulnérabilités
- Sur les systèmes macOS, la plupart des processus s’exécutent dans un environnement sandbox restrictif. Même si un attaquant obtient une exécution de code à distance (RCE), ses capacités restent limitées. L’étape suivante consiste à contourner le sandbox afin d’obtenir des autorisations d’accès aux fichiers plus étendues.
- En réexaminant les problèmes existants pour découvrir des vulnérabilités d’évasion du sandbox, une surface d’attaque négligée importante et de nouvelles techniques d’attaque ont été mises au jour. Cela a permis de découvrir plusieurs nouvelles vulnérabilités d’évasion du sandbox : CVE-2023-27944, CVE-2023-32414, CVE-2023-32404, CVE-2023-41077, CVE-2023-42961, CVE-2024-27864, CVE-2023-42977, etc.
À propos du sandbox de macOS
App Sandbox
- Conformément aux exigences du Mac App Store, la plupart des applications s’exécutent avec les restrictions de l’App Sandbox. Les applications sandboxées doivent disposer d’autorisations spécifiques et, une fois dans le sandbox, elles sont conteneurisées, ce qui limite les opérations sur les fichiers.
- Les fichiers créés par une application sandboxée sont par défaut mis en quarantaine, et l’application sandboxée ne peut pas supprimer cet attribut.
- Les applications non sandboxées peuvent accéder sans restriction à toutes les données utilisateur et aux ressources système. À l’inverse, les applications soumises à des restrictions de sandbox n’ont qu’un accès limité.
- Les processus enfants forkés héritent des restrictions de sandbox du processus parent, mais les processus lancés via
LaunchService.framework n’héritent pas de ces restrictions.
Service Sandbox
- La plupart des services daemon d’Apple s’exécutent dans un contexte de Service Sandbox. Ils sont limités par des profils de sandbox définis à des emplacements système.
- Le Service Sandbox n’est généralement pas conteneurisé, et les fichiers ne sont pas mis en quarantaine par défaut.
Surface d’attaque
Méthodes classiques existantes
Attaque via LaunchService.framework
- Il existe une méthode pour attaquer des applications non sandboxées via le framework système LaunchService. Par exemple, CVE-2021-30864 permet de manipuler la variable d’environnement $HOME de l’application système non sandboxée Terminal.app.
- Il est possible de déposer puis d’exécuter une nouvelle application non sandboxée, mais l’application nouvellement déposée est mise en quarantaine, ce qui empêche son exécution.
Attaque via les services Mach accessibles
- Il existe une méthode consistant à attaquer les services Mach accessibles listés dans le profil App Sandbox. Les informations sur tous les services Mach du système sont stockées dans le fichier
/System/Library/xpc/launchd.plist.
Nouvelles méthodes négligées
- Les services XPC présents dans le domaine PID sont des services négligés. Ils sont démarrés par les applications à la demande et s’arrêtent lorsque l’application appelante se termine.
- Les services XPC du domaine PID peuvent être appelés depuis des applications sandboxées, sans vérification supplémentaire des autorisations ni contrôle du sandbox.
Nouvelles vulnérabilités et exploits
Beta-No-CVE-1
- Cette vulnérabilité n’affecte que les versions bêta de macOS Sonoma.
- La vulnérabilité se trouve dans le service XPC
/System/Library/PrivateFrameworks/StorageKit.framework/XPCServices/storagekitfsrunner.xpc.
- Ce service peut s’exécuter sans restrictions de sandbox et peut exécuter des commandes système arbitraires.
Beta-No-CVE-2
- Cette vulnérabilité n’affecte elle aussi que des logiciels en version bêta.
- La vulnérabilité se trouve dans le service XPC
/System/Library/PrivateFrameworks/AudioAnalyticsInternal.framework/XPCServices/AudioAnalyticsHelperService.xpc.
- Il peut compresser un chemin arbitraire, et le fichier zip généré n’est pas mis en quarantaine.
CVE-2023-27944
- La vulnérabilité se trouve dans le service XPC
/System/Library/PrivateFrameworks/TrialServer.framework/XPCServices/TrialArchivingService.xpc.
- Ce service entre dans le Service Sandbox, mais les fichiers déposés ne sont pas mis en quarantaine.
CVE-2023-32414
- La vulnérabilité se trouve dans le service XPC
/System/Library/PrivateFrameworks/DesktopServicesPriv.framework/XPCServices/ArchiveService.xpc.
- Ce service entre dans le Service Sandbox, mais les fichiers déposés ne sont pas mis en quarantaine.
CVE-2023-32404
- La vulnérabilité se trouve dans le service XPC
/System/Library/PrivateFrameworks/WorkflowKit.framework/XPCServices/ShortcutsFileAccessHelper.xpc.
- Ce service peut s’exécuter sans restrictions de sandbox et dispose d’une autorisation TCC spéciale pour l’accès complet au disque.
CVE-2023-41077
- La vulnérabilité se trouve dans le service XPC
/System/Library/Frameworks/ImageCaptureCore.framework/XPCServices/mscamerad-xpc.xpc.
- Ce service peut s’exécuter sans restrictions de sandbox et dispose d’une autorisation TCC spéciale permettant un accès direct aux photos et aux volumes amovibles.
1 commentaires
Avis Hacker News
Corriger les services XPC individuellement paraît étrange, et cela semble indiquer un problème de conception du sandbox lui-même. Certains s’interrogent sur la raison pour laquelle tant de services XPC sont accessibles depuis des applications sandboxées
sandbox-execs’en chargeLes frameworks de sécurité créent de nouveaux problèmes, sans donner le sentiment que la sécurité a réellement été renforcée
Il est très probable que d’autres failles liées à XPC continuent d’être découvertes, et l’on s’attend à une série continue de CVE tant qu’Apple n’aura pas repensé son approche du durcissement des services
Certains adorent et détestent à la fois le sandbox
macOS n’a pas été conçu pour des permissions granulaires, et il est impossible d’ajouter cela proprement par-dessus les anciennes technologies de Mac OS et NeXTSTEP
Des vulnérabilités existent aussi sur iOS, avec environ 2 milliards d’appareils actifs
Les services XPC du domaine PID constituent une manière astucieuse de contourner les restrictions du sandbox, et les correctifs d’Apple ressemblent à des solutions temporaires
Certains se demandent si sortir du sandbox signifie simplement revenir à un état sans sandbox, ou accéder à un niveau de privilèges supérieur