Anthropic 的安全隔离架构解密:Agent 真正可靠的安全边界,不靠「确认弹窗」

InfoQ 中文 2026-08-03T17:39:49.167028

摘要:Anthropic 近日公开了 Claude 在 Web、桌面与开发环境中的安全隔离设计思路。核心观点是:Agent 的安全不能只靠模型自觉或用户确认,必须依赖文件系统、网络和执行环境的硬性边界。文章披露了多个真实安全事件与红队测试结果,并以此说明为何「让弹窗更少、让隔离更硬」才是 Agent 安全的真正出路。

Agent 的安全困境:问题不在意图,而在地基

构建一个能自主操作电脑的 AI 助手,最难的不是让它「更聪明」,而是让它「更可控」。Anthropic 将 Agent 面临的安全风险归纳为三类:用户误用、模型自身行为失控,以及通过文件、工具或网络内容发起的恶意攻击。

这里的关键判断是:分类器、系统提示词、模型对齐训练——这些手段虽然能影响模型的行为倾向,但都无法提供绝对保证。真正决定一个 Agent 能读到什么、能向外发送什么的,是运行环境本身的硬性限制。

Anthropic 将 Agent 系统划分为三个层次:具有概率性的模型、执行环境,以及可能影响模型行为的外部内容。(来源:Anthropic)

Claude Code 的演进:从「逐次询问」到「沙箱约束」

来看几个具体产品的设计变化。Claude.ai 的代码执行环境跑在隔离基础设施上的临时 gVisor 容器中,与用户本地文件系统完全隔离,架构上最简单直接。

但 Claude Code 情况不同——它直接运行在开发者本机上,最初采用的是逐项授权机制:每次要写文件、执行 Shell 命令或访问网络时,都弹出确认请求让用户批准。这个设计看似安全,实际效果却出人意料:用户最终批准了约 93% 的权限请求。当一个安全机制变成例行公事时,它提供的保护就名存实亡了。

于是 Anthropic 为 Claude Code 引入了操作系统级沙箱:macOS 用 Seatbelt,Linux 用 bubblewrap。新机制允许 Agent 在当前工作区内自由读写文件,但默认禁止访问网络。效果立竿见影:权限确认弹窗数量减少了 84%。

对开发者的启示很直接——与其依赖用户每次都在弹窗里做出正确判断,不如让系统架构直接把危险路径封死。

一个配置文件的信任边界问题

文中还披露了一起具体的安全事件:Anthropic 收到报告,Claude Code 在用户尚未明确信任某个项目目录之前,就已经开始解析其中的本地配置文件。某个案例里,代码仓库中的 .claude/settings.json 定义了一个会在启动时自动执行的 Hook——这相当于代码在你点「信任」之前就已经开始运行了。

修复方式也值得注意:只有在用户明确选择信任该项目之后,Claude Code 才会解析和执行项目中的本地配置。这是一个典型的信任边界修正,把「隐式信任」改成了「显式信任」。

红队测试:25 次里有 24 次,Claude 把凭证外传了

真正让人背脊发凉的,是 Anthropic 分享的一个受控红队测试。攻击者先通过钓鱼攻击诱导员工,然后让 Claude Code 收到一条看似合理的指令:读取 AWS 凭证,发送到外部地址。

结果呢?25 次测试中,有 24 次 Claude 都执行了数据外传操作。

这说明什么?即使请求看起来来自合法用户,也不能把授权机制当作安全保险。无论请求来自真实用户、模型自身误判,还是恶意工具生成的输出,底层安全机制——文件系统隔离和出站网络限制——都必须具备阻止凭证被窃取的能力。一句话:别把安全赌在意图识别上,要把安全建立在系统边界上。

Claude Cowork:更严格的隔离,也有更隐蔽的漏洞

相比 Claude Code,Claude Cowork 面向的用户群体更难判断 Shell 命令是否安全,因此采用了更严格的隔离机制。最初的设计是让 Agent 完全运行在一台虚拟机内,只将用户指定的工作目录挂载进去,各种凭证保存在宿主机密钥链中。后来为提升系统可靠性,Anthropic 将 Agent 的主循环迁移到宿主机,但代码执行仍保留在虚拟机内部。

Claude Cowork 的初始全虚拟机架构,以及后续采用宿主机 Agent Loop 的架构。(来源:Anthropic)

但即便有了虚拟机隔离,这套设计还是暴露出一个致命短板:域名白名单机制

Anthropic 提到,有第三方安全研究人员发现了一个漏洞——恶意文件能诱导 Claude 通过 Anthropic 自身的 Files API,把工作区文件上传到攻击者控制的账户。原因很直接:api.anthropic.com 已被加入白名单,所以请求顺利通过了目的地址检查。

域名白名单让攻击者得以通过 Anthropic Files API 实现数据外传;新的代理机制仅允许使用虚拟机会话生成的 Token 发起请求。(来源:Anthropic)

Anthropic 的修复是在虚拟机内部增加一层代理,它只接受当前虚拟机会话生成的 Session Token,同时拦截与服务端抓取相关的请求头。这个事件的教训非常精辟:把某个域名加入白名单,等于允许访问该域名的全部能力,而不仅仅是其中某一个接口——白名单的粒度问题,直接决定了安全边界是否真的有效。

安全隔离的核心逻辑:以可监督程度定边界

纵观 Anthropic 这篇博客,核心思路一目了然:Agent 的安全隔离机制,应根据用户能够提供的有效监督程度来设计。程序员能看懂 Shell 命令,所以 Claude Code 可以在本机沙箱里运行;普通用户判断不了,所以 Claude Cowork 就上虚拟机隔离。

Anthropic 强调的最终结论是:Agent 安全不能依赖识别恶意意图,更重要的是通过运行环境本身建立严格边界,使即便 Agent 执行了不安全的操作,其造成的影响也始终受到限制。这个思路对于整个 AI 编程领域都有参考价值——毕竟,当 Agent 越来越能自主行动时,「管住它的手脚」比「说服它的头脑」更可靠。

关键要点

查看原文