-
AI 코딩 에이전트를 완전한 시스템 권한으로 실행하되, 사용자의 홈 디렉터리 손상 위험을 차단하는 도구
-
Claude Code, Codex, Gemini CLI, OpenCode 등 주요 AI CLI가 사전 구성되어 ‘YOLO 모드’ 로 실행 가능
-
Docker 또는 Podman 컨테이너 안에서 프로젝트 디렉터리만 마운트하고, 홈 디렉터리는 기본적으로 제외
- 컨테이너 내부에서는 sudo 권한과 지속적 볼륨을 제공해 도구와 설정을 세션 간 유지
- 개발자가 AI 자동화 기능을 안전하게 실험할 수 있는 격리된 샌드박스 환경 제공
개요
-
Yolobox는 AI 코딩 에이전트를 컨테이너 내부에서 실행해, 시스템을 보호하면서도 완전한 실행 권한을 부여하는 도구
- AI가 명령 실행 중 실수로 rm -rf ~ 같은 파괴적 명령을 수행하더라도 홈 디렉터리가 영향을 받지 않음
- 프로젝트 디렉터리는 /workspace로 마운트되며, 홈 디렉터리는 기본적으로 마운트되지 않음
- 지속적 볼륨을 통해 도구와 설정이 세션 간 유지됨
주요 구성 및 기능
- 컨테이너 내부에서 AI 에이전트는 sudo 권한을 가지며 자유롭게 명령을 실행할 수 있음
- 기본 이미지에는 다음이 포함됨
-
AI CLI: Claude Code, Gemini CLI, OpenAI Codex, OpenCode (모두 자동 실행 모드로 설정)
-
개발 환경: Node.js 22, Python 3, make, cmake, gcc, Git, GitHub CLI
-
유틸리티: ripgrep, fd, fzf, jq, vim
- 필요 시 사용자가 직접 sudo로 추가 패키지를 설치 가능
실행 및 명령어
-
yolobox 명령으로 샌드박스 셸 진입
-
yolobox run 로 단일 명령 실행 가능
-
yolobox upgrade, yolobox config, yolobox reset --force, yolobox version 등의 관리 명령 제공
- 주요 플래그
-
--runtime: docker 또는 podman 선택
-
--no-network: 네트워크 비활성화
-
--readonly-project: 프로젝트를 읽기 전용으로 마운트
-
--claude-config: 호스트의 Claude 설정을 컨테이너로 복사
보안 모델
-
컨테이너 격리를 보안 경계로 사용
- 컨테이너는 리눅스 네임스페이스를 통해 파일시스템, 프로세스, 네트워크를 분리
- AI는 컨테이너 내부에서 root 권한을 가지지만, 외부 시스템에는 접근 불가
- 보호 대상
- 홈 디렉터리, SSH 키, 자격 증명, dotfiles, 다른 프로젝트, 호스트 시스템 파일
- 보호하지 않는 항목
- 프로젝트 디렉터리(기본적으로 읽기/쓰기 가능)
- 네트워크 접근(옵션으로 차단 가능)
- 커널 취약점이나 컨테이너 탈출 공격
보안 강화 단계
-
기본 모드: 표준 컨테이너 격리
-
2단계: --no-network --readonly-project 옵션으로 공격면 축소
-
3단계: Rootless Podman 사용으로 호스트 루트 권한 제거
- 컨테이너의 root가 호스트의 일반 사용자로 매핑되어 탈출 시 피해 최소화
-
4단계: VM 내 실행으로 커널 공유 제거
- macOS에서는 UTM, Parallels, Lima, Linux에서는 Podman machine 또는 전용 VM 사용
네트워크 격리
- Rootless Podman은 기본적으로 slirp4netns 네트워크를 사용해 호스트 네트워크와 분리
-
allow_host_loopback=false 설정으로 로컬 네트워크 접근 차단 가능
라이선스 및 기타
-
MIT 라이선스로 공개
- 저장소 언어 구성: Go 75.9%, Dockerfile 13.6%, Shell 8.7%, Makefile 1.8%
- 이름 ‘Yolobox’는 “YOLO(You Only Live Once)” 정신에서 유래, AI를 자유롭게 실행하되 안전하게 격리된 환경을 의미