Назад к обновлениям
New releaseJul 21, 2026

sandbox-runtime v0.0.66

Легковесный инструмент для песочницы, обеспечивающий ограничения файловой системы и сети на произвольные процессы на уровне ОС, без необходимости в контейнере.

Поделиться

Anthropic Sandbox Runtime (srt)

Легковесный инструмент для создания песочницы, позволяющий применять ограничения файловой системы и сети к произвольным процессам на уровне ОС без необходимости использования контейнера.

srt использует нативные примитивы песочницы ОС (sandbox-exec в macOS, bubblewrap в Linux) и прокси-фильтрацию сети. Его можно использовать для изоляции поведения агентов, локальных MCP-серверов, bash-команд и произвольных процессов.

Бета-версия исследовательского превью

Sandbox Runtime — это исследовательское превью, разработанное для Claude Code с целью обеспечения безопасности AI-агентов. Оно предоставляется в качестве раннего превью с открытым исходным кодом, чтобы помочь более широкой экосистеме создавать более безопасные агентные системы. Поскольку это раннее исследовательское превью, API и форматы конфигурации могут меняться. Мы приветствуем отзывы и вклад, чтобы сделать AI-агентов безопасными по умолчанию!

Установка```bash

npm install -g @anthropic-ai/sandbox-runtime

## Базовое использование```bash
# Network restrictions
$ srt "curl anthropic.com"
Running: curl anthropic.com
<html>...</html>  # Request succeeds

$ srt "curl example.com"
Running: curl example.com
Connection blocked by network allowlist  # Request blocked

# Filesystem restrictions
$ srt "cat README.md"
Running: cat README.md
# Anthropic Sandb...  # Current directory access allowed

$ srt "cat ~/.ssh/id_rsa"
Running: cat ~/.ssh/id_rsa
cat: /Users/ollie/.ssh/id_rsa: Operation not permitted  # Specific file blocked

Обзор

Этот пакет предоставляет автономную реализацию песочницы, которую можно использовать как в качестве инструмента CLI, так и в качестве библиотеки. Он разработан с философией secure-by-default, ориентированной на типичные сценарии использования разработчиками: процессы запускаются с минимальным доступом, и вы явно открываете только те отверстия, которые вам нужны.

Ключевые возможности:

  • Сетевые ограничения: управление доступом к хостам/доменам через HTTP/HTTPS и другие протоколы
  • Ограничения файловой системы: управление доступом к файлам/каталогам для чтения/записи
  • Ограничения Unix-сокетов: управление доступом к локальным IPC-сокетам
  • Мониторинг нарушений: в macOS — доступ к системному хранилищу журнала нарушений песочницы для оповещений в реальном времени

Пример использования: изоляция серверов MCP

Ключевой сценарий — изоляция серверов Model Context Protocol (MCP) для ограничения их возможностей. Например, чтобы изолировать файловый сервер MCP:

Без песочницы (.mcp.json):```json { "mcpServers": { "filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem"] } } }

**С песочницей** (`.mcp.json`):```json
{
  "mcpServers": {
    "filesystem": {
      "command": "srt",
      "args": ["npx", "-y", "@modelcontextprotocol/server-filesystem"]
    }
  }
}

Затем настройте ограничения в ~/.srt-settings.json:```json { "filesystem": { "denyRead": [], "allowWrite": ["."], "denyWrite": ["~/sensitive-folder"] }, "network": { "allowedDomains": [], "deniedDomains": [] } }

Теперь MCP-серверу будет запрещена запись в запрещённый путь:```
> Write a file to ~/sensitive-folder
✗ Error: EPERM: operation not permitted, open '/Users/ollie/sensitive-folder/test.txt'

Как это работает

