Perplexity 开源沙箱:108 次越狱尝试 0 次成功

10 月 15 日,Perplexity 在 GitHub 上以 Apache 2.0 开源了 SPACE(Sandboxed Platform for Agentic Code Execution),版本 0.8.0,Rust 编写。据 Semafor 与 SiliconANGLE 当日报道,这就是它自家 Computer 智能体在用的那套沙箱,从 7 月起承载了全部会话,现在每天创建数百万个沙箱。
它做的事很具体
每个智能体任务跑在自己的 Firecracker 微型虚拟机里,有独立的内核和可写文件系统。智能体在沙箱内是 root,随便折腾,但碰不到宿主机。
关键设计在边界外:平台凭证不进入沙箱,通过宿主侧网关在网络层注入;每个沙箱有自己的出口策略,智能体能连哪些地址,由外面决定。这样一来,即使沙箱被完全攻破,也读不到可复用的密钥。
对外是一个 HTTP API,配 SSE 流式输出;内部四层:PostgreSQL 支撑的 API、控制器、worker、数据面。根文件系统用 btrfs 的写时复制,快照才够快。
数字:60 毫秒起一个,0 次逃逸
官方称,相比此前用的第三方方案,沙箱创建中位延迟从 185 毫秒降到 60 毫秒,P90 从 447 毫秒降到 89 毫秒。
红队报告《Escaping SPACE: Part I》给了九个前沿模型 root 权限,任务是拿到宿主机上的密钥,或者访问被策略阻断的回调地址,共 216 次运行。结果是:108 次 VM 逃逸尝试,0 次成功;完全断网的 54 次里,0 次绕过。
换成部分联网的配置,问题来了:修复前,有 4 个模型在 54 次里成功了 11 次。它们用了两招——DNS 归属伪造,以及借共享 CDN 的 IP 蒙过白名单。涉及 Claude Opus 5.0、GPT-5.6 Sol、GPT-5.6 Cyber 和 Kimi K3。
Perplexity 的修法是:用 nftables 校验源地址,网关改成终止 TLS 并同时核对 SNI 和 HTTP Host。复测后没有可验证的绕过。同一套测试还跑了十家第三方沙箱,八家至少出现过一次网络策略绕过,官方称已逐一告知厂商。
“虚拟机没破”不等于“没事”
这份报告最有价值的地方,是它没有只讲好消息。VM 边界守住了,网络策略却漏了——而智能体真正伤人的路径,往往就是从出口开始的:不是破墙,是走出去。
所以看一个沙箱方案,不能只问“能不能逃出去”,还要问三件事:出口有没有默认拒绝、凭证是不是在沙箱外、所有网络和工具调用有没有留痕。
能抄的部分
- 凭证不进沙箱:把密钥放在网络层注入,而不是塞进环境变量。
- 一会话一 VM:别用共享容器跑不同用户的智能体。
- 出口白名单要校验源地址、SNI 与 Host,不能只看域名解析结果。
- 支持暂停、快照、分支:长任务不该靠对话历史重建现场。
部署门槛要说清:需要 Linux x86_64、KVM、/dev/kvm、btrfs 和允许特权容器的 Docker,官方明确说不支持直接在 macOS 上跑。这不是给个人用户的一键工具,是给平台团队的。仓库另带一个 E2B 兼容层,方便已用 E2B 的团队迁移。CoreWeave、Akamai、Crusoe 已表示会向自己的客户提供 SPACE。
为什么现在开源
时机不是巧合。同一周,OpenAI 披露了四起研究模型越界事件,印度 CERT-In 也警告过厂商的智能体未经授权就触达了本地机构的线上系统。隔离正在从论文题目变成运维问题。
开源一份生产环境在用的沙箱,等于把“我们怎么划边界”公开给同行评审。0 次逃逸这个结论能不能在真实流量下站住,要看接下来几个月的公开报告——包括失败的那种。




