
Runtime sandboxizzato open-source per agenti AI — isolamento gVisor/Docker, vault delle credenziali, registro di audit immutabile. Realizzato dopo CVE-2026-25253.
Il runtime sandbox open-source per agenti AI
Esegui agenti AI con sicurezza. Ogni agente ha il proprio ambito di autorizzazioni, vault di credenziali, registro di audit e interruttore di emergenza.
Il 27 gennaio 2026, CVE-2026-25253 è diventata la prima CVE mai assegnata a un sistema AI agentico. Una vulnerabilità critica di WebSocket hijacking in OpenClaw ha consentito l'esecuzione remota di codice con un solo clic contro qualsiasi istanza esposta — incluse quelle vincolate solo a localhost.
Nella stessa settimana, la campagna ClawHavoc ha infiltrato 341+ skill dannose nel marketplace di OpenClaw. Ogni skill installata da ClawHub veniva eseguita con gli stessi permessi di OpenClaw stesso — accesso completo al disco, token OAuth, chiavi API. Nessun sandbox. Nessun registro di audit. Nessun interruttore di emergenza.
"Installare una skill da ClawHub le concede l'accesso alle stesse risorse di OpenClaw stesso. Non esiste isolamento sandbox tra le skill per impostazione predefinita." — Analisi di sicurezza DEV Community, aprile 2026
I numeri:
AgentBox è la soluzione strutturale. Non una patch — un runtime.
Ogni agente che esegui ottiene:
| Protezione | Come |
|---|---|
| Permessi zero-trust | Gli agenti dichiarano esattamente ciò di cui hanno bisogno. Nient'altro è accessibile. |
| Isolamento a livello di kernel | gVisor intercetta ogni syscall. L'iniezione di prompt non può attraversare questo confine. |
| Vault di credenziali | Crittografia AES-256-GCM. Gli agenti non vedono mai segreti grezzi — solo token con ambito limitato. |
| Registro di audit immutabile | Catena hash SHA-256. Ogni azione registrata. A prova di manomissione. |
| Interruttore di emergenza | Termina qualsiasi agente in meno di 100ms. Auto-kill su violazione dei limiti. |
| Limiti delle risorse | Tempo, memoria, numero di richieste — applicati a runtime, non in configurazione. |
Prima di AgentBox Dopo AgentBox
───────────────── ──────────────
Agente → disco completo ❌ Agente → solo percorsi consentiti ✅
Agente → tutta la rete ❌ Agente → solo host consentiti ✅
Agente → segreti grezzi ❌ Agente → token con ambito limitato ✅
Nessun registro di audit ❌ Ogni azione registrata ✅
Nessun interruttore di emergenza ❌ Kill in <100ms ✅
Le skill girano come root ❌ Sandbox isolato a livello di kernel ✅
# Installazione
go install github.com/siyad01/agentbox/cmd/agentbox@latest
# Valida un manifest prima di eseguirlo
agentbox validate manifests/email-sorter.yaml
# Esegui un agente in un sandbox
agentbox run --manifest manifests/email-sorter.yaml python agent.py
# Visualizza cosa ha fatto l'agente
agentbox audit --log logs/email-sorter-audit.log
# Verifica che il registro non sia stato manomesso
agentbox verify logs/email-sorter-audit.log
# Gestisci i segreti
agentbox vault add ANTHROPIC_API_KEY
agentbox vault list
Ogni agente dichiara esattamente ciò di cui ha bisogno. Niente che non sia elencato è accessibile.
name: "email-sorter"
version: "1.0.0"
description: "Legge la casella di posta, categorizza le email, scrive nella cartella ordinata"
runtime: docker # oppure: gvisor (livello kernel), firecracker (MicroVM)
permissions:
filesystem:
read:
- "~/Documents/inbox"
write:
- "~/Documents/sorted"
deny: # SEMPRE bloccato — anche se nella lista di lettura
- "~/.ssh"
- "~/.aws"
- "~/.config"
- "/etc"
network:
allow:
- "api.anthropic.com"
- "gmail.googleapis.com"
deny:
- "*" # blocca tutto il resto
tools:
allow:
- "read_file"
- "write_file"
- "list_*"
deny:
- "execute_shell" # nessun accesso alla shell, mai
- "*_delete" # nessuno strumento di eliminazione
credentials:
- ANTHROPIC_API_KEY # iniettato dal vault a runtime
- GMAIL_TOKEN # l'agente non vede mai il valore grezzo
limits:
max_tokens: 50000 # budget token LLM
max_duration: "30m" # terminato dopo 30 minuti
max_memory_mb: 256 # tetto RAM
max_requests: 500 # massimo invocazioni di strumenti
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
│
▼
┌─────────────────────────────────────────────────────┐
│ Policy Engine │
│ Analizza il manifest → costruisce liste allow/deny │
│ Valida le firme → rifiuta skill non firmate │
│ Inietta le credenziali dal vault │
└──────────────────────┬──────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────┐
│ Isolation Layer │
│ │
│ Docker → container + seccomp + cap-drop │
│ gVisor → kernel in user-space, intercettazione syscall │
│ Firecracker → kernel MicroVM dedicato per agente │
│ │
│ Filesystem: solo i percorsi dichiarati montati │
│ Rete: solo gli host dichiarati raggiungibili │
│ Capacità: TUTTE rimosse, nessuna aggiunta │
└──────────────────────┬──────────────────────────────┘
│
┌────────────┼────────────┐
▼ ▼ ▼
Audit Logger Credential Resource
(hash-chain) Vault Monitor
ogni azione AES-256-GCM auto-kill
registrata token con su limite
ambito limitato
Ogni altro sandbox si ferma al confine del container. Un agente che sfrutta una vulnerabilità del kernel può evadere.
gVisor intercetta ogni syscall prima che raggiunga il kernel host:
L'agente tenta: write("/home/user/.ssh/id_rsa")
│
▼
kernel in user-space di gVisor
│
Il percorso è nella lista deny? → SÌ
│
▼
EPERM restituito immediatamente
Il kernel host non vede mai questa syscall
L'iniezione di prompt non può attraversare questo livello
agentbox <comando> [opzioni]
Comandi:
run Esegui un agente in un sandbox
validate Valida un file manifest
kill Termina un agente in esecuzione
audit Visualizza i registri di audit dell'agente
verify Verifica l'integrità del registro di audit
vault Gestisci le credenziali crittografate
serve Avvia il server API REST
version Mostra la versione