Voltar às atualizações
New releaseJul 21, 2026

sandbox-runtime v0.0.66

Uma ferramenta leve de sandboxing para impor restrições de sistema de arquivos e rede em processos arbitrários no nível do SO, sem exigir um contêiner.

Compartilhar

Anthropic Sandbox Runtime (srt)

Uma ferramenta leve de sandboxing para impor restrições de sistema de arquivos e rede a processos arbitrários no nível do sistema operacional, sem exigir um contêiner.

srt usa primitivas nativas de sandboxing do sistema operacional (sandbox-exec no macOS, bubblewrap no Linux) e filtragem de rede baseada em proxy. Pode ser usado para colocar em sandbox o comportamento de agentes, servidores MCP locais, comandos bash e processos arbitrários.

Prévia de Pesquisa Beta

O Sandbox Runtime é uma prévia de pesquisa desenvolvida para o Claude Code para viabilizar agentes de IA mais seguros. Está sendo disponibilizado como uma prévia de código aberto inicial para ajudar o ecossistema mais amplo a construir sistemas agênticos mais seguros. Como esta é uma prévia de pesquisa inicial, as APIs e os formatos de configuração podem evoluir. Agradecemos feedback e contribuições para tornar os agentes de IA mais seguros por padrão!

Instalação```bash

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

## Uso Básico```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

Visão Geral

Este pacote fornece uma implementação de sandbox autônoma que pode ser usada tanto como ferramenta CLI quanto como biblioteca. Ele foi projetado com uma filosofia segura por padrão, adaptada para casos de uso comuns de desenvolvedores: os processos iniciam com acesso mínimo, e você abre explicitamente apenas os buracos que precisa.

Principais capacidades:

  • Restrições de rede: Controle quais hosts/domínios podem ser acessados via HTTP/HTTPS e outros protocolos
  • Restrições de sistema de arquivos: Controle quais arquivos/diretórios podem ser lidos/escritos
  • Restrições de socket Unix: Controle o acesso a sockets IPC locais
  • Monitoramento de violações: No macOS, acesse o armazenamento de logs de violação do sandbox do sistema para alertas em tempo real

Exemplo de Caso de Uso: Sandboxing de Servidores MCP

Um caso de uso importante é o sandboxing de servidores Model Context Protocol (MCP) para restringir suas capacidades. Por exemplo, para colocar o servidor MCP de sistema de arquivos em sandbox:

Sem sandboxing (.mcp.json):```json { "mcpServers": { "filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem"] } } }

**Com sandboxing** (`.mcp.json`):```json
{
  "mcpServers": {
    "filesystem": {
      "command": "srt",
      "args": ["npx", "-y", "@modelcontextprotocol/server-filesystem"]
    }
  }
}

Em seguida, configure as restrições em ~/.srt-settings.json:```json { "filesystem": { "denyRead": [], "allowWrite": ["."], "denyWrite": ["~/sensitive-folder"] }, "network": { "allowedDomains": [], "deniedDomains": [] } }

Agora o servidor MCP será bloqueado de escrever no caminho negado:```
> Write a file to ~/sensitive-folder
✗ Error: EPERM: operation not permitted, open '/Users/ollie/sensitive-folder/test.txt'

Como Funciona

O sandbox usa primitivas em nível de sistema operacional para impor restrições que se aplicam a toda a árvore de processos:

  • macOS: Usa sandbox-exec com perfis Seatbelt gerados dinamicamente
  • Linux: Usa bubblewrap para containerização com isolamento de namespace de rede
  • Windows: Executa o processo em sandbox sob uma conta de usuário local dedicada srt-sandbox, com uma cerca de saída do Windows Filtering Platform vinculada ao SID dessa conta e ACEs explícitas por sessão na árvore de trabalho

0d1c612947c798aef48e6ab4beb7e8544da9d41a-4096x2305

Modelo de Isolamento Duplo

Tanto o isolamento de sistema de arquivos quanto o de rede são necessários para um sandboxing eficaz. Sem isolamento de arquivos, um processo comprometido poderia exfiltrar chaves SSH ou outros arquivos sensíveis. Sem isolamento de rede, um processo poderia escapar do sandbox e obter acesso irrestrito à rede.

Isolamento de Sistema de Arquivos impõe restrições de leitura e escrita:

  • Leitura (padrão negar-então-permitir): Por padrão, o acesso de leitura é permitido em todos os lugares. Você pode negar regiões amplas (por exemplo, /Users) e então permitir novamente caminhos específicos dentro delas (por exemplo, .). allowRead tem precedência sobre denyRead — o oposto da escrita, onde denyWrite tem precedência sobre allowWrite. Uma entrada denyRead que é mais específica do que a região allowRead na qual ela se encontra (por exemplo, denyRead: ["**/.env"] ou ["./secrets"] com allowRead: ["."]) permanece negada.
  • Escrita (padrão apenas-permitir): Por padrão, o acesso de escrita é negado em todos os lugares. Você deve permitir explicitamente caminhos (por exemplo, ., /tmp). Uma lista de permissões vazia significa nenhum acesso de escrita.

Isolamento de Rede (padrão apenas-permitir): Por padrão, todo acesso à rede é negado. Você deve permitir domínios explicitamente. Uma lista allowedDomains vazia significa nenhum acesso à rede. O tráfego de rede é roteado através de servidores proxy em execução no host:

  • Linux: As requisições são roteadas via sistema de arquivos através de um socket de domínio Unix. O namespace de rede do processo em sandbox é removido completamente, então todo o tráfego de rede deve passar pelos proxies em execução no host (escutando em sockets Unix que são montados por bind no sandbox)

  • macOS: O perfil Seatbelt permite comunicação apenas para uma porta localhost específica. Os proxies escutam nessa porta, criando um canal controlado para todo o acesso à rede

  • Windows: Um conjunto de filtros WFP em toda a máquina bloqueia todas as conexões de saída originadas da conta srt-sandbox, exceto loopback para a faixa de portas do proxy. Os proxies escutam dentro dessa faixa, criando um canal controlado para todo o acesso à rede

Tanto HTTP/HTTPS (via proxy HTTP) quanto outro tráfego TCP (via proxy SOCKS5) são mediados por esses proxies, que impõem suas listas de permissões e negações de domínios.

Para mais detalhes sobre sandboxing no Claude Code, consulte:

Categorias