For AI agents: the public content index is available at https://we0.ai/llms.txt, and the English article bundle is available at https://we0.ai/llms-full.txt.
For AI agents: the complete content index is available at https://we0.ai/llms.txt, the full English article bundle is available at https://we0.ai/llms-full.txt, and this page is available as Markdown at https://we0.ai/fr/articles/friendly-fire-rogue-agent-ai-coding-security.md.
Tirs Amis et Agent Rogue montrent que la sécurité des agents IA n'est pas seulement un problème d'alignement de modèle. La frontière pratiqu...

Les agents de codage IA ne sont plus de simples outils d'autocomplétion. Ils lisent des dépôts, inspectent des problèmes, modifient des fichiers, exécutent des scripts, appellent des outils, ouvrent des connexions réseau et créent parfois des modifications prêtes pour la production. Cela les rend utiles, mais cela change également le modèle de sécurité.
La question clé n'est plus seulement de savoir si un modèle peut refuser une invite nuisible. La question la plus difficile est de savoir ce que l'agent est autorisé à faire au moment de l'exécution : quels fichiers il peut lire, quels scripts il peut exécuter, s'il peut accéder à Internet, si les secrets sont montés, et si chaque action laisse une piste d'audit utile.
Cet article réorganise la discussion originale autour du Tir Ami et de l'Agent Rogue en un guide de sécurité pratique pour les équipes utilisant des agents de codage IA dans des workflows de développement réels.
Le signal commun derrière le Tir Ami et l'Agent Rogue est simple : un contexte non fiable peut devenir dangereux lorsqu'un agent le traite comme une autorité.
Un README de dépôt, un script de dépendance, une archive téléchargée par un client ou un bloc de code de chatbot peuvent ressembler à une entrée ordinaire. Mais si un agent lit cette entrée et agit ensuite avec un accès au système de fichiers, au shell, au réseau ou aux identifiants, cette entrée a effectivement franchi une frontière de confiance.
Pour une utilisation en production, l'agent ne devrait pas être l'autorité finale quant à savoir si un appel d'outil est autorisé. Il peut proposer une action. La couche d'autorisation, le bac à sable, le moteur de règles et le réviseur humain devraient décider si l'action est réellement autorisée.
Le Tir Ami se concentre sur un workflow de sécurité réaliste : demander à un agent de codage IA d'examiner un dépôt tiers ou open source pour y trouver des vulnérabilités. Ce workflow est attrayant car il semble défensif. L'équipe ne demande pas à l'agent d'attaquer quoi que ce soit. Elle lui demande d'inspecter le code et de suggérer des corrections.
Le problème est que l'examen de sécurité nécessite la lecture de matériel non fiable. Un dépôt peut contenir de la documentation, des scripts, des fichiers de construction, des artefacts binaires et des commentaires qui ne sont pas seulement des données. Ils peuvent également contenir des instructions destinées à l'agent.
La leçon importante n'est pas de paniquer à propos des outils de sécurité IA. Il s'agit de séparer les preuves de l'autorisation.
Un README peut expliquer comment un projet est normalement testé. Il ne devrait pas autoriser automatiquement l'agent à exécuter ce test. Un script de dépendance peut faire partie du dépôt. Il ne devrait pas devenir automatiquement fiable. Un package tiers peut inclure une commande qui ressemble à une vérification de sécurité normale. L'agent peut le lire, mais l'exécution devrait nécessiter un niveau de confiance plus élevé.
Un modèle risqué ressemble à ceci :
./security.sh
La commande elle-même peut sembler inoffensive, mais la question importante est de savoir d'où elle vient. A-t-elle été explicitement demandée par l'utilisateur ? A-t-elle été suggérée par le modèle ? A-t-elle été copiée depuis un README tiers ? A-t-elle été intégrée dans un commentaire de problème ou un script de dépendance ? Ces sources ne devraient pas porter le même niveau de confiance.
L'Agent Rogue montre un type de risque différent. Au lieu d'un agent de codage local examinant un dépôt, le problème est un IA cloud
Plateforme où des agents conversationnels peuvent exécuter des blocs de code dans un environnement d'exécution géré.
La leçon utile pour les équipes produit et sécurité est que les chatbots ne sont pas uniquement des invites et des réponses. Ils peuvent également inclure des environnements d'exécution, des comptes de service, des sorties réseau, des variables de session, des journaux, une infrastructure partagée et des permissions de déploiement.
Lorsqu'un agent conversationnel peut exécuter du code ou accéder à des données clients, il doit être gouverné comme une application de production. Cela implique le moindre privilège, la séparation des environnements, la journalisation d'audit, la revue des changements et une propriété claire. Le traiter comme une simple « configuration de conversation » est trop faible compte tenu du risque réel.
Friendly Fire et Rogue Agent sont des incidents différents, mais ils pointent vers le même mode de défaillance : un contexte non fiable reçoit un pouvoir opérationnel.
Dans le scénario Friendly Fire, le contenu d'un dépôt non fiable peut influencer un agent pour qu'il exécute des commandes. Dans le scénario Rogue Agent, l'exécution de code au sein d'une plateforme d'agents peut affecter le comportement d'exécution partagé et les données de conversation sensibles. Des recherches liées à MCP ont également soulevé une préoccupation similaire : la vue d'approbation destinée à l'utilisateur et les métadonnées que le modèle reçoit réellement peuvent ne pas toujours refléter la même image de confiance.
C'est pourquoi la conception de la sécurité ne peut pas reposer uniquement sur un modèle prudent. Un modèle peut aider à raisonner sur les risques, mais il ne devrait pas approuver ses propres appels d'outils risqués immédiatement après avoir lu des instructions non fiables.
Une architecture plus sûre sépare trois couches :
Les dépôts tiers, les problèmes inconnus, les audits de dépendances, les archives clients et les packages téléchargés doivent être ouverts dans des environnements jetables. Un conteneur ou une machine virtuelle est une bonne valeur par défaut.
L'environnement isolé doit éviter de monter le répertoire personnel de l'utilisateur, les informations d'identification cloud, les jetons de registre de packages, les clés SSH, les profils de navigateur et la configuration de production. Le code source peut commencer en lecture seule. L'accès en écriture ne doit être accordé que lorsque l'agent a produit un plan clair et que l'utilisateur a approuvé le périmètre.
Les bonnes valeurs par défaut incluent :
Ne laissez pas la lecture, l'édition et l'exécution se fondre en un seul flux automatique. Séparez-les.
Phase de lecture : l'agent peut inspecter les fichiers, identifier les risques et produire un plan.
Phase d'application de patch : l'agent peut générer un diff ou un patch, idéalement sans exécuter de scripts non fiables.
Phase d'exécution : l'agent ne peut exécuter que des commandes approuvées dans une liste blanche restreinte, avec des délais d'attente et des limites de ressources.
Si la commande proposée provient d'un README, d'un commentaire de ticket, d'un script de dépendance ou d'un document externe, l'interface d'approbation doit afficher cette source.
clairement. Une commande suggérée par le dépôt n’est pas la même chose qu’une commande explicitement demandée par l’utilisateur.
Decrivez votre idee une fois, et We0 AI peut generer un site vitrine, des pages et un CMS, puis vous aider a attirer clients et trafic apres le lancement.
Une génération de projet complète pour une inscription gratuite
Idéal pour essayer un flux de génération complet et voir rapidement une première ébauche de projet.
Les agents IA sont utiles pour l’explication et le tri, mais les outils déterministes doivent toujours être exécutés en premier lorsque cela est possible.
Par exemple :
L’agent peut résumer et prioriser les résultats. Il ne doit pas remplacer les analyseurs de base.
Pour les dépôts non fiables, la valeur par défaut la plus sûre est d’inspecter d’abord, sans exécuter.
Une règle utile est simple : moins vous faites confiance à l’entrée, moins l’agent doit recevoir d’autorité.
Un simple bouton « mode sans échec » ne suffit pas. Les vrais produits ont besoin d’autorisations par capacité.
Un meilleur modèle d’autorisation traite chaque capacité séparément :
| Capacité | Valeur par défaut recommandée | Pourquoi c’est important |
|---|---|---|
| Lire des fichiers | Autorisé dans l’espace de travail délimité | Les agents ont besoin de contexte, mais pas de toute la machine. |
| Écrire des correctifs | Autorisé après examen du plan | Écrire du code est plus sûr qu’exécuter du code. |
| Exécuter des tests | Liste blanche uniquement | Les commandes de test peuvent invoquer des scripts arbitraires. |
| Installer des dépendances | Approbation requise | Les scripts de cycle de vie des paquets sont une surface de risque majeure. |
| Accès réseau | Refusé par défaut pour le travail non fiable | Empêche l’exfiltration et le chargement de charges utiles à distance. |
| Accès aux secrets | Refusé par défaut | Les secrets ne doivent pas être visibles pour les tâches non fiables. |
| Créer des demandes de tirage | Approbation requise | Les PR peuvent affecter les dépôts de confiance et les systèmes CI. |
| Déployer | Approbation manuelle requise | Le déploiement est une action ayant un impact sur la production. |
Les écrans d’approbation doivent afficher non seulement la commande, mais aussi son origine. Une commande provenant de l’intention de l’utilisateur, de l’inférence du modèle, des instructions du README, de la configuration CI ou de commentaires externes sur des problèmes doit être étiquetée différemment.
Les utilisateurs de NxCode veulent souvent que les agents gèrent de véritables travaux de développement : lire du code, mettre à jour des fichiers, effectuer des vérifications, générer des artefacts de déploiement et produire de la documentation. Ces capacités sont précieuses, mais uniquement lorsque les limites de permission sont claires.
Une approche pratique consiste à classer les tâches en trois groupes :
dépôts
Exemples : mise en forme, mises à jour de documentation, petites modifications d’interface utilisateur et suggestions de tests. Ces tâches peuvent bénéficier d’une automatisation plus poussée lorsque le dépôt et l’environnement sont fiables.
2. Investigation sur des entrées non fiables
Exemples : dépôts inconnus, mises à jour de dépendances, signalements externes de bogues et archives téléchargées par des clients. Ces opérations doivent être exécutées dans des environnements jetables et restreints.
3. Opérations ayant un impact sur la production
Exemples : déploiement, migrations de bases de données, rotation de secrets, modifications d’infrastructure et mises à jour des permissions CI/CD. Ces opérations nécessitent une approbation humaine et des journaux de preuves solides.
Cette conception ne supprime pas l’avantage de rapidité des agents de codage IA. Elle maintient la rapidité de l’agent là où le risque est faible et impose davantage de structure là où le rayon d’impact est élevé.
Le Friendly Fire désigne un modèle de risque où un agent IA utilisé pour un travail défensif est influencé par le contenu non fiable d’un codebase. L’agent peut lire un dépôt tiers et traiter des instructions contenues dans la documentation ou les scripts comme des directives opérationnelles sûres.
Rogue Agent est un problème de sécurité signalé concernant Dialogflow CX impliquant l’exécution de code dans les workflows de l’agent. Sa leçon plus large est que les chatbots IA ayant des capacités d’exécution de code, d’accès aux sessions et de privilèges d’exécution cloud doivent être traités comme des logiciels de production, et non comme de simples scripts de conversation.
Les agents de codage IA lisent souvent des fichiers non fiables, puis utilisent des outils en fonction de ce qu’ils ont appris. Si un dépôt, un problème ou un document contient des instructions cachées, l’agent peut confondre un contenu non fiable avec une intention utilisateur fiable.
Le sandboxing est important, mais il ne doit pas constituer la seule défense. Une configuration sûre nécessite également des limites de permissions, des restrictions réseau, l’isolation des secrets, un scan déterministe, une provenance des commandes et des journaux d’audit.
Pas automatiquement. Les commandes des README peuvent être une documentation utile, mais elles proviennent du dépôt inspecté. Pour les projets non fiables, l’agent doit expliquer la source de la commande et le risque avant que toute exécution soit approuvée.
Utiliser un environnement jetable, éviter de monter des secrets, restreindre l’accès réseau, effectuer d’abord des vérifications statiques, et ne rapporter que des correctifs ou rapports examinés. Ne pas considérer l’état du sandbox ou les artefacts générés comme fiables par défaut.
Quelles permissions les produits d’IA de codage devraient-ils exposer ?
Les produits devraient exposer des contrôles granulaires pour la lecture de fichiers, l’écriture de correctifs, l’exécution de tests, l’installation de dépendances, l’utilisation du réseau, l’accès aux secrets, la création de demandes d’extraction et le déploiement. Chaque capacité doit avoir son propre périmètre, budget, journaux et règles d’approbation.
Friendly Fire et Rogue Agent montrent que la sécurité des agents d’IA n’est pas seulement un problème d’alignement des modèles. La frontière pratique est l’environnement d’exécution : fichiers, commandes, accès réseau, secrets, environnements d’exécution et auditabilité.
Les équipes utilisant des agents de codage IA doivent traiter les dépôts non fiables et le contexte externe comme des entrées non fiables, même lorsque la tâche est défensive. L’agent peut aider à inspecter et expliquer, mais l’exécution doit être contrôlée par le sandboxing, les politiques, les scanners et les approbations explicites.
Le modèle le plus sûr est simple : laissez les agents raisonner largement, mais accordez l’autorité opérationnelle de manière restreinte.
Partez d’une phrase et obtenez un site complet en quelques minutes.