Sécuriser les agents et les outils
- Appliquer le moindre privilège — n'accorder à un agent que l'accès dont son travail a besoin
- Reconnaître le problème du député confus : un agent emprunte votre autorité
- Superposer les cinq défenses qui réduisent le rayon d'impact lorsqu'un agent est piégé
- Décider quelles actions exigent un humain dans la boucle
- Valider les entrées des outils pour qu'un argument erroné ou manipulé ne puisse pas s'exécuter
Dès qu'une IA peut passer à l'action (appeler des outils, exécuter du code, interroger des API), elle hérite d'un modèle de sécurité. L'objectif n'est pas de rendre le modèle impossible à tromper — c'est de garantir que même s'il est trompé, il ne puisse pas causer beaucoup de dégâts.
Le principe fondamental : le moindre privilège
Donnez à un agent l'accès minimum qu'exige sa tâche, rien de plus.
- Un agent qui résume des documents a besoin de la lecture, pas de l'écriture ni du réseau.
- Un relecteur a besoin de lire le code et de publier un commentaire — pas de pousser ni de déployer.
- Restreignez les outils, les clés d'API et l'accès aux fichiers tâche par tâche. Un agent au périmètre étroit qui subit une injection ne peut causer que des dégâts limités.
Le problème du député confus
Un agent agit souvent avec votre autorité (vos jetons, vos sessions). Si une entrée contrôlée par un attaquant l'oriente, l'attaquant emprunte vos privilèges — un « député confus ». Défense : ne confiez pas à l'agent une autorité ambiante dont il n'a pas besoin, et exigez des identifiants explicites et restreints pour les outils sensibles.
Les couches de défense
Empilez-les — aucune seule ne suffit. Chaque couche suppose que celles au-dessus d'elle pourraient échouer.
- Exécutez le code et les opérations sur les fichiers dans des conteneurs ou des répertoires éphémères sans accès au système plus large ni aux secrets. Si l'agent est trompé, il joue dans une boîte.
- Décidez quelles commandes, quels domaines et quels chemins sont autorisés — refusez le reste. Dans Claude Code, ce sont les permissions (/docs/claude-code/permissions).
- Exigez une approbation explicite pour les actions irréversibles ou sensibles : envoyer de l'argent, envoyer un e-mail, supprimer, déployer ou modifier la configuration de production.
- Ne laissez pas un même agent détenir simultanément des secrets, lire du contenu non fiable et effectuer des appels sortants arbitraires — cette combinaison est la voie d'exfiltration.
- Enregistrez quels outils l'agent a réellement invoqués et avec quels arguments, afin de pouvoir auditer le comportement et détecter les dérives.
Mettez une liste blanche par écrit
« Mettre en liste blanche la surface dangereuse » est facile à approuver d'un signe de tête et facile à sauter. Dans Claude Code, c'est concret : un settings.json qui autorise l'ensemble restreint de commandes et de domaines dont la tâche a besoin et refuse le reste. Commencez de manière restrictive et n'élargissez que lorsqu'une tâche réelle est bloquée.
Un bloc de permissions Claude Code au moindre privilège
{
"permissions": {
"allow": [
"Read",
"Edit",
"Bash(npm test:*)",
"Bash(npm run build:*)",
"Bash(git status)",
"Bash(git diff:*)"
],
"deny": [
"Bash(git push:*)",
"Bash(rm:*)",
"Bash(curl:*)",
"Read(./.env)",
"Read(./secrets/**)"
]
}
}La liste deny l'emporte sur allow, donc bloquer .env et secrets/** tient même si un Read large est accordé. Consultez permissions pour la syntaxe complète des règles et leur préséance.
Les outils ont des schémas — validez-les
Les entrées d'outils produites par le modèle peuvent être erronées ou manipulées. Validez les arguments avant d'exécuter, et renvoyez les erreurs sous forme de résultats pour que l'agent se rétablisse au lieu de réessayer aveuglément.
Testez-vous
0/3- Le moindre privilège d'abord : restreignez les outils, les clés et l'accès aux fichiers tâche par tâche pour qu'un agent trompé ne puisse causer que des dégâts limités
- Un agent agit avec votre autorité — ne lui confiez pas de privilèges ambiants dont il n'a pas besoin (le problème du député confus)
- Empilez les cinq couches : bac à sable, liste blanche, humain dans la boucle, séparation des zones de confiance, journalisation et relecture
- Dans Claude Code, les règles deny battent les règles allow — bloquez explicitement les chemins .env et secrets
- Validez les arguments des outils avant d'exécuter, et renvoyez les erreurs sous forme de résultats pour que l'agent se rétablisse au lieu de réessayer aveuglément