Автономный кодинг-агент может читать ваши файлы, запускать команды в терминале и подключаться к сети. 26 августа 2026 года Johann Rehberger показал, что агент в auto mode можно заставить выполнить произвольный код с вероятностью до 80% — а модуль безопасности сам блокировал попытку агента исправить ситуацию (embracethered.com). Simon Willison подвёл итог коротко:
«Run unattended coding agents in a container, VM or OS sandbox. Restrict network egress. Monitor your agents. Do not expose home directories, SSH keys, cloud credentials, … to the agent runtime.»
«Запускайте автономных кодинг-агентов в контейнере, виртуальной машине или песочнице ОС. Ограничивайте сетевой выход. Следите за агентами. Не открывайте домашние каталоги, SSH-ключи, облачные credential’ы … среде выполнения агента.»
— Simon Willison, simonwillison.net (27.08.2026)
В этой статье — практический гайд по уровням изоляции: что ограничивать, какие песочницы доступны, как настроить минимальную защиту для Claude Code, Codex и OpenCode.
Что изолировать и зачем
Кодинг-агент — это программа, которая выполняет произвольные команды. Без изоляции она имеет доступ ко всему, что видит ваш пользователь:
| Ресурс | Риск при отсутствии изоляции |
|---|---|
| Файловая система | Чтение SSH-ключей, credential’ов, .env-файлов, .gitconfig |
| Сеть (egress) | Отправка данных на внешний сервер, скачивание вредоносного кода |
| CPU / RAM | Бесконечный цикл while True, исчерпание памяти |
| Процессы | Запуск дочерних процессов за пределами песочницы |
| Git | Внедрение вредоносных коммитов в репозиторий |
| MCP-серверы | Перехват вызовов инструментов, несанкционированные действия |
Песочница ограничивает один или несколько из этих ресурсов так, что даже если агент будет скомпрометирован через prompt injection или враждебный код в репозитории, ущерб будет локализован.
Уровни изоляции: от настроек до отдельного ядра
Существует несколько подходов, и они образуют нарастающую лестницу. Чем выше уровень — тем сложнее настройка, но тем надёжнее защита.

Уровень 1: Разрешения модели и флаги CLI
Минимальная защита — не разрешать агенту выполнять опасные действия на уровне модели.
Claude Code --restricted (v2.1.248, 27.08.2026): убирает встроенные инструменты для выполнения команд и кода, а также WebFetch. Файловые инструменты работают только в пределах рабочей директории. Флаг bypassPermissions блокируется. Файлы настроек пользователя, проекта и локальные игнорируются (changelog).
claude --restricted
Codex CLI: флаг --full-auto включает автономный режим, но без внешней песочницы агент всё равно имеет доступ к файловой системе и сети.
OpenCode: работает в TUI-режиме, каждая команда запрашивает подтверждение по умолчанию.
Этот уровень защищает от случайных ошибок, но не от целенаправленных атак. Классификатор auto mode в Claude Code блокировал cleanup-команду агента, который обнаружил компрометацию (Rehberger):
«The safety mechanism itself can become part of the failure.»
«Механизм безопасности сам становится частью проблемы.»
Уровень 2: Встроенная песочница Claude Code (Seatbelt / Bubblewrap)
Claude Code включает песочницу Bash-команд на уровне операционной системы. В macOS используется фреймворк Seatbelt, на Linux и WSL2 — Bubblewrap (docs.claude.com).

