架构技术评论

Claude Cowork 10GB虚拟机:技术解析与争议

Pasted image 20260411201359.png
Anthropic 的 AI 编程助手 Claude Code 及其桌面版功能 Claude Cowork 近期引发了技术社区的广泛关注。核心争议在于:Claude Cowork 在 macOS 上未经明确用户提示,即自动下载并部署了一个约 10GB 的虚拟机捆绑包。

本文将深入分析 Claude Code 的沙盒机制、10GB 虚拟机争议,以及 Claude Cowork 虚拟机内部的完整运作机制。

Claude Code 简介

Claude Code 是 Anthropic 推出的命令行 AI 代理工具,通过理解自然语言指令,自主执行代码生成、调试、文件操作及测试等任务。它可无缝调用 git、npm、pytest 等本地开发工具,集成至现有开发工作流。

10GB 虚拟机争议

尽管 Claude Code CLI 版本采用轻量级 OS 级沙盒(后文详述),但 Claude Desktop 的 Cowork 功能却选择部署一个约 10GB 的虚拟机捆绑包。此举在 Hacker News 上引发了激烈争议。
Pasted image 20260411201404.png
争议焦点:

  • 磁盘空间
    :用户报告在未明确警告的情况下,应用在 ~/Library/Application Support/Claude/vm_bundles/claudevm.bundle/ 路径下创建了约 10GB 的虚拟机文件
  • 数据流量
    :未经提示的大文件下载可能导致额外费用
  • 性能功耗
    :运行完整的 Ubuntu 22.04 LTS ARM64 虚拟机(4 vCPU、3.8 GB RAM)会显著增加系统负担

Anthropic 工程师 Felix Rieseberg 的回应:

  1. 虚拟机为 AI 代理提供完全独立的执行环境,确保不影响宿主系统
  2. 虚拟机提供比 OS 级沙盒更强的边界隔离,为非技术用户提供"硬性"安全保证
  3. 通过虚拟机隔离减少频繁审批需求,优化非技术用户体验

深入 Claude Cowork VM 内部架构

以下内容主要基于安全研究员 Pedro José Pereira Vieito 对 Claude Cowork 的深度逆向分析。

Claude Cowork

三层架构设计

Claude Cowork 采用三层架构:

  1. macOS 主机层
    :运行 Claude Desktop(Electron 应用)
  2. 虚拟机层
    :通过 Apple Virtualization Framework 运行 Ubuntu 22.04 ARM64
  3. 沙盒层
    :VM 内部的 Claude Code CLI 被 bubblewrap + seccomp 进一步隔离

即使在虚拟机内部,AI 代理的行为也被层层限制,形成纵深防御的安全模型。

VM 配置规格

组件
规格
操作系统
Ubuntu 22.04.5 LTS ARM64
CPU
4 核 ARM64
内存
3.8 GB
存储
10GB rootfs.img + 36MB sessiondata.img
Claude Code 版本
v2.1.15
默认模型
claude-opus-4-5-20251101

VM 文件存储结构:

~/Library/Application Support/Claude/vm_bundles/claudevm.bundle/
├── rootfs.img          # 根文件系统(稀疏文件)
├── sessiondata.img     # 持久化会话数据
├── efivars.fd          # EFI 变量
├── macAddress           # MAC 地址配置
└── machineIdentifier    # 机器标识

四层安全机制

第一层 — Apple Virtualization Framework
macOS 原生虚拟化框架,实现与宿主系统的硬件级隔离。

第二层 — bubblewrap (bwrap)
VM 内部的 Linux 沙箱工具,限制 Claude Code 进程的文件系统访问范围。

第三层 — seccomp
系统调用过滤,收窄进程可执行的系统调用集合。

第四层 — 网络白名单代理
所有网络流量经由本地代理(端口 3128/1080),仅允许白名单域名:

  • api.anthropic.com
     — Claude API(允许)
  • pypi.org
    、registry.npmjs.org — 依赖安装(允许)
  • google.com
    、api.github.com 等 — 返回 403 blocked-by-allowlist

进程通信通道

Claude Desktop 与 VM 内 Claude Code 之间通过五种通道通信:

通道
机制
用途
消息流
Unix 管道 stdin/stdout
JSON 格式消息交换
HTTP 代理
Unix socket → socat → :3128
pip/npm 依赖下载
SOCKS 代理
Unix socket → socat → :1080
其他网络协议
MCP 协议
SDK 协议管道
MCP 服务器通信
文件访问
VirtioFS 挂载
宿主-VM 文件共享

