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
L’isolation de sécurité résout ces défis en :
  1. Définissant des limites claires : Spécifiez exactement quels répertoires et hôtes réseau Claude Code peut accéder
  2. Réduisant les demandes de permission : Les commandes sûres dans le sandbox ne nécessitent pas d’approbation
  3. Maintenant la sécurité : Les tentatives d’accès aux ressources en dehors du sandbox déclenchent des notifications immédiates
  4. 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
Ces restrictions au niveau du système d’exploitation garantissent que tous les processus enfants générés par les commandes de Claude Code héritent des mêmes limites de sécurité.

Premiers pas

Activer l’isolation de sécurité

Vous pouvez activer l’isolation de sécurité en exécutant la commande slash /sandbox :
> /sandbox
Cela active l’outil bash en sandbox avec les paramètres par défaut, permettant l’accès à votre répertoire de travail actuel tout en bloquant l’accès aux emplacements système sensibles.

Configurer l’isolation de sécurité

Personnalisez le comportement du sandbox via votre fichier settings.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
Protection du réseau :
  • 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
Surveillance et contrôle :
  • 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 :
  1. L’opération est bloquée au niveau du système d’exploitation
  2. Vous recevez une notification immédiate
  3. 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
{
  "sandbox": {
    "httpProxyPort": 8080,
    "socksProxyPort": 8081,
  }
}

Intégration avec les outils de sécurité existants

L’outil bash en sandbox fonctionne aux côtés de :

Meilleures pratiques

  1. Commencez restrictif : Commencez avec des permissions minimales et développez selon les besoins
  2. Surveillez les journaux : Examinez les tentatives de violation du sandbox pour comprendre les besoins de Claude Code
  3. Utilisez des configurations spécifiques à l’environnement : Différentes règles de sandbox pour les contextes de développement par rapport à la production
  4. Combinez avec les permissions : Utilisez l’isolation de sécurité aux côtés des politiques IAM pour une sécurité complète
  5. 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 :
npx @anthropic-ai/sandbox-runtime <command-to-sandbox>
Pour les détails de mise en œuvre et le code source, visitez le référentiel GitHub.

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