- Contexte
- Scénario illustratif : un agent de support outillé, aux permissions validées
- Constat
- Un appel autorisé mais illégitime ne déclenche aucune alarme
- Pour qui
- Responsable sécurité, architecte de runtimes d’agents, RSSI
- Preuve
- Scénario illustratif — classe d’attaque documentée, aucun système client observé
Imaginez un agent qui traite les tickets de votre support. Il a le droit de lire les tickets, d’interroger la base client, et de déclencher un remboursement en dessous d’un certain seuil. Toutes ces permissions sont légitimes, documentées, validées.
Un jour, un ticket contient une phrase glissée dans un fichier joint : une instruction adressée non pas à votre agent de support, mais à l’agent qui va le lire.
L’agent l’exécute. Il utilise ses droits — les vrais, ceux qu’on lui a donnés — pour faire quelque chose qu’aucun humain n’aurait validé.
Ce que voient vos systèmes
L’authentification est valide. L’autorisation est correcte. Le journal enregistre un appel légitime, par une identité légitime, dans les limites définies. Aucune alarme ne se déclenche, parce qu’aucune règle n’a été violée.
C’est le problème du délégué confus — le confused deputy — et l’essor des connecteurs d’outils, MCP compris, le rend beaucoup plus concret qu’il y a deux ans.
Pourquoi la question de sécurité change de nature
Ce qui rend ce scénario difficile, c’est que la question n’est plus « cet appel était-il autorisé ? » mais « cet agent devait-il émettre cet appel, dans ce contexte, à la demande de cette source ? » Une gateway qui ne vérifie que la première question laissera passer toute la seconde catégorie.
La permission est une propriété statique : elle se lit dans une configuration. La légitimité est une propriété du contexte d’exécution : elle ne s’observe qu’à l’exécution. Les outils qui contrôlent la première existent depuis vingt ans. Ceux qui instrumentent la seconde sont encore à construire.
Vérifier ce point dans votre environnement
Contrôles à rejouer vous-mêmeAucun de ces trois points ne se démontre par une configuration. Ils se démontrent en tentant l’attaque et en montrant ce qui se passe.
- Séparer les identités. Ouvrir une trace d’exécution réelle et vérifier que l’utilisateur, l’agent et l’outil y apparaissent comme trois principaux distincts. S’ils se confondent dans les journaux, ils se confondent aussi dans les droits.
- Tenter l’accès direct aux outils. Depuis un poste qui n’est pas la passerelle, appeler l’outil ou le serveur MCP directement. S’il répond, le contrôle central est décoratif : un chemin de contournement annule tout le reste.
- Rejouer une approbation. Sur une action destructrice ou financière, capturer le jeton ou le message d’approbation et le soumettre une seconde fois. Une approbation rejouable n’est pas une approbation, c’est un laissez-passer.
Ce que cela change à l’échelle d’un grand compte
- Le contrôle d’accès ne suffit plus comme dossier de sécurité. Un comité qui valide un runtime d’agents sur la seule revue RBAC valide la moitié statique du problème. La partie contextuelle — qui a demandé quoi, déclenché par quelle source — doit être instrumentée avant la mise en production, pas après le premier incident.
- Les traces sont le livrable, pas un sous-produit. Si la réponse à « cet appel était-il légitime ? » ne peut pas être reconstruite depuis les journaux, elle ne sera pas davantage reconstructible devant un auditeur ou un régulateur.
- Le périmètre réel inclut chaque connecteur. Chaque outil, chaque serveur MCP ajouté est un chemin d’exécution supplémentaire. L’inventaire des connecteurs joignables sans passerelle est un contrôle en soi — et il est mesurable.
Frontière de preuveScénario illustratif. Ce texte décrit une classe d’attaque documentée — le délégué confus appliqué aux agents outillés — et non un incident observé sur un système client. Aucun environnement réel n’a été testé pour cette analyse. Les trois contrôles proposés sont formulés pour être rejoués sur votre propre runtime ; leur résultat chez vous est la seule preuve qui compte.
Si votre runtime d’agents n’a jamais été confronté à ces trois contrôles, c’est un périmètre de sprint de preuve tout trouvé.