
Открытая песочница для ИИ-агентов — изоляция gVisor/Docker, хранилище учётных данных, неизменяемый журнал аудита. Создана после CVE-2026-25253.
Открытая песочница для ИИ-агентов
Запускайте ИИ-агентов с уверенностью. Каждый агент получает собственную область разрешений, хранилище учётных данных, журнал аудита и аварийный выключатель.
27 января 2026 года CVE-2026-25253 стал первым CVE, когда-либо присвоенным агентной ИИ-системе. Критическая уязвимость перехвата WebSocket в OpenClaw позволяла выполнить удалённый код в один клик на любом открытом экземпляре — включая те, что были привязаны только к localhost.
В ту же неделю кампания ClawHavoc внедрила 341+ вредоносный навык в маркетплейс OpenClaw. Каждый навык, установленный из ClawHub, работал с теми же правами, что и сам OpenClaw — полный доступ к диску, OAuth-токены, API-ключи. Без песочницы. Без журнала аудита. Без аварийного выключателя.
«Установка навыка из ClawHub предоставляет ему доступ к тем же ресурсам, что и самому OpenClaw. По умолчанию между навыками нет изоляции песочницы.» — Анализ безопасности DEV Community, апрель 2026
Цифры:
AgentBox — это структурное решение. Не заплатка, а среда выполнения.
Каждый запускаемый агент получает:
| Защита | Как это работает |
|---|---|
| Разрешения с нулевым доверием | Агенты объявляют ровно то, что им нужно. Всё остальное недоступно. |
| Изоляция на уровне ядра | gVisor перехватывает каждый системный вызов. Инъекция промптов не может пересечь эту границу. |
| Хранилище учётных данных | Шифрование AES-256-GCM. Агенты никогда не видят сырые секреты — только ограниченные токены. |
| Неизменяемый журнал аудита | Хеш-цепочка SHA-256. Каждое действие логируется. Защита от подделки. |
| Аварийный выключатель | Завершение любого агента менее чем за 100 мс. Автоубийство при нарушении лимитов. |
| Лимиты ресурсов | Время, память, количество запросов — применяются во время выполнения, а не в конфигурации. |
До AgentBox После AgentBox
───────────────── ──────────────
Агент → полный диск ❌ Агент → только разрешённые пути ✅
Агент → вся сеть ❌ Агент → только разрешённые хосты ✅
Агент → сырые секреты ❌ Агент → ограниченные токены ✅
Нет журнала аудита ❌ Каждое действие логируется ✅
Нет аварийного выключателя ❌ Завершение за <100 мс ✅
Навыки работают от root ❌ Песочница с изоляцией ядра ✅
# Установка
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: "Читает входящие, сортирует письма по категориям, записывает в отсортированную папку"
runtime: docker # или: gvisor (уровень ядра), firecracker (MicroVM)
permissions:
filesystem:
read:
- "~/Documents/inbox"
write:
- "~/Documents/sorted"
deny: # ВСЕГДА заблокировано — даже если есть в списке чтения
- "~/.ssh"
- "~/.aws"
- "~/.config"
- "/etc"
network:
allow:
- "api.anthropic.com"
- "gmail.googleapis.com"
deny:
- "*" # заблокировать всё остальное
tools:
allow:
- "read_file"
- "write_file"
- "list_*"
deny:
- "execute_shell" # никакого доступа к оболочке, никогда
- "*_delete" # никаких инструментов удаления
credentials:
- ANTHROPIC_API_KEY # внедряется из хранилища во время выполнения
- GMAIL_TOKEN # агент никогда не видит сырое значение
limits:
max_tokens: 50000 # бюджет токенов LLM
max_duration: "30m" # завершение через 30 минут
max_memory_mb: 256 # потолок ОЗУ
max_requests: 500 # максимум вызовов инструментов
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 │
│ Разбирает манифест → строит списки разрешений/запретов │
│ Проверяет подписи → отклоняет неподписанные навыки │
│ Внедряет учётные данные из хранилища │
└──────────────────────┬──────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────┐
│ Isolation Layer │
│ │
│ Docker → контейнер + seccomp + cap-drop │
│ gVisor → ядро в пользовательском пространстве, перехват системных вызовов │
│ Firecracker → выделенное ядро MicroVM для каждого агента │
│ │
│ Файловая система: только объявленные пути │
│ Сеть: только объявленные хосты доступны │
│ Возможности: ВСЕ отброшены, ничего не добавлено │
└──────────────────────┬──────────────────────────────┘
│
┌────────────┼────────────┐
▼ ▼ ▼
Audit Logger Credential Resource
(hash-chain) Vault Monitor
каждое действие AES-256-GCM автоубийство
логируется ограниченные при превышении
токены лимита
Все остальные песочницы останавливаются на границе контейнера. Агент, эксплуатирующий уязвимость ядра, может вырваться наружу.
gVisor перехватывает каждый системный вызов до того, как он достигнет ядра хоста:
Агент пытается: write("/home/user/.ssh/id_rsa")
│
▼
Ядро gVisor в пользовательском пространстве
│
Путь в списке запретов? → ДА
│
▼
EPERM возвращается немедленно
Ядро хоста никогда не видит этот системный вызов
Инъекция промптов не может пересечь этот слой
agentbox <command> [options]
Команды:
run Запустить агента в песочнице
validate Проверить файл манифеста
kill Завершить работающего агента
audit Просмотреть журналы аудита агента
verify Проверить целостность журнала аудита
vault Управлять зашифрованными учётными данными
serve Запустить сервер REST API
version Показать версию