OWASP 2026 版的头条是"过度代理权"从第六名爬到了第三名,而这恰恰是里面最没意思的一件事。真正值得你花一个下午的变化是:GenAI Security Project 不再交付散文,开始交付接口——Agent Control Standard 规定了框架在你的智能体调用工具、写入记忆或派生子智能体之前所触发的那个 hook,以及你的策略要返回的那个裁决:allow、deny、modify。可以被忽略的建议,变成了一份框架要么实现、要么没实现的契约,而这把审计边界从你的政策文件夹挪进了你的运行时。它同时造出了一个还没人在报的数字:你的智能体的动作里,究竟有多大比例真的经过了一个挂了 hook 的调用点。
先看全貌
同一面旗下落地了两件东西,而它们干的活完全不同。
| 产物 | 发布时间 | 它是什么 | 它要求你做什么 |
|---|---|---|---|
| Top 10 for LLM Applications 2026 | 2026 年 8 月 | 一份排序风险清单,首次以事故数据加权 | 读它;重排优先级 |
| Agent Control Standard(ACS) | 2026 年 5 月启动,9 月归入 OWASP | 三层接口:运行时 hook、追踪规约、智能体物料清单 | 实现它,或挑一个已经实现了的框架 |
| Agent Observability Standard(AOS) | 同期,作为独立项目 | 智能体遥测的埋点规约 | 把它输出出来 |
2026 版清单依次是:提示词注入、敏感信息泄露、过度代理权、供应链、数据与模型投毒、无界消耗、错误信息、隐藏上下文暴露、向量与嵌入弱点、输出处理不当。前两名没变——在这个领域坚称"修复就在眼前"已有三年之后,这本身就是一个发现。
这份清单真正说了什么
方法论变了,名次才动的
这一版首次把社区判断与一批真实事故放在一起加权:专家投票占 75%,余下四分之一来自约 6,639 起事故,取自公开漏洞库与一个 AI 危害数据库。过度代理权正是两个来源吻合得最紧的那一项;当其中一个输入是事故计数而不是问卷时,"吻合"看起来就是这样的——往上挪三位。
把它读成一句关于"故障究竟发生在哪里"的陈述。过度代理权不是模型的弱点——它是这样一类失败:系统被给予了超出任务所需的自主权、权限或无人监督的触达范围,于是一次普通失误或一次成功的操纵,就产生了不成比例的后果。这描述的是一个部署决定,而现在,事故记录把它排到了供应链风险和投毒风险之上。本站的爆炸半径与环境权限两页,是同一个论点的另一端。
那次安静的改名才是要动手的地方
LLM08 原本是"系统提示词泄露",现在叫"隐藏上下文暴露",范围从系统提示词扩大到了全部隐藏运行上下文——检索到的文档、MCP 工具 schema、格式化规则,以及你的外壳拼装起来、却从不展示给用户的其余一切。这比旧条目大得多的一片面,而多数团队只对其中恰好一项有管控。
它还落在一处真实的不对称上。系统提示词泄露只是尴尬;工具 schema 泄露则是把你智能体的能力清单、参数形状与内部服务名,交给了任何一个客气开口的人。提取在实践中长什么样,见系统提示词提取。
没有动的那一项
提示词注入依旧是第一。三年过去,每家主要厂商都出了分类器和守卫模型,而高居榜首的风险仍然是那个没有完整解法的——这是正确的结果,不是清单的失败。接受这一点之后该有的控制分类,在2026 年的提示词注入防御。
不是清单的那一部分
ACS 分三层组织,而这种分离正是有用的地方。Instrument 定义运行时 hook 与 Guardian Agent 模式:一个由智能体宿主在动作执行前调用的回调,携带足够的上下文——工具、参数、身份、此前的轮次——供一个独立的评估者去许可、拒绝、改写、追问或延后这个动作。Trace 在 OpenTelemetry 与 OCSF 之上扩展出智能体专用的语义规约,与 GenAI 语义规约是同一片地。Inspect 则扩展 CycloneDX、SPDX 与 SWID,产出一份动态的智能体物料清单——那正是每一条清单登记义务一直在要、却谁也交不出来的东西。
让这件事不只是"又一个框架"的设计选择在于:规范本身与策略引擎无关。它只定义 hook 契约,对背后跑什么只字不提;一个与框架无关的 SDK 读取声明式策略,并通过平台暴露的任何 hook 去执行。如果你已经在某个策略引擎上投过资,那笔投资能活下来——这正是智能体的策略即代码里的论点,现在多了一个有定义的挂载点。
另外留意它对采购的影响。"你们的智能体框架实现了 ACS Instrument 吗?"是一个有是或否答案的问题,而"你们如何处理工具授权?"每家厂商都能答得很好。hook 契约是一项你可以在一个下午之内测出来的能力,而那些根本没有拦截点的框架,再也没法把这件事藏在一张安全页面后面。
hook 不等于管控
这里能踩的坑很老了,在别的名字下早有充分记载。一个触发、记录、然后放行动作的 hook 是遥测;它产出的是一块"你没有拦下来的一切"的看板。一个算出来却不执行的建议式裁决更糟,因为它付了延迟,买到的是管控的外观。让一个 hook 成为管控的性质是:内联、确定性、阻断——裁决返回之前,动作不得抵达生产系统。
有两个 hook 承担了大部分分量,而它们并不是人们最先埋的那两个。执行前的工具调用 hook 是显而易见的那个,授权归它管:身份、作用域、参数边界。而工具结果上的那个 hook,才是对榜首风险真正要紧的——因为被注入的指令是随检索到的文档、网页、工单正文和 MCP 响应进来的:入向,在你已经授权过的那次调用之后。一道只检查请求、却把结果一路放行的护栏,检查的是攻击者根本不用的那半条通道。这就是把遥测当作不可信输入这一主张的推广版本。
还有,那套裁决词汇值得比现在多得多的怀疑。allow 和 deny 都好推理。modify 意味着某个策略层在智能体看到之前改写了参数或内容——这是一项值得拥有的能力,也是一片值得害怕的调试面:一次因为守卫悄悄改了某个参数而行为怪异的运行,几乎不可能被重建,除非 hook 自身的决定以与工具调用同等的保真度进了 trace。把裁决、产生它的那条规则,以及改写前后都记下来——否则就别用 modify。
没人在报的那个数字
一套标准化的 hook 面,同时也把绕过它的方式标准化了。Instrument 层里的每个 hook 都在智能体的这一步之内触发,这意味着它覆盖的是框架中介过的动作,而对一切从别的门离开的东西保持沉默:
- 智能体自己写完又执行的代码。一段生成出来的脚本若开了 socket 或外调 shell,这些调用发生在沙箱内部,而不是通过工具接口。
execute code这个 hook 只在执行那一刻触发一次;它不会按系统调用逐次触发。代码即动作是一种有意为之的架构,它拿工具级拦截换取了表达力。 - 工具实现内部的网络调用。你的 hook 看到的是
search(query),看不到该实现发出的四个 HTTP 请求,而其中一个去了你本不会批准的地方。 - 框架之外的一切。一个带着 API key 的定时任务、一个 notebook、同事的一段脚本——它们都没有一个能触发 hook 的宿主。
- 跑在另一个运行时里的子智能体。调用子智能体的那个 hook 在你的边界上触发;子智能体在另一个框架内部做了什么,由那个框架的 hook 管——如果它有的话。
所以,真正能说明这套东西有没有起作用的指标是一个分母,而不是一个计数:你的智能体产生的对外可见效果里,有多大比例经过了一个挂了 hook 的调用点?一个已经实现了 ACS、每月报出 4 万次被评估的工具调用、而其智能体会写并运行 Python 的团队,量到的并不是他们以为自己量到的东西。先从威胁建模出发,把所有出口枚举出来,再去庆祝覆盖率。
三层各自怎么用
| 如果你的问题是…… | Instrument(hook) | Trace | Inspect(BOM) |
|---|---|---|---|
| 智能体能做出它不该做的动作 | 就是这一层 | 事后告诉你 | 否 |
| 工具结果里夹带的注入指令 | 结果 hook,执行式 | 供分诊的证据 | 否 |
| "我们到底跑着哪些智能体?" | 否 | 从流量部分可得 | 就是这一层 |
| 审计方要管控存在的证明 | 裁决日志 | 轨迹 | 组件清单 |
| 选型 | 问符合性 | 问规约 | 问 BOM |
先在那两个工具 hook 上实现 Instrument,用执行式而不是建议式,并把裁决写进 trace。这是一周的工作量,而价值的大头就在里面。Inspect 值得早点采用,理由不同:它是第一个不依赖"人去填表"的、对清单登记义务站得住脚的答案。
常见问题
ACS 会取代我现有的护栏或策略产品吗?
不会——它是那些产品插进去的插座。规范只定义 hook 契约,并且刻意不规定背后由什么来评估策略,所以既有引擎保留自己的规则,同时获得了一个跨框架的标准挂载点。
十大清单的名次变动,值得据此重排优先级吗?
变动本身不如它的原因要紧。过度代理权上升,是因为事故数据与专家投票取得了一致——这是"真实故障来自过宽的权限,而不是来自新奇的模型攻击"的证据。如果你的管控集中在模型上、而在"智能体被允许做什么"上很薄,这就是信号。
为什么工具结果的 hook 比工具调用的 hook 更重要?
因为请求是你写的那一半,结果是攻击者能写的那一半。提示词注入是入向抵达的,藏在检索到的文本、页面内容、工单正文与 MCP 响应里。只检查出向调用,等于把承载榜首风险的那条通道完全不检查。
实现了 hook,就能过审计吗?
只有在裁决被记录、且覆盖率被明确声明的前提下才行。一个触发了却什么都放行的 hook 产出的是遥测,不是管控存在的证据;而一位会追问"有多大比例的动作被评估过"的审计人员,不会满足于一个没有分母的评估次数。
把执行式打开之后,最先坏掉的是什么?
延迟预算和误报,顺序就是这个。每一次被中介的调用现在都要等一个策略决定,而阻断裁决的第一周里一定会包含正当动作。先让策略在建议模式下跑够久,把误报率摸出来,再切到阻断——但一定要切,因为建议模式付了管控的代价,却一点好处都没拿到。
延伸阅读
本站:
- 智能体的策略即代码——hook 背后跑的是什么。
- 爆炸半径——把"过度代理权"表述成一个设计参数。
- 2026 年的提示词注入防御——那个没有挪动的条目所对应的控制分类。
- OTel GenAI 语义规约——Trace 层所扩展的那片地。
- 智能体清单与登记——动态智能体 BOM 终于回答了什么。