犀牛鸟 2026 研究笔记 estelledc.github.io

第十二章 · Coding Agent 的内建沙箱 vs 独立沙箱平台

这章为谁设计

你想理解「Codex/Claude Code/Cursor 自己的安全机制和 CubeSandbox/E2B 有什么区别」。


一句话定位

同一个问题——「AI 生成的不可信代码该怎么安全执行」——不同产品给出了不同答案。Codex 用 OS 沙箱、Claude Code 用权限分类器、Cursor 用用户确认、E2B/CubeSandbox 用 microVM。本章从隔离层级、启动成本、多实例密度三个维度做系统对照。


全维度对比

维度 Codex Claude Code Cursor E2B CubeSandbox
隔离层 L2 OS L0 应用 L0 应用 L4 云端 L4 自托管
隔离机制 bwrap+seccomp Permission classifier 用户确认框 Firecracker KVM RustVMM KVM
冷启动 <10ms <10ms <10ms ~150ms 60ms
单实例内存 ~0 ~0 ~0 未公开 <5MB
并行规模 数十个 百级 云弹性 千级
自托管 复杂
攻击面 中(共享内核) 弱(无内核隔离) 小(独立 VM) 小(独立 VM)

核心问题:何时 OS sandbox 够用,何时必须 microVM?

OS sandbox 够用的条件(Codex 路线)

Codex 的设计思路是「OS 进程级隔离 + 策略控制」:

够用的条件:代码在单一信任域内执行(同一个用户的代码)、不需要多租户隔离。Codex 的典型场景是「开发者自己的代码在自己的机器上跑」——攻击者和受害者是同一个人。

必须 microVM 的条件

满足以下任一条件时,OS sandbox 不够:

  1. 多租户:不同用户的代码在同一台机器上执行
  2. 不可信代码源:代码来自外部(用户上传、AI 生成后未经审查直接执行)
  3. 合规要求:金融/医疗行业要求 VM 级隔离
  4. 内核 exploit 防护:共享内核意味着持续的逃逸风险

Claude Code 有独立 microVM 吗?

结论:没有。

Claude Code 的安全模型是四层纵深防御:

  1. System Prompt 层(指令约束)
  2. Permission Rules 层(settings.json 配置)
  3. Tool 层(每个工具声明是否需要权限)
  4. 用户确认层(危险操作弹框确认)

这四层全部在应用层运行——没有 KVM、没有 namespace、没有 seccomp。Claude Code 执行 Bash 命令时,命令直接在用户的 shell 环境里跑。

策略差异

两种策略适用于不同场景,不是简单的优劣关系。


并行密度:CubeSandbox 的决定性优势

Agent 的并行场景越来越常见:Dynamic Workflow 可以编排百级 subagent,每个 subagent 执行独立任务。如果每个都需要独立沙箱:

方案 单实例内存 100 个并行需要 1000 个并行需要
CubeSandbox <5MB <500MB <5GB
Kata 10-30MB 1-3GB 10-30GB
Docker(弱隔离) ~10MB ~1GB ~10GB
OS sandbox ~0 ~0 ~0(但隔离弱)

CubeSandbox 的 <5MB/实例让千级并行在单机上可行——这是唯一能同时做到「强隔离 + 高密度」的方案。


启动成本在实际场景中的影响

场景 Codex OS sandbox (<10ms) CubeSandbox (60ms) 感知差异
单次交互命令 用户无感 用户无感
连续 100 次命令 1 秒 6 秒 可接受
连续 1000 次命令 10 秒 60 秒 有差异

实际 Agent 使用中,大部分是单次或少量命令,60ms 和 <10ms 的差异用户感知不到。


读完这章你应该能回答

  1. Codex 和 CubeSandbox 的本质区别是什么?(L2 OS 级 vs L4 硬件级)
  2. Claude Code 为什么没有 microVM?(设计哲学是「信任但验证」,面向单用户自用)
  3. 什么时候 OS sandbox 够用?(单用户、单信任域)
  4. CubeSandbox 的密度优势体现在哪?(<5MB/实例让千级并行可行)

导读目录:README.md 上一章:第十一章 · 威胁模型——AI Agent 代码执行的安全地图 下一章:第十三章 · 技术挑战——这个领域为什么难做