ALLER AU CONTENU
AGENTS IA7 minAgents en production / Ép. 4 · Niveau 4-1

Agents IA qui paient : comment limiter leurs droits ?

Un texte caché dans une facture peut ordonner à un agent IA de payer un inconnu. Qu’est-ce qui bloque le paiement quand l’agent obéit ?

XIN
Illustration pixel art d’un robot enfermé dans un anneau de confinement étroit et lumineux, qui tend la main vers un rail de virement bloqué derrière une barrière levée.

EN 30 SECONDES

Le moindre privilège, c’est ne donner à un agent IA que les accès dont sa tâche a besoin, rien de plus. Aucun filtre n’arrête à coup sûr un texte caché qui piège l’agent : le contrôle des droits doit donc se faire hors de l’agent, là où l’argent bouge.

À RETENIR · 3

  • Traitez l’injection de prompt comme une menace persistante : un filtre rend l’attaque plus difficile sans prouver qu’elle échoue.
  • Imposez les permissions hors du modèle, au niveau du compte, de l’API ou du service de paiement, pour limiter l’autorité d’un agent compromis.
  • Le modèle est celui qu’ERC-3643 applique déjà : sur les transferts ordinaires, c’est le token, pas l’appelant, qui impose la permission au moment du transfert de valeur. Je suis l’un de ses cinq auteurs nommés.
Sur cette page

Aucune parade infaillible contre l’injection de prompt

EN BREF Jusqu’ici, la plupart des défenses sont des filtres, et un filtre rend l’attaque plus difficile sans prouver qu’elle échoue.

Traitez donc l’Injection de prompt Du texte caché dans ce que l’agent lit, un e-mail ou une page web, qui tente de lui donner de nouveaux ordres. Voir le glossaire comme un risque permanent. Gardez un filtre, mais associez-le à des permissions imposées hors du modèle, et testez les deux.

Un filtre a sa place, mais on ne mise pas un fonds dessus.

J’imposerais le Moindre privilège Ne donner à un agent que les accès dont sa tâche du moment a besoin, le temps de cette tâche, rien de plus. Voir le glossaire au compte, à l’API (l’interface qu’appellent les autres logiciels) et à la ressource. Un modèle manipulé ne peut alors pas décider de sauter les contrôles.

Partez du principe que l’agent peut être compromis, puis définissez et testez ce qu’il peut atteindre. C’est ce que j’appelle le Confinement Des limites posées hors de l’agent, pour qu’un agent piégé n’atteigne que ce qu’on lui a accordé. Voir le glossaire.

DEUX CONCEPTIONS

Faire confiance à l’appelant

L’agent est censé lancer le contrôle de permission avant d’agir. Détourné, il l’esquive ou le contourne à force d’arguments. La barrière ne vaut que l’honnêteté de l’appelant.

Contrôler côté ressource

Le service de paiement devrait imposer lui-même le périmètre autorisé, quoi que demande l’agent. Cette approche, comme les contrôles du token ERC-3643, dépend d’une administration sûre et d’une implémentation correcte.
Illustratif : le même agent, deux conceptions. Seule la seconde tient encore quand l’agent est détourné.

Je n’y suis pas arrivé par la sécurité de l’IA. J’y suis arrivé par plus de 10 ans dans le Web3, où j’ai entre autres écrit des règles de transfert dans des smart contracts, des programmes qui tournent sur une blockchain.

ERC-3643 est un standard pour les tokens, des actifs numériques inscrits sur une blockchain. Il sert à refuser un transfert interdit à l’appelant.

Dans la section suivante : Concrètement, à quoi ressemble un agent confiné ?

Les mots à connaître

EN BREF Le badge d’un prestataire venu pour une journée fonctionne déjà comme un agent confiné devrait le faire.

LES MOTS À CONNAÎTRE

Injection de prompt
Du texte caché dans ce que l’agent lit, un e-mail ou une page web, qui tente de lui donner de nouveaux ordres.
Moindre privilège
Ne donner à un agent que les accès dont sa tâche du moment a besoin, le temps de cette tâche, rien de plus.
Confinement
Des limites posées hors de l’agent, pour qu’un agent piégé n’atteigne que ce qu’on lui a accordé.

ADAM explique : Le badge n’ouvre que les salles du jour et cesse de fonctionner à 18 h. La limite : un prestataire peut demander avant d’obéir à un e-mail bizarre ; un agent peut suivre un texte caché, à la vitesse d’une machine.

Cet écart fixe la règle de conception : ce sont les portes, pas l’agent, qui doivent dire non.

EN CLAIR

On ne se demande plus si l’agent va bien se tenir. On se demande ce qu’il peut toucher s’il dérape, et on garde cette liste courte.

Dans la section suivante : Alors, où placer la porte, exactement ?

Le contrôle se fait côté ressource, pas côté appelant