VirtioFS 文件共享

Claude Cowork 使用 VirtioFS 实现宿主与虚拟机之间的高性能文件共享,比传统 NFS/SMB 延迟更低。Claude Desktop 会进行智能路径转换 — VM 中的文件操作在 macOS UI 中显示为本地路径(如 ~/Downloads/),对用户完全透明。但 VM 只能访问被明确共享的文件夹。

多会话架构

单个 VM 实例支持多个对话,每个会话独立隔离:

/sessions/
├── intelligent-loving-darwin/    (会话1)
├── dreamy-optimistic-babbage/    (会话2)
  • 会话命名采用 Docker 风格(形容词-形容词-科学家名)
  • 目录权限 drwxr-x---,防止跨会话访问
  • 每个活跃会话分配独立 Linux UID
  • 非活跃会话归属 nobody:nogroup

预装工具栈

VM 预装了丰富的工具,覆盖开发与办公场景:

  • 编程语言
    :Python 3.10、Node.js 22、Ruby 3.0、TypeScript 5.9
  • 音视频
    :ffmpeg / ffprobe 4.4
  • 文档生成
    :docx、pptxgenjs、pdf-lib
  • 数据分析
    :pandas、numpy、matplotlib、beautifulsoup4
  • 开发工具
    :git、ripgrep、jq、pandoc、ImageMagick、sqlite3

MCP 服务器集成

Claude Desktop 的 MCP 服务器通过命令行参数动态注入到 VM:官方服务使用 UUID 标识符,第三方服务使用易读名称,采用 SDK 型通信。内置 cowork 服务提供目录创建和文件删除等额外权限。

Claude Code 启动命令

VM 内部通过标准 Claude Code CLI 启动:

/usr/local/bin/claude \
  --output-format stream-json \
  --input-format stream-json \
  --model claude-opus-4-5-20251101 \
  --resume <session-uuid> \
  --allowedTools Task,Bash,Glob,Grep,Read,Edit,Write,... \
  --mcp-config '{"mcpServers": {...}}' \
  --permission-mode default \
  --plugin-dir /sessions/<name>/mnt/.skills

安全权衡

优势:

  • 仅限访问明确共享的文件夹
  • 网络请求严格限制在白名单范围
  • 系统调用受 seccomp 约束
  • 多会话间通过 UID 隔离

残留风险:

  • /tmp/
     目录会话间共享,可能存在信息泄露
  • sessiondata.img 持久化可能保留跨会话工件

补充:sandbox-runtime 轻量级沙盒

值得一提的是,Anthropic 开源了 anthropic-experimental/sandbox-runtime(srt)项目,这是 Claude Code CLI 版本中 OS 级沙盒的核心实现。它是一个非容器化的轻量级沙盒运行时,直接利用操作系统原生指令限制进程,无需 Docker 或虚拟机:

  • macOS
    :通过 sandbox-exec 动态生成 Seatbelt 策略文件
  • Linux
    :利用 bubblewrap 进行进程隔离

与 10GB VM 方案对比:srt 资源消耗极低,适合开发者使用;VM 方案提供更强的物理隔离,面向追求开箱即用安全的普通用户。两者体现了不同用户群体下的安全与体验权衡。

结论

Claude Cowork 的四层安全架构(虚拟化 + bubblewrap + seccomp + 网络白名单)展现了 Anthropic 在 AI 安全方面的严谨态度。但用户对未经警告的 10GB 资源占用表达了合理担忧。

未来 AI 代理产品应在提供强大功能的同时,提升用户知情权和控制权 — 下载前明确告知资源占用、允许用户选择沙盒类型、探索微虚拟机等更轻量的方案。AI 代理的安全与用户体验之间的平衡,将是所有 AI 产品持续面对的核心课题。

参考文献

  1. Anthropic Cowork feature creates 10GB VM bundle on macOS without warning | Hacker News https://news.ycombinator.com/item?id=47218288
  2. Inside Claude Cowork: How Anthropic Runs Claude Code in a Local VM on Your Mac https://pvieito.com/2026/01/inside-claude-cowork
  3. How I Actually Use Claude Code in 2026 https://levelup.gitconnected.com/how-i-actually-use-claude-code-in-2026-and-why-it-still-needs-a-parent-f029824f4539
  4. Sandboxing - Claude Code Docs https://code.claude.com/docs/en/sandboxing
  5. anthropic-experimental/sandbox-runtime - GitHub https://github.com/anthropic-experimental/sandbox-runtime