
Open-source sandboxed runtime para agentes de IA: aislamiento con gVisor/Docker, bóveda de credenciales, registro de auditoría inmutable. Construido después de CVE-2026-25253.
El runtime sandbox de código abierto para agentes de IA
Ejecuta agentes de IA con confianza. Cada agente tiene su propio ámbito de permisos, bóveda de credenciales, registro de auditoría e interruptor de apagado.
El 27 de enero de 2026, CVE-2026-25253 se convirtió en el primer CVE jamás asignado a un sistema de IA agéntica. Una vulnerabilidad crítica de secuestro de WebSocket en OpenClaw permitía la ejecución remota de código con un solo clic contra cualquier instancia expuesta, incluidas aquellas vinculadas únicamente a localhost.
Esa misma semana, la campaña ClawHavoc infiltró más de 341 habilidades maliciosas en el marketplace de OpenClaw. Cada habilidad instalada desde ClawHub se ejecutaba con los mismos permisos que el propio OpenClaw: acceso completo al disco, tokens OAuth, claves API. Sin sandbox. Sin registro de auditoría. Sin interruptor de apagado.
"Instalar una habilidad desde ClawHub le otorga acceso a los mismos recursos que el propio OpenClaw. No hay aislamiento sandbox entre habilidades por defecto." — Análisis de seguridad de DEV Community, abril de 2026
Las cifras:
AgentBox es la solución estructural. No un parche, sino un runtime.
Cada agente que ejecutas obtiene:
| Protección | Cómo |
|---|---|
| Permisos de confianza cero | Los agentes declaran exactamente lo que necesitan. Nada más es accesible. |
| Aislamiento a nivel de kernel | gVisor intercepta cada syscall. La inyección de prompts no puede cruzar este límite. |
| Bóveda de credenciales | Cifrado AES-256-GCM. Los agentes nunca ven secretos en bruto, solo tokens con ámbito. |
| Registro de auditoría inmutable | Cadena de hash SHA-256. Cada acción queda registrada. A prueba de manipulación. |
| Interruptor de apagado | Termina cualquier agente en menos de 100 ms. Auto-apagado ante violación de límites. |
| Límites de recursos | Tiempo, memoria, número de solicitudes: se aplican en tiempo de ejecución, no en la configuración. |
Antes de AgentBox Después de AgentBox
───────────────── ──────────────
Agente → disco completo ❌ Agente → solo rutas permitidas ✅
Agente → toda la red ❌ Agente → solo hosts permitidos ✅
Agente → secretos en bruto ❌ Agente → tokens con ámbito ✅
Sin registro de auditoría ❌ Cada acción registrada ✅
Sin interruptor de apagado ❌ Apagado en <100 ms ✅
Habilidades ejecutadas como root ❌ Sandbox aislado por kernel ✅
# Instalación
go install github.com/siyad01/agentbox/cmd/agentbox@latest
# Validar un manifiesto antes de ejecutar
agentbox validate manifests/email-sorter.yaml
# Ejecutar un agente en un sandbox
agentbox run --manifest manifests/email-sorter.yaml python agent.py
# Ver qué hizo el agente
agentbox audit --log logs/email-sorter-audit.log
# Verificar que el registro no ha sido manipulado
agentbox verify logs/email-sorter-audit.log
# Gestionar secretos
agentbox vault add ANTHROPIC_API_KEY
agentbox vault list
Cada agente declara exactamente lo que necesita. Nada que no esté listado es accesible.
name: "email-sorter"
version: "1.0.0"
description: "Lee la bandeja de entrada, categoriza correos, escribe en la carpeta ordenada"
runtime: docker # o: gvisor (nivel de kernel), firecracker (MicroVM)
permissions:
filesystem:
read:
- "~/Documents/inbox"
write:
- "~/Documents/sorted"
deny: # SIEMPRE bloqueado, incluso si está en la lista de lectura
- "~/.ssh"
- "~/.aws"
- "~/.config"
- "/etc"
network:
allow:
- "api.anthropic.com"
- "gmail.googleapis.com"
deny:
- "*" # bloquear todo lo demás
tools:
allow:
- "read_file"
- "write_file"
- "list_*"
deny:
- "execute_shell" # sin acceso a shell, nunca
- "*_delete" # sin herramientas de borrado
credentials:
- ANTHROPIC_API_KEY # inyectado desde la bóveda en tiempo de ejecución
- GMAIL_TOKEN # el agente nunca ve el valor en bruto
limits:
max_tokens: 50000 # presupuesto de tokens LLM
max_duration: "30m" # se elimina después de 30 minutos
max_memory_mb: 256 # límite de RAM
max_requests: 500 # máximo de invocaciones de herramientas
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
│
▼
┌─────────────────────────────────────────────────────┐
│ Motor de políticas │
│ Analiza el manifiesto → construye listas allow/deny │
│ Valida firmas → rechaza habilidades sin firmar │
│ Inyecta credenciales desde la bóveda │
└──────────────────────┬──────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────┐
│ Capa de aislamiento │
│ │
│ Docker → contenedor + seccomp + cap-drop │
│ gVisor → kernel en espacio de usuario, intercepta syscalls │
│ Firecracker → kernel MicroVM dedicado por agente │
│ │
│ Sistema de archivos: solo rutas declaradas montadas │
│ Red: solo hosts declarados alcanzables │
│ Capacidades: TODAS eliminadas, ninguna añadida │
└──────────────────────┬──────────────────────────────┘
│
┌────────────┼────────────┐
▼ ▼ ▼
Registro de Bóveda de Monitor de
auditoría credenciales recursos
(cadena de hash) AES-256-GCM auto-apagado
cada acción tokens con ámbito ante límites
Todos los demás sandboxes se detienen en el límite del contenedor. Un agente que explota una vulnerabilidad del kernel puede escapar.
gVisor intercepta cada syscall antes de que llegue al kernel del host:
El agente intenta: write("/home/user/.ssh/id_rsa")
│
▼
Kernel en espacio de usuario de gVisor
│
¿Ruta en lista de denegación? → SÍ
│
▼
EPERM devuelto inmediatamente
El kernel del host nunca ve este syscall
La inyección de prompts no puede cruzar esta capa
agentbox <comando> [opciones]