1 points par GN⁺ 2024-11-09 | 1 commentaires | Partager sur WhatsApp

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

 
GN⁺ 2024-11-09
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

    • macOS devrait disposer d’un conteneur Darwin fondé sur les capacités plutôt que sur une liste noire
    • SBPL (langage de profils de sandbox) est intéressant. Des informations à ce sujet sont disponibles sur GitHub
    • Certains se demandent si macOS embarque un interpréteur Scheme pour traiter SBPL
    • Il semble que sandbox-exec s’en charge
  • Les frameworks de sécurité créent de nouveaux problèmes, sans donner le sentiment que la sécurité a réellement été renforcée

    • C’est une succession de correctifs, comme le droit fiscal néerlandais, au point de sembler déjà doté de conscience
  • 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

    • Le sandbox est une excellente deuxième ligne de défense, mais les grandes entreprises refusent de corriger les RCE lorsqu’il n’est pas possible de s’en échapper et l’utilisent comme ligne de défense principale
  • 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

    • En tant que développeur d’applications et non chercheur en sécurité, certains ont trouvé plusieurs contournements, mais ont abandonné car le système de signalement des failles de sécurité d’Apple est inefficace
    • macOS est devenu une victime du théâtre de la sécurité, au détriment des utilisateurs comme des développeurs
  • 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

    • Il faudrait repenser de fond en comble le mode d’héritage du sandbox
  • Certains se demandent si sortir du sandbox signifie simplement revenir à un état sans sandbox, ou accéder à un niveau de privilèges supérieur