不止于权限提示:让 Claude Code 更安全,也更自主
官方原文: https://www.anthropic.com/engineering/claude-code-sandboxing
发布日期: 2025 年 10 月 20 日
作者: David Dworken、Oliver Weller-Davies;Meaghan Choi、Catherine Wu、Molly Vorwerck、Alex Isken、Kier Bradwell 和 Kevin Garcia 参与贡献。
Claude Code 新增的 sandboxing 能力,包括 sandboxed bash tool 与 Claude Code on the web,通过文件系统隔离和网络隔离两道边界,既减少权限提示,也提高用户安全性。
Claude Code 会与开发者一起编写、测试和调试代码:浏览代码库、修改多个文件,并运行命令验证工作。这样的权限很有价值,但也会引入风险,尤其当 Agent 遭遇 prompt injection 时。
为此,Anthropic 在 Claude Code 中推出两项以 sandboxing 为基础的新能力。它们为开发者提供更安全的工作空间,也让 Claude 可以在清晰边界内更自主地运行、减少权限确认。内部使用数据显示,sandboxing 能在保持安全的前提下减少 84% 的权限提示。
保护 Claude Code 用户
Claude Code 使用基于权限的模型:默认只读,修改文件或运行命令前都要请求许可。echo、cat 等安全命令会被自动允许,但多数操作仍需要显式确认。
持续点击“允许”会拖慢开发,也容易形成 approval fatigue:用户逐渐不再认真查看自己批准的内容,反而降低安全性。这正是 Claude Code 引入 sandboxing 的原因。
Sandboxing:更安全、更自主的方式
sandboxing 预先定义 Claude 可以自由行动的边界,不必为每一步反复请求许可。启用后,用户会看到大幅减少的权限提示,同时获得更强的安全保障。
该方案建立在操作系统级机制上,提供两种隔离:
- 文件系统隔离: Claude 只能读取或修改指定目录,可防止遭 prompt injection 的 Claude 改动敏感系统文件。
- 网络隔离: Claude 只能连接已批准的 server,可阻止泄露敏感数据或下载恶意软件。
有效的 sandbox 必须同时具备这两层。没有网络隔离,被攻破的 Agent 可以外传 SSH key 等敏感文件;没有文件系统隔离,被攻破的 Agent 则可能逃出 sandbox 并取得网络访问。二者结合,才能让 Claude Code 既安全又高效地以 Agent 方式工作。
Claude Code 的两项新 sandboxing 能力
Sandboxed bash tool:无需逐次确认的安全 bash 执行
Anthropic 推出了一套新的 sandbox runtime,目前以 Beta research preview 形式提供。它允许开发者精确规定 Agent 可访问的目录和网络主机,而不必承担启动和维护容器的成本。它可用于隔离任意进程、Agent 和 MCP server,也已作为开源 research preview 发布。
在 Claude Code 中,该 runtime 用于隔离 bash tool,让 Claude 只能在用户设定的范围内运行命令。在这个安全 sandbox 内,Claude 可以更自主地执行命令,无需逐次请求许可。一旦它尝试访问 sandbox 外的资源,用户会立即收到通知,并自行决定是否放行。
底层利用 Linux bubblewrap、macOS seatbelt 等操作系统原语,在 OS 层强制限制。保护范围不仅包含 Claude Code 的直接操作,也涵盖命令启动的脚本、程序和子进程:
- 文件系统隔离: 允许读取和写入当前工作目录,但阻止修改该目录以外的文件。
- 网络隔离: 只允许经由 Unix domain socket 连接到 sandbox 外的 proxy server 访问互联网。该 proxy 会限制可连接域名,并对新申请的域名处理用户确认;如需更强控制,也可自定义 proxy,为出站流量实施任意规则。
两部分均可配置,开发者可分别允许或禁止特定文件路径和域名。
因此,即便 prompt injection 成功,影响也会被隔离在 sandbox 内:被攻破的 Claude Code 不能窃取 SSH key,也不能向攻击者的 server 回传数据。使用时可在 Claude Code 中运行 /sandbox,并阅读安全模型的技术说明。
为帮助其他团队构建更安全的 Agent,Anthropic 同时开源了这项能力,并建议其他 Agent 开发者考虑采用。
Claude Code on the web:在云端安全运行 Claude Code
Claude Code on the web 让用户可以在云端隔离 sandbox 中运行 Claude Code。每个 Claude Code Session 都在独立 sandbox 中执行,并能以受控方式访问其工作 server。设计重点是:Git 凭据、签名 key 等敏感凭据永远不与 Claude Code 一同置于 sandbox 内。这样,即使 sandbox 中的代码被攻破,也无法进一步危及用户的凭据。
网页版用自定义 proxy 透明处理全部 Git 交互。sandbox 内的 Git client 使用专门构建、范围受限的凭据向 proxy 认证。proxy 会验证凭据和 Git 操作内容,例如确保仅向配置的分支推送;随后才为发送至 GitHub 的请求附加正确的认证 token。
开始使用
新的 sandboxed bash tool 与 Claude Code on the web 同时改善了安全性和开发效率:
- 在 Claude Code 中运行
/sandbox,按照文档配置 sandbox。 - 访问 claude.ai/code,试用 Claude Code on the web。
如果你正在构建自己的 Agent,也可以查看 Anthropic 已开源的 sandboxing 代码,并评估是否将其纳入自己的安全架构。