Anthropic이 Sandbox Runtime을 직접 오픈소스로 공개하여, Docker를 사용하지 않고도 AI Agent의 파일 및 네트워크 권한을 명확하게 관리할 수 있게 되었습니다!
핵심 구현은 매우 견고합니다:
🔹 파일 시스템 격리 (File System Isolation)
macOS는 sandbox-exec와 Seatbelt를 사용하여 동적으로 샌드박스 정책을 생성하고, Linux는 bubblewrap, Namespace, Bind Mount를 활용하여 격리 환경을 구축합니다.
파일 권한은 allowWrite, denyWrite, denyRead 등을 통해 제어할 수 있습니다. 기본적으로 읽기는 허용하고 쓰기는 금지하며, 프로젝트 디렉터리에 대한 쓰기 권한만 개별적으로 열어줄 수 있고, 동시에 denyRead를 통해 SSH Key나 민감한 설정 파일에 접근하는 것을 차단할 수 있습니다.
🔹 네트워크 격리 (Network Isolation)
Linux는 Network Namespace를 통해 프로세스 네트워크를 격리하고, Unix Domain Socket과 socat을 이용하여 호스트 컴퓨터의 프록시에 연결합니다. macOS는 Seatbelt를 통해 네트워크 연결을 제한하여 지정된 로컬 프록시 포트만 접근하도록 허용합니다.
HTTP/HTTPS 트래픽은 HTTP Proxy를 거치고, 다른 TCP 트래픽은 SOCKS5 Proxy를 거칩니다. 이 프록시들이 도메인 화이트리스트와 블랙리스트를 통합적으로 실행합니다. 기본적으로 네트워크 접근이 거부되며, 명확하게 승인된 도메인만 연결할 수 있습니다.
🔹 프로세스 트리 레벨 격리 (Process Tree Level Isolation)
Agent 자체뿐만 아니라, Agent가 시작하는 Shell, Python, npm 등의 자식 프로세스 역시 샌드박스 제약을 받습니다. 따라서 단순히 자식 프로세스를 생성하여 권한 통제를 우회할 수 없습니다.
더 편리한 점은, 전체 기능을 CLI와 Node.js SDK로 패키징했다는 것입니다. 설치 및 설정 후, 단 하나의 srt 명령어로 제한된 프로그램을 실행할 수 있으며, MCP Server의 격리에도 직접 활용될 수 있습니다.
물론 샌드박스는 만능은 아니며, 구체적인 보안 효과는 여전히 구성과 하위 격리 메커니즘에 달려있습니다.
프로젝트 주소: https://t.co/YgfBYjX108