Retour à tous les articles
Sécurité

Sécurité des agents de code IA : le modèle au moment de l'agent

Les agents de code IA écrivent, exécutent et livrent du code à la vitesse machine. Pourquoi l'analyse post-PR échoue, ce qu'est la sécurité au moment de l'agent, et comment sécuriser Claude Code, Cursor, Copilot, Windsurf et Codex.

Sur cette page
  1. Qu'est-ce que la sécurité des agents de code IA ?
  2. Pourquoi un agent de code IA constitue-t-il une nouvelle surface d'attaque ?
  3. Pourquoi l'analyse post-PR échoue-t-elle pour les agents IA ?
  4. Qu'est-ce que la sécurité au moment de l'agent ?
  5. Quels sont les principaux risques à travers les agents de code IA ?
  6. Comment sécuriser un agent de code IA en pratique ?
  7. Quels contrôles relèvent du moment de l'agent plutôt que de la CI ?
  8. Questions fréquentes
  9. Qu'est-ce que la sécurité au moment de l'agent ?
  10. En quoi la sécurité des agents de code IA diffère-t-elle du bac à sable ?
  11. Pourquoi l'analyse post-PR échoue-t-elle pour les agents IA ?
  12. La sécurité au moment de l'agent remplace-t-elle le SAST et l'analyse en CI ?
  13. À quels agents de code IA cela s'applique-t-il ?
  14. Quel est le plus grand risque de sécurité d'un agent de code IA ?
  15. À quelle vitesse puis-je sécuriser mon agent de code IA ?

Sécurité des agents de code IA : Claude Code, Cursor, Copilot, Windsurf et Codex convergent tous vers un seul point de contrôle au moment de l'agent, VibeDefend, avant que du code sûr ne soit livré.

La revue de sécurité se casse, et ce n'est pas parce que les relecteurs sont devenus moins bons. Elle se casse parce qu'aucun humain ne lit 5 000 lignes de code par jour, et c'est désormais une production ordinaire pour un seul développeur faisant tourner un agent de code IA. La pull request est devenue le foyer de l'AppSec à l'époque où une personne ralentissait encore pour lire le diff. Quand l'agent livre plus vite que quiconque ne peut relire, le diff cesse d'être un point de contrôle et devient le compte-rendu de décisions déjà prises. Le point de contrôle doit se déplacer.

Qu'est-ce que la sécurité des agents de code IA ?

La sécurité des agents de code IA est la discipline consistant à contraindre ce qu'un agent de code autonome produit et exécute, à travers la génération, l'exécution de commandes et les appels d'outils, plutôt que de sécuriser uniquement la boîte dans laquelle il s'exécute. Elle couvre le code que l'agent écrit, les dépendances qu'il récupère, les secrets qu'il peut lire et les actions qu'il peut effectuer en votre nom.

L'expression est souvent lue de façon trop étroite. La majeure partie des recommandations publiées la traitent comme un problème d'infrastructure : mettre l'agent dans un bac à sable (sandbox), délimiter son rôle IAM, limiter sa sortie réseau, contrôler ses permissions. Ces contrôles sont nécessaires et nous ne plaidons pas contre eux. Mais ils répondent à une autre question. Le bac à sable (sandbox) décide de ce que l'agent a le droit de toucher. Il ne dit rien de savoir si le SQL que l'agent vient d'écrire concatène une entrée utilisateur dans une chaîne de requête, ou si la vérification d'autorisation qu'il a sautée laissera fuiter les données d'un autre tenant. L'environnement d'exécution est contenu ; l'artefact ne l'est pas. Sécuriser un agent de code IA doit inclure de sécuriser ce qu'il écrit, au moment où il l'écrit.

Pourquoi un agent de code IA constitue-t-il une nouvelle surface d'attaque ?

Un agent de code IA constitue une nouvelle surface d'attaque parce qu'il effectue des actions au lieu de les suggérer. Un assistant d'IDE traditionnel propose une complétion qu'un humain choisit de coller. Un agent lit des fichiers que vous n'avez pas nommés, exécute des commandes que vous n'avez pas tapées, modifie du code à travers l'arborescence, et appelle des outils que vous avez câblés il y a des semaines. Le rayon d'impact ne se limite plus à un bloc de code.

Deux basculements aggravent cela. Le premier est l'autonomie : l'agent peut être orienté. Comme un modèle de langage ne peut pas distinguer de façon fiable une instruction de confiance d'une instruction hostile enfouie dans des données, un attaquant peut dissimuler des instructions dans un fichier, une page web, un ticket ou la réponse d'un outil, et l'agent les suit. C'est l'injection de prompt indirecte, et c'est le premier risque d'OWASP pour les applications LLM depuis trois ans. Un assistant orienté répond faux ; un agent orienté agit.

