À retenir
- Permission
deny> permissionallow— dans settings.json, undenyl'emporte toujours sur unallowquelle que soit la spécificité : contre-intuitif mais critique à retenir - Bloquer
Read(**/.env)ne suffit pas — il faut aussi bloquerEdit,Writeet configurerasksurBashpour les commandes de lecture de fichiers sensibles - L'ANSSI déconseille formellement le déploiement d'outils IA agentiques en production sans politique stricte (CERTFR-2026-ACT-016) — Claude Code inclus
- 53 % des serveurs MCP utilisent des credentials statiques non sécurisés (Astrix Security, 2025) — chaque serveur ajouté multiplie la surface d'attaque
bypassPermissions= mode le plus dangereux — à interdire viamanaged-settings.jsonavecdisableBypassPermissionsMode: trueen contexte équipe
Un cabinet d'expertise comptable parisien a laissé son développeur utiliser Claude Code pendant six semaines sur le projet de migration de sa base RH. À la revue de code finale, l'équipe sécurité a découvert que les fichiers .env de production — incluant les tokens d'API de paie et les credentials AWS — étaient passés dans le contexte de session à chaque démarrage. Claude n'avait rien fait de malveillant. Mais la transcription complète de la session était stockée en clair, accessible. Six semaines d'historique de context windows contenant des données personnelles. Le RGPD avait été violé sans que personne ne s'en aperçoive.
C'est exactement ce que l'ANSSI signale dans CERTFR-2026-ACT-016 : les agents IA "créent des risques de fuite de données sensibles vers des ressources externes non maîtrisées" et de "perte de maîtrise des actions réalisées". Le problème n'est pas Claude Code en lui-même — c'est l'absence de configuration de sécurité.
Ce guide couvre les cinq axes que les autres articles traitent séparément : permissions, protection des secrets, sécurité MCP, supply chain, et conformité — avec des exemples de configuration complets et des recommandations différenciées selon votre profil.
💡 Bon à savoir : Un fichier
.claude/settings.jsoncommité dans votre dépôt Git suffit à poser les règles de sécurité partagées pour toute l'équipe. C'est la première ligne de défense — et elle prend moins de 10 minutes à mettre en place.
Pourquoi Claude Code change la donne côté sécurité
Claude Code n'est pas un simple assistant IA : il écrit, exécute et connecte des outils externes — là où un chatbot classique se contente de lire et répondre. C'est la différence entre un conseiller qui suggère et un prestataire qui a les clés de votre bureau.
Cette architecture agentique élargit radicalement la surface d'attaque. L'OWASP Top 10 LLM identifie trois risques directement applicables à Claude Code :
Prompt injection (LLM01)
Divulgation de secrets (LLM06)
Excessive Agency (LLM08)
La bonne nouvelle : chacun de ces risques est configurable. Voici comment.
Les permissions dans settings.json : la règle que personne ne dit
Dans Claude Code, un deny l'emporte TOUJOURS sur un allow, quelle que soit la précision de la règle. Poser ses deny en premier, les allow en second : c'est la garantie que vos garde-fous tiennent. Claude Code lit sa configuration depuis quatre emplacements. Comprendre cette hiérarchie, c'est comprendre comment poser des garde-fous non contournables.
Bloquer Read(**/.env) ne suffit pas seul. Il faut aussi bloquer Edit(**/.env), Write(**/.env) et configurer ask sur Bash pour les commandes de lecture. Sinon, Bash(cat .env) passe librement malgré la règle Read. Les permissions Read, Edit et Write sont indépendantes dans Claude Code.
Un settings.json sécurisé, annoté
Voici un exemple de fichier .claude/settings.json à commiter dans votre dépôt — adapté pour une équipe de développement web :
{
"$schema": "https://json.schemastore.org/claude-code-settings.json",
"permissions": {
"allow": [
"Bash(npm run lint:*)",
"Bash(npm test:*)",
"Bash(git status)",
"Bash(git diff:*)",
"Bash(git log:*)"
],
"ask": [
"Bash(git push:*)",
"Bash(git commit:*)",
"Bash(npm install:*)"
],
"deny": [
"Read(**/.env)",
"Read(**/.env.*)",
"Read(**/secrets/**)",
"Read(~/.ssh/**)",
"Read(~/.aws/credentials)",
"Edit(**/.env)",
"Write(**/.env)",
"Bash(rm -rf:*)",
"Bash(curl:*)",
"Bash(wget:*)"
]
},
"cleanupPeriodDays": 7,
"defaultMode": "default"
}
cleanupPeriodDays: 7 — réduire ce délai est la première mesure RGPD : les transcriptions de session ne sont pas stockées indéfiniment avec le contexte sensible qu'elles contiennent.
Ajoutez .claude/settings.local.json à votre .gitignore projet. Ce fichier de préférences personnelles ne doit jamais être commité : il peut contenir des chemins ou des règles allow locales qui annuleraient silencieusement les protections du settings.json partagé.
Pour aller plus loin sur la configuration avancée de Claude Code, consultez notre guide Claude Code débutant et les fonctionnalités cachées de Claude Code. Pour découvrir l'écosystème Claude IA dans son ensemble et comprendre ce qui distingue les différents produits Anthropic, notre guide de référence vous donne la vue d'ensemble nécessaire.
Claude
Agent CLI autonome d'Anthropic pour le développement : lit, écrit, exécute du code et gère Git. Configurable via settings.json pour un usage sécurisé en solo, équipe ou entreprise.
Les 6 modes de permission : lequel choisir selon le contexte
Le bon mode de permission dépend du contexte : plan pour l'audit de code tiers (lecture seule, zéro risque), default pour le développement quotidien, bypassPermissions à proscrire en production. Le mode auto n'est acceptable que si des règles deny strictes sont en place ET que l'environnement est sandboxé.
Sans règles deny strictes et sandbox activé, c'est le mode default — point.
Sécurité MCP : pourquoi 53 % des serveurs exposent vos credentials
Plus de la moitié des serveurs MCP utilisent des credentials statiques non sécurisés — selon Astrix Security (2025), exactement 53 %. Une minorité de serveurs MCP adoptent OAuth, la méthode recommandée. Et fin 2025, Bitsight TRACE recensait environ 1 000 serveurs MCP exposés sans authentification sur Internet.
Le Model Context Protocol (MCP) connecte Claude Code aux outils externes — GitHub, Slack, bases de données, filesystem distant. Sa croissance explosive entre 2025 et 2026 a créé une surface d'attaque que la plupart des équipes sous-estiment.
Le CVE-2025-49596 (CVSS 9.4) documente l'exécution de commandes arbitraires via des instances MCP Inspector non authentifiées. Ce n'est pas une vulnérabilité théorique.
💡 Bon à savoir : Le premier package MCP malveillant détecté (septembre 2025) a opéré pendant deux semaines avant son retrait. La vigilance sur les serveurs MCP tiers doit être permanente — auditer le code source avant toute installation est le minimum non négociable.
Ne jamais activer enableAllProjectMcpServers
Lister explicitement les serveurs autorisés
Auditer le code source avant installation
Préférer les serveurs locaux
Le principe posé par Red Hat dans son analyse de 2025 est sans ambiguïté : la spécification MCP délègue la sécurité à OAuth sans en garantir une implémentation robuste — toute la responsabilité incombe aux équipes de sécurité.
Pour approfondir les cas d'usage des serveurs MCP, consultez notre article sur les serveurs MCP pour l'IA.
Supply chain : le risque que Claude Code ne peut pas voir
Claude Code peut suggérer et installer des packages npm ou pip — et ces installations déclenchent les scripts postinstall automatiquement, avant toute relecture de code. Configurer "ask": ["Bash(npm install:*)"] dans settings.json force une approbation humaine à chaque installation. C'est la protection minimale obligatoire.
Claude Code peut suggérer et installer des packages npm ou pip sur votre validation. Ces installations déclenchent les scripts postinstall — exécution automatique avant toute relecture de code. Configurer "ask": ["Bash(npm install:*)"] dans settings.json force une approbation humaine à chaque installation.
Selon le rapport Sonatype 2026 State of the Software Supply Chain, 454 600 nouveaux packages malveillants ont été détectés en 2025 — soit 4 fois plus qu'en 2023. Le CERT-FR a publié une alerte spécifique (CERTFR-2025-ACT-051) sur la compromission de plusieurs packages npm dans des attaques supply chain documentées.
Le mécanisme le plus courant : le typosquatting. Un package nommé requestss au lieu de requests, coloramma au lieu de colorama. Le code malveillant s'exécute à l'installation via les scripts postinstall — avant même que vous ayez eu le temps de relire quoi que ce soit.
Une étude académique (ICPC 2024) démontre qu'une quantité infime de données d'entraînement empoisonnées suffit à introduire des failles systématiques dans le code généré. Claude Code peut suggérer des packages légitimes tout en ayant été influencé par des patterns d'empoisonnement dans ses données d'entraînement — raison supplémentaire de ne jamais approuver npm install sans vérification manuelle.
La configuration minimale passe par la règle "ask": ["Bash(npm install:*)"] dans settings.json. Complétez avec npm ci plutôt que npm install en CI/CD — cela force l'utilisation stricte du package-lock.json sans résolution de nouvelles versions.
# En CI/CD : installer strictement depuis le lockfile
npm ci
# Audit des vulnérabilités après installation
npm audit --audit-level=critical
# Vérification d'un package avant installation
npx check-npm-package <nom-du-package>
Recommandations par profil : solo, équipe, entreprise
Les enjeux de sécurité ne sont pas les mêmes selon l'échelle à laquelle vous opérez. C'est l'angle que tous les articles existants esquivent.
Pour les entreprises, la configuration se pose au niveau du système plutôt que du projet. Sur Linux : /etc/claude-code/managed-settings.json. Sur macOS : /Library/Application Support/ClaudeCode/managed-settings.json. Ce fichier est déployé via MDM ou Ansible et ne peut pas être outrepassé par les configurations utilisateur ou projet.
{
"permissions": {
"deny": [
"Read(**/.env*)",
"Read(**/credentials*)",
"Read(~/.ssh/**)",
"Read(~/.aws/**)"
]
},
"disableBypassPermissionsMode": true
}
💡 Bon à savoir : En contexte entreprise,
managed-settings.jsonavecdisableBypassPermissionsMode: trueest la seule garantie non contournable — ni les configurations projet, ni les préférences utilisateur ne peuvent l'outrepasser. C'est la fondation d'une politique de sécurité IA cohérente.
RGPD et CNIL : ce que l'usage de Claude Code implique
Claude Code envoie le contexte — code, extraits de fichiers — vers les serveurs Anthropic localisés aux États-Unis. Dès que votre projet contient des données personnelles, ce transfert tombe sous le RGPD — même des emails de test dans un fichier de fixtures, même des noms dans un dump SQL.
La CNIL a publié en juillet 2026 une analyse de 17 pages sur les risques RGPD des IA agentiques. Son constat : "Le passage à l'agentique marque un changement d'échelle dans les usages d'IA qui amplifie les risques de cybersécurité ainsi que les risques pour les données personnelles."
Les clauses contractuelles standard (SCC) d'Anthropic couvrent techniquement le transfert. Mais la CNIL recommande d'aller plus loin : règles deny sur les fichiers contenant des données personnelles, réduction du cleanupPeriodDays, et pour les données les plus sensibles (santé, finances), envisager un modèle on-premise. Ce n'est pas une obligation immédiate — c'est une recommandation de privacy by design.
La recommandation opérationnelle de la CNIL pour les IA agentiques se résume en trois principes :
- 🔒 Cloisonnement de la mémoire des agents — règles
denysur les fichiers personnels - 👤 Validation humaine pour les décisions critiques — mode
defaultouaskexplicite - 📋 Transparence renforcée sur les actions agentiques — logs et audit trail
Les deux premiers s'implémentent directement dans settings.json.
Checklist opérationnelle : avant, pendant, après
Avant de démarrer (pré-session)
Vérifier les serveurs MCP actifs — aucun serveur non audité. Confirmer le mode de permission adapté au contexte (plan pour l'audit de code tiers, default pour le développement). S'assurer que .env et fichiers secrets sont dans le .gitignore. Vérifier que .claude/settings.json existe et contient les règles deny minimales.
Pendant la session
Ne jamais approuver --dangerously-skip-permissions sans raison documentée. Relire toute suggestion d'installation de package (npm install, pip install) avant approbation. Vérifier les commandes curl ou wget suggérées — risque d'exfiltration. Ne pas approuver l'accès à des fichiers hors du répertoire de travail.
Après la session
Vérifier git diff pour détecter des modifications inattendues. Lancer npm audit --audit-level=critical après toute session ayant modifié les dépendances. Réduire cleanupPeriodDays si la session contenait des données sensibles.
En CI/CD
Utiliser le mode dontAsk avec une liste blanche allow stricte. Exécuter Claude Code dans un conteneur Docker sans accès au réseau. Interdire bypassPermissions via managed-settings.json. Scanner les dépendances après chaque session automatisée.
Maîtriser Claude Code, c'est maîtriser la surface d'attaque qu'il crée
La sécurité et la productivité ne sont pas opposées avec Claude Code — elles se renforcent. Un développeur qui comprend les permissions travaille plus vite, pas moins : il n'interrompt pas ses sessions pour approuver des actions non souhaitées, et il ne passe pas trois jours à récupérer des secrets exposés.
Les cinq règles à retenir :
deny > allow, toujours
Bloquer Read + Edit + Write
MCP : liste blanche stricte
npm ci en CI/CD
Réduire cleanupPeriodDays
managed-settings pour les équipes
La formation des équipes de développement à ces risques est explicitement mentionnée par l'ANSSI comme mesure complémentaire aux configurations techniques — une culture de sécurité IA ne s'improvise pas par un fichier de configuration seul. Notre formation Claude Code couvre ces configurations en détail dans un contexte professionnel.
Un settings.json sécurisé + npm ci en CI/CD + liste blanche MCP + cleanupPeriodDays à 7 : ces quatre réglages prennent moins de 30 minutes à mettre en place et couvrent l'essentiel des vecteurs d'attaque documentés par l'ANSSI et l'OWASP pour les agents IA en 2026.
À The Intelligence Academy, le module "Agents & automatisation" de notre formation Claude Code couvre précisément ces configurations de sécurité, les permissions avancées et l'intégration sécurisée des outils MCP dans un workflow de développement professionnel.
Découvrez nos formations IA
Sources et références
- CERT-FR / ANSSI — CERTFR-2026-ACT-016 (2026) — Vulnérabilités et risques des produits d'automatisation par IA agentique sur les postes de travail
- CNIL — IA agentique et protection des données personnelles (2026) — Analyse des risques RGPD des IA agentiques
- OWASP — Top 10 for Large Language Model Applications (éditions 2023-24 et 2025) — Référentiel de vulnérabilités applicables à Claude Code
- CERT-FR — CERTFR-2025-ACT-051 (2025) — Attaque par la chaîne d'approvisionnement de plusieurs packages npm
- SentinelOne — Sécurité du Model Context Protocol (MCP) (2025) — Chiffres sur les vulnérabilités des serveurs MCP
- Red Hat — MCP : Understanding security risks and controls (2025) — Analyse des risques protocolaires MCP
- Sonatype — 2026 State of the Software Supply Chain (2026) — 454 600 nouveaux packages malveillants détectés en 2025
- Pete Freitag — Claude Code Permissions and Security Settings (2026) — Guide pratique sur les pièges des règles de permission
- Blog Stéphane Robert — Claude Code settings.json avancé (2026) — Configuration avancée des permissions par projet
FAQ
Comment configurer Claude Code de façon sécurisée rapidement ?
Cinq actions immédiates : (1) créer .claude/settings.json avec deny sur Read(**/.env*), Read(~/.aws/**) et Bash(curl:*); (2) passer cleanupPeriodDays à 7 ; (3) mettre defaultMode: "default" ; (4) ne jamais activer bypassPermissions ; (5) utiliser le mode plan pour tout dépôt tiers non audité. Ces cinq règles couvrent 80 % des vecteurs d'attaque documentés.
Claude Code peut-il exposer mes secrets de code ?
Oui, si aucune règle deny n'est configurée. Les vecteurs documentés : les fichiers .env, ~/.aws/credentials et ~/.ssh/ passent dans le contexte de session si Claude les lit — ce que des commandes comme cat .env ou une exploration du projet peuvent déclencher. La protection passe par des règles deny sur Read, Edit, Write et Bash pour les fichiers sensibles, pas uniquement sur Read.
Les permissions Claude Code suffisent-elles pour une équipe ?
Le système natif est suffisant si le fichier .claude/settings.json est commité dans le dépôt (contrat d'équipe) et si settings.local.json est dans le .gitignore. Le risque d'équipe principal : un développeur avec une configuration locale permissive qui outrepasse les règles projet. Pour les entreprises, managed-settings.json avec disableBypassPermissionsMode: true est la seule garantie non contournable.
Qu'est-ce que le mode Auto de Claude Code et est-il sûr ?
Le mode auto approuve automatiquement les actions avec des contrôles en arrière-plan. Il est acceptable uniquement si trois conditions sont réunies : règles deny strictes dans settings.json, sandbox activé (conteneur Docker ou devcontainer), et contexte de développement non sensible. Sans ces conditions, le mode default est toujours préférable — il demande avant chaque action non couverte.
Comment protéger ses données personnelles avec Claude Code et le RGPD ?
Claude Code envoie le contexte vers les serveurs Anthropic aux États-Unis, ce qui déclenche le RGPD dès que des données personnelles sont présentes. Actions recommandées par la CNIL : règles deny sur les fichiers contenant des données personnelles, réduction de cleanupPeriodDays, validation humaine pour les actions critiques. Pour les données de santé ou financières, envisager un déploiement on-premise avec un modèle souverain.
Quels serveurs MCP éviter avec Claude Code ?
Évitez : les serveurs exposant des credentials statiques (vérifiable dans le code source), les serveurs sans authentification OAuth, les serveurs avec accès filesystem complet quand votre usage ne le requiert pas, et tout serveur non maintenu activement. Ne jamais activer enableAllProjectMcpServers: true. Préférez les serveurs locaux sur infrastructure contrôlée aux serveurs distants tiers.
