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 제공.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트