Que se passe-t-il quand un agent IA autonome fait n’importe quoi ? C’est la question que s’est posée Niels Provos, un ancien ingénieur de Google pendant 15 ans et ex-responsable sécurité chez Stripe, après avoir observé les déboires d’OpenClaw, l’assistant IA viral dont nous avions suivi l’évolution open source. Des dizaines de milliers d’instances exposées, des clés d’API et des historiques de conversation qui fuitent, des attaques par injection de prompt documentées par CrowdStrike… Le tout en quelques semaines seulement après sa démocratisation.
Sa réponse : IronCurtain, un framework open source qui place une barrière de sécurité déterministe entre un agent IA et les systèmes auxquels il peut accéder. Le nom vient du rideau de fer de théâtre — une barrière coupe-feu qui se déploie entre la scène et le public quand quelque chose prend feu. L’agent joue sur scène. Vos fichiers, vos identifiants, vos systèmes sont dans le public.
Des politiques de sécurité en langage naturel
C’est l’idée centrale du projet : plutôt que d’écrire des règles complexes en YAML ou en DSL, l’utilisateur rédige une « constitution » en français ou en anglais courant. Par exemple : « l’agent peut lire et écrire des fichiers dans le répertoire du projet, effectuer des opérations git en lecture seule sans approbation, et doit me demander avant de pousser vers un dépôt distant. » IronCurtain compile ensuite ces directives en règles déterministes appliquées à chaque action de l’agent.
Pourquoi ne pas laisser le modèle IA lui-même appliquer ces règles ? Parce que les LLM sont stochastiques : le même prompt qui bloque une action dangereuse aujourd’hui pourrait l’approuver demain. La sécurité exige du déterminisme, et ce déterminisme doit vivre en dehors du modèle.
Deux architectures de sandbox
IronCurtain supporte deux modes de confinement. Le mode Code exécute le TypeScript généré par l’agent dans un isolat V8 sans accès au système de fichiers ni au réseau — le seul canal de sortie est un proxy MCP qui applique les politiques. Le mode Docker place un agent autonome complet (comme Claude Code) dans un conteneur sans connectivité réseau, avec un mécanisme astucieux pour les clés d’API : le conteneur reçoit une fausse clé au bon format, et un proxy intercepte les appels sortants pour substituer la vraie clé — qui n’entre donc jamais dans l’environnement de l’agent.
IronCurtain est disponible via npx @provos/ironcurtain, avec le code source sur github.com/provos/ironcurtain et la documentation technique sur ironcurtain.dev. Il reste un prototype de recherche, et son auteur est transparent sur ses limites : l’injection de prompt reste un problème non résolu, et IronCurtain ne peut pas l’empêcher — mais il peut en contenir les dégâts.

