Aperçu
Claude Code dispose d’une isolation de sécurité native pour fournir un environnement plus sûr pour l’exécution des agents tout en réduisant le besoin de demandes de permission constantes. Au lieu de demander une permission pour chaque commande bash, l’isolation de sécurité crée des limites définies à l’avance où Claude Code peut travailler plus librement avec un risque réduit. L’outil bash en sandbox utilise des primitives au niveau du système d’exploitation pour appliquer à la fois l’isolation du système de fichiers et du réseau.Pourquoi l’isolation de sécurité est importante
La sécurité basée sur les permissions traditionnelles nécessite une approbation constante de l’utilisateur pour les commandes bash. Bien que cela offre un contrôle, cela peut entraîner :- Fatigue d’approbation : Cliquer répétitivement sur « approuver » peut amener les utilisateurs à faire moins attention à ce qu’ils approuvent
- Productivité réduite : Les interruptions constantes ralentissent les flux de travail de développement
- Autonomie limitée : Claude Code ne peut pas travailler aussi efficacement en attendant les approbations
- Définissant des limites claires : Spécifiez exactement quels répertoires et hôtes réseau Claude Code peut accéder
- Réduisant les demandes de permission : Les commandes sûres dans le sandbox ne nécessitent pas d’approbation
- Maintenant la sécurité : Les tentatives d’accès aux ressources en dehors du sandbox déclenchent des notifications immédiates
- Permettant l’autonomie : Claude Code peut s’exécuter plus indépendamment dans les limites définies
L’isolation de sécurité efficace nécessite à la fois l’isolation du système de fichiers et du réseau. Sans isolation réseau, un agent compromis pourrait exfiltrer des fichiers sensibles comme les clés SSH. Sans isolation du système de fichiers, un agent compromis pourrait installer une porte dérobée dans les ressources système pour accéder au réseau. Lors de la configuration de l’isolation de sécurité, il est important de s’assurer que vos paramètres configurés ne créent pas de contournements dans ces systèmes.
Comment cela fonctionne
Isolation du système de fichiers
L’outil bash en sandbox restreint l’accès au système de fichiers à des répertoires spécifiques :- Comportement d’écriture par défaut : Accès en lecture et écriture au répertoire de travail actuel et à ses sous-répertoires
- Comportement de lecture par défaut : Accès en lecture à l’ensemble de l’ordinateur, sauf certains répertoires refusés
- Accès bloqué : Impossible de modifier les fichiers en dehors du répertoire de travail actuel sans permission explicite
- Configurable : Définissez des chemins autorisés et refusés personnalisés via les paramètres
Isolation du réseau
L’accès réseau est contrôlé via un serveur proxy s’exécutant en dehors du sandbox :- Restrictions de domaine : Seuls les domaines approuvés peuvent être accédés
- Confirmation de l’utilisateur : Les nouvelles demandes de domaine déclenchent des demandes de permission
- Support de proxy personnalisé : Les utilisateurs avancés peuvent implémenter des règles personnalisées sur le trafic sortant
- Couverture complète : Les restrictions s’appliquent à tous les scripts, programmes et sous-processus générés par les commandes
Application au niveau du système d’exploitation
L’outil bash en sandbox exploite les primitives de sécurité du système d’exploitation :- Linux : Utilise bubblewrap pour l’isolation
- macOS : Utilise Seatbelt pour l’application du sandbox
Premiers pas
Activer l’isolation de sécurité
Vous pouvez activer l’isolation de sécurité en exécutant la commande slash/sandbox
:
Configurer l’isolation de sécurité
Personnalisez le comportement du sandbox via votre fichiersettings.json
. Consultez Paramètres pour la référence de configuration complète.
Support des modèles :
- Les chemins supportent les chemins absolus (
/home/user
), relatifs (./src
), le répertoire personnel (~
) et les caractères génériques (**/*.json
) - Les domaines supportent les correspondances exactes (
github.com
), les caractères génériques (*.npmjs.org
) et les sous-domaines
Avantages en matière de sécurité
Protection contre l’injection de prompt
Même si un attaquant manipule avec succès le comportement de Claude Code par injection de prompt, le sandbox garantit que votre système reste sécurisé : Protection du système de fichiers :- Impossible de modifier les fichiers de configuration critiques tels que
~/.bashrc
- Impossible de modifier les fichiers au niveau du système dans
/bin/
- Impossible de lire les fichiers refusés dans vos paramètres de permission Claude
- Impossible d’exfiltrer des données vers des serveurs contrôlés par un attaquant
- Impossible de télécharger des scripts malveillants à partir de domaines non autorisés
- Impossible de faire des appels API inattendus vers des services non approuvés
- Impossible de contacter des domaines non explicitement autorisés
- Toutes les tentatives d’accès en dehors du sandbox sont bloquées au niveau du système d’exploitation
- Vous recevez des notifications immédiates lorsque les limites sont testées
- Vous pouvez choisir de refuser, d’autoriser une fois ou de mettre à jour définitivement votre configuration
Surface d’attaque réduite
L’isolation de sécurité limite les dommages potentiels causés par :- Dépendances malveillantes : Packages NPM ou autres dépendances avec du code nuisible
- Scripts compromis : Scripts de construction ou outils avec des vulnérabilités de sécurité
- Ingénierie sociale : Attaques qui trompent les utilisateurs pour qu’ils exécutent des commandes dangereuses
- Injection de prompt : Attaques qui trompent Claude pour qu’il exécute des commandes dangereuses
Fonctionnement transparent
Lorsque Claude Code tente d’accéder aux ressources réseau en dehors du sandbox :- L’opération est bloquée au niveau du système d’exploitation
- Vous recevez une notification immédiate
- Vous pouvez choisir de :
- Refuser la demande
- L’autoriser une fois
- Mettre à jour votre configuration de sandbox pour l’autoriser définitivement
Limitations de sécurité
- Limitations du sandbox réseau : Le système de filtrage réseau fonctionne en restreignant les domaines auxquels les processus sont autorisés à se connecter. Il n’inspecte pas autrement le trafic passant par le proxy et les utilisateurs sont responsables de s’assurer qu’ils n’autorisent que les domaines de confiance dans leur politique.
Les utilisateurs doivent être conscients des risques potentiels liés à l’autorisation de domaines larges comme
github.com
qui pourraient permettre l’exfiltration de données. De plus, dans certains cas, il peut être possible de contourner le filtrage réseau par domain fronting.- Escalade de privilèges via les sockets Unix : La configuration
allowUnixSockets
peut accorder involontairement l’accès à des services système puissants qui pourraient entraîner des contournements du sandbox. Par exemple, si elle est utilisée pour autoriser l’accès à/var/run/docker.sock
, cela accorderait effectivement l’accès au système hôte en exploitant le socket docker. Les utilisateurs sont encouragés à examiner attentivement tous les sockets Unix qu’ils autorisent via le sandbox. - Escalade de permissions du système de fichiers : Les permissions d’écriture du système de fichiers trop larges peuvent permettre des attaques d’escalade de privilèges. L’autorisation d’écritures dans les répertoires contenant des exécutables dans
$PATH
, les répertoires de configuration système ou les fichiers de configuration du shell utilisateur (.bashrc
,.zshrc
) peut entraîner une exécution de code dans des contextes de sécurité différents lorsque d’autres utilisateurs ou processus système accèdent à ces fichiers. - Force du sandbox Linux : L’implémentation Linux offre une isolation forte du système de fichiers et du réseau mais inclut un mode
enableWeakerNestedSandbox
qui lui permet de fonctionner à l’intérieur d’environnements Docker sans espaces de noms privilégiés. Cette option affaiblit considérablement la sécurité et ne doit être utilisée que dans les cas où une isolation supplémentaire est autrement appliquée.
Utilisation avancée
Configuration de proxy personnalisée
Pour les organisations nécessitant une sécurité réseau avancée, vous pouvez implémenter un proxy personnalisé pour :- Déchiffrer et inspecter le trafic HTTPS
- Appliquer des règles de filtrage personnalisées
- Enregistrer toutes les demandes réseau
- Intégrer avec l’infrastructure de sécurité existante
Intégration avec les outils de sécurité existants
L’outil bash en sandbox fonctionne aux côtés de :- Politiques IAM : Combinez avec les paramètres de permission pour une défense en profondeur
- Conteneurs de développement : Utilisez avec devcontainers pour une isolation supplémentaire
- Politiques d’entreprise : Appliquez les configurations de sandbox via les paramètres gérés
Meilleures pratiques
- Commencez restrictif : Commencez avec des permissions minimales et développez selon les besoins
- Surveillez les journaux : Examinez les tentatives de violation du sandbox pour comprendre les besoins de Claude Code
- Utilisez des configurations spécifiques à l’environnement : Différentes règles de sandbox pour les contextes de développement par rapport à la production
- Combinez avec les permissions : Utilisez l’isolation de sécurité aux côtés des politiques IAM pour une sécurité complète
- Testez les configurations : Vérifiez que vos paramètres de sandbox ne bloquent pas les flux de travail légitimes
Open source
Le runtime du sandbox est disponible en tant que package npm open source pour une utilisation dans vos propres projets d’agent. Cela permet à la communauté plus large des agents IA de construire des systèmes autonomes plus sûrs et plus sécurisés. Cela peut également être utilisé pour mettre en sandbox d’autres programmes que vous souhaitez exécuter. Par exemple, pour mettre en sandbox un serveur MCP, vous pouvez exécuter :Limitations
- Surcharge de performance : Minimale, mais certaines opérations du système de fichiers peuvent être légèrement plus lentes
- Compatibilité : Certains outils qui nécessitent des modèles d’accès système spécifiques peuvent nécessiter des ajustements de configuration, ou même devront être exécutés en dehors du sandbox
- Support de plateforme : Supporte actuellement Linux et macOS ; le support Windows est prévu
Voir aussi
- Sécurité - Fonctionnalités de sécurité complètes et meilleures pratiques
- IAM - Configuration des permissions et contrôle d’accès
- Paramètres - Référence de configuration complète
- Référence CLI - Options de ligne de commande incluant
-sb