본문으로 건너뛰기
메뉴
나에게 필요할까?에이전트가 내 컴퓨터에서 닿을 수 있는 것작동 방식에이전트와 시스템 사이에 놓이는 계층비교내장 샌드박스, Docker, VM설정작업에 필요한 것만 열기보안위협 모델과 한계설치

AI 코딩 에이전트를 가두는 감옥

에이전트는 내 사용자 계정으로 실행되므로 내가 읽을 수 있는 것은 전부 읽을 수 있습니다. ai-jail은 에이전트를 OS 샌드박스 안에서 시작합니다. 프로젝트에는 쓸 수 있지만 키와 토큰, 홈 디렉터리는 그 안에 없습니다.

terminal
cd ~/Projects/my-appai-jail claude
회로 패턴으로 그린 자물쇠. 자물쇠 창의 창살 뒤에서 빛나는 마이크로칩이 에이전트입니다.
  1. 에이전트는 내 계정으로 실행됩니다

    코딩 에이전트는 내 사용자 계정으로 도는 프로그램입니다. 에이전트는 물론이고 에이전트가 띄우는 스크립트, 패키지, MCP 서버까지 내가 열 수 있는 것은 모두 열 수 있습니다.

  2. ai-jail을 거쳐 시작하세요

    명령 앞에 ai-jail을 붙입니다. 에이전트는 자기만의 네임스페이스에서 시작되고, 프로젝트는 원래와 같은 경로에 마운트됩니다.

  3. 홈 디렉터리는 마운트되지 않습니다

    에이전트는 새로 만든 빈 홈 디렉터리를 받습니다. SSH 키, 클라우드 자격 증명, 브라우저 프로필, 다른 프로젝트는 그 안에 아예 없습니다.

  4. 시크릿, 네트워크, 장치는 꺼져 있습니다

    환경 변수는 허용 목록에 있는 것만 남기므로 셸에 있던 토큰은 셸 밖으로 나가지 않습니다. 네트워크, Docker 소켓, 화면, 클립보드도 모두 꺼져 있습니다.

  5. 작업에 필요한 것만 여세요

    클라우드 에이전트에는 네트워크와 에이전트 자신의 로그인이 필요하니 이 두 가지를 켭니다. 나머지는 요청하기 전까지 닫혀 있습니다.

하네스 전체를 둘러싸는 벽

샌드박스를 내장한 에이전트는 모델이 실행하는 명령에만 샌드박스를 씌웁니다. 에이전트 프로세스와 파일 도구, MCP 서버, 훅은 바깥에 남아 내 계정으로 돕니다. ai-jail은 이 모두를 안에서 시작합니다.

패널 두 개. 왼쪽에서는 내장 샌드박스가 셸 명령만 감싸고, 에이전트와 MCP 서버, 훅은 바깥에서 홈 디렉터리 옆에 있습니다. 오른쪽에서는 ai-jail이 에이전트, MCP 서버, 훅, 셸 명령을 한꺼번에 감싸고, 홈 디렉터리는 벽 바깥에 있습니다.
정책은 한 번만 작성하면 쓰는 에이전트 모두에 적용됩니다.
전체 비교 보기

설정 없이 기본으로 적용되는 것

모든 기능은 직접 켜기 전까지 꺼져 있습니다. 프로젝트 바깥에 쓴 내용은 메모리에만 남고 세션이 끝나면 사라집니다.

감옥 안

  • 프로젝트 디렉터리. 읽기·쓰기, 실제 경로 그대로
  • /usr에 있는 시스템 툴체인. 읽기 전용
  • 새 홈 디렉터리와 전용 /tmp

닿을 수 없음

  • ~/.ssh, ~/.aws, ~/.gnupg, 브라우저 프로필
  • 셸 환경에 있는 토큰과 API 키
  • 다른 프로세스, 호스트 IPC, ptracebpf 같은 커널 인터페이스

요청하기 전까지 꺼짐

  • --network
  • --agent-state, 에이전트 자신의 로그인
  • --ssh, --gpu, --display, --docker
모든 스위치 보기

여러 겹의 커널 계층, 작은 바이너리 하나

Linux에서는 bubblewrap이 네임스페이스와 마운트를 구성하고, Landlock이 파일시스템 규칙을 커널 안에서 한 번 더 적용하며, seccomp가 위험한 시스템 콜을 막고, 리소스 제한이 폭주하는 프로세스를 멈춥니다. macOS에서는 같은 정책이 sandbox-exec 프로파일로 바뀝니다.

데몬도 root도 없음

ai-jail은 Rust로 만든 바이너리 하나입니다. 에이전트를 시작하고 에이전트가 끝나면 함께 종료됩니다. 백그라운드에 남는 것이 없고 sudo를 입력할 일도 없습니다.

이미지 대신 내 툴체인

에이전트는 내 컴퓨터에 이미 설치된 컴파일러와 런타임을 씁니다. 빌드하거나 최신으로 관리해야 할 컨테이너 이미지가 없습니다.

저장소는 샌드박스를 느슨하게 할 수 없음

프로젝트 안의 .ai-jail 파일은 샌드박스를 더 조일 수만 있고 열 수는 없습니다. 열 수 있는 것은 내 전역 설정 파일과 내가 넘긴 플래그뿐입니다.

계층별 작동 방식

가장 먼저 나오는 질문

에이전트가 느려지나요?
아니요. 샌드박스는 커널 기능과 네임스페이스, 마운트 규칙으로 만들어집니다. 에뮬레이션도 가상 머신도 없어서 에이전트는 네이티브 속도로 실행됩니다.
어떤 에이전트를 지원하나요?
어떤 명령이든 됩니다. Claude Code, Codex, Gemini CLI, OpenCode, Crush, Grok, Kimi, pi, jcode, SoulForge용 프리셋이 있고, ai-jail bash로 감옥 안에서 셸을 열어 둘러볼 수 있습니다.
Windows에서도 되나요?
네이티브로는 안 됩니다. WSL2를 쓰고 그 안에서 Linux 백엔드를 사용하세요.
에이전트에 인터넷이 필요한데, 그래도 감옥이 쓸모 있나요?
네. --network를 켜도 에이전트가 읽을 수 있는 것은 프로젝트뿐이라서, 키나 홈 디렉터리의 나머지는 보낼 것 자체가 없습니다. 다만 읽을 수 있는 것은 보낼 수 있으므로 프로젝트 안의 시크릿을 마스킹해야 합니다. 마스킹 방법 보기.
무료인가요?
네. ai-jail은 GPL 3.0 라이선스를 따르는 오픈 소스입니다.

에이전트를 철창 안에 넣으세요

ai-jail은 바이너리 하나입니다. 데몬도 root 권한도 필요 없습니다. 평소 실행하던 명령 앞에 단어 하나만 붙이면 됩니다.

terminal
brew tap akitaonrails/tap && brew install ai-jailai-jail claude