Volver a actualizaciones
Nuevo releaseJul 23, 2026

sandbox-runtime v0.0.67

Una herramienta ligera de sandboxing para imponer restricciones de sistema de archivos y red en procesos arbitrarios a nivel del sistema operativo, sin requerir un contenedor.

Compartir

Anthropic Sandbox Runtime (srt)

Una herramienta ligera de sandboxing para aplicar restricciones de sistema de archivos y red a procesos arbitrarios a nivel del sistema operativo, sin necesidad de un contenedor.

srt utiliza primitivas nativas de sandboxing del sistema operativo (sandbox-exec en macOS, bubblewrap en Linux) y filtrado de red basado en proxy. Puede usarse para aplicar sandboxing al comportamiento de agentes, servidores MCP locales, comandos bash y procesos arbitrarios.

Vista previa de investigación Beta

El Sandbox Runtime es una vista previa de investigación desarrollada para Claude Code con el fin de habilitar agentes de IA más seguros. Se pone a disposición como una vista previa temprana de código abierto para ayudar al ecosistema en general a construir sistemas agénticos más seguros. Dado que se trata de una vista previa de investigación temprana, las APIs y los formatos de configuración pueden evolucionar. ¡Agradecemos los comentarios y las contribuciones para hacer que los agentes de IA sean más seguros por defecto!

Instalación```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

Descripción general

Este paquete proporciona una implementación de sandbox independiente que puede usarse tanto como herramienta CLI como biblioteca. Está diseñado con una filosofía segura por defecto adaptada a los casos de uso comunes de los desarrolladores: los procesos se inician con acceso mínimo, y tú abres explícitamente solo los agujeros que necesitas.

Capacidades clave:

  • Restricciones de red: Controla qué hosts/dominios pueden ser accedidos vía HTTP/HTTPS y otros protocolos
  • Restricciones del sistema de archivos: Controla qué archivos/directorios pueden ser leídos/escritos
  • Restricciones de sockets Unix: Controla el acceso a sockets IPC locales
  • Monitoreo de violaciones: En macOS, accede al almacén de registros de violaciones del sandbox del sistema para alertas en tiempo real

Caso de uso de ejemplo: Sandboxing de servidores MCP

Un caso de uso clave es el sandboxing de servidores Model Context Protocol (MCP) para restringir sus capacidades. Por ejemplo, para hacer sandbox del servidor MCP de sistema de archivos:

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

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

Luego configure las restricciones en ~/.srt-settings.json:```json { "filesystem": { "denyRead": [], "allowWrite": ["."], "denyWrite": ["~/sensitive-folder"] }, "network": { "allowedDomains": [], "deniedDomains": [] } }

Ahora el servidor MCP tendrá bloqueado el acceso de escritura a la ruta denegada:```
> Write a file to ~/sensitive-folder
✗ Error: EPERM: operation not permitted, open '/Users/ollie/sensitive-folder/test.txt'

Cómo funciona

El sandbox utiliza primitivas a nivel de sistema operativo para aplicar restricciones que se aplican a todo el árbol de procesos:

  • macOS: Utiliza sandbox-exec con perfiles Seatbelt generados dinámicamente
  • Linux: Utiliza bubblewrap para la contenedorización con aislamiento del espacio de nombres de red
  • Windows: Ejecuta el proceso en sandbox bajo una cuenta de usuario local dedicada srt-sandbox, con una barrera de egreso de Windows Filtering Platform vinculada al SID de esa cuenta y ACEs explícitos por sesión en el árbol de trabajo

0d1c612947c798aef48e6ab4beb7e8544da9d41a-4096x2305

Modelo de doble aislamiento

Tanto el aislamiento del sistema de archivos como el de red son necesarios para un sandboxing efectivo. Sin aislamiento de archivos, un proceso comprometido podría exfiltrar claves SSH u otros archivos sensibles. Sin aislamiento de red, un proceso podría escapar del sandbox y obtener acceso de red sin restricciones.

Aislamiento del sistema de archivos aplica restricciones de lectura y escritura:

  • Lectura (patrón denegar-luego-permitir): Por defecto, el acceso de lectura está permitido en todas partes. Puedes denegar regiones amplias (p. ej., /Users) y luego volver a permitir rutas específicas dentro de ellas (p. ej., .). allowRead tiene precedencia sobre denyRead — lo opuesto a la escritura, donde denyWrite tiene precedencia sobre allowWrite. Una entrada denyRead que es más específica que la región allowRead en la que se encuentra (p. ej. denyRead: ["**/.env"] o ["./secrets"] con allowRead: ["."]) permanece denegada.
  • Escritura (patrón solo-permitir): Por defecto, el acceso de escritura está denegado en todas partes. Debes permitir rutas explícitamente (p. ej., ., /tmp). Una lista de permisos vacía significa que no hay acceso de escritura.

Aislamiento de red (patrón solo-permitir): Por defecto, todo acceso de red está denegado. Debes permitir dominios explícitamente. Una lista allowedDomains vacía significa que no hay acceso de red. El tráfico de red se enruta a través de servidores proxy que se ejecutan en el host:

  • Linux: Las solicitudes se enrutan a través del sistema de archivos mediante un socket de dominio Unix. El espacio de nombres de red del proceso en sandbox se elimina por completo, por lo que todo el tráfico de red debe pasar por los proxies que se ejecutan en el host (escuchando en sockets Unix que se montan mediante bind en el sandbox)

  • macOS: El perfil Seatbelt permite la comunicación solo a un puerto específico de localhost. Los proxies escuchan en este puerto, creando un canal controlado para todo el acceso de red

  • Windows: Un conjunto de filtros WFP a nivel de máquina bloquea todas las conexiones salientes que se originan desde la cuenta srt-sandbox, excepto loopback al rango de puertos del proxy. Los proxies escuchan dentro de ese rango, creando un canal controlado para todo el acceso de red

Tanto HTTP/HTTPS (a través del proxy HTTP) como otro tráfico TCP (a través del proxy SOCKS5) son mediados por estos proxies, que aplican tus listas de dominios permitidos y denegados.

Para obtener más detalles sobre el sandboxing en Claude Code, consulta:

Categorías