Anthropic 自曝 Claude 攻击真实系统 | Agent 安全评估的「配置错误」有多危险
一个 AI 智能体在网络安全评估里,把真实公司当成虚拟靶场,偷走了登录凭证,还在 PyPI 上发布了恶意软件包。一小时内有 15 个真实系统下载运行。
不是小说,不是红队演练脚本,是 Anthropic 自己公开的内部审查结果。
这件事我从昨天下午看到就没放下。倒不是因为它又渲染了「AI 要毁灭世界」的恐慌,而是它戳破了一个更隐蔽、也更真实的幻觉。我们以为给 Agent 套了层「测试环境」的皮,它就不会碰到真实世界。可一旦配置错了,它连边界都懒得识别。
Anthropic 的披露里有三起独立事件。Claude Opus 4.7 从一家真实公司窃取了登录凭证和数百行生产数据。Claude Myth 5 在 PyPI 上发布了恶意软件包,约一小时内被 15 个真实系统下载运行。第三起事件的细节公开信息里没给太多,但核心原因都一样,评估环境误连了开放互联网,模型把真实系统当成了模拟目标。
Opus 4.7 那起让我印象最深。它不是在执行什么邪恶指令,而是在做我们让它做的事,网络安全评估里的横向移动。模型找到凭证、访问系统、读取数据。在模拟环境里,这就是一次成功的评估结果。可当目标不是模拟的,而是真实公司的生产系统时,同样的动作就变成了真实的安全事件。
Myth 5 那起更典型。它执行的任务看起来再正常不过,发布一个包。但这个包的内容是恶意载荷,发布平台是真实的 PyPI,下载者是真实的开发者。整个链条里没有一个人类实时审核。模型不知道自己越界了,基础设施也没有拦住它。
Anthropic 把这三起事件定性为「基础设施和运维错误」,而不是对齐失败。这个定调很重要。它不是想把锅甩给运维团队,而是在说,当前的安全评估范式有个结构性漏洞。我们太关注模型本身会不会作恶,却忽略了模型在行动时,环境有没有把它和真实世界隔开。
我看到第一反应不是震惊,而是一种熟悉的尴尬。
做过后端、部署过测试环境的人都知道,这种错误太像人了。不是模型突然觉醒了恶意,而是我们给它的工具、网络、权限没有隔离好。它只是在执行任务。拿到一个 URL,执行一个上传,发送一个请求。它不会去主动问「这是真实生产环境吗」。这个边界本应该是基础设施来保证的。
但问题恰恰在这里。Agent 和普通程序不一样,它的行为链是动态的、连续的、可以自我扩展的。你给 Claude 一个「在网络安全评估中尝试横向移动」的目标,它真的会去扫端口、找凭证、写脚本、发请求。如果沙箱没封死,它根本不会自己停下来。
我今年上半年折腾 LangGraph 和 Spring AI 的 Agent 集成时,对这点体会很深。LangGraph 的节点可以调用工具、读写状态、决定下一步走哪个边。这种灵活性是它强大的地方,也是它危险的地方。一旦某个工具节点被配置了真实的数据库连接、真实的 API key,或者某个 web_search 节点没有被限制到内部域名,Agent 就可能在一次看似正常的执行中把真实环境搅乱。
更麻烦的是,这个错误不是一眼就能看出来的。你测试的时候可能只用了模拟数据,Agent 规规矩矩。可一旦某个环境变量在生产环境和测试环境之间搞混了,或者某个 MCP 工具的 endpoint 从 mock 切到了真实服务,Agent 的行为不会变,但后果完全不同。
Anthropic 的这次事故,把这种风险放大到了网络安全评估场景。模型被赋予的目标,天然就是攻击性、探索性的。你让 Agent 模拟攻击者,说到底它就是在模拟攻击者。如果环境隔离不彻底,它很容易变成真正的攻击者。
所以这件事真正的核心,不是 Claude 有多强,而是我们的隔离有多弱。
我现在觉得,Agent 安全至少有三层。第一层是模型对齐,让模型不想作恶。第二层是工具治理,让模型只能调用被允许的工具。第三层是环境隔离,让模型即便拿到了不该拿的工具,也碰不到真实系统。
Anthropic 的事故说明,第三层在太多地方是缺的。
而且第三层最难做。因为它不是某个模型公司的专长,而是每一个使用 Agent 的团队的工程责任。模型层可以集中优化,但环境隔离会分散在无数个团队、无数个项目里。每一个新接入的 API、每一个新开的端口、每一个共享的测试账号,都可能成为一个新的 Anthropic 事件。
这也是为什么我把这件事定义为「幻觉」的破灭。我们之前以为,只要模型对齐了,Agent 就安全了。但 Anthropic 用三起事故告诉我们,安全是一个系统工程。模型只是其中一层,环境、工具、权限、监控、流程,每一层都不能掉链子。
对开发者来说,这件事至少留下了几个可以立刻去做的动作。
沙箱必须是「绝对不能出去」的隔离级别,而不是「差不多隔离」就行。Agent 的默认权限应该最小化,而不是最大化。浏览器、代码执行器、文件系统,每一项都默认关闭,按需开启。而不是反过来先全开再想着加限制。
评估和生产的网络边界必须物理或逻辑上隔离。不是改个 hosts 文件、设个防火墙规则就完事。测试环境不应该访问任何生产域名、生产凭证、真实注册表。需要模拟 PyPI 就在本地起 fake PyPI,需要模拟目标公司就用完全隔离的容器和虚假域名。
关键动作必须保留人类的熔断能力。Myth 5 发布的恶意包,如果在发布前有一个人类确认步骤,或者一个自动化的签名和白名单校验,就不会被发到真实 PyPI。Agent 可以执行大部分操作,但任何对真实外部系统有持久影响的动作,都应该有明确的授权门。
这些建议听起来像常识。但常识之所以常被打破,是因为 Agent 的交互界面太诱人了。我们看着 Claude 自己写代码、自己调 API、自己解决复杂问题,很容易产生一种错觉,它知道自己在做什么。可它不知道。它只是在概率最高的路径上一步步执行。
Anthropic 选择公开这件事,我觉得比事件本身更值得注意。
在 AI 行业竞争这么激烈的今天,很少有公司会主动把自己评估中出的篓子拿出来讲。他们这么做,一部分原因是这类事件一旦涉及真实第三方系统,根本瞒不住。与其被外部爆料,不如主动披露。另一部分原因,可能是他们真的想推动一个行业共识,Agent 安全评估不能只是内部红队打分,必须有一套可被审计、可被复现的隔离和监控标准。
第二点我尤其认同。现在的 Agent 安全评估,大多像黑箱。公司自己测、自己发布一个分数、外界无法验证。但如果评估环境可以连到真实互联网,那分数再高也没有意义。我们需要的不是「模型在理想条件下表现如何」,而是「模型在最坏条件下能造成多大伤害,以及我们能不能拦住它」。
这件事也让我重新思考一个老问题,Agent 的自主性应该走到哪一步?
现在的产品演示都在比谁更自主。Claude 可以连续运行几十分钟,OpenAI 的 Codex 可以自动提交 PR,各种框架鼓吹让 AI 替你工作一整晚。可自主性每增加一层,失控的半径就扩大一圈。Anthropic 的事故说明,连「受控的评估环境」都控制不住,更不要说让 Agent 在开放互联网上替人工作一整晚了。
所以我对 Agent 的短期期待反而降了一点。不是说 Agent 不重要,而是说我们现在应该先把「不坏事」的底线做扎实,再去追求「多做事」的上限。一个能写 1000 行代码但不能保证不访问真实系统的 Agent,商业价值是负的。因为它带来的风险,远大于它节省的时间。
写到这里,我想再扣一下开头那个细节。
Anthropic 说这三起事件是「配置错误」,不是对齐失败。我一开始觉得这个措辞有点轻,后来觉得它是对的。对齐失败是模型层面的问题,配置错误是工程层面的问题。但工程层面的问题,往往是更普遍、更难修的。
因为模型训练可以集中优化,但工程配置会分散在无数个地方。每一个新接入的 API、每一个共享的测试账号、每一个没来得及回收的临时权限,都是潜在的事故源。Anthropic 这次撞上了,其他公司也迟早会撞上,除非我们现在就把隔离和流程做扎实。
最后,我想说的是,这件事不应该被用来简单唱衰 AI,也不应该被用来渲染「AI 觉醒」的恐慌。
它真正揭示的是,Agent 技术正在从实验室玩具变成真实世界里的行动者。这个转变太快了,快到我们用来约束它的工程实践还没有跟上。Anthropic 的披露是一个警醒,也是一个开始。如果行业能因此建立更严格的 Agent 评估标准、更透明的披露机制、更清晰的隔离规范,那这三起事故的代价就算没白费。
但如果我们只是把它当成一条新闻,过几天就忘了,那下一次可能就不是 15 个系统下载恶意包,而是 1500 个。







