ITPub博客

首页 > 人工智能 > 人工智能 > 通过沙箱使Claude Code更安全、更自主

通过沙箱使Claude Code更安全、更自主

人工智能 作者:ITPUB社群 时间:1970-01-01 08:33:45 0 删除 编辑


Claude Code 的全新沙箱功能、bash 工具以及 Claude Code on the web,通过启用两个边界——文件系统隔离和网络隔离——减少了权限提示并提升了用户安全性。

在 Claude Code 中,Claude 与你并肩编写、测试和调试代码,浏览你的代码库、编辑多个文件并运行命令来验证其工作。赋予 Claude 如此大的代码库和文件访问权限可能带来风险,尤其是在提示注入的情况下。

为帮助解决这一问题,我们在 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 无法窃取你的 SSH 密钥,也无法向攻击者的服务器发送回连请求。

要开始使用此功能,请在 Claude Code 中运行 /sandbox,并查看有关我们安全模型的更多技术细节。

为了让其他团队更容易构建更安全的智能体,我们已将此功能开源。我们认为其他人应该考虑为其自己的智能体采用这项技术,以增强其智能体的安全态势。

Claude Code on the web:在云端安全运行 Claude Code

今天,我们还发布了 Claude Code on the web,使用户能够在云端的隔离沙箱中运行 Claude Code。Claude Code on the web 会在隔离沙箱中执行每个 Claude Code 会话,在其中以安全可靠的方式对其服务器拥有完整访问权限。我们将此沙箱设计为确保敏感凭据(例如 git 凭据或签名密钥)绝不会与 Claude Code 一起位于沙箱内。这样,即使沙箱中运行的代码遭到入侵,用户也能免受进一步伤害。

Claude Code on the web 使用自定义代理服务,透明地处理所有 git 交互。在沙箱内,git 客户端使用专门构建的作用域凭据向该服务进行身份验证。代理会验证此凭据以及 git 交互的内容(例如确保仅推送到已配置的分支),然后在将请求发送到 GitHub 之前附加正确的身份验证令牌。

开始使用

我们新的沙箱化 bash 工具和 Claude Code on the web 为使用 Claude 进行工程工作的开发者带来了安全性和生产力方面的显著提升。

要开始使用这些工具:

  • 在 Claude 中运行 `/sandbox`,并查看我们关于如何配置此沙箱的文档。

  • 前往 claude.com/code 试用 Claude Code on the web。




转载声明:本文为转载整理,原文版权归原作者及原站点所有。

原文来源:Anthropic Blog

原创地址:https://www.anthropic.com/engineering/claude-code-sandboxing

原文作者:Anthropic Blog;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2022-11-21

  • 博文量
    1090
  • 访问量
    546808