Что ограничивает:
— Файловая система: по умолчанию доступна только рабочая директория и /tmp
— Сеть: фильтрация по доменам (первый запрос к новому домену требует подтверждения)
— Каждая Bash-команда и дочерние процессы изолированы
Что НЕ ограничивает: встроенные файловые инструменты (Read, Edit, Write), MCP-серверы, хуки — они работают на хосте.
Запуск:
/sandbox
Команда открывает панель песочницы с выбором режима: auto-allow (команды в песочнице одобряются автоматически) или regular permissions (с подтверждением).
Для более широкой изоляции Claude Code предлагает sandbox runtime (@anthropic-ai/sandbox-runtime) — оборачивает весь процесс Claude Code, включая файловые инструменты, MCP и хуки, в одну границу. Это beta-релиз (docs.claude.com):
npx @anthropic-ai/sandbox-runtime claude
Уровень 3: Docker-контейнеры и Docker Sandboxes
Контейнер изолирует весь стек: файловую систему, сеть, процессы. Классический подход для автономных агентов.
Обычный Docker-контейнер:
docker run --rm -it \
--network=none \
--read-only \
--cap-drop=ALL \
--security-opt=no-new-privileges \
--cpus=2 --memory=4g \
-v $(pwd):/workspace \
claude-code-image
Ключевые флаги:
— --network=none — полная изоляция сети (или --network=bridge с iptables-правилами для допуска API)
— --read-only — файловая система доступна только по mount-точкам
— --cap-drop=ALL — отбрасываются Linux- capabilities
— --security-opt=no-new-privileges — запрет повышения привилегий
— --cpus, --memory — ограничения ресурсов
Docker Sandboxes (от Docker Inc., docs.docker.com) — бесплатный продукт, использующий microVM вместо контейнеров. Не требует Docker Desktop. Команда sbx создаёт изолированную среду с собственным Docker-демоном. Micah Lee описал полную схему настройки (micahflee.com):
- Отдельный ключ подписи коммитов (agent-only signing key)
- Ограниченный GitHub PAT с доступом к одному репозиторию
- Изолированный SSH-агент, передающий только ключ для подписи
- Агент работает в
sbx-песочнице, коммиты подписаны и помечены(agent)в имени автора
Уровень 4: Виртуальные машины
VM дают полную изоляцию на уровне ядра: свой kernel, свои процесс, своя сеть. Это самый надёжный уровень, но и самый тяжёлый.
Типовые варианты:
| Технология | Cold start | Warm exec | Изоляция | Подходит для |
|---|---|---|---|---|
| QEMU/KVM | 5–30 с | 10–50 мс | Ядро + гипервизор | Серверы, CI/CD |
| VirtualBox | 10–45 с | 20–80 мс | Ядро + гипервизор | Локальная разработка |
| Firecracker (microVM) | 0.125–1 с | <10 мс | Ядро + hardware isolation | Serverless, высокая нагрузка |
| smolvm | 0.6–1.5 с | ~50 мс | Ядро + hardware isolation | Быстрый запуск ненадёжного кода |
smolvm — hardware-isolated VM для запуска ненадёжного Python и JavaScript. Simon Willison протестировал smolvm 1.8.3: offline-образы, ограничения CPU/RAM, read-only mount входных данных, writable mount для выходных, guest-enforced timeouts (simonwillison.net). Подробный разбор — в отдельном кейсе про smolvm.
Docker Sandboxes (microVM от Docker) — промежуточный вариант между контейнером и полноценной VM: собственное ядро, но с workspace sync и удобным CLI (docs.claude.com).
Уровень 5: Claude Code на вебе
Claude Code на вебе (claude.ai/code) запускает каждую сессию в управляемой Anthropic виртуальной машине. Сетевой прокси фильтрует исходящий трафик, GitHub-токен хранится за пределами песочницы (docs.claude.com). Не требует локальной инфраструктуры, но требует подписку Claude.
Сравнение подходов
| Подход | Что изолирует | Нужен Docker | Простота настройки | Уровень защиты |
|---|---|---|---|---|
Флаги модели (--restricted) |
Инструменты модели | Нет | Минимальный | Низкий |
| Встроенная песочница Claude Code | Bash-команды | Нет | Низкая | Средний |
| Sandbox runtime | Весь процесс Claude Code | Нет | Низкая | Средний–высокий |
| Dev Container | Полная среда разработки | Да | Средняя | Высокий |
| Docker-контейнер (кастомный) | Полная среда разработки | Да | Средняя–высокая | Высокий |
| Docker Sandboxes (microVM) | Ядро + среда | Нет (standalone) | Средняя | Очень высокий |
| Полноценная VM (QEMU/KVM) | Ядро ОС | Нет | Высокая | Максимальный |
| Claude Code на вебе | Ядро ОС (управляемый) | Нет | Нулевая | Высокий |
Что ограничивать: чек-лист настройки песочницы