EN BREF Placez le contrôle là où l’action se produit, pour que l’appelant ne puisse pas le contourner.

Les tokens me l’ont appris. Dans un token naïf, l’appli qui appelle est censée faire le contrôle de conformité avant le transfert.

Un jour, une appli l’oublie, ou un attaquant appelle le transfert en direct. Un détenteur inéligible entre alors dans la table de capitalisation, le registre des détenteurs. Le contrôle existait, mais rien ne l’obligeait à tourner.

ÉTAPE PAR ÉTAPE

Diagramme de flux : 4 étapesDiagramme de flux : 4 étapes. Un appelant non fiable demande un transfert, puis La fonction de transfert s’exécute, quel que soit l’appelant. La fonction de transfert s’exécute, quel que soit l’appelant, puis Le token interroge le registre d’identité. Le token interroge le registre d’identité, puis Éligible, autres contrôles passés : il passe.1Un appelant non fiabledemande un transfertUne intégration oubliée, unattaquant ou un agent piégé.Le token ne sait pas lequel,et n’a pas besoin de lesavoir.2La fonction de transferts’exécute, quel que soitl’appelantLes transferts ordinairespassent par les contrôles dutoken. Les opérationsprivilégiées et lesadministrateurs demandent unerevue à part.3Le token interroge leregistre d’identitéCe destinataire est-iléligible ? La réponse vientde l’identité inscrite sur lablockchain, pas del’appelant.4Éligible, autrescontrôles passés : ilpasse
Une liste de détenteurs vérifiés, tenue sur la blockchain.

Étape 1. Une demande arrive. Quelqu’un demande au token de bouger : une appli fiable, une appli boguée, un attaquant ou un agent détourné.

Choisissez une étape pour la voir bouger
  1. Une demande arrive Quelqu’un demande au token de bouger : une appli fiable, une appli boguée, un attaquant ou un agent détourné.
  2. Les contrôles tournent quand même Un transfert ordinaire passe par les contrôles du token, quel que soit l’appelant. L’appelant ne peut pas les désactiver.
  3. Inéligible : c’est annulé Le registre répond que le destinataire n’est pas éligible. Le transfert est annulé (« revert ») : aucun token ne bouge.
  4. Éligible : ça passe Destinataire vérifié, contrôles passés : le transfert passe. L’intention de l’appelant n’a jamais compté dans la décision.
Un transfert ERC-3643 ordinaire. Les opérations privilégiées, comme les transferts forcés, suivent leurs propres règles et demandent une revue à part.

ERC-3643 contrôle les transferts ordinaires. Mais il prévoit aussi des opérations à privilèges, comme les transferts forcés. Il faut donc aussi faire confiance aux administrateurs et au registre d’identité.

Un agent victime d’une Injection de prompt Du texte caché dans ce que l’agent lit, un e-mail ou une page web, qui tente de lui donner de nouveaux ordres. Voir le glossaire est exactement cet appelant non fiable. Si votre sécurité dépend du bon vouloir de l’agent, l’injection lui retire ce choix.

OBJET OBTENU

Le contrôle côté ressource

Le compte, le rail de paiement qui déplace vraiment l’argent, ou la ressource refuse ce que l’agent n’a pas le droit de faire, quoi qu’on l’ait poussé à demander.

Le modèle d’origine est sur la blockchain : voyez comment ERC-3643 fait respecter les droits au moment du transfert, dans le token lui-même.

NIVEAU TERMINÉ

Ce que vous savez maintenant

  • Pourquoi un filtre seul ne protège pas un agent qui touche à l’argent.
  • Pourquoi on se demande ce qu’un agent peut toucher, et non s’il va bien se tenir.
  • Pourquoi le contrôle se place là où l’action a lieu, pas chez l’appelant.

Vérifiez par vous-même

Touchez ou cliquez une question pour voir la réponse.

Cas fictif : une même clé d’agent peut préparer et envoyer des paiements, et un filtre arrête la plupart des injections. L’agent est-il confiné ?

Non. La tentative que le filtre rate peut envoyer de l’argent, car rien hors du modèle ne l’arrête. Confiné veut dire qu’un raté ne peut toujours pas déplacer d’argent, car c’est le système de paiement qui décide, pas l’agent.

Niveau suivant :Quelles protections confinent un agent qui paie, et que doit signer une personne ?7 min
Adam Boudjemaa
Adam Boudjemaa

Ancien CTO d’Integra. Auteur nommé (1 sur 5) d’ERC-3643, premier auteur d’ERC-6960, co-auteur d’ERC-7410 et co-auteur d’ERC-8203, encore à l’état de brouillon. Conçoit des systèmes d’IA en production et des systèmes Web3 régulés.

Un projet à livrer ou un poste à pourvoir ?

Parlons de votre besoin
Suivre les notes techniques

Recevez les nouveaux articles sur l’IA en production et les smart contracts par email.