multikernel/sandlock

The lightest AI sandbox. A process-based sandbox for Linux, no container, no VM, no privilege, no prompt injection

解决的问题

Sandlock 提供了一个轻量级的 Linux 进程沙箱,允许用户在无需 root 权限、cgroups 或重型容器镜像的情况下运行不受信任的代码。它填补了无限制执行与重型 VM/容器之间的空白,以极低的启动开销(约 5ms)提供对文件系统、网络和系统调用的严格限制。

工作原理

Sandlock 使用 Rust 编写,结合了多种 Linux 内核特性来强制隔离:

  • Landlock:用于文件系统、网络和 IPC 的作用域控制。
  • seccomp-bpf:用于系统调用过滤。
  • seccomp 用户通知:一个使用 Tokio 构建的监督进程拦截特定系统调用,以强制执行资源限制(内存、进程数)、虚拟化 /proc,并实现复制-写时(COW)文件系统。
  • 透明代理:处理 HTTP 级别的 ACL,包括方法、主机和路径规则,并可向 HTTPS 流量注入凭据或 CA 证书。

适用人群

  • 需要运行不受信任代码或第三方脚本的开发者。
  • 需要以受限数据访问和无网络环境执行生成代码(例如 XOA 模式)的 AI 代理开发者。
  • 希望以确定性执行(冻结时间与种子随机性)隔离进程的用户。

主要亮点

  • 无需 root:完全在用户空间运行,无需 root 权限或 /etc/subuid 配置。
  • 细粒度网络控制:支持 IP/CIDR 允许/拒绝列表、端口特定规则和 HTTP 级别 ACL。
  • 资源限制:通过 seccomp 通知强制执行内存和进程限制。
  • COW 文件系统:自动保护工作目录,将写入操作捕获到上层目录中。
  • 可编程策略policy_fn 允许基于系统调用事件动态、实时调整权限。
  • 多语言支持:提供 CLI、Rust 库以及 Python 和 Go 的 SDK。

相关

  • 项目
  • 项目
  • 项目
  • 项目