2P by xguru 3시간전 | ★ favorite | 댓글과 토론
  • Codex의 샌드박스 런타임을 독립 도구로 추출, 임의의 명령어에 파일·네트워크·자격증명 제어를 적용할 수 있는 경량 프로세스 격리 도구
  • AI가 생성한 코드를 그대로 실행해도 파일 손상·데이터 유출 걱정 없음
  • 기본 정책이 deny-by-default로 설정되어, 명시적으로 허용하지 않은 쓰기·네트워크·환경변수 접근은 모두 차단
  • API 키를 코드에 노출하지 않고 외부 API 호출 가능 : 자격증명 주입(Credential Injection) 기능으로 샌드박스 내부 프로세스는 플레이스홀더만 보고, 실제 API 키는 네트워크 프록시
  • 단일 바이너리로 curl ... | sh 또는 npm install -g zerobox 로 설치 끝, 컨테이너 이미지 빌드나 VM 부팅 대기 필요없음
  • npm install 실수로 뭐가 바뀌었는지 추적·되돌리기 바로 가능: zerobox --restore --allow-write=. -- npm install 실행하면 끝나고 자동 복구, --snapshot으로 기록만 해두고 나중에 zerobox snapshot diff <id>로 변경점 확인 후 restore로 롤백 가능
  • LLM 도구 호출마다 권한 분리 가능: 읽기 전용 샌드박스, 쓰기 전용 샌드박스, 특정 도메인만 허용하는 샌드박스를 각각 만들어서 에이전트의 각 tool call을 다른 권한으로 실행 → 프롬프트 인젝션으로 rm -rf 날려도 쓰기 권한 없는 샌드박스면 무시
  • 빌드/테스트에서 의도치 않은 외부 네트워크 호출 자동 차단: zerobox --allow-write=/tmp -- npm test로 테스트 돌리면 코드가 몰래 외부 API 호출 순간 실패, 공급망 공격이나 사이드 이펙트 조기 발견
  • 민감 디렉토리 차단 규칙 수동 작성 필요 없음: 기본 프로필이 ~/.ssh, ~/.aws 같은 경로를 자동 deny 처리, 별도 설정 없이도 기본 안전장치 확보
  • 환경변수 오염 걱정 없음 : 기본적으로 PATH, HOME 등 필수만 전달되므로 AWS_SECRET_ACCESS_KEY 같은 것이 자식 프로세스로 새어 나가지 않음, 필요한 것만 --allow-env=DATABASE_URL 식으로 화이트리스트
  • Rust SDKTypeScript SDK를 모두 지원하며, CLI 단일 바이너리로 Docker나 VM 없이 약 10ms의 오버헤드로 실행 가능
  • AI 에이전트가 생성한 코드 실행, LLM 도구 호출 격리, 빌드 스크립트 보호 등 AI 워크플로우 보안에 특히 유용한 도구
  • 플랫폼 지원 및 기술 정보
    • macOS: Seatbelt(sandbox-exec) 기반으로 완전 지원
    • Linux: Bubblewrap + Seccomp + Namespaces 기반으로 완전 지원
    • Windows: Restricted Tokens + ACLs + Firewall 기반 지원 계획 중
    • --strict-sandbox 옵션으로 bubblewrap이 없는 환경(예: Docker 내부)에서 약한 격리로 폴백하는 대신 실행을 중단하도록 강제 가능
  • Apache-2.0 라이선스 / Rust + TypeScript