anthropics/sandbox-runtime

A lightweight sandboxing tool for enforcing filesystem and network restrictions on arbitrary processes at the OS level, without requiring a container.

Anthropic 샌드박스 런타임(srt)

정의

  • Docker나 전체 컨테이너 없이도 엄격한 파일시스템 및 네트워크 제한으로 모든 명령어(또는 AI 에이전트 서버)를 실행할 수 있는 경량 OS 수준 샌드박스입니다.
  • Anthropic이 Claude Code를 위한 연구 미리보기로 제작하여 자율 에이전트를 더 안전하게 만듭니다.

AI에 중요한 이유

  • 현대 AI 에이전트는 종종 호스트 머신에서 코드를 실행합니다(예: 모델-컨텍스트-프로토콜 서버). 해당 코드가 손상되면 비밀 정보를 읽거나 인터넷에 접근할 수 있습니다. srt는 개발자가 이러한 프로세스를 간단히 잠글 수 있는 방법을 제공합니다.
  • 각 플랫폼의 네이티브 샌드박스 메커니즘을 사용하여 macOS, Linux, Windows에서 작동합니다.

주요 기능

  • 네트워크 허용/차단 목록 – 기본적으로 모든 아웃바운드 트래픽이 차단됩니다. 허용할 도메인을 명시적으로 나열해야 합니다.
  • 파일시스템 읽기/쓰기 제어 – 경로를 거부하지 않으면 모든 곳에서 읽기가 허용됩니다. 경로를 허용하지 않으면 모든 곳에서 쓰기가 거부됩니다. 세분화된 denyRead, allowRead, allowWrite, denyWrite 규칙을 제공합니다.
  • Unix 소켓 및 IPC 제한 – 로컬 소켓 접근도 차단할 수 있습니다.
  • 실시간 위반 모니터링 – macOS에서는 샌드박스 위반 로그를 활용하고, 모든 플랫폼에서 차단된 네트워크/파일 접근을 기록합니다.
  • 동적 재구성 – 실행 중인 샌드박스는 전용 파일 디스크립터(--control-fd)를 통해 새 JSON 구성을 수신할 수 있습니다.
  • 라이브러리 및 CLI – srt 명령을 직접 사용하거나 TypeScript 라이브러리(@anthropic-ai/sandbox-runtime)를 가져와 자체 도구에 샌드박싱을 내장할 수 있습니다.

내부 동작 방식

플랫폼 사용되는 프리미티브
macOS 생성된 Seatbelt 프로필과 함께 sandbox-exec 사용
Linux bubblewrap(bwrap) 및 커스텀 네트워크 네임스페이스, 호스트 측 HTTP/SOCKS5 프록시 사용
Windows 전용 로컬 사용자 계정(srt-sandbox) 및 Windows Filtering Platform(WFP) 규칙 사용

프록시가 모든 네트워크 트래픽을 중재하여 요청을 전달하기 전에 허용/거부 목록을 적용합니다. 파일시스템 규칙은 시작 시 샌드박스 프로필에 포함되므로 하위 프로세스가 우회할 수 없습니다.

일반적인 워크플로우

  1. 설정 파일 생성 (~/.srt-settings.json 또는 사용자 지정 경로) – 허용/거부할 도메인과 파일 경로를 설명합니다.
  2. CLI로 명령어 래핑:
    srt "curl https://example.com"
    
    명령은 샌드박스 내부에서 실행됩니다. 허용되지 않은 네트워크 또는 파일 접근은 차단되고 보고됩니다.
  3. (선택 사항) 라이브러리로 사용 – SandboxManager를 인스턴스화하고 wrapWithSandbox를 호출하여 명령 문자열을 얻은 다음 child_process.spawn으로 실행합니다.
  4. 위반 모니터링 – SandboxManager.getViolationsForCommand를 호출하거나 차단된 작업 요약으로 stderr에 주석을 다는 헬퍼를 사용합니다.

예시: MCP 서버 샌드박싱

// 샌드박싱 전 .mcp.json
{
  "mcpServers": { "filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem"] } }
}

명령을 srt로 바꾸고 민감한 폴더에 대한 쓰기를 거부하는 설정 파일을 추가합니다. 이제 서버가 해당 폴더에 쓰려고 하면 EPERM 오류가 발생합니다.

설치

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

(패키지에는 컴파일된 바이너리 srt와 TypeScript 라이브러리가 포함되어 있습니다.)

고급 기능

  • --control-fd – 실행 중인 샌드박스에 JSON 구성 업데이트를 파이프합니다. 각 줄은 검증 후 전체 구성을 대체합니다.
  • 명령별 네트워크 허용 목록 – 특정 명령 ID에 대한 임시 허용 목록을 등록합니다. 도구가 개인 레지스트리에 임시 접근이 필요할 때 유용합니다.
  • Ask 콜백 – 연결이 어떤 규칙과도 일치하지 않을 때 호출되는 함수를 제공합니다. 콜백은 사용자 지정 사유로 요청을 승인하거나 거부할 수 있습니다.

제한 사항 / 상태

  • 프로젝트는 베타 연구 미리보기 단계입니다. API 및 구성 형식은 변경될 수 있습니다.
  • Windows에서는 파일시스템 ACL 변경이 샌드박스 시작 시에만 적용됩니다. 이후 구성 업데이트로는 수정할 수 없습니다.
  • 기본 구성(설정 파일 없음)은 무제한 읽기, 쓰기 없음, 네트워크 접근 없음을 허용합니다.

더 알아보기


TL;DR: srt는 모든 프로세스를 네이티브 OS 샌드박스로 감싸는 크로스 플랫폼 CLI/라이브러리로, 파일 읽기/쓰기 및 네트워크 호스트 접근에 대한 세밀한 제어를 제공합니다. 전체 컨테이너 없이 AI 에이전트나 서버 구성 요소를 안전하게 실행하는 데 중요합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트