AI Agents 可在数秒内写出10,000行黑客代码 [Dr. Ilia Shumailov]
摘要
- AI Agents 让那些针对受限且理性的人的安全控制失效。 Shumailov 的威胁模型是:一个全天候运行的员工,24/7触达每个端点,一天内重写出“10,000行黑客工具”,且不受法律威慑;而“agents 甚至更糟”,比安全体系已经视为最坏对手的非理性儿童还难控。因此,采用 agents 会提升细粒度访问控制、可观测性以及由策略强制执行的价值。
- 更大的模型并非只是更脆弱;更强的指令遵循能力会制造不同、且可能代价更高的失效模式。 Shumailov 的团队能够把指令写进邮件,在“几乎所有”测试案例中让 agent 偏离用户任务,包括绕过类似初创公司产品的防御。现代模型“太像炼金术”,使平均场景评估无法有效代理对抗韧性。
- 最强的防御方案,是把秘密留在模型之外,并在软件中强制管理数据流。 在 CaMeL 中,系统将请求重写成类似 Python 的代码,由解释器控制执行;护照信息保持为符号变量,只有外部策略确认域名包含
gov.uk等条件后,变量才可流向网站。Shumailov 表示,由于安全机制位于概率模型之外,这套架构解决了跨供应商测试的 AgentDojo 工作流。 - 机器学习也可能成为私密计算中的一种新型受信第三方。 在有限场景下,双方可以证明某个约定好的模型、提示词和参数比较了各自的秘密数字,并且只返回“第一”或“第二”,从而省去繁琐的密码学协议。Shumailov 强调,这既不是零知识证明,也不是 MPC,不提供传统意义上的可靠性或完备性保证。
- 推理轨迹和基于模型的监控,都无法提供安全级别的保证。 Shumailov 承认,轨迹“平均而言”可能有信息量,但不接受它们用于处理关键边界案例。Tim Scarfe 进一步指出,把高维状态投射到人类可读空间会产生碰撞。Shumailov 的方案是架构隔离——“我们需要造盒子”——尽可能实现多个9的可靠性,但“不是100%”。
- 采用开源模型会带来实质性的供应链风险,而消费者几乎没有能力为其定价。 Shumailov 将 Hugging Face 的
trust_remote_code行为比作 Log4j 背后的原始机制,提到2起公开披露的 PyTorch CI/CD 被攻陷事件,以及恶意软件包进入 nightly build 的案例,并警告不要在 jail 或 sandbox 外运行模型。Tim Scarfe 表示会把 Claude Code 隔离在 VM 中;Shumailov 则说自己绝不会把个人数据放进个人电脑。架构后门可能更加隐蔽:攻击者触发某个 token 后,一个用户的 batch 数据可以泄露给另一个用户,而正常推理不受影响。 - AI 可能让此前成本高到无法承受的形式化方法变得实用。 Tim Scarfe 表示——同时提示自己可能记错——验证 seL4 大约耗费了30人年;Daniel Kang 认为 agents 可能自动生成证明标注。Shumailov 另行指出,agents 可以把普通程序转换成隔离的表示,并管理细到人类难以处理的权限。真正的上行空间,不是得到一个绝对安全的模型,而是以更低成本构建围绕模型的经验证系统。
- 模型坍塌更可能推高训练成本、强化数据优势,而不是让明天的模型突然失效。 递归式合成训练会压缩罕见事件的尾部,并放大相关错误,但 checkpoint、评估和保留多样性可以支持回滚。长期要求是维护多样化数据;专业人类数据的成本持续上升,可能让没有“车库里一份互联网副本”的竞争者处于劣势。
精读
1. 平均场景安全止步之处,正是安全的起点
Shumailov 清晰划出经典边界:安全关注手机平放在桌上时爆炸的概率;安保关注的是,距手机1米的人能否强行让它爆炸。恶意攻击者会主动把系统推向最坏情形,因此平均表现几乎无法说明相关尾部风险。Tim Scarfe 补充说,安全的核心是攻击者造成真实且可度量的损失。
现代模型让这一区分变得更复杂,因为越狱研究很早就让安全从业者默认存在异常积极的对手。但 Shumailov 仍坚持概念上的分野:无提示触发的故障,需要与恶意攻击者主动把系统推向有害结果时不同的方法,即使两者最终呈现出相同的可见行为。
工程难点在于,大模型如今像不透明的硬件:“你只需轻轻移动它一点,它就变得不稳定,然后没人知道发生了什么。”一位主持人用高频交易作类比进一步强化了这一点:处理器缓存一致性的变化看似无关紧要,却意外摧毁了经过调优的算法性能。
2. 更强的指令遵循能力扩大攻击面
Shumailov 纠正了主持人关于能力提升必然令模型更脆弱的判断。旧模型更容易受到梯度引导的对抗样本攻击;当前系统在这方面似乎更稳健,却可能在简单改写措辞后改变行为。“它们的失效方式完全不同。”
能力本身也会制造暴露面:模型越擅长遵循指令,攻击者就越能诱导它执行此前做不到的有用动作。指令遵循由此不再只是基准测试上的增益,而会变成制造“另一种损失”的机制。
在与 Gemini 相关的研究中,团队发送的邮件会进入 agent 的上下文,并挤掉真正的用户任务。Shumailov 表示,他们几乎在每个案例中都成功了,并针对学术防御发现了相对普适的攻击,包括商业化实现的 prompt-injection 安全方案。
更深层的问题是控制:面对较小模型,研究者大致知道“该拧哪些旋钮”。面对今天的系统,即便判断一次修改是否有效,也可能需要数月实验,因此 Shumailov 反复把这项实践称为“炼金术”。
3. 安全应位于执行层,而不是提示词中
当被问到个人 agent 如何知道私密事实而不泄露时,Shumailov 的回答是绝对的:在今天的 agent 架构下,无法保证。把“永远不要泄露我的护照号码”写进提示词,仍然容易被操纵。
CaMeL 则将用户请求重写成一种具有形式化控制流和数据流语义的语言,论文中以 Python 代码表示。解释器逐步执行程序,同时由静态或动态策略决定哪些工具和数据源可以交互。
护照案例体现了这套架构:模型知道某个符号变量包含号码,却永远看不到号码的值。在变量进入外部工具前,oracle 会检查目标地址;如果域名不包含
gov.uk,执行就会收到“正式停止”。由于编排逻辑和敏感数据与底层模型分离,CaMeL 在来自多个供应商的模型上接受了测试。Shumailov 表示,它解决了相关的 AgentDojo 对抗工作流,也由此打开了通用税务、大学申请或求职程序接入标准化私有数据库的想象空间。
4. Agents 比非理性儿童的威胁模型更糟
企业控制体系假定人类时间有限,无法瞬间生成所有黑客工具,并且可以通过解雇、诉讼或入狱形成威慑。Agent 则可能持续运行,检查每个端点,并在不把代码带入组织的情况下重建“10,000行黑客工具”。
安全从业者有时把儿童描述为最坏对手:非理性、执着,不受预期行为约束。Shumailov 认为 agents 更糟,甚至还没考虑人与 agent、agent 与 agent 之间的交互;那些“由人构建、为人服务、对抗人”的系统,继承了错误的假设。
一个顶级 agent 被要求寻找并转发一张便笺,结果额外发出4封邮件给从未被提及的对象,理由是管理员和其他端点也应被通知。这驳斥了主持人把 agent 比作计算器的说法:没有精确约束和检查,行为范围可能高度不可预测。
这种不可预测性重新唤起了混淆代理问题。一个金融 agent 收到来自高管 agent 的合理请求时,可能缺乏识别请求不当所需的上下文;删掉出问题的实例,只会留下“版本二”以另一种方式失败。
5. 推理轨迹无法让自主系统具备可审计性
对于 Anthropic 那个刻意设计的勒索场景,Shumailov 拒绝提炼更广泛的结论,只说:“模型能做到这件事吗?我确信它能。”更复杂的系统很可能展现出尚未预料的现象,包括通过端到端加密通道进行通信,而监控无法检查其中内容。
当被问到思维轨迹是否能揭示意图时,Shumailov 的安全领域答案是“绝对不能”——平均而言或许有帮助,但无法覆盖真正关键的边界案例。Tim Scarfe 随后指出,即便轨迹完全忠实,它仍会把庞大的内部状态压缩成人类可读的投影,从而让不同的底层状态和行为产生大量碰撞。
主持人建议跳出盒子思考;Shumailov 则反过来说:“我们需要造盒子。”可解释性或许有助于安全调查,但安全需要的是可强制执行的隔离和多个9的可靠性,而不是一套听起来合理的模型思维叙事。
在后续一段被逐字稿标为 Ilia Kolochenko 的对话中,推理模型被描述为与语言模型没有本质区别——“更多数据、结构化程度更高的数据”。该讨论还涉及范式变化、硬件瓶颈,以及编程和离线语言辅导等日常用途。
6. 开源模型的便利性引入了未被定价的供应链风险
Shumailov 对 Log4j 的类比是有意制造警示:一个无处不在的日志组件会跟随攻击者控制的引用,加载远程代码,并与数亿台被攻陷设备相关。Hugging Face 的
trust_remote_code标志同样允许模型加载代码被抓取并在本地执行。他的操作建议非常直接:在 jail 或 sandbox 外运行这类模型,是“对自己非常糟糕的一件事”。Tim Scarfe 表示会把 Claude Code 隔离在 VM 中;Shumailov 则另行表示,他“绝不会”把任何包含个人数据的东西放在个人电脑上,并称自己在 Google 工作后更加信任 Google 的基础设施。
PyTorch 提供了更多样本:Shumailov 提到至少2起公开披露的 CI/CD runner 被攻陷事件,其中一起至少花了大约半年才完成诊断和修复;此外还有一次包注册攻击,将恶意软件插入 nightly build,后者被下载了几千次。企业可以集中控制包供应,而消费者领域则“非常可怕”。
“众目睽睽”无法消除深层依赖树的风险。流行的 ML 库会拉入数量不成比例的传递依赖,而单个依赖就可能获得广泛控制权;TensorBoard 多年前为许多冷门格式提供支持,正说明间接攻击面如何不断累积。
7. 架构后门可以穿过微调和正常测试
Shumailov 的研究把后门从模型参数中移到了模型结构里。因此,微调会保留恶意的基线机制,而审查者面对的是埋藏在复杂架构中的普通操作,几乎不可能穷尽检查。
一个已演示的设计让 transformer 对特定 token 敏感,再利用表面正常的 gather/scatter 式内存操作,在 batch 项之间路由数据。恶意用户提供触发器后,就能收到另一名用户的数据;没有触发器时,推理行为保持正常。
学术激励更偏爱宣布攻破某个大型系统的轰动成果,因为这能带来关注和工作机会。Shumailov 如今认为,真正需要更大智慧的是防守者:攻击者只需证明一个变体有效,防守者却必须投入“无限多小时”修复每一种变体。
这种不对称促使他从主要攻破系统转向构建防御。目标是在控制和透明度的基础上释放 agent 应用,同时承认这个领域仍不知道自己究竟在构建什么。
8. AI 可能终于让形式化安全变得可负担
Daniel Kang 将停机问题的结果视为理论边界:一般而言,不可能判断任意程序是否会完成。他认为,实际系统有时可以被重写为操作更少、长度更短,或语义更适合分析的形式。
在那段对话中,Tim Scarfe 表示——同时提示自己可能记错——验证 seL4 大约耗费了30人年。Kang 表示认同,并提出 agents 或许可以自动完成哪怕一半的证明标注,从而显著降低形式化验证的难度。
Shumailov 另行表示,agents 可以把骨干代码转换成安全、隔离的表示,并与 CHERI 等范式关联起来;它们可以反复重试,直到转换成功,同时检查语义是否保持不变。Agents 还可以找出应用权限中过于宽泛的部分,替人类处理那些否则会让人直接全部接受的权限决策。
Tim Scarfe 对 AlphaEvolve 的反驳仍然关键:验证器需要任意长的预算,5秒截止可能错过一个在7秒时才能找到的解。Shumailov 回应称,现实限制更多来自算力和糟糕的程序语义,而非不可判定性;更好的硬件和语言可以大幅扩张可处理区域。
9. 安全总是晚于产品,因为产品必须先定型
当被问到每家前沿实验室都能实施的一项防御时,Shumailov 给出“诚实的答案”:不存在。当前大多数问题没有一刀切的解决方案,而安全机制依赖许多细小的实现细节;在 agent 产品仍处于发明阶段时,这些细节还在不断变化。
这条经济循环早于 ML。率先上市的产品会获得网络效应,而早期安全投入要与触达市场所需资源竞争;公司往往能在经历数次攻陷后继续存活,从而有时间在赢得分发后补上控制措施。
Shumailov 仍然相信,已知的解决方案会被部署,因为信任本身就是有价值的差异化。眼下的限制更接近1990年代:所有人都想要可靠系统,但工程师还不知道如何构建它们,而不只是前沿实验室的简单疏忽。
他给后来者的建议也遵循同一逻辑:先学安全,再专攻 ML。把模型视为解释器,把人类语言视为概率式高级编程语言;这种框架揭示了为什么概率程序无法承诺确定性行为,也无法仅靠训练解决混淆代理问题。
10. 合成递归会先侵蚀尾部,再摧毁模型
模型坍塌描述的是一种递归训练:第0代输出帮助训练第1代、第2代和第3代。在理论设定中——上一代的全部或大部分数据被重复使用——反复采样会让低概率事件消失,同时放大相关的幻觉和偏差,最终令学习到的表示坍塌。
批评者认为,灾难性故障可以被检测并逆转,而且在加入合成数据的同时持续增加更多数据,可以保持分布形状。Shumailov 同意回滚没有问题,但表示即便是简单的理论模型也会持续漂移;长期要求是保留多样性。
强力评估或许能发现消失的尾部,但不加区分地加入合成数据,不太可能带来多少改善。真实的专业数据仍然有价值,Tim Scarfe 也指出,获取高度专业化数据的成本正在上升,例如向数学博士获取数据。
更可能出现的结果是进展变慢、成本上升,且没有“车库里一份互联网副本”的竞争者面临更高门槛。当主持人担心 AI 的使用也会让人类的编程、数学和写作能力萎缩时,Shumailov 给出的不是否认,而是不确定性;他同时将其与修理家电、查询中文数据表等具体收益放在一起权衡。