Назад к обновлениям
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 с целью обеспечения более безопасной работы ИИ-агентов. Оно публикуется как раннее превью с открытым исходным кодом, чтобы помочь более широкой экосистеме создавать более безопасные агентные системы. Поскольку это раннее исследовательское превью, API и форматы конфигурации могут меняться. Мы приветствуем отзывы и вклад, чтобы сделать ИИ-агентов безопасными по умолчанию!

Установка

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

Базовое использование

# 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, так и в качестве библиотеки. Он разработан с философией безопасности по умолчанию, адаптированной под типичные сценарии использования разработчиками: процессы запускаются с минимальным доступом, и вы явно открываете только те «дыры», которые вам нужны.

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

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

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

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

Без песочницы (.mcp.json):

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem"]
    }
  }
}

С песочницей (.mcp.json):

{
  "mcpServers": {
    "filesystem": {
      "command": "srt",
      "args": ["npx", "-y", "@modelcontextprotocol/server-filesystem"]
    }
  }
}

Затем настройте ограничения в ~/.srt-settings.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 egress fence, привязанным к SID этой учётной записи, токеном с ограничением записи и явными ACE на рабочем дереве

0d1c612947c798aef48e6ab4beb7e8544da9d41a-4096x2305

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

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

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

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

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

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

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

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

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

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

Архитектура

Категории