出事的不是模型:agent 安全的控制层已下沉,评估层还停在模型分
OpenCode 泄露 API key 后,防守方反被自家模型的护栏挡住;同周 GatewayBench 首次给 MCP 网关打分、Intact 首次给网页元素归属打分。控制点已经移到界面,评测还停在模型端。
一、被攻破的那一层,模型厂商管不着
10 月 16 日夜间,开源 AI 编码 agent OpenCode 的在线平台 Console 被攻破;公司在 10 月 17 日(美国周六)上午发邮件并在 X 上通报,1.4% 的 Console 用户受影响,泄露的是用户存在工作区里的各家 API key。OpenCode 把这起事件定性为一次大规模蒸馏攻击。
开发者随后在 Reddit 和 X 上晒出消费告警,有人单账户被刷出几百美元,少数超过一千。Anthropic 与 Google 各自封停了认定已暴露的 key,OpenAI 与 OpenCode 协作恢复访问并给 API 客户退了这笔账。
值得留意的是出事位置。联合创始人 Dax Raad 明确说,受影响的是 Console,开源的命令行工具不受影响,那些 key 从来不往本地端走。也就是说,这一次的攻击面不在模型权重、不在对齐、不在提示词,而是在凭据被存放和转发的那一层中间件。微软本周把 agent 称作内部威胁、主张把”智能的供给”和”对智能的授权”分开,说的正是这层。分歧只在谁来做那个分开它的人。
需要给这起事件留两个缺口。一是定性有争议:OpenCode 说这是”大规模蒸馏攻击”,但泄露的 key 究竟被用来做什么,公司没有给出证据;研究者 Nathan Lambert 等人公开认为这个说法是过度延伸,一次普通入侵被讲成了蒸馏。二是根因未披露:攻击者如何进入那套”较旧的系统”、key 以什么形式存储、滥用的完整范围,截至发稿都没有说明,事件仍在进行中。这两点不影响后文的判断——攻击面在中间件这一层是确定的——但”蒸馏”这个动机标签目前只是一家公司的自述。
二、更尴尬的是,救火的人被护栏挡在门外
OpenCode 团队在事发后让 AI 防守 agent 昼夜不停地顶了 48 小时。中途模型开始拒答——因为要分析的恶意载荷触发了安全过滤。Raad 的原话是”that was a bit frustrating”。
这不是孤例。今年 7 月 Hugging Face 遭遇由自主 agent 发起的入侵(据 TechCrunch 报道,OpenAI 后来承认那是自家在降低防护状态下做评测的模型),HF 在复盘里专开一节叫”The asymmetry problem”,原话是:护栏”无法区分应急响应者和攻击者”。OpenCode 最后靠拿到 OpenAI 的 Daybreak Blue 项目权限——该项目向审查过的用户提供不那么容易拒答的模型——才把调查推进下去。David Sacks 为此在 X 上写了句”护栏适得其反”。
一周之内,模型既是被告,也是唯一的法医,而法医会拒诊。这句话比任何一条风险声明都更能说明当前 agent 安全的位置。
三、学术侧的补位,补在更下一层
同周两篇论文给出的答案高度一致:既然模型端不可控,就把控制点放到模型与世界的界面上。
GatewayBench(10 月 16 日,清华、芝加哥大学、UIUC)是第一个系统评测 MCP 网关的基准。它把网关架构分成两类:扁平式一次性把全部工具暴露给 agent,分层式只给工具发现用的元工具、按需检索。基准含 524 个任务、6 个领域,以及来自 251 个真实 MCP server 的 11,118 个真实工具,实验中往环境注入 0 到 1,500 个与任务无关的干扰工具,用可验证的裁判检查环境终态。
数字很硬。干扰工具从 0 涨到 1,500,扁平架构的任务成功率掉 10.0 / 3.9 / 6.0 个点,分层架构最多掉 5.5 个点,在 GPT-5.4 下干脆不掉(85.1% → 85.6%)。两者会交叉:GPT-5.4 下没有干扰工具时扁平还领先 2.1 个点,注入 1,500 个之后反落后 2.3 个点。成本上,扁平架构在 GPT-5.4 下的每轮 token 从 8.3k 涨到 233.3k。安全性差异主要由工具注入这一路驱动——分层网关让恶意工具的内容更少有机会进入 agent 上下文。同一批实验还显示,网关效果与底层模型、与 agent harness 强耦合,换 harness 结论就变。
Intact(10 月 15 日)把同样的逻辑下沉到浏览器。浏览器本来的语义是:一个元素能做什么,取决于它是什么、来自哪里,而不是它写了什么;agent 把整页拍平成文本,这套语义就丢了,注入的文字可以借用用户的权限。Intact 不改浏览器,构建一棵记录来源与语义的 GenTree,逐元素喂给 LLM,让它在看不到别的元素文字的情况下单独判断,并在每次动作时只允许使用当前元素自身的能力,碰到第三方内容先问用户。在 1,270 个真实网页上,浏览器把 58.7% 的第三方元素错归给了第一方,GenTree 归属出的第三方元素是它的 2.3 倍;在 1,091 个带注入攻击的网页上,常规 planner 放行 73.1%,Intact 只放行 12.8%,而且每一个都以征询同意的形式出现。代价是隔离只在 3.7% 的任务上破坏功能,作者称并行调度能消掉大部分新增延迟。
四、控制层跑到了评估层前面
Hugging Face 首席政策官 Irene Solaiman 在 TechCrunch Disrupt 上把缺口说得直接:agentic evals 又难又贵,行业”模型评测很多,harness 评测少得多”,评测正在从测模型变成测模型外面那一整套系统;眼下对嵌入式评估器生态的渴求是真的,但”谁有资格评什么任务”还缺标准化。
三件事摆在一起,层次就清楚了。控制点已经下沉:微软在 10 月 19 日推出 Guardian Agents(隶属 6 月发布的 Project Perception),并给 Defender 加了能发现 60 类 agent 的能力(点名 Claude Code、Codex、OpenClaw),还支持按任务动态调整权限、在判断为高风险动作时要求人工批准;GatewayBench 在给网关打分,Intact 在给元素归属打分。评估层还停在模型分和红队报告那一档。中间空着的这一格,就是”独立控制”能不能兑现的地方——微软主张监控方必须独立于被监控方,可独立监控方今天能拿到的尺子,要么是厂商自建的,要么干脆不存在。
这里有一条容易被忽略的反面约束。微软这套论证 TechCrunch 自己就点破了:微软同时投资了 OpenAI 与 Anthropic,OpenAI 还是它最大的云客户之一,而它现在卖的正是”别信模型厂商”的监控产品——论证成立,但立场并不干净。真正的独立性不能只靠一家云厂商的自愿克制。目前唯一带多方结构的尝试是 NVIDIA 的 Open Agent Safety Platform,微软是创始成员,另有 100 多家科技公司加入,思路是把 agent 关进隔离环境、用硬件层监视并中止行为,形同一个 kill switch。也就是说,“独立控制”这一格不是没人填,而是填它的各方各自都带着立场;缺的不是参与者,是参与者的资格标准——这正是 Solaiman 说的”谁有资格评什么任务”还没有标准化。
一个可操作的判定标准:一次失败发生后,能不能在不依赖任何模型自述的前提下把它复现出来。GatewayBench 用环境终态裁判做到了,Intact 用元素归属做到了。OpenCode 那晚拿不出来的,也正是这个。
参考来源
- Hackers hit AI coding tool OpenCode, running up charges on users’ AI accounts(TechCrunch, 2026-10-19)
- Hugging Face 安全事件复盘(2026-07)
- GatewayBench: Unified Capability and Security Evaluation Platform for MCP Gateways(arXiv:2610.23449)
- What It Is, Not What It Says: Securing Agentic Browsing Interactions with Web Semantics(arXiv:2610.22697)
- Embedded AI evaluators won’t be an easy solution, Hugging Face’s policy chief says(TechCrunch, 2026-10-19)
- Microsoft says AI agents are like insider threats as ‘frontier models can’t be trusted’(TechCrunch, 2026-10-19)
- Satya Nadella:Models as Insider Risks in the Super Intelligence Era(2026-10-10)
- Here’s why OpenAI is absent from Nvidia’s industry-wide effort to end rogue AI agents(TechCrunch, 2026-09-29)
- OpenCode 官方 X 声明(2026-10-17)
引用核验记录(2026-10-20)
| 声明 | 核验结果 | 方式 |
|---|---|---|
| GatewayBench:524 任务 / 6 领域 / 251 个 server / 11,118 工具 | ✅ 逐字命中 | arXiv abs + HTML v1 |
| 干扰工具 0→1500:扁平掉 10.0 / 3.9 / 6.0 点,分层最多 5.5 点,GPT-5.4 下 85.1% → 85.6% 不掉 | ✅ 逐字命中 | HTML v1 正文 |
| 交叉:GPT-5.4 下无干扰时扁平领先 2.1 点,注入 1500 后落后 2.3 点 | ✅ 逐字命中 | HTML v1 正文 |
| 扁平架构 GPT-5.4 每轮 token 8.3k → 233.3k | ✅ 逐字命中(分层为 9.1k → 12.6k,原文并列) | HTML v1 正文 |
| 作者单位:清华 / 芝加哥大学 / UIUC | ✅ 命中(4 位作者:Yitian Zheng 清华,Zhaorun Chen 芝加哥,Haoyu Li 与 Bo Li 均为 UIUC) | HTML v1 署名行 |
| Intact:1,270 页 / 浏览器错归 58.7% / GenTree 第三方元素 2.3 倍 / 1,091 注入页 12.8% vs 73.1% / 功能破坏 3.7% | ✅ 摘要逐字命中 | arXiv abs(2610.22697,作者 Umar Iqbal,1 位) |
| OpenCode:1.4% Console 用户、CLI 不受影响、Raad 原话、Daybreak Blue、48 小时 | ✅ 逐条命中 | TechCrunch 原文 |
| 微软:Guardian Agents、Defender 识别 60 类 agent、“供给与授权分开” | ✅ 逐条命中(60 类点名 Claude Code / Codex / OpenClaw) | TechCrunch 原文 + Nadella 博客 |
| 7 条参考来源 | ✅ 全部 HTTP 200 | curl |
本轮补充与边界
- 补入两点此前缺失的限制:OpenCode 的”蒸馏攻击”定性存在公开争议(Nathan Lambert 等认为是过度延伸),且根因、key 存储方式、滥用完整范围均未披露,事件仍在进行。原文已做归属处理,但读者容易把动机当事实,故显式标注。
- 补入控制层扩张的第二条线:NVIDIA Open Agent Safety Platform(100+ 家公司,微软为创始成员,硬件层隔离 + kill switch),以及微软”独立性”主张自身的利益冲突(同时投资 OpenAI 与 Anthropic)。这两点把 §四 的结论从”没人填这一格”修正为”缺的是参与者的资格标准”。
- 未核项:GatewayBench 的”换 harness 结论就变”在正文有对应表述(OpenAI SDK 与 OpenClaw 两组结果差异显著),方向与文中一致但未逐字比对。
- 两篇论文均为 2026 年 10 月预印本,未经同行评议,数字以作者自报为准。