Claude Code 沙盒化更新

Anthropic 为 Claude Code 引入了沙盒化功能,以增强安全性与自主性。通过实施操作系统层级的边界,该系统在内部使用中减少了 84% 的权限请求,在允许智能体在定义的限制内更自由地运行的同时,降低了提示词注入(prompt injection)的风险。

操作系统层级沙盒架构

Claude Code 利用操作系统层级的原语——具体为 Linux bubblewrap 和 MacOS seatbelt——来强制执行安全边界。这种架构确保了即使在发生成功的提示词注入,智能体仍保持隔离状态,无法访问敏感的系统文件或与未经授权的服务器通信。

文件系统隔离

文件系统隔离限制了 Claude Code 对特定目录的访问。沙盒允许对当前工作目录进行读写访问,同时阻止对该范围之外的任何文件的修改。这可以防止受损的智能体修改敏感的系统文件或窃取 SSH keys。

网络隔离

网络隔离确保了 Claude Code 只能连接到经过批准的服务器。所有互联网访问都通过连接到运行在沙盒之外的代理服务器的 Unix domain socket 进行路由。该代理强制执行域名限制,并要求用户对新域名进行确认,从而防止敏感数据的外泄或恶意软件的下载。

新的沙盒功能

Anthropic 发布了这项沙盒技术的两种主要实现方式:

沙盒化 Bash 工具

沙盒化的 bash 工具(作为研究预览版在 beta 阶段提供)允许 Claude 执行命令而无需不断的权限请求。如果智能体尝试访问定义沙盒之外的资源,用户会立即收到通知。

此运行时环境(runtime)也作为开源研究预览版通过 anthropic-experimental/sandbox-runtime GitHub 仓库提供,以帮助其他开发者构建更安全的智能体。

Web 版 Claude Code

Web 版 Claude Code 为每个会话提供了一个隔离的云端沙盒。为了保护敏感凭据,系统确保 git 凭据和签名密钥(signing keys)永远不会存储在沙盒内。

相反,由一个自定义代理服务处理所有 git 交互。沙盒内的 git 客户端使用作用域凭据(scoped credential)向该代理进行身份验证;随后代理会验证交互(例如,验证分支目标),并在将请求转发给 GitHub 之前附加必要的身份验证令牌(token)。

实现与访问

开发者可以通过以下方式启用这些功能:

  • 本地沙盒化:在 Claude Code 中运行 /sandbox 命令。
  • 基于 Web 的沙盒化:通过 claude.com/code 访问该工具。
  • 智能体开发:将开源的 sandbox-runtime 集成到自定义的智能体工作流中。

Sources

相关