Le second basculement est la vitesse, et c'est celui que la plupart des équipes sous-estiment. La pull request fonctionnait comme une barrière de sécurité parce qu'elle se situait à la cadence humaine. L'agent ne fonctionne pas à la cadence humaine. Quand une seule session livre plus de code en un après-midi qu'un relecteur n'en lit en une semaine, tout contrôle qui ne vit qu'au niveau de la PR relit désormais l'histoire au lieu de la prévenir.

#1

l'injection de prompt, premier risque du Top 10 OWASP pour les applications LLM (LLM01)

5,000 LOC/day

production ordinaire pour un seul développeur faisant tourner un agent de code IA

100x

coût pour corriger une faille en production par rapport à l'attraper au moment du prompt (IBM Systems Sciences Institute, économie du shift-left largement citée)

Pourquoi l'analyse post-PR échoue-t-elle pour les agents IA ?

L'analyse post-PR échoue pour les agents IA parce qu'elle a été conçue pour la cadence humaine et que l'agent a cassé cette cadence. Le SAST, le SCA et le relecteur humain agissent tous sur le même artefact, le diff, et tous supposent qu'une personne ralentit pour le lire avant la fusion. Quand l'agent dépasse le relecteur, cette hypothèse ne tient plus.

L'échec n'est pas que les analyseurs cessent de trouver des bugs. Ils en trouvent toujours. L'échec, c'est le timing et le volume. Le temps qu'un analyseur signale une injection dans le diff fusionné, l'agent a écrit la ligne, est passé à autre chose, a construit trois fonctionnalités par-dessus, et un développeur se retrouve avec une file de constats à trier qui grossit plus vite que quiconque ne peut la vider. Les équipes réagissent de deux manières prévisibles, toutes deux mauvaises : certaines fusionnent la sortie de l'agent d'un coup d'œil, et d'autres la regroupent en une seule PR géante qu'aucun humain ne lit de bout en bout. Dans les deux cas, le diff a cessé d'être une barrière. C'est un compte-rendu de ce qui s'est déjà passé.

Il y a aussi un décalage plus profond. Les choses les plus dommageables qu'un agent IA fait mal ne sont pas les motifs que les analyseurs détectent bien. Ce sont les failles de logique métier : une vérification de propriété manquante, une remise qui se cumule alors qu'elle ne le devrait pas, une transition d'état qui n'aurait jamais dû être atteignable. Un analyseur qui ne connaît pas votre domaine ne peut pas les voir, et un relecteur noyé sous la sortie de l'agent ne les attrapera pas non plus. Le contrôle doit connaître vos règles, et il doit agir avant que la ligne ne soit écrite.

Qu'est-ce que la sécurité au moment de l'agent ?

La sécurité au moment de l'agent est la pratique consistant à faire appliquer vos contrôles à l'intérieur de la boucle de l'agent de code IA, avant que la ligne fautive ne soit écrite, plutôt qu'après que le code a atterri dans une pull request. Le point de contrôle passe du diff au prompt. L'agent lit les règles pertinentes dans le cadre de l'écriture du code, de sorte que l'exigence devient une partie de la sortie au lieu d'une case à cocher au moment de l'audit.

C'est la réponse naturelle au problème de cadence. Si l'agent livre plus vite que vous ne pouvez relire, vous ne gagnez pas en relisant plus fort. Vous gagnez en mettant la règle entre les mains de l'agent avant qu'il n'agisse. Concrètement, la sécurité au moment de l'agent s'accroche à la session de l'agent et à ses appels d'outils : avant une modification, elle injecte les conventions et les exigences de sécurité qui s'appliquent aux fichiers touchés ; avant qu'une commande destructrice ne se déclenche, elle l'intercepte. Rien n'attend la fusion.

La pull request était un point de contrôle parce qu'un humain la lisait. Le prompt est le point de contrôle désormais parce que l'agent l'écoute. La sécurité au moment de l'agent est la couche qui met l'oreille de l'agent de votre côté.

- Le basculement, en une ligne

Cela ne remplace pas vos analyseurs. Le SAST et le SCA ont toujours leur place en CI comme filet de sécurité pour tout ce qui passe, et pour le code que les humains écrivent encore à la main. La sécurité au moment de l'agent est la couche en amont d'eux, celle qui s'aligne sur la vitesse de la chose qui génère réellement le code.

