Je me souviens de la première semaine où j'ai intégré un assistant de codage IA dans mon environnement de développement local. Cela ressemblait à un multiplicateur de force pour mon flux de travail. Je pouvais lui demander de refactoriser une fonction complexe ou d'expliquer une trace de pile cryptique provenant de mes journaux. Les gains de productivité ont été immédiats. Je ne me suis jamais arrêté pour remettre en question le modèle de confiance des données consommées par l'agent. Comme de nombreux praticiens de la sécurité, j'ai supposé que l'agent fonctionnait dans un bac à sable respectant les limites de ma machine. La découverte de l'Agentjacking par Tenet Security prouve que cette supposition est un oubli dangereux dans l'ingénierie logicielle moderne.
L'Agentjacking est une nouvelle classe d'attaque qui exploite la manière dont les agents de codage IA traitent les informations provenant de services externes. Elle permet à un attaquant d'exécuter du code arbitraire sur la machine d'un développeur en injectant des données malveillantes dans des outils auxquels l'agent fait confiance. Dans ce scénario spécifique, les chercheurs ont utilisé Sentry, une plateforme populaire de suivi des erreurs. L'exploit ne nécessite pas de violation des serveurs de Sentry ou de l'infrastructure du développeur. Il repose entièrement sur l'architecture de la manière dont les agents IA interprètent les données structurées via le Model Context Protocol.
Au centre de cette vulnérabilité se trouve un paradoxe fondamental dans la conception des agents IA. Ces agents sont conçus pour être utiles, proactifs et capables de prendre des mesures basées sur un contexte technique. Lorsque vous demandez à une IA de corriger un bogue, elle cherche souvent des sources de données fournissant des indices sur ce qui s'est mal passé. Sentry est l'une de ces sources. Il recueille des rapports d'erreur des applications et les présente aux développeurs pour analyse. Pour faciliter cela, de nombreux agents IA utilisent le Model Context Protocol pour interroger Sentry et récupérer les événements d'erreur récents.
Du point de vue du risque, le problème est que l'agent IA n'a aucun moyen de vérifier la source d'un rapport d'erreur. Il traite chaque événement renvoyé par le serveur Sentry comme une sortie système de confiance. Un attaquant peut exploiter cela en envoyant un faux rapport d'erreur directement au point de terminaison Sentry d'une entreprise. Cela est possible car Sentry utilise un Data Source Name, ou DSN, qui est un identifiant public en écriture seule. Vous pouvez trouver ces DSN intégrés dans le code source de millions de sites web et d'applications côté client. Parce que le DSN est censé être public pour que les applications frontend puissent signaler des erreurs, n'importe qui possédant cette chaîne peut envoyer des données à ce projet Sentry.
Lorsque l'agent IA interroge Sentry via le protocole, il reçoit le rapport d'erreur malveillant de l'attaquant aux côtés des rapports légitimes. L'agent interprète les instructions à l'intérieur de ce faux rapport comme des étapes de diagnostic ou des conseils de résolution. Il exécute ensuite ces instructions avec tous les privilèges du développeur. Il s'agit d'une rupture de la triade CIA, impactant spécifiquement l'intégrité du système et la confidentialité des données du développeur.
Pour comprendre la chaîne d'attaque, nous devons examiner comment les données circulent de l'internet public vers le terminal privé d'un développeur. Le processus commence par la localisation du DSN Sentry d'une cible par l'attaquant. Ce n'est pas une tâche difficile. De nombreuses organisations exposent par inadvertance ces clés dans leurs bundles JavaScript de production ou leurs dépôts publics. Une fois que l'attaquant possède le DSN, il utilise une requête POST standard pour envoyer un événement d'erreur forgé au point de terminaison d'ingestion de Sentry.
Cet événement n'est pas une simple chaîne de caractères. Les chercheurs ont découvert que l'utilisation d'un formatage Markdown spécifique dans les champs de message et les clés de contexte suffit à tromper l'agent IA. L'attaquant formate la charge utile pour qu'elle ressemble exactement à un modèle système Sentry légitime. Lorsqu'un développeur demande à son assistant IA de résoudre les problèmes Sentry non résolus, l'assistant extrait cet événement malveillant.
L'agent IA voit un message qui ressemble à une erreur technique et un ensemble d'instructions pour la corriger. Ces instructions pourraient dire à l'agent d'exécuter un script pour vérifier les variables d'environnement ou de mettre à jour un fichier de configuration. Parce que l'agent croit lire une étape de résolution de confiance provenant d'un outil de diagnostic, il exécute la commande. En coulisses, cette commande pourrait exfiltrer des identifiants Git, des URL de dépôts privés ou des variables d'environnement sensibles. L'attaque est furtive car le développeur voit l'agent faire exactement ce qu'il a demandé : corriger une erreur.
Cette surface d'attaque est particulièrement problématique car elle contourne presque toutes les couches de la pile de sécurité moderne. Un EDR ou un pare-feu recherche des signatures malveillantes ou des connexions non autorisées. Dans un scénario d'Agentjacking, chaque action de la chaîne est autorisée. Le serveur Sentry est autorisé à recevoir des données. L'agent IA est autorisé à interroger Sentry. Le développeur a autorisé l'agent à exécuter du code sur sa machine.
Il n'y a pas de malware à détecter au sens traditionnel. L'intention malveillante est enfouie dans la logique de l'instruction, et non dans le binaire d'un fichier. L'évaluation de la surface d'attaque révèle que l'agent IA lui-même est le maillon faible. Il agit comme un cheval de Troie numérique, apportant des données non fiables de l'internet public dans un environnement à hauts privilèges. Sur le plan proactif, des outils tels que les pare-feu d'applications Web (WAF) ou la gestion des identités et des accès (IAM) ne font rien pour arrêter cela car l'attaquant ne touche jamais à l'infrastructure interne de la victime. Ils interagissent uniquement avec un point d'ingestion public conçu pour accepter des données du monde entier.
Lorsque Tenet Security a signalé ces conclusions à Sentry, la réponse a été révélatrice. Sentry a reconnu le problème mais a déclaré qu'il n'était techniquement pas défendable. C'est une situation courante dans le monde de la conception d'API et des points d'ingestion publics. Si un service est conçu pour accepter des données de n'importe quel client, il ne peut pas facilement distinguer un crash réel d'une injection malveillante sans briser sa fonction principale. Bien que Sentry ait mis en œuvre un filtre de contenu global pour bloquer des chaînes de charge utile spécifiques, il s'agit d'une mesure réactive. Les attaquants peuvent probablement trouver de nouvelles façons de formater leur Markdown pour contourner de tels filtres.
Les chercheurs ont testé cette attaque contre plus de 100 organisations et ont obtenu un taux de réussite de 85 %. Ils ont trouvé au moins 2 388 organisations avec des DSN exposés et injectables. Cela suggère que la vulnérabilité est omniprésente dans l'industrie. Elle ne se limite pas à un seul outil ou à un modèle d'IA spécifique. C'est un problème systémique lié à la manière dont nous construisons des agents autonomes qui interagissent avec des sources de données externes. Nous donnons essentiellement à ces agents un laissez-passer VIP pour nos systèmes les plus sensibles sans videur à la porte pour vérifier les identités.
En guise de contre-mesure, les organisations doivent repenser la manière dont elles autorisent les agents IA à interagir avec des services tiers. Au-delà des correctifs, la défense la plus efficace est un passage vers un modèle zero trust pour le contexte de l'IA. Ce n'est pas parce que les données proviennent d'une API officielle que ces données peuvent être exécutées en toute sécurité.
Les développeurs doivent se méfier de tout agent IA qui demande la permission d'exécuter du code arbitraire sans supervision manuelle. Si vous utilisez des outils comme Claude Code ou Cursor, vous devez maintenir un haut niveau de paranoïa saine. Examinez les commandes proposées par l'agent avant d'appuyer sur la touche entrée. Si un agent suggère une résolution pour une erreur Sentry impliquant l'exécution d'un script shell que vous n'avez pas écrit, arrêtez-vous et vérifiez d'abord l'erreur dans le tableau de bord Sentry.
Pour les organisations, la priorité est d'auditer le code public pour détecter les DSN exposés. Bien que les DSN Sentry soient en écriture seule, ils représentent clairement un risque critique lorsque des agents IA sont de la partie. Traiter ces clés avec le même soin qu'une clé API privée est une étape nécessaire. Par conséquent, les équipes de sécurité devraient mettre à jour leurs modèles de menace pour inclure les agents IA comme vecteur potentiel d'exécution pour les données externes.
Pour protéger votre environnement de développement contre l'Agentjacking et les attaques par injection similaires, considérez les étapes suivantes :
Nous sommes dans une période d'adoption rapide de l'IA où la vitesse de développement dépasse souvent le développement des cadres de sécurité. L'Agentjacking nous rappelle que chaque nouvelle intégration crée un nouveau chemin pour un attaquant. Les agents auxquels nous faisons confiance pour nous faciliter la vie ne sont aussi sûrs que les données que nous leur fournissons.
Sources: Tenet Security Research Blog, Sentry Official Documentation, Model Context Protocol Specification, NIST AI Risk Management Framework.
Clause de non-responsabilité : Cet article est à titre informatif et éducatif uniquement et ne remplace pas un audit professionnel de cybersécurité ou un service de réponse aux incidents.



Notre solution de messagerie cryptée de bout en bout et de stockage en nuage constitue le moyen le plus puissant d'échanger des données en toute sécurité, garantissant ainsi la sûreté et la confidentialité de vos données.
/ Créer un compte gratuit