On ne vous demande pas de nous croire.

Le code qui applique les règles est public. Votre équipe technique peut le lire avant que vous signiez, et vérifier que ce qui suit est vrai.

97 %des organisations ayant subi un incident lié à l'IA n'avaient aucun contrôle d'accès sur les outils concernésIBM, 600 organisations étudiées · B
73 %des déploiements IA audités en production présentent une faiblesse d'injection de promptCisco, 2026 · B
109 pour 1d'identités machine par identité humaine, dont 97 % portent des privilèges excessifsPalo Alto Networks, 2026 · B

Le mécanisme, en trois phrases

01

Les limites vivent en dehors du modèle

Elles ne sont pas écrites dans le prompt. Elles sont appliquées par une couche que l'agent traverse pour agir et qu'il ne peut pas atteindre. Une injection de prompt réussie change ce que l'agent veut faire, pas ce qu'il a le droit de faire.

02

Chaque appel est signé et vérifié

L'agent signe la méthode, le chemin, le contenu, l'horodatage, un jeton à usage unique et l'empreinte de sa propre configuration. Un appel rejoué, un contenu modifié ou une configuration qui a dérivé est refusé.

03

Refus par défaut

Ce qui n'est pas explicitement accordé n'a pas lieu. Le refus porte un code, une raison, et la règle qui a tranché.

Ce que votre RSSI va demander

Trois colonnes : sa question, ce que la plateforme fait, et ce qu'il peut aller vérifier.

La questionLe contrôleLa vérification
Comment on retire un droit à un agent qui déraille ?Révocation à chaud, sans redéploiement ni redémarrage.L'appel suivant est refusé, et le refus est dans la trace.
Qu'est-ce qui empêche un agent de dépasser un plafond ?Registre de consommation par agent, en jetons et en euros.Le dépassement produit un refus, pas un avertissement.
Comment savoir ce qui s'est réellement passé ?Reçus chaînés, chaque action liée à la précédente.Une modification a posteriori casse la chaîne et se voit.
Et si quelqu'un modifie une règle en douce ?Les changements de règle et de droit entrent dans la même chaîne que les actions.Quand la règle a changé et par quel accès, c'est dans la trace.
Où partent nos données ?La plateforme tourne sur votre infrastructure. Les sorties réseau de l'agent sont bornées.Le domaine non déclaré est refusé, pas journalisé après coup.
Comment on prouve tout ça à un auditeur ?Export de la trace complète, actions et refus.Le fichier se vérifie sans nous et sans la plateforme.

Seize attaques modélisées. Seize refusées, contrôles activés.

Chaque ligne est un scénario qui tente de faire ce que cette page dit impossible. Le fichier de résultats est dans le dépôt, avec le commit et la date de l'exécution.

L'attaqueCe qu'elle vise
A1Forger le jeton d'identité d'un agentIdentitéBloquée
A2Rejouer un jeton déjà consomméIdentitéBloquée
A3Rejouer une signature d'appel avec le même nonceIntégritéBloquée
A4Réutiliser un jeton capturé sur un autre point d'entréeIntégritéBloquée
A5Modifier le contenu d'un appel après sa signatureIntégritéBloquée
A6Présenter un appel horodaté hors fenêtreIntégritéBloquée
A7Signer avec la clé d'un autre agent que celui déclaréIdentitéBloquée
A8Atteindre l'administration sans clé valideDroitsBloquée
A9Agir avec le jeton d'un agent révoquéDroitsBloquée
A10Demander, en agent délégué, plus que le mandat reçuDroitsBloquée
A11Consommer deux fois la même autorisation de paiement en simultanéPlafondsBloquée
A12Envoyer 125 inscriptions contre une limite de 60PlafondsBloquée
A13Appeler depuis une origine web non déclaréeSortiesBloquée
A14Retoucher un reçu déjà écrit dans la tracePreuveBloquée
A15Deviner une signature par mesure du temps de réponse, sur 2 000 essaisIdentitéBloquée
A16Agir avec une configuration d'agent qui a dérivé depuis l'enrôlementIntégritéBloquée
Dernière exécution publiéeredteam/empirical-results.json · 8d0573a · 19 août 2026
La commande qui la rejouenpm run redteam

Vingt-trois millisecondes, base et reçus compris.

La question posée en revue d'architecture n'est pas si le contrôle est bon, c'est ce qu'il ralentit. Mesuré à 100 appels simultanés, sur une machine dont la référence est publiée.

SauronID : politiques, base PostgreSQL, chaîne de reçus
23 ms médiane
60 ms 95e centile
Référence : vérification de signature seule, sans base ni politique ni reçu
33 ms médiane
59 ms 95e centile

Machine et date : AMD Ryzen 7 7735HS, 16 cœurs, PostgreSQL · 20 août 2026 · redteam/benchmarks/results-summary.md

Lignes à écrire pour brancher un agent
25côté agent
0côté serveur

Ce qui est dans le dépôt public, et que vous pouvez lancer ce soir

Ouvrir le dépôt
  • La passerelle qui enrôle les agents, évalue les politiques, borne les sorties réseau et produit les reçus.
  • Une console qui liste les agents, montre l'activité et les refus, et révoque un droit.
  • Une suite d'attaques modélisées, une par type de rejet, avec ses résultats et le mode d'application utilisé.
  • Des clients Python, TypeScript et Go, plus un serveur MCP.
  • Les fichiers de déploiement : Docker, Helm, et un chemin natif sans Docker.

Les limites qu'on écrit nous-mêmes, avant que vous les trouviez.

  • Ce n'est pas une certification. Aucune plateforme ne rend une entreprise conforme à quoi que ce soit, et nous ne le prétendrons pas.
  • Ce ne remplace ni votre isolation réseau ni votre gestion des identités humaines. La plateforme gère l'identité des agents, pas celle de vos salariés.
  • Ça ne rend pas un modèle fiable. Ça borne ce que son erreur peut coûter, ce qui n'est pas la même promesse.
  • Les preuves rendent l'exécution vérifiable. Ce n'est pas une fonction de confidentialité, et nous ne l'appellerons pas ainsi.
  • Nous n'avons aucun audit externe publié, et nous n'écrirons pas « audité » avant qu'il y en ait un. Ce que nous publions à la place est plus vérifiable : le modèle de menace, la suite d'attaques et les résultats de la dernière exécution, que votre équipe peut rejouer.

Faites lire cette page à votre équipe technique.

Et pendant ce temps, dites-nous quel processus vous coûte le plus cher. Les deux conversations peuvent avancer en parallèle.