Quels sont les principaux risques à travers les agents de code IA ?

Les principaux risques sont cohérents à travers Claude Code, Cursor, GitHub Copilot, OpenAI Codex et Windsurf, parce qu'ils partagent la même forme agentique. Les guides par agent couvrent en détail les contrôles natifs de chaque outil ; les classes de risque, elles, riment.

  • Code généré non sécurisé. L'agent écrit des requêtes injectables, de la cryptographie faible, des autorisations manquantes et de la désérialisation non sécurisée, parce que ces motifs abondent dans ses données d'entraînement. C'est le risque que le cadrage par l'infrastructure ignore entièrement.
  • Failles de logique métier. Vérifications de propriété manquantes, contrôle d'accès rompu entre tenants, machines à états qui autorisent des transitions illégales. Invisibles aux analyseurs génériques, courantes dans la sortie des agents.
  • Injection de prompt, directe et indirecte. Des instructions hostiles dissimulées dans un dépôt, une page web, un ticket, ou une réponse d'outil MCP que l'agent traite comme une commande. OWASP LLM01.
  • Outils et serveurs MCP sur-privilégiés. Un outil de base de données autorisé à tout lire, un serveur de système de fichiers pointé vers le répertoire personnel, un outil de déploiement détenant des identifiants de production. L'empoisonnement d'outils dissimule des instructions dans les descriptions d'outils, si bien que le simple fait de connecter un serveur peut orienter l'agent.
  • Risque de chaîne d'approvisionnement (supply chain) et de dépendances. L'agent installe des paquets et exécute des scripts d'installation dans le cadre de son travail normal. Le typosquatting et l'hallucination de paquets transforment un « installe ce dépôt » de routine en vol d'identifiants.
  • Exposition des secrets et du contexte. Un contexte local large (fichiers .env, identifiants, points de terminaison internes) se retrouve exposé dans les journaux, le code généré, ou une PR qui survit à la session.
  • Actions destructrices. Un agent manipulé exécute un sudo rm -rf, réécrit une configuration CI, ou altère l'infrastructure, avec les accès que l'environnement lui a accordés.

Comment sécuriser un agent de code IA en pratique ?

Vous sécurisez un agent de code IA en combinant le confinement de l'environnement d'exécution avec une gouvernance au moment de l'agent, puis en gardant la CI comme filet de sécurité. Le moindre privilège, le bac à sable (sandbox), la gestion des secrets et la revue humaine sont la base. La pièce qui manque à la plupart des stacks est un contrôle qui vit au moment du prompt et gouverne ce que l'agent écrit avant qu'il ne l'écrive.

En pratique, cela signifie une posture de défense en profondeur avec le point de contrôle ramené vers l'amont. Délimitez les permissions de l'agent et isolez son environnement d'exécution pour qu'un agent orienté ait un petit rayon d'impact. Gérez les secrets pour que le contexte de l'agent ne soit pas plus large que ce dont la tâche a besoin. Gardez le SAST et l'analyse des dépendances en CI pour tout ce qui passe et pour le code écrit par des humains. Ajoutez ensuite la couche qui s'aligne réellement sur la vitesse de l'agent : une gouvernance à l'intérieur de la boucle, où l'agent lit vos règles métier et vos exigences de sécurité pendant qu'il code, et un garde-fou intercepte les appels destructeurs avant qu'ils ne se déclenchent. Les quatre couches au moment de l'agent ci-dessous sont ce à quoi ce contrôle ressemble.

Règles métier

Les conventions qui sont réelles dans votre dépôt mais qui n'ont jamais été écrites. L'argent utilise Decimal128, jamais un float. L'autorisation passe par requireOwner, pas par une vérification d'appartenance brute. Les enregistrements en suppression logique ne franchissent jamais la frontière. Celles-ci sont extraites de la façon dont votre équipe code déjà et poussées dans le contexte de l'agent avant la modification pertinente, de sorte que l'agent écrive la convention du premier coup.

Règles de sécurité

OWASP, SOC 2, RGPD et ISO 27001, les référentiels que vos auditeurs attendent déjà, chargés le jour de l'installation et appariés par modification. L'agent lit l'exigence applicable avant chaque écriture, de sorte que le contrôle devienne une partie du code au lieu d'un constat à trier au moment de la fusion.

Garde-fou d'actions

