跳到主要内容

沙箱隔离

容器、WASM、策略门三种隔离路线的强度、开销与选型

核心要点

  • 容器/microVM:主流生产隔离
  • WASM:偏行为审计而非生产隔离
  • 策略门:deny-first 权限模型
  • 文件与网络隔离须同时存在
  • 强隔离 vs 开销 vs 灵活性权衡

本文讲技术隔离机制。隔离要防的攻击见 02-prompt-injection,人工审批交互见 09-人机交互与控制

为什么 agent 需要沙箱?

核心问题:既然 prompt injection 防不住 100%,还能怎么兜底?

用沙箱限制 agent 即便被劫持也只能在受限范围内行动,把"防注入"兜底成"限影响"。注入无法根除(02-prompt-injection),沙箱提供纵深防御的最后一层:即使指令被劫持,文件、网络、系统调用都被框死。

沙箱有三条技术路线,隔离强度、开销、灵活性各不同。下面逐一展开。

容器和 microVM 隔离强在哪?

核心问题:生产环境最常用哪种隔离,强度如何?

容器与 microVM 是主流生产方案,microVM 用硬件虚拟化提供最强隔离[1]。强度从容器到 microVM 递增。

  • 容器(Docker):agent 所有操作限定在容器内,OpenHands、SWE-agent 用此方案。隔离靠 namespace/cgroup,但共享内核。
  • gVisor:在容器上加用户态 syscall 拦截层,只实现部分 Linux syscall,缩小内核攻击面,代价是 I/O 性能损耗。
  • Firecracker microVM: KVM 硬件虚拟化、独立内核,启动约 125ms、开销小,提供最强隔离,Claude Code 的 web 版用此级别。

可借鉴的判断:隔离强度与启动开销正相关——批量短任务可接受容器,运行不可信代码则上 microVM。

WASM 沙箱和策略门各管什么?

核心问题:除了容器,还有哪两种轻量隔离,各自定位?

WASM 偏行为审计,策略门偏细粒度权限控制——两者不是容器的替代,而是不同层次的补充。

  • WASM 沙箱:在 WASM/WASI 边界内跑工具,追踪 source-to-sink 数据流(环境变量/文件 → LLM 上下文),检测注入路径和权限违规,产出可审计报告[2]。它的目标是审计而非生产隔离。
  • 策略门(deny-first):Claude Code 的权限模型是多阶段流水线(预过滤 → hook → deny-first 规则 → 权限处理),默认拒绝、显式授权,Auto 模式叠加 ML 分类器;写访问严格限定工作目录,子 agent 用 worktree 隔离[1]

策略门粒度最细但是软性的——能被绕过且性能约束会降级粒度,所以它要和硬隔离叠加,而非单用。

三路线怎么选或叠加?

核心问题:给定一个 agent,该用哪条路线?

按隔离强度需求选,最佳实践是分层叠加,且文件与网络隔离必须同时存在。三路线权衡如下:

路线隔离强度开销定位
容器/microVM强(VM 最强)生产隔离主力
WASM行为审计
策略门细但软细粒度权限

@tbl-agent-sec-sandbox-routes 沙箱三路线对比:容器与 microVM、WASM 沙箱、策略门的隔离强度、开销与适用定位

关键结论:文件系统隔离和网络隔离必须同时存在才构成有效边界——只锁文件不锁网络,数据照样能外泄(对应 02-prompt-injection 的 lethal trifecta 出口)。可借鉴的默认:硬隔离(容器/VM)兜底 + 策略门做细粒度 + 文件网络双锁。

Takeaway

知识点核心结论
沙箱定位防注入兜底成限影响,纵深防御最后一层
容器/microVM主流生产隔离,microVM(Firecracker)最强
WASMsource-to-sink 数据流审计,非生产隔离
策略门deny-first 细粒度,但软性需硬隔离叠加
有效边界文件 + 网络隔离必须同时存在

参考资料

  1. Liu et al. Dive into Claude Code: The Design Space of Today's and Future AI Agent Systems. arXiv:2604.14228, 2026. https://arxiv.org/abs/2604.14228
  2. MCP-SandboxScan: WASM-based Secure Execution and Runtime Analysis for MCP Tools. arXiv:2601.01241, 2026. https://arxiv.org/abs/2601.01241

延伸阅读