jai - AI 에이전트를 위한 경량 격리 도구

Linux 환경에서 AI 에이전트를 손쉽게 격리(containment) 할 수 있도록 설계된 도구. 복잡한 컨테이너나 VM 설정 없이 단일 명령으로 안전한 실행 경계를 제공합니다.

개요

jai는 AI 도구가 실제 파일 시스템에 접근해 데이터를 삭제하거나 손상시키는 문제를 방지하기 위한 도구입니다. 홈 디렉터리를 copy-on-write 오버레이로 보호하고 /tmp·/var/tmp를 분리해 원본 파일 변경을 방지합니다.

GitHub: https://jai.scs.stanford.edu/

실제 문제 사례

여러 사용자가 AI 도구 사용 중 파일 손실 및 디렉터리 삭제 피해를 보고했습니다:

  • Nick Davidov: 15년치 가족 사진이 터미널 명령으로 삭제됨
  • Anthropic Claude Code: 홈 디렉터리를 삭제해 개발 프로젝트 손실
  • Cursor: 작업 트리를 비워 “모든 것이 사라졌다”는 보고
  • Antigravity: 전체 D 드라이브 삭제 (Reddit 사용자 언급)
  • Cursor 사용자: 100GB의 파일 삭제

이러한 사례는 AI 도구에 실제 계정 접근을 허용할 때 발생하는 보안 공백을 보여줍니다.

jai의 핵심 기능

자동 경계 설정

  • 실행 계정과 홈 디렉터리 사이의 경계를 자동 설정
  • 작업 디렉터리는 완전한 읽기/쓰기 권한 유지
  • 홈 디렉터리는 copy-on-write 오버레이로 보호되어 원본 파일이 변경되지 않음
  • /tmp와 /var/tmp는 독립된 공간으로 분리, 나머지 파일은 읽기 전용으로 제한

간단한 사용법

명령어 앞에 jai를 붙이는 것만으로 격리 실행 가능:

jai codex
jai claude
jai  # 또는 단순히 jai로 셸 실행
  • Dockerfile이나 이미지 빌드 과정 없이 즉시 사용 가능
  • 복잡한 bwrap 플래그 설정이나 스크립트 작성이 불필요

격리 모드 선택

모드설명보안 수준
Casual홈 디렉터리를 copy-on-write로 보호, 대부분의 파일 읽기 가능기본 격리
Strict별도 jai 사용자로 실행, 홈 디렉터리가 비워진 상태로 강력한 격리 제공강력한 격리
Bare홈 디렉터리가 비워진 상태지만 사용자 UID 유지최소 격리

각 모드는 기밀성(confidentiality), 무결성(integrity), NFS 지원 여부가 다릅니다. Strict 모드는 가장 강력한 격리를 제공하지만 NFS 홈은 지원하지 않습니다.

대안 도구와의 비교

도구장점단점
Docker이미지 기반 환경 재현에 적합호스트 도구의 임시 샌드박싱에는 무거움, 홈 디렉터리 오버레이 기능 없음
bubblewrap강력한 네임스페이스 샌드박스파일시스템 구성을 직접 지정해야 함
chroot간단한 파일시스템 격리보안 격리 수단이 아님, 마운트·PID 네임스페이스·자격 분리 기능이 없어 Linux에서도 샌드박싱 용도로 권장되지 않음

jai는 이러한 복잡성을 제거합니다.

보안 한계

jai는 완전한 보안을 보장하지 않습니다:

  • “casual sandbox”로서 피해 범위를 줄이지만 모든 공격을 차단하지는 않음
  • Casual 모드는 기밀성 보호가 약하며, Strict 모드도 컨테이너나 VM 수준의 격리와는 다름
  • 다중 테넌트 환경이나 고위험 상황에서는 컨테이너 또는 가상머신 사용 권장

프로젝트 배경

  • 개발: Stanford Secure Computer Systems(SCS) 연구 그룹과 Future of Digital Currency Initiative(FDCI) 공동 개발
  • 라이선스: 무료 오픈소스 소프트웨어
  • 목표: 사용자가 AI를 더 안전하게 활용할 수 있도록 지원

요약

jai는 AI 코딩 도구(Claude Code, Cursor 등)를 사용할 때 파일 삭제나 시스템 손상을 방지하는 실용적인 보호 수단입니다. 복잡한 컨테이너 설정 없이 단일 명령어로 안전한 실행 환경을 제공합니다.


Source: hada.io 뉴스 (2026-03-29)