sudo rm -rf, lectures brutes de process.env sur des clés en forme de secret, psql improvisé contre un hôte ressemblant à de la production. Le garde-fou intercepte l'appel de l'agent avant qu'il ne se déclenche, bloque ou avertit selon la règle, et inscrit chaque interception dans une piste d'audit. C'est la couche qui retransforme une action destructrice en brouillon.

Live Findings

Les vulnérabilités que vous avez déjà, pas seulement celles que l'agent est sur le point d'écrire. Chaque résultat des scanners de CybeDefend (SAST avec atteignabilité, SCA, secrets, IaC et CI/CD) est en direct dans le contexte de l'agent, de sorte qu'il trie et corrige les constats ouverts, chaque correction étant un diff que vous approuvez. C'est la remédiation des vulnérabilités par IA à l'intérieur de la boucle.

Quels contrôles relèvent du moment de l'agent plutôt que de la CI ?

Les contrôles relèvent du moment de l'agent quand ils gouvernent une action que l'agent est sur le point d'effectuer, et de la CI quand ils sont un filet de sécurité sur l'artefact fini. La règle empirique : si un humain relisant le diff arriverait trop tard, le contrôle doit s'exécuter à l'intérieur de la boucle. Si c'est une barrière finale avant la fusion ou le déploiement, il reste en CI.

Contrôle
Analyse post-PR
Au moment de l'agent
Quand il s'exécute
Une fois le code sur le disque, à la fusion
Avant que la ligne ne soit écrite, dans la boucle de l'agent
Tient le rythme à 5 000 LOC/jour
Non, les constats s'accumulent plus vite que le tri
Oui, il s'exécute à la vitesse de l'agent
Attrape les failles de logique métier
Rarement, aucune connaissance du domaine
Oui, vos règles voyagent dans le prompt
Stoppe une commande destructrice
Non, la commande s'est déjà exécutée
Oui, le garde-fou intercepte avant le déclenchement
Meilleur rôle
Filet de sécurité pour ce qui passe + code écrit par des humains
Gouvernance de première ligne de la sortie de l'agent

Lisez les deux colonnes comme des partenaires, pas des rivales. L'analyse en CI reste le bon endroit pour une vérification finale au niveau de l'artefact, et vous devriez la conserver. Le moment de l'agent est l'endroit où vous déplacez les contrôles qui perdent toute leur valeur dès que l'agent a terminé et est passé à autre chose. L'erreur que commet la SERP est de financer uniquement le cousin infrastructure de la colonne de droite (bac à sable, IAM) en laissant le code réel sans gouvernance jusqu'à la fusion.

VibeDefend est la couche au moment de l'agent, empaquetée comme un CLI npm gratuit qui s'installe en cinq secondes environ. Une seule commande détecte automatiquement Claude Code, Cursor, OpenAI Codex, Windsurf et VS Code Copilot sur votre machine et câble chacun dans quatre couches de gouvernance qui s'exécutent à l'intérieur de la boucle de l'agent. Pas de YAML, pas de déploiement, pas de conteneur à construire.

npx -y @cybedefend/vibedefend@latest installChoisissez l'UE ou les US, confirmez votre agentDéposez .cybedefend/config.json dans le dépôtLe prochain prompt est gouverné
De npm à un prompt d'agent gouverné, en une minute environ.

Les quatre couches de gouvernance de VibeDefend : règles métier extraites de votre dépôt, règles de sécurité issues d'OWASP, SOC 2, RGPD et ISO 27001, un garde-fou d'actions qui bloque les appels destructeurs, et Live Findings qui alimente l'agent avec chaque résultat de scanner.

Les quatre couches correspondent exactement au modèle ci-dessus. Les règles métier sont extraites de la façon dont votre équipe code déjà et proposées sous forme de règles explicites d'une ligne. Les règles de sécurité chargent les référentiels que vos auditeurs attendent et les apparient par modification. Le garde-fou d'actions intercepte les appels destructeurs avant qu'ils ne se déclenchent. Live Findings câble l'agent dans la plateforme AppSec complète de CybeDefend, ses scanners (SAST avec atteignabilité, SCA, secrets, IaC et CI/CD) tournant en continu, de sorte que l'agent n'écrit pas seulement du code sûr, il trie et corrige les vulnérabilités que vous avez déjà. Le modèle de confidentialité est la partie qui compte le plus pour les équipes de sécurité : rien de votre code ne traverse le réseau. Les décisions se prennent localement, à côté de l'agent, et seules des métadonnées de gouvernance structurées atteignent le backend : la règle qui s'est déclenchée, le chemin du fichier qu'elle visait, la sévérité, un horodatage. Aucun code source, aucun contenu de prompt. Les tenants UE et US sont physiquement séparés et choisis à l'installation, sans chemin inter-régions.

