
ओपन-सोर्स सैंडबॉक्स्ड रनटाइम AI एजेंटों के लिए — gVisor/Docker आइसोलेशन, क्रेडेंशियल वॉल्ट, अपरिवर्तनीय ऑडिट लॉग। CVE-2026-25253 के बाद निर्मित।
AI एजेंटों के लिए ओपन-सोर्स सैंडबॉक्स्ड रनटाइम
AI एजेंटों को आत्मविश्वास के साथ चलाएं। हर एजेंट को अपना अनुमति दायरा, क्रेडेंशियल वॉल्ट, ऑडिट ट्रेल और किल स्विच मिलता है।
27 जनवरी, 2026 को, CVE-2026-25253 किसी एजेंटिक AI सिस्टम को सौंपा गया पहला CVE बन गया। OpenClaw में एक गंभीर WebSocket हाइजैकिंग भेद्यता ने किसी भी एक्सपोज़्ड इंस्टेंस — जिसमें केवल localhost से बंधे इंस्टेंस भी शामिल हैं — के खिलाफ वन-क्लिक रिमोट कोड निष्पादन सक्षम किया।
उसी सप्ताह, ClawHavoc अभियान ने OpenClaw के मार्केटप्लेस में 341+ दुर्भावनापूर्ण स्किल्स घुसा दीं। ClawHub से इंस्टॉल की गई हर स्किल OpenClaw के समान अनुमतियों के साथ चलती थी — पूर्ण डिस्क एक्सेस, OAuth टोकन, API कुंजियाँ। कोई सैंडबॉक्स नहीं। कोई ऑडिट ट्रेल नहीं। कोई किल स्विच नहीं।
"ClawHub से एक स्किल इंस्टॉल करने से उसे OpenClaw के समान संसाधनों तक पहुंच मिलती है। डिफ़ॉल्ट रूप से स्किल्स के बीच कोई सैंडबॉक्स अलगाव नहीं है।" — DEV Community सुरक्षा विश्लेषण, अप्रैल 2026
आंकड़े:
AgentBox संरचनात्मक समाधान है। कोई पैच नहीं — एक रनटाइम।
आपके द्वारा चलाया जाने वाला हर एजेंट प्राप्त करता है:
| सुरक्षा | कैसे |
|---|---|
| ज़ीरो-ट्रस्ट अनुमतियाँ | एजेंट घोषित करते हैं कि उन्हें वास्तव में क्या चाहिए। बाकी कुछ भी सुलभ नहीं है। |
| कर्नेल-स्तरीय अलगाव | gVisor हर syscall को इंटरसेप्ट करता है। प्रॉम्प्ट इंजेक्शन इस सीमा को पार नहीं कर सकता। |
| क्रेडेंशियल वॉल्ट | AES-256-GCM एन्क्रिप्शन। एजेंट कभी भी कच्चे रहस्य नहीं देखते — केवल स्कोप्ड टोकन। |
| अपरिवर्तनीय ऑडिट लॉग | SHA-256 हैश चेन। हर क्रिया लॉग की जाती है। छेड़छाड़-स्पष्ट। |
| किल स्विच | किसी भी एजेंट को 100ms से कम में समाप्त करें। सीमा उल्लंघन पर ऑटो-किल। |
| संसाधन सीमाएँ | समय, मेमोरी, अनुरोध गणना — कॉन्फ़िग पर नहीं, रनटाइम पर लागू। |
AgentBox से पहले AgentBox के बाद
───────────────── ──────────────
एजेंट → पूर्ण डिस्क ❌ एजेंट → केवल अनुमत पथ ✅
एजेंट → सभी नेटवर्क ❌ एजेंट → केवल अनुमत होस्ट ✅
एजेंट → कच्चे रहस्य ❌ एजेंट → स्कोप्ड टोकन ✅
कोई ऑडिट ट्रेल नहीं ❌ हर क्रिया लॉग ✅
कोई किल स्विच नहीं ❌ <100ms में किल ✅
स्किल्स रूट के रूप में चलती हैं ❌ कर्नेल-पृथक सैंडबॉक्स ✅
# इंस्टॉल करें
go install github.com/siyad01/agentbox/cmd/agentbox@latest
# चलाने से पहले एक मैनिफेस्ट सत्यापित करें
agentbox validate manifests/email-sorter.yaml
# एक एजेंट को सैंडबॉक्स में चलाएं
agentbox run --manifest manifests/email-sorter.yaml python agent.py
# एजेंट ने क्या किया देखें
agentbox audit --log logs/email-sorter-audit.log
# सत्यापित करें कि लॉग के साथ छेड़छाड़ नहीं हुई है
agentbox verify logs/email-sorter-audit.log
# रहस्य प्रबंधित करें
agentbox vault add ANTHROPIC_API_KEY
agentbox vault list
हर एजेंट घोषणा करता है कि उसे वास्तव में क्या चाहिए। सूचीबद्ध नहीं की गई कोई भी चीज़ सुलभ नहीं है।
name: "email-sorter"
version: "1.0.0"
description: "Reads inbox, categorizes emails, writes to sorted folder"
runtime: docker # or: gvisor (kernel-level), firecracker (MicroVM)
permissions:
filesystem:
read:
- "~/Documents/inbox"
write:
- "~/Documents/sorted"
deny: # ALWAYS blocked — even if in read list
- "~/.ssh"
- "~/.aws"
- "~/.config"
- "/etc"
network:
allow:
- "api.anthropic.com"
- "gmail.googleapis.com"
deny:
- "*" # block everything else
tools:
allow:
- "read_file"
- "write_file"
- "list_*"
deny:
- "execute_shell" # no shell access, ever
- "*_delete" # no deletion tools
credentials:
- ANTHROPIC_API_KEY # injected from vault at runtime
- GMAIL_TOKEN # agent never sees the raw value
limits:
max_tokens: 50000 # LLM token budget
max_duration: "30m" # killed after 30 minutes
max_memory_mb: 256 # RAM ceiling
max_requests: 500 # max tool invocations
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 │
│ Parses manifest → builds allow/deny lists │
│ Validates signatures → rejects unsigned skills │
│ Injects credentials from vault │
└──────────────────────┬──────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────┐
│ Isolation Layer │
│ │
│ Docker → container + seccomp + cap-drop │
│ gVisor → user-space kernel, syscall interception │
│ Firecracker → dedicated MicroVM kernel per agent │
│ │
│ Filesystem: only declared paths mounted │
│ Network: only declared hosts reachable │
│ Capabilities: ALL dropped, none added back │
└──────────────────────┬──────────────────────────────┘
│
┌────────────┼────────────┐
▼ ▼ ▼
Audit Logger Credential Resource
(hash-chain) Vault Monitor
every action AES-256-GCM auto-kill
logged scoped tokens on limit
हर दूसरा सैंडबॉक्स कंटेनर सीमा पर रुक जाता है। कर्नेल भेद्यता का शोषण करने वाला एजेंट भाग सकता है।
gVisor हर syscall को होस्ट कर्नेल तक पहुंचने से पहले इंटरसेप्ट करता है:
Agent tries: write("/home/user/.ssh/id_rsa")
│
▼
gVisor user-space kernel
│
Path in deny list? → YES
│
▼
EPERM returned immediately
Host kernel never sees this syscall
Prompt injection cannot cross this layer
agentbox <command> [options]
Commands:
run Run an agent in a sandbox
validate Validate a manifest file
kill Terminate a running agent
audit View agent audit logs
verify Verify audit log integrity
vault Manage encrypted credentials
serve Start the REST API server
version Show version
Examples:
agentbox validate manifests/email-sorter.yaml
agentbox run --manifest manifests/email-sorter.yaml python agent.py
agentbox kill agent-abc123
agentbox audit --log logs/email-sorter.log --deny
agentbox audit --log logs/email-sorter.log --last 1h
agentbox verify logs/email-sorter.log
agentbox vault add ANTHROPIC_API_KEY
agentbox vault list
agentbox vault delete OLD_KEY
agentbox serve :8081
agentbox serve से शुरू करें (डिफ़ॉल्ट: :8081)।
| Method | Endpoint | Description |
|---|---|---|
| GET | /health | Health check |
| GET | /dashboard | Web dashboard |
| GET | /api/agents | List all agents |
| POST | /api/agents | Start a new agent |
| DELETE | /api/agents/:id | Kill an agent |
| GET | /api/audit | Query audit log |
# List running agents
curl http://localhost:8081/api/agents
# Start an agent
curl -X POST http://localhost:8081/api/agents \
-H "Content-Type: application/json" \
-d '{"manifest":"manifests/email-sorter.yaml","command":["python","agent.py"]}'
# Kill an agent
curl -X DELETE http://localhost:8081/api/agents/abc123
# Query audit log
curl "http://localhost:8081/api/audit?deny=true&agent=email-sorter"
हर एजेंट क्रिया एक append-only, हैश-चेन्ड JSON Lines फ़ाइल में लॉग की जाती है:
{"id":1,"hash":"a3f2...","prev_hash":"genesis","timestamp":"2026-05-05T09:00:00Z","agent_id":"abc123","agent_name":"email-sorter","event_type":"agent_start","allowed":true,"resource":"manifests/email-sorter.yaml"}
{"id":2,"hash":"b7c1...","prev_hash":"a3f2...","timestamp":"2026-05-05T09:00:01Z","agent_id":"abc123","agent_name":"email-sorter","event_type":"filesystem_allow","allowed":true,"resource":"read:/home/user/Documents/inbox/mail.txt","rule":"filesystem.read: ~/Documents/inbox"}
{"id":3,"hash":"d9e4...","prev_hash":"b7c1...","timestamp":"2026-05-05T09:00:01Z","agent_id":"abc123","agent_name":"email-sorter","event_type":"filesystem_deny","allowed":false,"resource":"read:/home/user/.ssh/id_rsa","rule":"filesystem.deny: ~/.ssh","reason":"path is explicitly denied"}
छेड़छाड़ का पता लगाना:
agentbox verify logs/email-sorter-audit.log
✅ Audit log is intact
Entries: 47 (IDs 1–47)
Hash chain: unbroken
किसी भी प्रविष्टि में किसी भी वर्ण को बदलें और सत्यापन तुरंत विफल हो जाता है — श्रृंखला टूट जाती है।
# Store a secret (never logged, never in env plaintext)
agentbox vault add ANTHROPIC_API_KEY
# List stored credential names (values never shown)
agentbox vault list
# Verify a credential can be decrypted
agentbox vault test ANTHROPIC_API_KEY
# Rotate a credential
agentbox vault add ANTHROPIC_API_KEY # add updates existing
क्रेडेंशियल AES-256-GCM के साथ एन्क्रिप्ट किए जाते हैं। मास्टर कुंजी आपके वॉल्ट पासवर्ड से प्राप्त होती है — कभी भी डिस्क पर संग्रहीत नहीं होती। एजेंट स्टार्टअप पर, AgentBox क्रेडेंशियल को स्कोप्ड पर्यावरण चर के रूप में इंजेक्ट करता है। एजेंट सामान्य रूप से os.getenv("ANTHROPIC_API_KEY") कॉल करता है — यह कभी भी वॉल्ट को नहीं छूता।
AgentBox उन एजेंटों को मार देता है जो अपनी घोषित सीमाओं से अधिक हो जाते हैं:
# This agent is configured with max_duration: 5s
agentbox run --manifest manifests/timeout-test.yaml python long_running_agent.py
Agent started
tick 1
tick 2
tick 3
tick 4
tick 5
🛑 Killing agent timeout-test: duration limit exceeded: 5s
⚠️ Agent timeout-test exited code 137 in 5.2s
एग्ज़िट कोड 137 = SIGKILL। स्वच्छ शटडाउन, अंतिम ऑडिट प्रविष्टि लिखी जाती है।
# Clone
git clone https://github.com/siyad01/agentbox
cd agentbox
# Build
go build -o agentbox ./cmd/agentbox/
# Run tests (27 tests, all passing)
go test ./...
# Install globally
go install ./cmd/agentbox/
आवश्यकताएँ:
agentbox/
├── cmd/agentbox/main.go ← CLI entry point
├── internal/
│ ├── policy/
│ │ ├── manifest.go ← YAML manifest schema
│ │ ├── parser.go ← validation + defaults
│ │ └── engine.go ← deny-first decision engine (20 tests)
│ ├── audit/
│ │ ├── logger.go ← append-only SHA-256 hash-chained log
│ │ ├── verifier.go ← tamper detection
│ │ └── reader.go ← query + filter
│ ├── vault/
│ │ ├── store.go ← AES-256-GCM encrypted credential store
│ │ └── injector.go ← runtime injection (7 tests)
│ ├── sandbox/
│ │ ├── sandbox.go ← Sandbox interface
│ │ ├── docker.go ← Docker backend
│ │ ├── gvisor.go ← gVisor backend (kernel-level)
│ │ ├── manager.go ← agent lifecycle management
│ │ └── util.go ← WSL2 detection, path helpers
│ ├── monitor/
│ │ └── enforcer.go ← resource limits + auto-kill
│ └── api/
│ └── server.go ← REST API on :8081
└── manifests/
├── email-sorter.yaml ← production example
└── timeout-test.yaml ← limit enforcement example
डिफ़ॉल्ट रूप से पहले अस्वीकार करें। एजेंट शून्य अनुमतियों के साथ शुरू होते हैं। प्रत्येक क्षमता को स्पष्ट रूप से घोषित किया जाना चाहिए।
अस्वीकार सूची हमेशा जीतती है। भले ही कोई पथ पढ़ने की सूची और अस्वीकार सूची दोनों में दिखाई दे, अस्वीकार सूची प्राथमिकता लेती है। कोई अपवाद नहीं।
gVisor के साथ कर्नेल-स्तरीय प्रवर्तन। Seccomp फ़िल्टर और क्षमता ड्रॉपिंग syscall सीमा पर काम करते हैं। मॉडल आउटपुट — जो हमलावर-नियंत्रणीय है — उपयोगकर्ता स्थान में चलता है और कर्नेल-स्तरीय नीति को संशोधित नहीं कर सकता।
क्रेडेंशियल अलगाव। वॉल्ट मास्टर कुंजी कभी भी डिस्क पर संग्रहीत नहीं होती। क्रेडेंशियल सैंडबॉक्स स्टार्टअप पर अल्पकालिक स्कोप्ड टोकन के रूप में इंजेक्ट किए जाते हैं और बाहर निकलने पर छोड़ दिए जाते हैं। एजेंट प्रक्रिया से समझौता करने से क्रेडेंशियल वॉल्ट से समझौता नहीं होता।
अपरिवर्तनीय ऑडिट ट्रेल। SHA-256 हैश चेन का मतलब है कि पूर्वव्यापी लॉग संशोधन का पता लगाने योग्य है। किसी भी प्रविष्टि में कोई भी परिवर्तन उस बिंदु से आगे की श्रृंखला को तोड़ देता है।
भेद्यता रिपोर्टिंग के लिए SECURITY.md देखें।
| Feature | AgentBox | OpenClaw sandbox | Docker only | AccuKnox |
|---|---|---|---|---|
| Open source (Apache 2.0) | ✅ | ✅ | ✅ | ❌ |
| Self-hostable | ✅ | ✅ | ✅ | K8s only |
| gVisor / kernel isolation | ✅ | ❌ | ❌ | ✅ |
| Credential vault | ✅ | ❌ | ❌ | ✅ |
| Immutable audit log | ✅ | ❌ | ❌ | ✅ |
| Auto-kill on limit breach | ✅ | ❌ | ❌ | ✅ |
| Framework agnostic | ✅ | ❌ (OpenClaw only) | ✅ | ✅ |
| Single binary deploy | ✅ | ❌ | ✅ | ❌ |
CONTRIBUTING.md देखें।
Apache 2.0 — उपयोग, संशोधन और वितरण के लिए स्वतंत्र। LICENSE देखें।
Go के साथ निर्मित · मुख्य सुरक्षा सुविधाओं के लिए शून्य बाहरी निर्भरताएँ · एक कमांड में सेल्फ-होस्टेबल
यदि CVE-2026-25253 ने आपको चिंतित किया है, तो यह समाधान है। इसे एक ⭐ दें