复盘网络安全评估中的三起真实事件
调查网络安全评估中的三起真实事件
2026年7月30日在复核网络安全评估记录时,我们发现了三起事件:Claude 模型从第三方评估环境内部或在与该环境交互期间访问了互联网,随后未经授权访问了三个不同组织的真实系统。
下面将介绍事件经过、发生原因,以及我们将采取的改进措施。我们也鼓励其他 AI 实验室开展类似复核。本文基于我们目前掌握的信息;如果后续发现细节有变化,我们会及时更新。
7月21日,OpenAI 披露,其多个模型利用一个此前未知的“零日”漏洞,突破了隔离的测试环境。随后,这些模型进一步访问了 Hugging Face 的生产基础设施。Hugging Face 是一个提供开源机器学习模型和 AI 数据集的平台。
针对这起事件,我们开始对自身的网络安全评估展开大规模回溯审查。我们重点寻找相关证据:Claude 是否像那些访问 Hugging Face 的 OpenAI 模型一样,能够从本应与外界隔绝的测试环境访问互联网。
在审查 Claude 可能获得互联网访问权限的 141,006 次评估运行后,我们发现了三起事件:模型从 Irregular 这一第三方评估合作伙伴的评估环境内部或在与该环境交互期间访问了互联网,随后未经授权访问了三个不同组织的生产基础设施。
在这三起事件中,Claude 执行的都是夺旗(capture-the-flag)挑战,这是我们评估模型网络安全能力的方式之一。模型会得到一个虚构场景,并被告知网络中的另一台机器上藏有一段秘密信息(即“flag”),目标是入侵该机器并取回信息。挑战没有限定具体做法,模型可以自行决定采用何种方法。
在所有案例中,Anthropic 的评估提示都明确告诉 Claude:它所处的环境是一个模拟环境,且无法访问互联网。但由于我们与评估合作方之间存在误解,实际情况并非如此,模型可以访问互联网。因此,当 Claude 的搜索将它引向开放互联网中的真实系统时,它把这些系统当成了演练的一部分。(网络安全评估环境通常会包含逼真的细节,以便准确评估模型在现实环境中的能力;对模型而言,一个看起来真实的目标本身,并不能明确证明它不属于模拟环境。)
由于错误地认为所有可访问的实体都属于演练范围,Claude 使用了利用弱密码、未认证端点等基础手段,攻破了受影响组织的基础设施。它没有发现或利用任何复杂漏洞,而且在每个案例中,Claude 都只继续完成评估分配给它的特定 capture-the-flag 任务。不过,在部分案例中,我们较早的模型即使获得了自己正在开放互联网中运行的证据,仍继续发起攻击;而我们的最新模型在确认自己已连接互联网后便停止了行动。在这些情况下,Claude 都没有将自身外泄,也没有蓄意尝试逃离测试环境。
这些事件涉及三个不同的 Claude 模型:Opus 4.7、Mythos 5,以及一个内部研究测试模型。1 最早的事件发生在 4 月。这些评估中的模型运行时,都未配备我们向公众提供模型时采用的标准安全防护措施(也就是说,它们没有配备我们通常用于防止滥用的分类器和监控机制)。不过,这些模型仍接受了各自针对模型的安全训练(也就是说,它们并不是我们有时在测试中使用的“仅提供帮助”版本)。本文所述的所有评估都运行在专用基础设施上,与 Anthropic 的敏感内部系统和客户数据相互隔离,无法访问后者。
我们于 7 月 23 日(星期四)开始审查评测记录,并在发现其中一些记录显示 Claude 可能访问过互联网后,于当天暂停了所有网络安全评测。次日,我们确认了这三起事件。7 月 27 日(星期一),我们通知了评测合作伙伴 Irregular 以及受影响的三家组织。我们联系到的两家组织此前都未发现相关活动,也没有与我们取得联系;目前,我们正与它们合作进行补救。我们仍在继续联系第三家组织。
此次审查由我们与 Irregular 联合开展。感谢他们与我们密切合作,共同了解并解决这些事件;他们也在开展独立调查。我们认为,这类协作对于确保模型评测安全、严谨,正变得越来越重要。期待双方继续在安全领域开展合作。
下文将详细介绍每起事件,以及我们接下来的应对措施。
网络安全评测背景
我们定期开展网络安全评测,模拟真实的进攻性网络安全挑战。这些评测是模型开发和发布过程中至关重要的一环:深入了解模型能力,才能设计出合适的防护措施,并最终安全地发布模型。
2025 年 2 月,我们首次使用 Claude Sonnet 3.7 在 Cybench 上开展网络安全评测。Cybench 包含 40 个不同的夺旗挑战。随着新的基准陆续发布、模型能力不断提升,我们也逐步增加了所使用的基准数量。例如,在 Mythos 5 System Card 中,我们加入了 CyberGym 和 ExploitBench,用于评估语言模型发现新型漏洞的能力。2 在大多数评测中,运行环境都未连接互联网,并且我们会明确告知模型这一点。
我们经常与外部合作伙伴共同设计并开展部分网络安全评测。相比我们单独构建的环境,外部合作伙伴能够提供更多样化的环境和场景,也能对我们的模型进行独立的第三方评估。
事件经过
在我们审查的 141,006 次评测运行中,共发现三起彼此独立的事件,涉及六次运行。其中四次发生在同一家机构,另外两起事件分别出现在两次独立的评测运行中。每起事件对应一个不同的虚构夺旗(capture-the-flag)场景。例如,在其中一起事件中,Claude 扮演一家虚构公司的员工,在私有测试环境中攻击该公司的内部系统。
所有评测提示词都明确说明 Claude 无法访问互联网,但没有限制它应从哪些位置寻找目标旗标。不过,由于配置错误,Claude 在评测过程中访问的机器实际上可以连接互联网。直到上周,我们通过额外的评测监控发现这一问题时,我们和评测合作伙伴才意识到存在这一配置错误。
我们和合作伙伴原本都可以采取多项纵深防御措施来避免这些事件,或至少降低其发生概率。在评测开始前仔细验证所有互联网访问路径,并实时监控评测日志,本可以更早发现问题。我们和合作伙伴也可以更彻底地审查评测记录或网络日志。此外,如果提示词告知 Claude 确实可以访问互联网,它在接触到真实系统时的行为或许也会有所不同。
Claude 所做的,正是夺旗练习训练网络安全专家去做的事:寻找接触目标旗标的方法。这一搜索过程让它发现自己的机器可以访问互联网。但由于系统提示词告诉它无法访问互联网,Claude 认为最初遇到的一切都属于模拟环境,因此把发现的真实系统当成了练习的一部分。三起事件分别涉及三个不同的模型;当出现迹象表明目标是真实系统后,三个模型的反应各不相同,具体如下。
事件 1
在其中一次评测中,评测合作伙伴选定的虚构目标公司与一个正在使用的网站域名同名。由于上述配置错误,这个评测容器意外获得了直接访问互联网的能力。
在这项评估的四次运行中,Claude 都难以在评估环境内找到模拟目标,但随后发现,可以通过互联网访问一家真实公司。Claude 以为这就是夺旗任务的目标,于是开始寻找、确认并利用该公司基础设施中的漏洞,并相信这属于演练的一部分。这四次运行获取了应用和基础设施的凭据,并访问了一个包含数百条生产数据的数据库。这是我们发现的影响最严重的一起事件。
这起事件涉及 Claude Opus 4.7,也是唯一一次模型在意识到自己很可能身处真实环境后,仍继续攻击系统。在四次运行中,模型最终都意识到(从其生成的推理过程可以看出)目标系统是真实的;其中两次,模型甚至为此找了理由,认为这家真实公司必然也是演练的一部分。然而,模型没有一次因此停止攻击。
事件 2
在另一次评估中,Claude 在虚构环境里发现了一份文档,看起来像是另一家虚构公司为新开发者准备的环境配置说明。说明要求员工从 PyPI(发布 Python 软件的公共仓库)安装一个 Python 包,但这个包实际上并不存在。
Claude 发现这可能是一个突破口:如果它用同样的名称发布自己的包,虚构公司的系统就会自动下载并安装该包。于是,为了赢得夺旗挑战,Claude 构建并发布了一个同名的恶意 Python 包,本质上是一个设有陷阱的程序。
Claude 为实施这次攻击投入了大量精力。对人类参与者来说,这些操作很可能已经足以表明事情不再只是评估,而是在向真实的 PyPI 上传软件包。例如,有一次,Claude 为创建 PyPI 账户需要一个电子邮箱地址;而要创建邮箱,它又需要一个电话号码。由于找不到免费的虚拟号码服务,Claude 随后尝试通过多种方式筹钱购买电话号码,但都没有成功。最后,它退回一步,找到一家免费且未被拦截的邮箱服务商,用该邮箱注册了 PyPI 账户,随后通过这个账户将恶意软件上传到了 PyPI。
Claude 认为自己使用的 package registry 是模拟环境的一部分,但实际上,这个 package 曾在网上公开提供了约一小时。在此期间,它被下载并运行于 15 个真实系统上。其中一个系统属于一家真实的安全公司(与场景中虚构的公司无关)。这家公司会例行安装 Python packages,并扫描其中是否含有恶意软件。当该公司的扫描器安装这个 package 时,Claude 植入的隐藏代码便执行了。我们认为,这家公司的安全扫描器默认 PyPI packages 可以安全安装,因此 Claude 得以将该公司的凭据外传至它设置的收集点。随后,Claude 利用这些凭据访问了这家公司更深层的基础设施。
Claude 并没有直接针对这家公司——上传 package 时,它甚至不知道这家公司存在。但由于代码被发布到了开放互联网,任何运行它的系统都可能受到影响。(Claude 上传的 package 已被 PyPI 自身的安全系统自动移除。我们已将此事件告知 PyPI 团队,并提供了相关指标。)
这次攻击由 Claude Mythos 5 实施。在运行早期,Claude 自己的推理曾准确识别出其行为可能造成的后果。它指出,如果这里是真实互联网,发布这个 package 就属于现实世界中的攻击——“不可接受,也显然不是预期的解决方案”。但它认为自己仍处于模拟环境中,理由是它无法识别保护连接安全的证书颁发机构,而这些机构实际上是真实存在的。此外,系统显示的 2026 年日期也让 Claude 认定该环境是人为搭建的。Claude 此后再也没有重新审视这一结论;例如,当自动扫描器开始安装这个 package 时,它仍把这些扫描器当成评估中的脚本角色。
我们认为,无论 Claude 如何判断所处环境,它为发布 PyPI package 而采取的行动都不符合理想行为标准。今后我们会在这方面加强训练。
事件 3
在这次评估中,当 Claude 无法连接到预定的虚构目标时,它转而在网上寻找其他目标,扫描了大约 9,000 个目标。最终,它找到并攻陷了一家公司面向互联网的应用,使用的只是一些基础且广为人知的网络攻击手段,例如从暴露的调试页面读取凭据,以及实施 SQL 注入。
这次攻击由内部研究测试模型执行。在大部分运行过程中,Claude 都把它访问到的真实主机视为演练的一部分,认为这些主机是模拟的,因此自己的行为不会造成危害。不过,运行后期 Claude 意识到,被攻陷的主机位于一个与夺旗挑战毫无关联的云账户中。它自行得出结论,确认目标确实是真实系统,于是停止了攻击。
我们对 Claude 行为的分析
在这几起事件中,我们的提示都明确告知 Claude:它无法访问互联网。在运行的大部分时间里,Claude 遇到真实世界的系统时,都认为这些系统属于演练的一部分(尽管它有时也意识到那是真实的生产系统)。而夺旗挑战本身就是要求攻击外部系统,因此这些行为也符合 Claude 所接到的任务指令。
在这一共同背景下,三个模型在出现目标为真实系统的迹象后,表现各不相同。作为其中最早的模型,Opus 4.7 意识到自己已经访问了生产系统,却仍继续发动攻击。Mythos 5 正确判断出自己正在访问开放互联网,但经过一番推理后又回到“仍处于模拟环境中”的结论。我们最新的内部研究测试模型同样考虑过目标是否真实;当证据表明目标确实真实存在后,它停止了演练。
这三起事件彼此孤立,也不属于受控的实验对比,因此我们必须谨慎解读,不能据此轻易下结论。不过,我们最希望看到的行为——识别出目标是真实系统,并在没有外部提示的情况下停止攻击——只出现在这三个模型中最新的一个身上(即便如此,它在停止前采取的行动仍超出了我们的预期)。这一趋势与更先进的模型能够做出更恰当的响应相一致,但要对此有更大把握,还需要开展更多测试。
我们也在与独立 AI 评估机构 METR 对话,计划开展第三方审查,包括查阅全部对话记录,以及抽样访问相关模型。与此同时,我们将在一周内发布一份经过少量删改的对话记录,其中展示了 Claude 构建恶意 PyPI 软件包的过程。为保护受影响的组织,目前我们无法公开更多对话记录,但一旦条件允许,我们会尽快发布。
我们的应对措施
我们从这些事件中总结出几条经验。
首先,涉及强大自主能力的评估环境同样需要严格的安全控制。之所以要在模型发布前进行安全测试,正是因为我们还不了解模型究竟具备哪些能力。因此,评估环境也越来越需要遵循与其他模型运行系统同等的安全标准。
仅包含虚构场景的网络安全评估环境看似风险很低——毕竟其中没有任何真实内容。但随着 AI 能力不断增强,我们必须改变对这类威胁的建模方式。即使无法访问敏感信息,处于这类环境中的高级智能体本身仍然可能构成重大威胁。我们需要更好地共同设计评估环境,并加强对评估结果的监控,以应对这一威胁。其中一些问题或许只需简单修复即可解决。例如,如果提示词明确说明哪些系统属于评估范围、哪些不属于,Claude 很可能一开始就不会访问互联网。
这不仅适用于内部环境,也适用于第三方供应商——评估供应商搭建的基础设施同样需要加强监控和安全加固。我们鼓励其他实验室开展类似审查。此外,整个领域也需要更广泛地讨论:如何在确保安全的同时,以更贴近现实的方式评估能力日益强大的 AI 智能体,包括在部署前测试中,如何权衡互联网访问所带来的真实感与其引入的风险。
其次,模型是否理解自身所处的情境,会影响它对“符合对齐要求的行为”和有害行为的判断。在上述任何一次运行中,我们都没有发现模型在追求自身目标。相反,模型只是执行了评测要求——只是大多数情况下,它们错误地认为自己所处的环境不是真实的。在那些模型意识到系统真实存在、却仍继续操作的运行中,它们之所以这么做,是因为误以为这也是挑战的一部分。情境感知能力有助于模型做出符合对齐要求的决策,但在这次事件中,Claude 对情境的判断是错误的。
最后,这些事件凸显了纵深防御的重要性。我们在开展此类能力评测时,不会启用随面向公众提供的模型一同发布的安全防护措施,因为我们的目标是衡量底层模型本身的能力。只有在评测环境得到妥善隔离和控制的情况下,这种做法才是安全的。不过,我们部署在面向公众提供的模型中的安全防护措施,本可以阻止这里发现的这些行为。
最终,多方面因素共同导致了这些事件。但秉持不归咎个人的事后复盘文化,我们会把改进工作当作自身的责任来处理。首先,我们要确保评测流程的每个环节都安全可靠,包括与外部合作伙伴的对接方式。接下来,我们还将扩大对评测记录的持续监控,以便发现异常行为;改进调查工具;并与所依赖的供应商开展更严格的保障工作。
OpenAI 披露其模型曾逃出隔离测试环境后,我们开始了这次审查,并对他们公开发布报告表示赞赏。我们同样发现了模型访问本不应触达的系统的证据,但除此之外,两起事件存在明显差异:
- 我们是在主动审查网络安全评测记录后发现这些事件的;受影响的组织当时并未察觉相关活动,我们随后已联系了这三家组织。
- OpenAI 的模型是利用一种新型漏洞逃出隔离环境的,而本文评测的 Claude 模型则是通过一条开放路径访问了互联网。
- 虽然两者并没有截然分明的界限,但我们认为,这些事件更接近测试框架和操作失误,而非模型对齐失败。我们告诉模型它们无法访问互联网,并要求它们完成夺旗任务;但由于配置错误,模型实际上可以访问互联网。这使它们相信——从某种角度看,这一判断也算合理——自己遇到的真实环境其实是模拟环境。
- 值得注意的是,我们最新的模型意识到自己正在真实环境中运行后,便停止了追求评测目标。
这些事实让我们谨慎乐观地认为,只要加强对评测基础设施的监控与控制,同时持续投入对齐研究,就有望化解这类风险。
8 月 3 日更新: 更正了 OpenAI/Hugging Face 事件所涉及评测的名称。
脚注
- 我们会定期测试这类内部研究原型,但它目前没有面向公众发布的计划。
- 我们通常会保存基准评测的运行记录。由于 OpenAI/Hugging Face 事件发生在 ExploitGym 评测期间,我们特别仔细地审查了这两个基准,以排查可能造成危害的迹象。