multikernel/sandlock
The lightest AI sandbox. A process-based sandbox for Linux, no container, no VM, no privilege, no prompt injection
해결하는 문제
Sandlock은 root 권한, cgroups, 또는 무거운 컨테이너 이미지를 요구하지 않고 신뢰할 수 없는 코드를 실행할 수 있는 가벼운 프로세스 사전을 제공합니다. 제한 없는 실행과 무거운 VM/컨테이너 사이의 공백을 메우며, 매우 낮은 시작 오버헤드(~5ms)로 파일 시스템, 네트워크, 시스템 호출을 엄격하게 격리합니다.
작동 방식
Sandlock은 Rust로 작성되었으며, Linux 커널 기능의 조합을 사용하여 격리를 강제합니다:
- Landlock: 파일 시스템, 네트워크, IPC 스코프를 위한 사용.
- seccomp-bpf: 시스템 호출 필터링을 위한 사용.
- seccomp 사용자 알림: Tokio로 구축된 감시 프로세스가 특정 시스템 호출을 가로채어 리소스 제한(메모리, 프로세스 수),
/proc가상화, 복사-온-라이트(COW) 파일시스템을 구현합니다. - 투명 프록시: HTTP 레벨 ACL(메서드, 호스트, 경로 규칙)을 처리하며, HTTPS 트래픽에 자격 증명 또는 CA 인증서를 삽입할 수 있습니다.
대상 사용자
- 신뢰할 수 없는 코드나 제3자 스크립트를 실행하는 개발자.
- 생성된 코드(예: XOA 패턴)를 제한된 데이터 접근과 네트워크 없이 실행해야 하는 AI 에이전트 개발자.
- 결정론적 실행(고정된 시간과 시드된 난수)으로 프로세스를 격리하고자 하는 사용자.
주요 기능
- root 필요 없음: root 권한이나
/etc/subuid설정 없이 사용자 공간에서 완전히 작동. - 세밀한 네트워크 제어: IP/CIDR 허용/차단 목록, 포트별 규칙, HTTP 레벨 ACL 지원.
- 리소스 제한: seccomp 알림을 통해 메모리 및 프로세스 수 제한 강제.
- COW 파일시스템: 작업 디렉터리를 자동으로 보호하고 쓰기 작업을 상위 디렉터리에 캡처.
- 프로그래머블 정책:
policy_fn을 사용해 시스템 호출 이벤트에 기반한 동적, 런타임 권한 조정 가능. - 다중 언어 지원: CLI, Rust 라이브러리, Python 및 Go용 SDK 제공.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트