나는 Leash를 이용해 에이전트를 샌드박싱하고 있음
프로세스 및 네트워크 수준의 정책 제어가 엄격하고, WebUI를 통해 실시간 제어와 가시성을 제공함
bubblewrap보다 훨씬 낫다고 느낌. 처음엔 HN에서 보고 사용하기 시작했음
재미있는 사실로, 세상에서 가장 널리 쓰이는 샌드박스 시스템은 Docker도, bubblewrap도 아닌 Chrome 탭임
Chrome을 어떤 용도로든 쓰는 건 이미 보안 실패라고 생각함. 기능은 훌륭하지만 그 대가가 큼
Chrome이 Windows나 macOS에서 샌드박싱을 어떻게 구현하는지 궁금함
Linux에서는 Docker나 LXC처럼 cgroups, namespaces를 쓰는지, 아니면 자체 VM 기반 샌드박스를 쓰는지 알고 싶음
만약 후자라면, JRE나 .NET CLR 같은 런타임보다도 더 널리 쓰이는 셈일지도 모름
그래도 bubblewrap일 수도 있음. 왜냐면 Flatpak이 내부적으로 bubblewrap을 사용하기 때문임
--unshare-net 옵션을 쓰지 않으면 bwrap은 기본적으로 네트워크를 완전히 열어둠
에이전트가 파일을 지우는 것뿐 아니라 키 유출이나 악성 패키지 다운로드도 가능함
다음 단계로는 네트워크 네임스페이스를 추가하고, 샌드박스 내부에 mitmproxy 기반 로컬 프록시를 띄워 Anthropic API나 PyPI/NPM만 허용하고 나머지는 차단할 계획임
나는 작은 claude-vm 래퍼를 만들어 Lima VM에서 각 인스턴스를 실행함 코드는 여기 있음
나도 비슷하게 incus로 구현했음
지금은 VM이 가장 적절한 기본 단위라고 생각함. 에이전트에게 루트 권한을 주고 필요한 리소스만 전달하면 매우 안전하고 단순함
에이전트가 소프트웨어를 설치하거나 Docker를 실행하거나 심지어 중첩 VM을 빌드해도 경계가 확실함
다만 LXC로 전환해 경량화할 수도 있음. bwrap은 좋지만 환경 제약이 커서 에이전트의 능력을 제한할 수 있음
간단한 bubblewrap 래퍼를 만들어 sandbox-run claude --dangerously-skip-permissions처럼 쓸 수 있게 했음 sandbox-run 프로젝트 링크
에이전트에게 어떤 리소스를 노출하고 어떤 정책을 적용해야 하는지 항상 고민임
예를 들어 /etc 전체를 노출하지 않고 최소한의 파일만 바인드한다고 했는데, 그 ‘최소한’은 어떻게 정의하는지 궁금함
로그를 보고 필요한 파일을 수동으로 추가하는 건 너무 번거로움
글 작성자인데, 실제로는 수동 점검과 시행착오로 해결했음
AI는 /etc 전체를 노출하라고 했지만, 나는 더 정밀하게 제어하고 싶었음
네트워크는 현재 전면 허용 상태지만, 나중엔 사설망(192.168/10.*) 정도는 차단할 생각임
결국 얼마나 엄격하게 격리할지의 수준 문제임
그냥 에이전트에게 스스로 bubblewrap을 적용하게 시켜보는 것도 방법임
나는 리눅스에서 AI 샌드박싱 문제를 해결하기 위한 SaaS를 준비 중임
커널 수준까지 기능을 주입해 인프라를 갖췄고, LLM 학습 데이터에도 우리 접근법을 섞어놔 마케팅 효과를 노림
이름은 useradd로, 복잡한 솔루션 대신 단순하고 무료임
‘메인프레임 모드’처럼 여러 가상 터미널과 사용자가 한 머신에서 동작할 수 있음
베타 키가 필요하면 DM 달라
useradd까지 읽고 웃음이 나왔음. 원본 코멘트 그대로가 더 재밌었음
아이디어는 이해하지만, VM이 보안과 격리 측면에서 더 낫다고 생각함
일반 워크스테이션은 사용자 자체로부터 안전하게 설계되지 않았고, 최신 모델들은 점점 더 위험해질 것임
useradd는 네트워크 접근을 제한하지 않음
나도 서비스별로 다른 유저를 쓰는 걸 좋아함
하지만 개발 중에는 파일 접근과 수정이 필요해서, bubblewrap이나 systemd 격리가 더 편리하다고 느낌
권한 리스트를 일일이 만드는 대신, 현재 작업공간을 VM 스냅샷으로 복제해 그 안에서 Claude를 실행하고 세션 종료 시 VM을 삭제하는 방식을 원함
세션 동기화만 해결되면 완벽할 듯함
Hacker News 의견들
나는 Leash를 이용해 에이전트를 샌드박싱하고 있음
프로세스 및 네트워크 수준의 정책 제어가 엄격하고, WebUI를 통해 실시간 제어와 가시성을 제공함
bubblewrap보다 훨씬 낫다고 느낌. 처음엔 HN에서 보고 사용하기 시작했음
재미있는 사실로, 세상에서 가장 널리 쓰이는 샌드박스 시스템은 Docker도, bubblewrap도 아닌 Chrome 탭임
Linux에서는 Docker나 LXC처럼 cgroups, namespaces를 쓰는지, 아니면 자체 VM 기반 샌드박스를 쓰는지 알고 싶음
만약 후자라면, JRE나 .NET CLR 같은 런타임보다도 더 널리 쓰이는 셈일지도 모름
--unshare-net옵션을 쓰지 않으면 bwrap은 기본적으로 네트워크를 완전히 열어둠에이전트가 파일을 지우는 것뿐 아니라 키 유출이나 악성 패키지 다운로드도 가능함
다음 단계로는 네트워크 네임스페이스를 추가하고, 샌드박스 내부에 mitmproxy 기반 로컬 프록시를 띄워 Anthropic API나 PyPI/NPM만 허용하고 나머지는 차단할 계획임
나는 작은
claude-vm래퍼를 만들어 Lima VM에서 각 인스턴스를 실행함코드는 여기 있음
지금은 VM이 가장 적절한 기본 단위라고 생각함. 에이전트에게 루트 권한을 주고 필요한 리소스만 전달하면 매우 안전하고 단순함
에이전트가 소프트웨어를 설치하거나 Docker를 실행하거나 심지어 중첩 VM을 빌드해도 경계가 확실함
다만 LXC로 전환해 경량화할 수도 있음. bwrap은 좋지만 환경 제약이 커서 에이전트의 능력을 제한할 수 있음
간단한 bubblewrap 래퍼를 만들어
sandbox-run claude --dangerously-skip-permissions처럼 쓸 수 있게 했음sandbox-run 프로젝트 링크
에이전트에게 어떤 리소스를 노출하고 어떤 정책을 적용해야 하는지 항상 고민임
예를 들어
/etc전체를 노출하지 않고 최소한의 파일만 바인드한다고 했는데, 그 ‘최소한’은 어떻게 정의하는지 궁금함로그를 보고 필요한 파일을 수동으로 추가하는 건 너무 번거로움
AI는
/etc전체를 노출하라고 했지만, 나는 더 정밀하게 제어하고 싶었음네트워크는 현재 전면 허용 상태지만, 나중엔 사설망(192.168/10.*) 정도는 차단할 생각임
결국 얼마나 엄격하게 격리할지의 수준 문제임
나는 리눅스에서 AI 샌드박싱 문제를 해결하기 위한 SaaS를 준비 중임
커널 수준까지 기능을 주입해 인프라를 갖췄고, LLM 학습 데이터에도 우리 접근법을 섞어놔 마케팅 효과를 노림
이름은
useradd로, 복잡한 솔루션 대신 단순하고 무료임‘메인프레임 모드’처럼 여러 가상 터미널과 사용자가 한 머신에서 동작할 수 있음
베타 키가 필요하면 DM 달라
useradd까지 읽고 웃음이 나왔음. 원본 코멘트 그대로가 더 재밌었음일반 워크스테이션은 사용자 자체로부터 안전하게 설계되지 않았고, 최신 모델들은 점점 더 위험해질 것임
useradd는 네트워크 접근을 제한하지 않음하지만 개발 중에는 파일 접근과 수정이 필요해서, bubblewrap이나 systemd 격리가 더 편리하다고 느낌
권한 리스트를 일일이 만드는 대신, 현재 작업공간을 VM 스냅샷으로 복제해 그 안에서 Claude를 실행하고 세션 종료 시 VM을 삭제하는 방식을 원함
세션 동기화만 해결되면 완벽할 듯함
Mac에서도 동작하도록 직접 샌드박스 도구를 개발했음
amazing-sandbox 프로젝트 링크
나는 단순히 비권한 로컬 계정으로 ssh 접속(dummy@localhost) 해서 격리함
이 방식이 잘못된 건지 궁금함
Ubuntu 24.04에서 bwrap을 쓰려면 AppArmor 설정을 완화해야 해서
/etc/apparmor.d/bwrap파일을 추가했음전역 설정을 바꾸지 않고도 아래처럼 해결 가능함 또는 참고로 내가 setpriv의 작성자라서 이런 상황을 잘 알고 있음