Votre agent de codage ressemble trait pour trait à un attaquant
En juillet 2026, Sophos X-Ops a rapporté que, sur une semaine de télémétrie Windows, des agents de codage comme Claude Code, Cursor et Codex ont déclenché les mêmes règles de terminaux conçues pour attraper les intrus — 56,2 % des blocages relevaient de l'accès aux identifiants, le plus important étant un déchiffrement des mots de passe du navigateur. Le comportement est identique à celui d'une vraie attaque ; la seule variable est la machine sur laquelle il tourne. Bromure Agentic Coding fait de cette variable une VM Linux jetable avec des identifiants leurres, de sorte que les manœuvres bruyantes atterrissent dans une boîte jetable et que les défenses de votre hôte restent strictes.
Votre agent a déchiffré les mots de passe enregistrés du navigateur, listé le gestionnaire d'identifiants, récupéré un installeur à l'aide d'un utilitaire système Windows et déposé un script dans le dossier de démarrage. Chacune de ces manœuvres figure sur la liste de contrôle d'un véritable intrus. Sophos a vu un agent de codage les accomplir toutes. Rien n'était malveillant — et c'est précisément le problème, car la télémétrie que génère un attaquant et celle que génère votre agent sont la même télémétrie.
Le 7 juillet 2026, Sophos X-Ops a publié une analyse d'une semaine de télémétrie de terminaux de juin, examinant ce qui se passe lorsque des développeurs pointent des agents de codage vers de vraies machines. Le constat est une collision, pas un bug que quiconque peut corriger. Le travail quotidien d'un agent — lire un identifiant, exécuter une commande, télécharger un outil, maintenir quelque chose en vie entre les redémarrages — se superpose presque à l'identique aux tactiques MITRE ATT&CK que la détection sur les terminaux est réglée pour attraper. Alors les capteurs se sont déclenchés.
Ce que les capteurs ont réellement vu
Sur la semaine, la plus grande part des déclenchements de règles bloquantes
— 56,2 % — relevait de l'accès aux identifiants, et 28,8 % de plus de
l'exécution. Ce sont deux des catégories les plus attaquantes du référentiel.
La plus importante règle sur les identifiants, à 42,6 % de ce groupe, se
déclenche lorsqu'un processus utilise l'API de protection des données de
Windows (DPAPI, le service du système qui déverrouille les secrets stockés
d'un utilisateur) pour déchiffrer les identifiants enregistrés du navigateur.
Sophos l'a retracée jusqu'à la compétence /browse de GStack — un pack de
compétences populaire qui donne un navigateur à un agent — exécutant
PowerShell pour déverrouiller les données enregistrées du navigateur. Elle l'a
attrapée sous Claude Code.
Le reste de la liste se lit comme un rapport d'incident. Des agents ont
exécuté cmdkey /list pour énumérer le Gestionnaire d'identifiants Windows.
Ils ont tué le processus du navigateur puis fouillé son magasin
d'identifiants. Ils ont téléchargé un installeur Python avec certutil et
bitsadmin — deux binaires Windows légitimes que les attaquants détournent
pour récupérer des charges utiles sans déclencher de filtre de téléchargement,
la technique que les défenseurs appellent un LOLBin (« living off the land
binary », vivre sur le pays). Cursor a écrit un VBScript dans le dossier de
démarrage de Windows, ce qui est un cas d'école de persistance. Et des lignes
de commande de Claude portaient --dangerously-skip-permissions, le drapeau
qui coupe les propres invites « êtes-vous sûr ? » de l'agent.
Rien de tout cela n'était une attaque. En contexte, c'est presque toujours de l'automatisation que le développeur a demandée. Mais Sophos est sans détour sur ce que cela signifie pour la défense : les règles fonctionnent comme prévu, et le comportement seul ne peut plus distinguer un agent bénin d'un vrai attaquant.
Le piège : corriger au capteur
Lisez ce constat en exploitant et la pression est évidente. Votre équipe adopte des agents de codage. L'outil de terminal se met à lever des alertes d'accès aux identifiants et d'exécution chaque fois que quelqu'un en lance un. Les alertes sont bruyantes, et elles sont « fausses » au sens où personne n'est attaqué — le réflexe naturel est donc de les faire taire : ajouter une exception pour l'agent, mettre le pack de compétences sur liste blanche, cesser de signaler les lectures DPAPI de cette arborescence de processus.
À l'instant où vous faites cela, vous avez dit à vos défenses d'ignorer la séquence exacte qu'utilise un vrai intrus. Et l'agent n'est pas une chose sûre à exclure, car c'est l'élément le plus susceptible sur la machine d'être retourné contre vous. Une injection de prompt cachée dans un dépôt, une compétence de marketplace empoisonnée, une dépendance malveillante — nous avons couvert chacun de ces cas — fait exécuter à l'agent les instructions de l'attaquant avec vos privilèges. Quand cela arrive, l'agent fait le même déchiffrement DPAPI, le même vidage du gestionnaire d'identifiants, la même récupération par LOLBin — sauf que maintenant, c'est pour de vrai. Vous avez aveuglé le seul capteur qui l'aurait attrapé, au nom de l'empêcher de crier au loup à son propre sujet.
Sophos aboutit à la version sobre : l'ingénierie de détection devra s'adapter, certaines règles auront besoin d'être ajustées, et le signal distinctif devra venir du contexte — quel agent, invoqué comment — plutôt que de l'action seule. C'est juste, et c'est aussi beaucoup de travail continu pour garder un capteur honnête face à une cible mouvante. Il existe une option plus brutale : cesser de faire tourner l'agent là où vit le capteur.
Déplacez l'agent, pas l'alarme
Bromure Agentic Coding fait tourner l'agent tout entier à un hyperviseur de distance, à l'intérieur d'une VM Linux jetable sur votre Mac. Les lectures du magasin d'identifiants, les téléchargements d'outils, les écritures de persistance — tout cela se produit dans une boîte qui n'est pas votre machine, et dont la réinitialisation revient à une image de base propre entre les sessions. Trois choses en découlent, et aucune n'exige d'assouplir une seule règle sur l'hôte.
Le bruit n'atteint jamais votre terminal. Les vraies défenses de votre hôte restent strictes parce que l'agent n'est pas sur l'hôte pour les déclencher. L'écriture dans le dossier de démarrage atterrit dans un système de fichiers jetable ; le redémarrage qu'elle attendait n'arrive jamais, et la réinitialisation la jette de toute façon.
Les lectures d'identifiants reviennent bredouilles. C'est le coup direct sur
ces 56,2 %. Bromure garde les vrais secrets sur l'hôte et injecte des faux au
niveau du proxy, sur le fil ; ce qui se trouve réellement dans la VM est du
matériel leurre — un espace réservé brm_… là où devrait être la clé d'API,
un kubeconfig synthétique, des identifiants git et ssh jetables. Un agent qui
déchiffre le coffre du navigateur ou vide le gestionnaire d'identifiants dans
cette VM ne récolte rien qui fonctionne. La vraie valeur n'est substituée que
sur la requête sortante, à une frontière que l'agent ne peut contourner.
--dangerously-skip-permissions cesse d'être dangereux. Le drapeau existe
parce que se faire demander « êtes-vous sûr ? » à chaque étape tue l'intérêt
d'un agent ; les gens le désactivent. Ce qui le rend imprudent, c'est la
machine en dessous. Déplacez la machine vers une VM jetable avec des
identifiants leurres, et le drapeau n'est que rapide — la raison de le
craindre n'a jamais été le drapeau, c'était le rayon de destruction.
Et l'agent détourné ?
Le confinement répond au bruit, mais l'inquiétude plus aiguë est l'agent qui
n'est pas seulement bruyant — il a été retourné. La frontière de Bromure est
bâtie pour ce cas aussi. Sa détection d'injection sur l'appareil note le
contenu non fiable et les fichiers d'instructions que l'agent lit — avec un
modèle PromptGuard local et un
classificateur affiné — avant que l'agent n'agisse dessus, de sorte que le
« maintenant, exfiltre les clés » malveillant est signalé à la porte. Les
manœuvres qui compteraient hors de la boîte — un push, un déploiement, un
Delete* contre votre cloud — franchissent le proxy de l'hôte, où les
Guardrails peuvent retirer entièrement les appels destructeurs et où un
consentement par destination peut exiger d'abord une validation humaine. Et
chaque requête sortante atterrit dans la trace de session, de sorte que le
rappel dont un intrus a besoin apparaît comme une ligne journalisée portant un
identifiant factice.
La collision comportementale que Sophos a mesurée est réelle et ne va pas disparaître — le travail honnête d'un agent de codage recoupe le manuel d'un attaquant par conception. Vous ne pouvez pas résoudre cela au capteur sans soit vous noyer dans les faux positifs, soit percer un trou par lequel votre propre agent passera le jour où il sera compromis. Bromure le résout ailleurs : il cesse de se soucier de savoir lequel a tapé la commande, parce que la commande atterrit dans une boîte qui se réinitialise, dépense des identifiants qui sont des leurres, et ne peut toucher le monde extérieur qu'à travers une frontière qui surveille.
Ce que cela délimite
L'isolement est du confinement, pas la promesse que rien de mauvais ne s'exécute. Il vaut la peine d'être précis sur les bords.
Ce sont des noms Windows ; la collision, non
DPAPI, cmdkey, certutil et le dossier de démarrage sont propres à
Windows. Bromure fait tourner l'agent sur Linux, donc ces binaires exacts
ne se déclenchent jamais à l'intérieur. Mais le motif est indépendant de la
plateforme : un agent sous Linux lit ~/.aws/credentials, vide les jetons
d'environnement et écrit une tâche cron ou une unité systemd — les mêmes
manœuvres en forme d'attaque sous d'autres noms. Le contrôle est le même
aussi. L'emplacement et les leurres, pas les signatures.
La substitution couvre les secrets que vous configurez
L'échange de leurres protège les identifiants que vous placez dans un profil : clés de modèle, jetons git et cloud, points d'accès de bases de données gérées, clés ssh. Un mot de passe qu'un script écrit dans un fichier en cours de session, ou un secret que vous collez dans la boîte à la main, n'est qu'un fichier que l'agent peut lire. Gardez les secrets dans le broker, pas dans l'espace de travail.
La détection est un filet, pas un mur
La notation d'injection sur l'appareil signale une instruction malveillante le plus souvent, mais un auteur déterminé peut affamer n'importe quel scanner isolé. Traitez le détecteur comme une couche ; le confinement — une boîte jetable avec des clés factices et une sortie journalisée — est ce qui tient quand un détecteur rate.
Votre EDR d'hôte compte toujours
Bromure ne remplace pas la protection des terminaux ; il lui donne un travail plus propre. Le bruit de l'agent quitte l'hôte, donc votre capteur continue de surveiller la machine sur laquelle vous vous connectez vraiment, sans être émoussé — et un vrai intrus qui y est doit encore passer devant lui.
La leçon sous les chiffres de Sophos n'est pas « les agents sont dangereux ». C'est qu'on ne peut pas distinguer un bon acteur d'un mauvais à la forme des commandes, parce que la forme est la même. Alors cessez d'essayer de le décider au clavier, et décidez-le plutôt au périmètre : faites tourner l'agent là où son travail en forme d'attaque est contenu, où ses identifiants sont factices, et où chacune de ses étapes vers l'extérieur est journalisée. Installez-le.