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。
相关
- 项目
- 项目
- 项目
- 项目