16/04/2026

sandbox-exec – L'outil de sandboxing caché de votre Mac

Par admin

sandbox-exec - L'outil de sandboxing caché de votre Mac

Sandbox-exec, c’est un utilitaire en ligne de commande dont pas grand monde ne parle mais qui est intégré à macOS et qui permet de lancer n’importe quel programme dans un bac à sable sécurisé, avec des restrictions sur mesure. Apple l’a déprécié, mais ça marche toujours… et c’est franchement pratique.

Avec ce truc, il suffit de créer un petit fichier de profil (extension .sb) et vous lancez votre commande avec sandbox-exec -f profil.sb votre_commande. En faisant ça, le programme de votre choix tournera dans un environnement verrouillé où il ne pourra accéder qu’à ce que vous autorisez explicitement.

Ensuite, vous avez deux philosophies. Soit vous bloquez tout par défaut et vous n’autorisez que le strict nécessaire, c’est à dire l’approche parano parfaite pour tester du code louche. Soit vous autorisez tout et vous ne bloquez que ce qui craint. La première est plus sûre, la seconde plus rapide à mettre en place.

Voici un exemple concret pour avoir un terminal coupé du réseau. Suffit de 3 lignes de profil (c’est du LISP) :

(version 1)
(allow default)
(deny network*)

Et là, sandbox-exec -f no-network.sb zsh vous donnera un shell qui peut tout faire sauf se connecter à Internet. Sympa donc pour lancer un script dont vous n’êtes pas sûr à 100% ! Par contre, pour les apps GUI c’est plus capricieux… en testant la même chose avec Firefox, le navigateur arrive quand même à se connecter (il passe probablement par un autre mécanisme réseau). Du coup, pour les applications graphiques, faudra tester au cas par cas.

D’ailleurs, macOS embarque déjà plein de profils dans /System/Library/Sandbox/Profiles/. Ce sont ceux qu’Apple utilise pour ses propres services et certains sont bien commentés, ce qui en fait une super base pour créer les vôtres (Votre IA personnelle en sera ravie ^^).

Côté debug, si un programme plante dans le bac à sable sans explication, la commande log stream --predicate 'sender=="Sandbox"' affichera en temps réel toutes les opérations bloquées. Comme ça, vous voyez exactement ce qui coince et vous ajustez votre profil en conséquence.

Après comme je vous le disais en intro, Apple a officiellement déprécié sandbox-exec car elle préfère pousser son App Sandbox via Xcode, pensé pour les apps du Mac App Store. Mais bon pour isoler rapidement un script en ligne de commande, l’App Sandbox ne sert à rien. Du coup, cet utilitaire CLI reste le seul moyen natif de faire du sandboxing à la volée sur Mac.

Et avec les agents IA qui exécutent du code YOLO partout sur nos machines, avoir un outil comme celui-ci pour isoler un process sans rien installer, c’est plutôt cool je pense ! Si vous utilisez déjà
des outils comme Opcode
(une GUI pour Claude Code) qui intègrent déjà du sandboxing, c’est exactement cette couche en dessous. Il s’agit de Seatbelt, le framework de sandboxing kernel de macOS, qui fait tout le boulot au niveau OS.

Bref, si la sécurité de votre Mac vous préoccupe, allez gratouiller un peu ça. Tous les profils sont déjà sur votre machine, y’a plus qu’à jouer avec !

Source

Source : korben.info