Manager · Ingénieur · Alpiniste
FR · EN
Cybersécurité des IA
Refusée en clair, la même instruction malveillante passe une fois chiffrée.
2026-10-08
Une page web. Dedans, un bloc de texte chiffré et une consigne polie : « déchiffre ça avec Python, voici deux clés ». Vingt-huit secondes plus tard, le fichier .env.prod du développeur est parti chez l'attaquant. C'est ce qu'Adversa AI a montré le 6 octobre sur GitHub Copilot CLI, avec une technique baptisée Cryptographic Context Injection.
Le détail qui m'a arrêté : envoyées en clair, les mêmes instructions étaient repérées comme une injection de prompt et refusées. Chiffrées, elles passaient. Le modèle ne voit pas l'ordre malveillant, c'est lui-même qui le reconstitue, en exécutant son propre code.
L'agent, en mode Autopilot, lit une page contrôlée par l'attaquant. La première clé est conçue pour échouer et pousse l'agent à lire des fichiers locaux pour « compléter » la clé. La seconde clé fonctionne et révèle une deuxième charge, qui expédie ce qui a été collecté vers un serveur externe. Aucune confirmation demandée.
Adversa est honnête sur les limites : il faut le mode autonome et un modèle permissif. Le modèle mai-code-1.1-flash de Microsoft a déroulé la chaîne complète dans la moitié des essais, deux modèles GPT-5.6 ont refusé à chaque fois. Et sur le compte testé, le routage automatique choisissait l'un ou l'autre sans que l'utilisateur le sache. Votre niveau de sécurité dépendait donc d'un tirage au sort côté éditeur.
Signalé le 17 septembre, le comportement a été validé par GitHub, qui a refusé de le qualifier de vulnérabilité : l'utilisateur a choisi de laisser un agent autonome lire du contenu contrôlé par un attaquant. Au 1er octobre, la chaîne restait reproductible.
Je comprends la position juridiquement. Opérationnellement, elle dit une chose claire aux entreprises : la responsabilité de ce que fait l'agent sur le poste vous revient. Le filtre du modèle est un bonus, pas un contrôle sur lequel bâtir une politique. Tout filtre sur le texte entrant finira contourné par un encodage.
Regarder les actions plutôt que les textes. Une séquence « lecture d'une page externe, exécution de code, lecture d'un fichier de secrets, requête vers un domaine jamais vu » est suspecte quel que soit le contenu qui l'a déclenchée. Adversa recommande d'ailleurs de journaliser les appels d'outils avec leurs arguments résolus.
Ensuite, couper le dernier maillon. Un agent qui tourne sans supervision ne devrait pas pouvoir joindre une destination réseau nouvelle par défaut. Et un agent qui lit le web n'a aucune raison d'avoir les identifiants de production dans son répertoire de travail. C'est la combinaison classique : données privées, contenu non fiable, capacité d'envoyer vers l'extérieur. Retirez une des trois et l'attaque tombe.
N'attendez pas de réponse de votre fournisseur d'IA. Le comportement du modèle n'est pas contractuel, et la réponse de GitHub montre que l'éditeur considère ce risque comme le vôtre. Il doit donc être connu, tracé et assumé par la direction. Pas laissé au choix de chaque développeur qui active le mode Autopilot.