Passer au contenu principal

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 bac à sable 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 fournisse 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 bac à sable ne nécessitent pas d’approbation
  3. Maintenant la sécurité : Les tentatives d’accès aux ressources en dehors du bac à sable 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 du 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 obtenir un accès 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 ça marche

Isolation du système de fichiers

L’outil bash en bac à sable 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 en é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 au réseau est contrôlé via un serveur proxy s’exécutant en dehors du bac à sable :
  • 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 bac à sable exploite les primitives de sécurité du système d’exploitation :
  • Linux : Utilise bubblewrap pour l’isolation
  • macOS : Utilise Seatbelt pour l’application du bac à sable
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é.

Commencer

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 bac à sable 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 bac à sable via votre fichier settings.json. Voir Paramètres pour la référence de configuration complète.
Toutes les commandes ne sont pas compatibles avec l’isolation de sécurité d’emblée. Quelques notes qui peuvent vous aider à tirer le meilleur parti du bac à sable :
  • De nombreux outils CLI nécessitent d’accéder à certains hôtes. Au fur et à mesure que vous utilisez ces outils, ils demanderont la permission d’accéder à certains hôtes. Accorder la permission leur permettra d’accéder à ces hôtes maintenant et à l’avenir, leur permettant de s’exécuter en toute sécurité dans le bac à sable.
  • watchman est incompatible avec l’exécution dans le bac à sable. Si vous exécutez jest, envisagez d’utiliser jest --no-watchman
  • docker est incompatible avec l’exécution dans le bac à sable. Envisagez de spécifier docker dans excludedCommands pour forcer son exécution en dehors du bac à sable.
Claude Code inclut un mécanisme d’échappatoire intentionnel qui permet aux commandes de s’exécuter en dehors du bac à sable si nécessaire. Lorsqu’une commande échoue en raison des restrictions du bac à sable (comme des problèmes de connectivité réseau ou des outils incompatibles), Claude est invité à analyser l’échec et peut réessayer la commande avec le paramètre dangerouslyDisableSandbox. Les commandes qui utilisent ce paramètre passent par le flux de permissions normal de Claude Code nécessitant la permission de l’utilisateur pour s’exécuter. Cela permet à Claude Code de gérer les cas limites où certains outils ou opérations réseau ne peuvent pas fonctionner dans les contraintes du bac à sable.Vous pouvez désactiver ce mécanisme d’échappatoire en définissant "allowUnsandboxedCommands": false dans vos paramètres de bac à sable. Lorsqu’il est désactivé, le paramètre dangerouslyDisableSandbox est complètement ignoré et toutes les commandes doivent s’exécuter en bac à sable ou être explicitement listées dans excludedCommands.

Avantages 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 bac à sable 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 les données vers des serveurs contrôlés par l’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 bac à sable 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 de :
  • 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 bac à sable :
  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 bac à sable pour l’autoriser définitivement

Limitations de sécurité

  • Limitations de l’isolation du réseau : Le système de filtrage du 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 des 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 peuvent permettre l’exfiltration de données. De plus, dans certains cas, il peut être possible de contourner le filtrage du réseau via domain fronting.
  • Escalade de privilèges via les sockets Unix : La configuration allowUnixSockets peut accorder par inadvertance l’accès à des services système puissants qui pourraient entraîner des contournements du bac à sable. 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 bac à sable.
  • Escalade de permissions du système de fichiers : Les permissions d’écriture du système de fichiers trop larges peuvent permettre les 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 l’exécution de code dans différents contextes de sécurité lorsque d’autres utilisateurs ou processus système accèdent à ces fichiers.
  • Force du bac à sable Linux : L’implémentation Linux fournit 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 des 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": {
    "network": {
      "httpProxyPort": 8080,
      "socksProxyPort": 8081
    }
  }
}

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

L’outil bash en bac à sable 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 du bac à sable via les paramètres gérés

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 bac à sable pour comprendre les besoins de Claude Code
  3. Utilisez des configurations spécifiques à l’environnement : Différentes règles de bac à sable 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 bac à sable ne bloquent pas les flux de travail légitimes

Open source

Le runtime du bac à sable 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 bac à sable d’autres programmes que vous souhaitez exécuter. Par exemple, pour mettre en bac à sable 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 s’exécuter en dehors du bac à sable
  • 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