Независимо от выбранного уровня, вот что нужно настроить:
Файловая система
- Не монтировать домашний каталог агенту — только проект
- Запретить запись в
.git/hooks,.git/config,.claude/,.mcp.json(sandbox runtime делает это по умолчанию) - Использовать read-only mount для входных данных, writable — только для вывода
Сеть
- Блокировать egress по умолчанию (
--network=noneв Docker) - Разрешить только
api.anthropic.com(или другой API-эндпоинт) и необходимый минимум - Не разрешать широкие домены (например,
github.com— через прокси с TLS-termination) - Рассмотреть egress-фильтрацию через iptables для контейнеров
CPU и RAM
--cpus=2 --memory=4g— разумные лимиты для кодинг-агента- Внутри VM: настроить CPU/RAM limits через гипервизор
- smolvm: guest-enforced timeouts предотвращают
while True
Процессы
--cap-drop=ALL+--security-opt=no-new-privileges- В VM: PID namespaces, ограничение числа процессов
- Запрет запуска Docker-сокета изнутри песочницы
Git
- Отдельный ключ подписи коммитов (по схеме Micah Lee)
- Ограниченный GitHub PAT с доступом к одному репозиторию
- В имени автора коммита — пометка
(agent)
Минимальные песочницы для каждого агента
Claude Code
Быстрый старт (встроенная песочница):
# Включить песочницу для всех проектов
# ~/.claude/settings.json:
{ "sandbox": { "enabled": true, "failIfUnavailable": true } }
# Или точечно:
/sandbox
# Выбрать auto-allow
Для автономной работы (sandbox runtime):
# Настройка (~/.srt-settings.json):
{
"filesystem": {
"allowWrite": ["/Users/you/project"],
"denyWrite": [".git/hooks", ".git/config", ".claude", ".mcp.json"]
},
"network": {
"allowedDomains": ["api.anthropic.com"]
}
}
# Запуск:
npx @anthropic-ai/sandbox-runtime claude
Для максимальной изоляции (--dangerously-skip-permissions + контейнер):
docker run --rm -it \
--network=none \
--read-only \
--cap-drop=ALL \
--cpus=2 --memory=4g \
-v $(pwd):/workspace \
-w /workspace \
claude-code-image \
claude -p "описание задачи" --dangerously-skip-permissions
На macOS запуск от root с этим флагом запрещён — нужен контейнер как внешняя граница.
Codex CLI
Codex поддерживает --full-auto для автономной работы. Для изоляции:
# Запуск в Docker
docker run --rm -it \
--network=none \
-v $(pwd):/workspace \
-w /workspace \
codex-image \
codex --full-auto "описание задачи"
OpenCode
OpenCode работает в режиме TUI с запросом подтверждения каждой команды. Для изоляции используйте dev container или Docker:
docker run --rm -it \
--network=none \
-v $(pwd):/workspace \
-w /workspace \
opencode-image \
opencode
Выбор подхода: чек-лист
Ответьте на вопросы и найдите свой уровень:
- Агент работает на вашей машине или на сервере?
- На вашей → встроенная песочница Claude Code или sandbox runtime (уровень 2–3)
-
На сервере → Docker/dev container или VM (уровень 3–4)
-
Вы запускаете агента автономно (без присмотра)?
- Да → обязательна внешняя изоляция (контейнер/VM/runtime)
-
Нет → встроенная песочница достаточна
-
Какой уровень доверия к коду в репозитории?
- Свой код, проверенный → встроенная песочница
- Чужой код или зависимости → Docker/VM
-
Полностью ненадёжный → VM с
--network=none -
Нужна ли сеть агенту?
- Только API-запросы → разрешить
api.anthropic.comчерез прокси - Нет сети →
--network=none -
Широкий доступ → egress-фильтрация с white list
-
Сколько ресурсов вы готовы выделить?
- Минимум → встроенная песочница
- Средне (2–4 CPU, 4–8 GB RAM) → Docker-контейнер
- Много (своя среда) → dev container или VM
Российские реалии
При настройке песочницы для агента в России есть особенности.
Docker в России
Docker Engine (Apache 2.0) доступен бесплатно и без ограничений. Docker Hub периодически блокирует российские IP-адреса (май 2024, начало 2026) — для скачивания образов используйте зеркала:
cr.yandex/mirror— Яндекс Container Registrydockerhub.timeweb.cloud— зеркало TimeWebregistry.sel.cloud— Selectel Container Registrydockerhub1.beget.com— зеркало Beget
Документация по обходу: tproger.ru.
Docker Desktop для организаций с выручкой >$10M требует лицензии (docker.com/pricing). Для личного использования и малого бизнеса — бесплатно, но продажи в Россию прекращены. Альтернативы: Rancher Desktop (rancherdesktop.io), Podman (podman.io). Отдельная RU-инструкция по замене Docker Desktop в рунете встречается редко и быстро устаревает — проверяйте актуальность на момент публикации.
Claude Code из России
Anthropic не включает Россию в список поддерживаемых стран. Оплата российскими картами (Visa/Mastercard/Mir/UnionPay) не работает — Stripe фильтрует транзакции по BIN-коду.
Рабочие варианты:
— Виртуальные зарубежные карты (Плати по миру, Exnode)
— Прокси-сервисы: МТС Оплата продаёт подписку Claude AI с оплатой через СБП (payment.mts.ru)
— Карты банков соседних стран (Казахстан, Кыргызстан, Турция)
Виртуальные машины и изоляция
QEMU/KVM, VirtualBox — полностью доступны, открытый исходный код, без ограничений. На российских VPS-провайдерах (TimeWeb, Selectel, reg.ru) KVM-ускорение доступно по умолчанию. RED OS и Astra Linux документируют настройку виртуализации (redos.red-soft.ru).
Рунет: опыт изоляции агентов
Тема песочниц для ИИ-агентов в русскоязычном сегменте освещена:
- Серия статей про LLM-песочницы с Docker: habr.com (часть 2, практика), habr.com (часть 1, теория)
- Опыт использования Claude в dev containers: dtf.ru
- Корпоративная песочница от MTS: habr.com
Честные ограничения
Песочницы — необходимый слой защиты, но не панацея.
Встроенная песочница Claude Code изолирует только Bash-команды. Файловые инструменты, MCP-серверы и хуки работают за пределами песочницы. Если агент может читать файлы — он может передать их содержимое через Bash-команду в разрешённый домен.
Docker-контейнер не изолирует ядро ОС. Утечки ядра (container escape) теоретически возможны при неправильной настройке capabilities. Используйте --cap-drop=ALL и --security-opt=no-new-privileges.
Сетевой фильтр по умолчанию не inspect TLS. Код внутри песочницы может использовать domain fronting для обхода white list. Если критична конфиденциальность — настройте прокси с TLS termination.
Песочница не влияет на отправляемые данные. Промпты и файлы, которые читает Claude Code, передаются в API Anthropic — с песочницей или без неё (docs.claude.com).
Команды outside sandbox. В Claude Code команды, которые не могут работать в песочнице (например, docker или требующие доступа к macOS-приложениям через Apple Events), запускаются за её пределами. Такие команды помечаются «Bash command (unsandboxed)».
Вывод
Изоляция кодинг-агента — не опциональная мера, а необходимый минимум при автономной работе. Rehberger показал, что даже классификатор безопасности может блокировать попытку агента исправить компрометацию. Simon Willison повторяет: контейнер, VM или песочница ОС — это не «если хочется», а «всегда».
Начните с малого — включите встроенную песочницу Claude Code (/sandbox). Для автономных прогонов добавьте sandbox runtime или Docker-контейнер с --network=none. Для ненадёжного кода — VM.
Ссылки и источники
- Johann Rehberger — Breaking Claude Code Opus 5 Auto Mode (26.08.2026)
- Simon Willison — breaking-claude-code-opus-5-auto-mode (27.08.2026)
- Simon Willison — smolmachines / smolvm (19.08.2026)
- Micah Lee — Sandboxing coding agents (28.08.2026)
- Claude Code Docs — Configure the sandboxed Bash tool
- Claude Code Docs — Choose a sandbox environment
- Claude Code Docs — Permission modes
- Claude Code Docs — Changelog (2.1.248,
--restricted) - Docker Sandboxes — docs.docker.com
- smolmachines — github.com
Перелинковка:
