Beyond permission prompts: making Claude Code more secure and autonomous
- 分组:五、技巧玩法 / 工作流套路
- 原始链接:https://www.anthropic.com/engineering/claude-code-sandboxing
- 抓取来源:http://www.anthropic.com/engineering/claude-code-sandboxing
- 原始文件:/Users/yuanruiqin/Desktop/知识库/ClaudeCode-系统化知识库/05-技巧玩法与工作流/40-beyond-permission-prompts-making-claude-code-more-secure-and-autonomous.md
- 精读版生成时间:2026-04-05 13:50:44
中文精读版(去噪)
为了帮助解决这个问题,我们在 Claude Code 中引入了两个基于沙箱构建的新功能,这两个功能都旨在为开发人员提供更安全的工作场所,同时还允许 Claude 更加自主地运行并减少权限提示。在我们的内部使用中,我们发现沙箱可以安全地将权限提示减少 84%。通过定义克劳德可以自由工作的界限,他们增加了安全性和代理性。
确保用户在 Claude Code 上的安全
Claude Code 在基于权限的模型上运行:默认情况下,它是只读的,这意味着它在进行修改或运行任何命令之前会请求许可。有一些例外:我们自动允许安全命令,如 echo 或 cat,但大多数操作仍然需要明确批准。
不断点击“批准”会减慢开发周期,并可能导致“批准疲劳”,用户可能不会密切关注他们正在批准的内容,进而降低开发的安全性。
为了解决这个问题,我们为 Claude Code 启动了沙箱。
沙盒:一种更安全、更自主的方法
沙箱创建了预定义的边界,克劳德可以在其中更自由地工作,而不是为每个操作请求许可。启用沙箱后,您获得的权限提示会大大减少,安全性也会提高。
我们的沙箱方法建立在操作系统级功能之上,以实现两个边界:
- 文件系统隔离,保证Claude只能访问或修改特定目录。这对于防止提示注入的克劳德修改敏感系统文件尤其重要。
- 网络隔离,确保Claude只能连接到认可的服务器。这可以防止提示注入的克劳德泄露敏感信息或下载恶意软件。
值得注意的是,有效的沙箱需要文件系统和网络隔离。如果没有网络隔离,受感染的代理可能会泄露 SSH 密钥等敏感文件;如果没有文件系统隔离,受感染的代理可以轻松逃离沙箱并获得网络访问权限。通过使用这两种技术,我们可以为 Claude Code 用户提供更安全、更快速的代理体验。
Claude Code 中的两个新沙箱功能
沙盒 bash 工具:无需权限提示即可安全执行 bash
我们正在引入一个新的沙箱运行时,它在测试版中作为研究预览提供,它可以让您准确定义代理可以访问的目录和网络主机,而无需启动和管理容器的开销。这可用于沙箱任意进程、代理和 MCP 服务器。它还可以作为开源研究预览 提供。
在 Claude Code 中,我们使用此运行时来沙箱 bash 工具,这允许 Claude 在您设置的定义限制内运行命令。在安全沙箱内,克劳德可以更加自主地运行,安全地执行命令,无需权限提示。如果克劳德尝试访问沙箱_外部_的某些内容,您将立即收到通知,并可以选择是否允许。
我们将其构建在操作系统级别的原语之上,例如 Linux bubblewrap 和 MacOS 安全带,以在操作系统级别强制实施这些限制。它们不仅涵盖 Claude Code 的直接交互,还涵盖由命令生成的任何脚本、程序或子进程。如上所述,此沙箱强制执行以下两项:
- **文件系统隔离,**通过允许对当前工作目录的读写访问,但阻止对其外部的任何文件的修改。
- **网络隔离,**仅允许通过连接到沙箱外部运行的代理服务器的 unix 域套接字访问互联网。此代理服务器对进程可以连接到的域实施限制,并处理新请求的域的用户确认。如果您希望进一步提高安全性,我们还支持自定义此代理以对传出流量实施任意规则。
这两个组件都是可配置的:您可以轻松选择允许或禁止特定的文件路径或域。
Claude Code 的沙箱架构将代码执行与文件系统和网络控制隔离,自动允许安全操作,阻止恶意操作,并仅在需要时请求许可。
沙箱确保即使成功的提示注入也是完全隔离的,并且不会影响整体用户安全。这样,受损的 Claude 代码就无法窃取您的 SSH 密钥,也无法通过电话连接到攻击者的服务器。
要开始使用此功能,请在 Claude Code 中运行 /sandbox 并查看有关我们的安全模型的更多技术细节。
为了让其他团队更容易构建更安全的代理,我们开源此功能。我们认为其他人应该考虑为自己的代理采用这项技术,以增强其代理的安全状况。
网络上的 Claude Code:在云中安全地运行 Claude Code
今天,我们还发布了 Claude Code 网页版,使用户能够在云中的隔离沙箱中运行 Claude Code。网络上的 Claude Code 在隔离的沙箱中执行每个 Claude Code 会话,在沙箱中它可以以安全可靠的方式完全访问其服务器。我们设计这个沙箱是为了确保敏感凭证(例如 git 凭证或签名密钥)永远不会出现在 Claude Code 的沙箱内。这样,即使沙箱中运行的代码受到损害,用户也可以免受进一步的伤害。
网络上的 Claude Code 使用自定义代理服务,透明地处理所有 git 交互。在沙箱内,git 客户端使用自定义的范围凭据对此服务进行身份验证。代理验证此凭证和 git 交互的内容(例如,确保它仅推送到配置的分支),然后在将请求发送到 GitHub 之前附加正确的身份验证令牌。
Claude Code 的 Git 集成通过安全代理路由命令,该代理验证身份验证令牌、分支名称和存储库目标,从而实现安全的版本控制工作流程,同时防止未经授权的推送。
开始使用
我们新的沙盒 bash 工具和网络上的 Claude Code 为使用 Claude 进行工程工作的开发人员提供了安全性和生产力方面的重大改进。
要开始使用这些工具:
- 在 Claude 中运行
/sandbox并查看 我们的文档 了解如何配置此沙箱。 - 访问 claude.com/code 在网络上试用 Claude Code。
或者,如果您正在构建自己的代理,请查看我们的开源沙箱代码,并考虑将其集成到您的工作中。我们期待看到您构建的内容。
要了解有关网络上 Claude Code 的更多信息,请查看我们的发布博客文章。
致谢
文章由 David Dworken 和 Oliver Weller-Davies 撰写,Meaghan Choi、Catherine Wu、Molly Vorwerck、Alex Isken、Kier Bradwell 和 Kevin Garcia 撰稿