Programme IA sur mesureC'est gratuit →
← Blog
Développement IA18 min read

Claude Code sécurité : bonnes pratiques pour développeurs en 2026

Guide complet pour utiliser Claude Code de façon sécurisée : permissions, settings.json, protection des secrets, risques MCP et supply chain. Avec recommandations ANSSI et OWASP.

À retenir

  • Permission deny > permission allow — dans settings.json, un deny l'emporte toujours sur un allow quelle que soit la spécificité : contre-intuitif mais critique à retenir
  • Bloquer Read(**/.env) ne suffit pas — il faut aussi bloquer Edit, Write et configurer ask sur Bash pour 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 via managed-settings.json avec disableBypassPermissionsMode: true en 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.json commité 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)

Un fichier lu par Claude contient du texte conçu pour modifier son comportement. Risque #1 OWASP dans les deux versions publiées (2023-24 et 2025). Vecteur : tout fichier tiers non audité.
🔑

Divulgation de secrets (LLM06)

Les fichiers .env, clés AWS, tokens API passent dans le contexte de session si aucune règle deny ne les bloque. Le LLM peut les révéler — directement ou via des logs.
⚙️

Excessive Agency (LLM08)

Accorder à l'agent des capacités disproportionnées : bypassPermissions, enableAllProjectMcpServers. Risque de croissance rapide avec la multiplication des agents autonomes.

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.

Recommandé

Scope projet (.claude/settings.json)

Commité dans Git ?
✅ Oui — partagé équipe
Peut être outrepassé ?
Par managed uniquement
Usage recommandé
Règles partagées, commandes autorisées
Exemple
allow: npm run test:*

Scope managed (/etc/claude-code/)

Commité dans Git ?
❌ Non — déployé MDM/Ansible
Peut être outrepassé ?
❌ Jamais
Usage recommandé
Politique entreprise non contournable
Exemple
disableBypassPermissionsMode: true

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
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é.

Recommandé

Mode plan

Comportement
Lecture seule, zéro modification
Quand l'utiliser
Audit de code tiers, dépôts inconnus
Niveau de risque
✅ Minimal

Mode default

Comportement
Demande avant chaque action non couverte
Quand l'utiliser
Développement quotidien solo ou équipe
Niveau de risque
✅ Faible avec règles deny

Mode bypassPermissions

Comportement
Passe outre toutes les demandes
Quand l'utiliser
À éviter en production
Niveau de risque
🔴 Élevé — à interdire en équipe

Sans règles deny strictes et sandbox activé, c'est le mode default — point.

Démonstration concrète du risque d'exposition des fichiers .env via Claude Code, avec les règles deny à mettre en place dans settings.json pour s'en protéger.

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

Ce paramètre active automatiquement tous les serveurs MCP trouvés dans le projet. Un seul serveur compromis suffit à exposer l'ensemble de votre contexte.

Lister explicitement les serveurs autorisés

Utilisez enabledMcpjsonServers: ['github', 'memory'] pour n'activer que les serveurs audités. Bloquez proactivement les serveurs à risque avec disabledMcpjsonServers.
🔍

Auditer le code source avant installation

Avant d'ajouter un serveur MCP tiers : lire le code source, vérifier les scopes d'accès, préférer les serveurs avec OAuth 2.1 + PKCE. Un serveur GitHub n'a pas besoin d'accès au filesystem local.
🏠

Préférer les serveurs locaux

Un serveur MCP exécuté localement sur infrastructure contrôlée est auditable. Un serveur distant tiers est une boîte noire — vous ne savez pas ce qu'il transmet.

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.

Développeur solo

🎯 Risque principal
.env et clés AWS dans le contexte
⚙️ Mode recommandé
default
✅ Action prioritaire
deny Read/**/.env* + Read/~/.aws/**
🗓️ cleanupPeriodDays
7 jours max
Recommandé

Équipe (2-10 devs)

🎯 Risque principal
Un dev permissif annule les protections du projet
⚙️ Mode recommandé
default avec settings.json commité
✅ Action prioritaire
settings.json dans le repo + .gitignore sur settings.local.json
🔑 Règle clé
ask sur git push + npm install

Entreprise

🎯 Risque principal
Gouvernance incohérente, absence d'audit trail
⚙️ Mode recommandé
managed-settings.json via MDM/Ansible
✅ Action prioritaire
disableBypassPermissionsMode: true
📋 Compliance
Vérification SCC Anthropic pour RGPD

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.json avec disableBypassPermissionsMode: true est 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 deny sur les fichiers personnels
  • 👤 Validation humaine pour les décisions critiques — mode default ou ask explicite
  • 📋 Transparence renforcée sur les actions agentiques — logs et audit trail

Les deux premiers s'implémentent directement dans settings.json.

Présentation en français de Claude Code appliqué à la sécurité applicative, couvrant les bonnes pratiques d'usage sécurisé dans un contexte professionnel.

Checklist opérationnelle : avant, pendant, après

1

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.

2

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.

3

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.

4

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

Un deny l'emporte sur tout allow, quelle que soit la précision de la règle. Poser ses deny en premier, les allow en second.
🔒

Bloquer Read + Edit + Write

Bloquer Read(**/.env) ne suffit pas. Il faut aussi Edit, Write et ask sur Bash pour couvrir toutes les voies d'accès aux secrets.
🔌

MCP : liste blanche stricte

Ne jamais activer enableAllProjectMcpServers. Déclarer explicitement les serveurs autorisés, auditer leur code source avant usage.
📦

npm ci en CI/CD

npm ci (pas npm install) force l'utilisation du lockfile sans résolution de nouvelles versions. Protection supply chain minimale obligatoire.
🗓️

Réduire cleanupPeriodDays

7 jours max pour les projets contenant des données sensibles. Les transcriptions de session ne doivent pas s'accumuler indéfiniment.
🏢

managed-settings pour les équipes

En entreprise, managed-settings.json avec disableBypassPermissionsMode: true est la seule garantie non contournable par les configurations locales.

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

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.

📩 Recevoir la brochure gratuite