Clawk: AI 코딩 에이전트를 위한 일회용 Linux VM
Clawk: AI 코딩 에이전트를 위한 일회용 Linux VM
Clawk는 AI 코딩 에이전트에게 전용 일회용 Linux 가상 머신(VM)을 제공하도록 설계된 도구로, 자율 에이전트를 호스트 노트북에서 직접 실행할 때 발생하는 위험을 제거합니다. 에이전트를 별도의 커널을 가진 독립된 머신에 격리함으로써, Clawk는 명시적으로 공유되지 않는 한 에이전트가 호스트의 파일 시스템, 키체인 또는 민감한 시스템 파일에 접근할 수 없도록 보장합니다.
주요 기능 및 역량
Clawk는 코딩 에이전트가 격리된 환경 내에서 패키지 설치, 서버 실행, 빌드 수행 등 완전한 자율성을 가지고 작동할 수 있도록 합니다.
격리 및 보안
- 하이퍼바이저 수준의 경계: 프로세스 수준의 샌드박스와 달리, Clawk는 별도의 Linux 커널을 사용합니다. 호스트 파일 시스템은 거부 규칙을 통해 숨겨지는 것이 아니라, 단순히 마운트되지 않습니다.
- 네트워크 허용 목록(Allow-listing): 모든 아웃바운드 트래픽은 기본적으로 차단됩니다. 각 샌드박스는 자체적인 DNS 인식 허용 목록을 가지고 있어, 에이전트가 승인된 서버(예: GitHub, npm, PyPI)에만 도달할 수 있도록 보장합니다.
- 비밀 정보 보호: SSH 키 및 기타 민감한 정보는 호스트에 유지됩니다. Clawk는
ssh-agent포워딩을 사용하여 실제 키가 VM에 들어가지 않고도 에이전트가git push작업을 수행할 수 있도록 합니다. - 일회용 라이프사이클: 에이전트가 VM을 손상시키거나 망가뜨린 경우,
clawk destroy && clawk를 사용하여 즉시 파괴하고 재생성할 수 있습니다. 이때 프로젝트 저장소와 에이전트 대화 기록은 호스트에 그대로 유지됩니다.
워크플로우 통합
- 원-커맨드 설정: 프로젝트 디렉토리 내에서
clawk를 실행하면 샌드박스가 부팅되고 에이전트(예: Claude Code 또는 Codex)가 자동으로 연결됩니다. - OCI 이미지 지원: 모든 OCI 이미지를 rootfs로 사용할 수 있어, 사용자는
clawk.mod설정 파일을 통해 프로젝트에 필요한 정확한 툴체인을 정의할 수 있습니다. - 티켓 모드(Ticket Mode): 여러 저장소를 가로지르는 작업의 경우, Clawk는 저장소당 하나의 git worktree를 가진 단일 샌드박스를 생성하여 여러 프로젝트의 변경 사항을 조정하고 상호 연결된 PR을 생성할 수 있습니다.
- 상태 지속성: 에이전트 대화 및 메모리는 호스트에 마운트되므로,
--resume플래그를 사용할 때 재생성된 VM은 이전 세션이 중단된 지점에서 정확히 다시 시작됩니다.
기술 아키텍처
Clawk는 VM 라이프사이클과 네트워킹을 관리하는 샌드박스별 데몬을 생성하여 작동합니다.
- 하이퍼바이저: macOS에서는 Apple의
Virtualization.framework를 활용하며, Linux에서는firecracker를 사용합니다(현재 실험적 단계). - 네트워킹: 데몬은 사용자 공간 TCP/IP 스택(
gvproxy)을 구현합니다. 이를 통해 네트워크 필터가 게스트 OS 아래에서 작동하므로, VM 내부의 root 사용자조차 방화벽을 재설정할 수 없습니다. - 디스크 관리: OCI 이미지는 풀(pull)되어 ext4 디스크로 평탄화됩니다. 공간을 절약하기 위해 Clawk는 copy-on-write 클론(macOS의 APFS
clonefile)을 사용하므로, 동일한 이미지에서 생성된 여러 샌드박스는 게스트의 쓰기 작업에 대한 추가 공간만 소비합니다. - 액세스: 게스트 내부에는
sshd나cloud-init이 없습니다. 액세스는 게스트 내부의 pty-agent로 연결되는 vsock 브리지를 통해 제공됩니다.
다른 샌드박싱 방법과의 비교
| 방법 | 격리 수준 | 설정 오버헤드 | 호스트 위험 |
|---|---|---|---|
| Local Process | 없음 | 낮음 | 높음 |
| Containers/Devcontainers | 공유 커널 | 낮음 | 중간 (커널 버그/소켓 마운트) |
| C-level Sandboxes | 프로세스 수준 | 낮음 | 중간 (정책 실수) |
| Clawk (VMs) | 별도 커널 | 중간 | 낮음 |
커뮤니티 인사이트 및 대안
개발자들 사이의 논의의는