Песочница использует примитивы уровня ОС для применения ограничений, которые действуют на всё дерево процессов:

  • macOS: Использует sandbox-exec с динамически генерируемыми профилями Seatbelt
  • Linux: Использует bubblewrap для контейнеризации с изоляцией сетевого пространства имён
  • Windows: Запускает изолированный процесс под выделенной локальной учётной записью srt-sandbox, с Windows Filtering Platform для блокировки исходящего трафика, привязанной к SID этой учётной записи, и явными ACE для каждой сессии на рабочем дереве

0d1c612947c798aef48e6ab4beb7e8544da9d41a-4096x2305

Модель двойной изоляции

Для эффективной изоляции необходима как файловая, так и сетевая изоляция. Без файловой изоляции скомпрометированный процесс мог бы похитить SSH-ключи или другие конфиденциальные файлы. Без сетевой изоляции процесс мог бы вырваться из песочницы и получить неограниченный доступ к сети.

Файловая изоляция применяет ограничения на чтение и запись:

  • Чтение (шаблон «сначала запретить, затем разрешить»): По умолчанию доступ на чтение разрешён везде. Вы можете запретить широкие области (например, /Users), а затем снова разрешить конкретные пути внутри них (например, .). allowRead имеет приоритет над denyRead — в отличие от записи, где denyWrite имеет приоритет над allowWrite. Запись denyRead, которая более конкретна, чем область allowRead, в которую она попадает (например, denyRead: ["**/.env"] или ["./secrets"] при allowRead: ["."]), всё равно остаётся запрещённой.
  • Запись (шаблон «только разрешить»): По умолчанию доступ на запись запрещён везде. Вы должны явно разрешить пути (например, ., /tmp). Пустой список разрешений означает отсутствие доступа на запись.

Сетевая изоляция (шаблон «только разрешить»): По умолчанию весь сетевой доступ запрещён. Вы должны явно разрешить домены. Пустой список allowedDomains означает отсутствие сетевого доступа. Сетевой трафик маршрутизируется через прокси-серверы, работающие на хосте:

  • Linux: Запросы маршрутизируются через файловую систему по Unix-сокету. Сетевое пространство имён изолированного процесса полностью удаляется, поэтому весь сетевой трафик должен проходить через прокси, работающие на хосте (прослушивающие Unix-сокеты, которые примонтированы в песочницу)

  • macOS: Профиль Seatbelt разрешает связь только с определённым портом localhost. Прокси прослушивают этот порт, создавая контролируемый канал для всего сетевого доступа

  • Windows: Набор фильтров WFP на уровне всей машины блокирует все исходящие соединения, исходящие от учётной записи srt-sandbox, кроме loopback к диапазону портов прокси. Прокси прослушивают внутри этого диапазона, создавая контролируемый канал для всего сетевого доступа

Как HTTP/HTTPS (через HTTP-прокси), так и другой TCP-трафик (через SOCKS5-прокси) опосредуются этими прокси, которые применяют ваши списки разрешённых и запрещённых доменов.

Для получения дополнительной информации об изоляции в Claude Code см.:

Архитектура```

src/ ├── index.ts # Library exports ├── cli.ts # CLI entrypoint (srt command) ├── utils/ # Shared utilities │ ├── debug.ts # Debug logging │ ├── settings.ts # Settings reader (permissions + sandbox config) │ ├── platform.ts # Platform detection │ └── exec.ts # Command execution utilities └── sandbox/ # Sandbox implementation ├── sandbox-manager.ts # Main sandbox manager ├── sandbox-schemas.ts # Zod schemas for validation ├── sandbox-violation-store.ts # Violation tracking ├── sandbox-utils.ts # Shared sandbox utilities ├── http-proxy.ts # HTTP/HTTPS proxy for network filtering ├── socks-proxy.ts # SOCKS5 proxy for network filtering ├── linux-sandbox-utils.ts # Linux bubblewrap sandboxing ├── macos-sandbox-utils.ts # macOS sandbox-exec sandboxing └── windows-sandbox-utils.ts # Windows srt-win sandboxing

## Использование

### Как инструмент CLI

Категории