Questions fréquentes

Qu'est-ce que la sécurité au moment de l'agent ?

La sécurité au moment de l'agent consiste à faire appliquer vos contrôles à l'intérieur de la boucle de l'agent de code IA, avant que la ligne fautive ne soit écrite, plutôt qu'après que le code a atteint une pull request. Le point de contrôle passe du diff au prompt : l'agent lit les règles qui s'appliquent pendant qu'il écrit, de sorte que l'exigence devienne une partie de la sortie. C'est la réponse aux agents qui livrent du code plus vite qu'aucun humain ne peut relire.

En quoi la sécurité des agents de code IA diffère-t-elle du bac à sable ?

Le bac à sable (sandbox) sécurise l'endroit où l'agent s'exécute ; la sécurité des agents de code IA doit aussi sécuriser ce que l'agent écrit. Un bac à sable peut parfaitement contenir l'environnement d'exécution et laisser tout de même l'agent écrire une requête injectable ou sauter une vérification d'autorisation, parce que l'artefact non sécurisé n'est pas une préoccupation d'exécution. Vous avez besoin des deux : du confinement pour le rayon d'impact, et de la gouvernance au moment de l'agent pour le code lui-même.

Pourquoi l'analyse post-PR échoue-t-elle pour les agents IA ?

Parce qu'elle suppose qu'un humain ralentit pour lire le diff avant la fusion, et que l'agent a cassé cette cadence. Les analyseurs trouvent toujours des bugs, mais les constats s'accumulent plus vite que les équipes ne peuvent les trier, donc les gens fusionnent soit d'un coup d'œil, soit en regroupant tout dans une seule PR illisible. Le diff cesse d'être une barrière. Le contrôle doit se déplacer dans la boucle, en amont de la fusion.

La sécurité au moment de l'agent remplace-t-elle le SAST et l'analyse en CI ?

Non. Le SAST et l'analyse des dépendances restent en CI comme filet de sécurité pour tout ce qui passe et pour le code écrit par des humains. La sécurité au moment de l'agent est la couche en amont d'eux, qui s'aligne sur la vitesse de l'agent qui génère le code. Voyez-les comme des partenaires : le moment de l'agent est la gouvernance de première ligne de la sortie de l'agent, la CI est la barrière finale au niveau de l'artefact.

À quels agents de code IA cela s'applique-t-il ?

Les mêmes classes de risque et le même modèle au moment de l'agent s'appliquent à travers Claude Code, Cursor, GitHub Copilot, OpenAI Codex et Windsurf, parce qu'ils partagent une forme agentique : ils lisent, écrivent, exécutent et appellent des outils. Les guides par agent couvrent les contrôles natifs de chaque outil et là où ils sont insuffisants.

Quel est le plus grand risque de sécurité d'un agent de code IA ?

Deux se démarquent. L'injection de prompt est le premier risque LLM d'OWASP parce qu'un modèle ne peut pas séparer de façon fiable une instruction de confiance d'une instruction hostile cachée dans des données, et un agent orienté agit au lieu de simplement répondre faux. Le plus discret est celui des failles de logique métier dans le code généré : vérifications de propriété manquantes et contrôle d'accès rompu que les analyseurs génériques ne peuvent pas voir et que les relecteurs surchargés ratent.

À quelle vitesse puis-je sécuriser mon agent de code IA ?

Cinq secondes environ pour l'installation et à peu près une minute de bout en bout. Exécutez npx -y @cybedefend/vibedefend@latest install, choisissez l'UE ou les US, confirmez l'agent que vous utilisez, et déposez un .cybedefend/config.json d'une ligne dans le dépôt. Le prochain prompt est gouverné par les quatre couches. L'offre gratuite ne nécessite pas de carte, ou vous pouvez réserver une session pour l'exécuter sur votre propre code.

En live · tout juste sorti

Installez VibeDefend en 5 secondes.

Une commande branche chaque agent de coding de votre machine à CybeDefend : vos règles métier, vos frameworks de conformité, et des guards qui bloquent les appels destructeurs avant qu’ils ne se déclenchent.

Installer en 5 secondesNode 18.17+
npx -y @cybedefend/vibedefend@latest install
Auto-détecte
  • Claude CodeClaude Code
  • CursorCursor
  • OpenAI CodexOpenAI Codex
  • WindsurfWindsurf
  • GitHub CopilotVS Code Copilot
Lire le README sur npm