通过沙箱隔离提升 Claude Code 的安全性和自主性
本文翻译自 Anthropic 官方博客:Beyond permission prompts: Claude Code sandboxing
译者注:本文介绍了如何通过操作系统级别的沙箱技术,在提升 AI 智能体安全性的同时增强其自主工作能力。
在 Claude Code 中,Claude 与您一起编写、测试和调试代码,浏览您的代码库、编辑多个文件并运行命令来验证其工作。让 Claude 对您的代码库和文件拥有如此多的访问权限会带来风险,特别是在提示注入(prompt injection)的情况下。
为了帮助解决这个问题,我们在 Claude Code 中引入了两个基于沙箱技术的新功能,这两个功能都旨在为开发人员提供更安全的工作场所,同时也允许 Claude 更自主地运行并减少权限提示。在我们的内部使用中,我们发现沙箱技术安全地将权限提示减少了 84%。通过定义 Claude 可以自由工作的明确边界,它们提高了安全性和自主性。
在 Claude Code 上保护用户安全
Claude Code 基于权限模式运行:默认情况下,它是只读的,这意味着在进行修改或运行任何命令之前会请求权限。对此有一些例外:我们自动允许安全的命令,如 echo 或 cat,但大多数操作仍需要明确的批准。
不断点击"批准"会减慢开发周期,并可能导致"批准疲劳",用户可能不会密切关注他们批准的内容,从而使开发不那么安全。
为了解决这个问题,我们为 Claude Code 推出了沙箱功能。
沙箱:更安全、更自主的方法
沙箱创建了预定义的边界,在这个边界内 Claude 可以更自由地工作,而不是为每个操作请求权限。启用沙箱后,您将大幅减少权限提示并提高安全性。
我们的沙箱方法基于操作系统级别的功能构建,以实现两个边界:
- 文件系统隔离,确保 Claude 只能访问或修改特定目录。这对于防止提示注入的 Claude 修改敏感系统文件特别重要。
- 网络隔离,确保 Claude 只能连接到批准的服务器。这可以防止提示注入的 Claude 泄露敏感信息或下载恶意软件。
值得注意的是,有效的沙箱需要同时进行文件系统和网络隔离。没有网络隔离,被入侵的智能体可能会泄露敏感文件,如 SSH 密钥;没有文件系统隔离,被入侵的智能体可以轻松逃离沙箱并获得网络访问权限。正是通过同时使用这两种技术,我们才能为 Claude Code 用户提供更安全、更快速的智能体体验。
Claude Code 中的两个新沙箱功能
沙箱化 bash 工具:无需权限提示的安全 bash 执行
我们正在引入一个新的沙箱运行时,作为研究预览版提供 beta 版,让您可以精确定义智能体可以访问的目录和网络主机,而无需启动和管理容器的开销。这可以用于沙箱任意进程、智能体和 MCP 服务器。它也作为开源研究预览版提供。
在 Claude Code 中,我们使用这个运行时来沙箱化 bash 工具,这允许 Claude 在您设置的限定范围内运行命令。在安全的沙箱内,Claude 可以更自主地运行并安全地执行命令而无需权限提示。如果 Claude 尝试访问沙箱外部的任何内容,您将立即收到通知,并可以选择是否允许。
我们基于操作系统级别的原语构建了这个功能,例如 Linux bubblewrap 和 MacOS seatbelt,以在操作系统级别强制执行这些限制。它们不仅涵盖 Claude Code 的直接交互,还涵盖命令生成的任何脚本、程序或子进程。如上所述,这个沙箱强制执行:
- 文件系统隔离,通过允许对当前工作目录的读写访问,但阻止修改其之外的任何文件。
- 网络隔离,仅通过连接到沙箱外运行的代理服务器的 unix 域套接字允许互联网访问。此代理服务器强制执行进程可以连接的域的限制,并处理新请求域的用户确认。如果您想进一步提高安全性,我们还支持自定义此代理以对传出流量强制执行任意规则。
这两个组件都是可配置的:您可以轻松选择允许或禁止特定文件路径或域。

Claude Code 的沙箱架构通过文件系统和网络控制隔离代码执行,自动允许安全操作,阻止恶意操作,仅在需要时请求权限。
沙箱确保即使是成功的提示注入也被完全隔离,并且不会影响整体用户安全性。这样,被入侵的 Claude Code 无法窃取您的 SSH 密钥或回连到攻击者的服务器。
要开始使用此功能,请在 Claude Code 中运行 /sandbox 并查看有关我们安全模型的更多技术详细信息。
为了使其他团队更容易构建更安全的智能体,我们开源了此功能。我们认为其他人应该考虑为他们的智能体采用这种技术,以增强其智能体的安全态势。
Web 版 Claude Code:在云端安全运行 Claude Code
今天,我们还发布了 Web 版 Claude Code,使用户能够在云中的隔离沙箱中运行 Claude Code。Web 版 Claude Code 在隔离的沙箱中执行每个 Claude Code 会话,在其中它可以以安全的方式完全访问其服务器。我们设计了这个沙箱,以确保敏感凭据(如 git 凭据或签名密钥)永远不会与 Claude Code 一起在沙箱内。这样,即使沙箱中运行的代码被入侵,用户也可以免受进一步伤害。
Web 版 Claude Code 使用自定义代理服务来透明地处理所有 git 交互。在沙箱内,git 客户端使用自定义的范围凭据向此服务进行身份验证。代理验证此凭据和 git 交互的内容(例如,确保它仅推送到配置的分支),然后在将请求发送到 GitHub 之前附加正确的身份验证令牌。

Claude Code 的 Git 集成通过安全代理路由命令,该代理验证身份验证令牌、分支名称和存储库目的地——允许安全的版本控制工作流程,同时防止未经授权的推送。
入门指南
我们新的沙箱化 bash 工具和 Web 版 Claude Code 为使用 Claude 进行工程工作的开发人员在安全性和生产力方面提供了实质性改进。
要开始使用这些工具:
- 在 Claude 中运行
/sandbox并查看有关如何配置此沙箱的文档。 - 访问 claude.com/code 尝试 Web 版 Claude Code。
或者,如果您正在构建自己的智能体,请查看我们的开源沙箱代码,并考虑将其集成到您的工作中。我们期待看到您构建的内容。
要了解有关 Web 版 Claude Code 的更多信息,请查看我们的发布博客文章。
致谢
本文由 David Dworken 和 Oliver Weller-Davies 撰写,Meaghan Choi、Catherine Wu、Molly Vorwerck、Alex Isken、Kier Bradwell 和 Kevin Garcia 贡献。