
Runtime sandboxé open-source pour agents IA — isolation gVisor/Docker, coffre-fort d’identifiants, journal d’audit immuable. Conçu après CVE-2026-25253.
Le runtime sandboxé open-source pour les agents IA
Exécutez des agents IA en toute confiance. Chaque agent dispose de son propre périmètre d'autorisations, de son coffre-fort d'identifiants, de sa piste d'audit et de son interrupteur d'arrêt d'urgence.
Le 27 janvier 2026, CVE-2026-25253 est devenue la première CVE jamais attribuée à un système IA agentique. Une vulnérabilité critique de détournement WebSocket dans OpenClaw a permis l'exécution de code à distance en un clic contre toute instance exposée — y compris celles liées uniquement à localhost.
La même semaine, la campagne ClawHavoc a infiltré plus de 341 compétences malveillantes dans la marketplace d'OpenClaw. Chaque compétence installée depuis ClawHub s'exécutait avec les mêmes autorisations qu'OpenClaw lui-même — accès complet au disque, jetons OAuth, clés API. Aucun sandbox. Aucune piste d'audit. Aucun interrupteur d'arrêt d'urgence.
« Installer une compétence depuis ClawHub lui accorde l'accès aux mêmes ressources qu'OpenClaw lui-même. Il n'existe aucune isolation par sandbox entre les compétences par défaut. » — Analyse de sécurité DEV Community, avril 2026
Les chiffres :
AgentBox est la solution structurelle. Pas un correctif — un runtime.
Chaque agent que vous exécutez dispose de :
| Protection | Comment |
|---|---|
| Autorisations zéro confiance | Les agents déclarent exactement ce dont ils ont besoin. Rien d'autre n'est accessible. |
| Isolation au niveau du noyau | gVisor intercepte chaque appel système. L'injection de prompt ne peut pas franchir cette frontière. |
| Coffre-fort d'identifiants | Chiffrement AES-256-GCM. Les agents ne voient jamais les secrets bruts — uniquement des jetons limités. |
| Journal d'audit immuable | Chaîne de hachage SHA-256. Chaque action est journalisée. Preuve d'altération. |
| Interrupteur d'arrêt d'urgence | Terminez n'importe quel agent en moins de 100 ms. Arrêt automatique en cas de dépassement de limite. |
| Limites de ressources | Temps, mémoire, nombre de requêtes — appliquées à l'exécution, pas à la configuration. |
Avant AgentBox Après AgentBox
───────────────── ──────────────
Agent → disque complet ❌ Agent → chemins autorisés uniquement ✅
Agent → tout le réseau ❌ Agent → hôtes autorisés uniquement ✅
Agent → secrets bruts ❌ Agent → jetons limités ✅
Aucune piste d'audit ❌ Chaque action journalisée ✅
Aucun interrupteur d'arrêt ❌ Arrêt en <100 ms ✅
Compétences exécutées en root ❌ Sandbox isolé au niveau du noyau ✅
# Installation
go install github.com/siyad01/agentbox/cmd/agentbox@latest
# Valider un manifeste avant l'exécution
agentbox validate manifests/email-sorter.yaml
# Exécuter un agent dans un sandbox
agentbox run --manifest manifests/email-sorter.yaml python agent.py
# Consulter ce que l'agent a fait
agentbox audit --log logs/email-sorter-audit.log
# Vérifier que le journal n'a pas été altéré
agentbox verify logs/email-sorter-audit.log
# Gérer les secrets
agentbox vault add ANTHROPIC_API_KEY
agentbox vault list
Chaque agent déclare exactement ce dont il a besoin. Tout ce qui n'est pas listé est inaccessible.
name: "email-sorter"
version: "1.0.0"
description: "Lit la boîte de réception, catégorise les e-mails, écrit dans le dossier trié"
runtime: docker # ou : gvisor (niveau noyau), firecracker (MicroVM)
permissions:
filesystem:
read:
- "~/Documents/inbox"
write:
- "~/Documents/sorted"
deny: # TOUJOURS bloqué — même s'il figure dans la liste de lecture
- "~/.ssh"
- "~/.aws"
- "~/.config"
- "/etc"
network:
allow:
- "api.anthropic.com"
- "gmail.googleapis.com"
deny:
- "*" # bloquer tout le reste
tools:
allow:
- "read_file"
- "write_file"
- "list_*"
deny:
- "execute_shell" # aucun accès shell, jamais
- "*_delete" # aucun outil de suppression
credentials:
- ANTHROPIC_API_KEY # injecté depuis le coffre-fort à l'exécution
- GMAIL_TOKEN # l'agent ne voit jamais la valeur brute
limits:
max_tokens: 50000 # budget de jetons LLM
max_duration: "30m" # arrêt après 30 minutes
max_memory_mb: 256 # plafond de RAM
max_requests: 500 # nombre maximal d'invocations d'outils
audit:
log_level: full
alert_on:
- filesystem_deny
- network_deny
- token_budget_80pct
log_path: "logs/email-sorter-audit.log"
agentbox run --manifest agent.yaml python agent.py
│
▼
┌─────────────────────────────────────────────────────┐
│ Moteur de politiques │
│ Analyse le manifeste → construit les listes │
│ d'autorisation/refus │
│ Valide les signatures → rejette les compétences │
│ non signées │
│ Injecte les identifiants depuis le coffre-fort │
└──────────────────────┬──────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────┐
│ Couche d'isolation │
│ │
│ Docker → conteneur + seccomp + cap-drop │
│ gVisor → noyau en espace utilisateur, interception│
│ des appels système │
│ Firecracker → noyau MicroVM dédié par agent │
│ │
│ Système de fichiers : seuls les chemins déclarés │
│ sont montés │
│ Réseau : seuls les hôtes déclarés sont accessibles │
│ Capacités : TOUTES supprimées, aucune ajoutée │
└──────────────────────┬──────────────────────────────┘
│
┌────────────┼────────────┐
▼ ▼ ▼
Journal d'audit Coffre-fort Moniteur de
(chaîne de d'identifiants ressources
hachage) AES-256-GCM arrêt automatique
chaque action jetons limités en cas de
journalisée dépassement
Tous les autres sandbox s'arrêtent à la frontière du conteneur. Un agent exploitant une vulnérabilité du noyau peut s'en échapper.
gVisor intercepte chaque appel système avant qu'il n'atteigne le noyau hôte :