截至 2026 年 7 月 19 日: OWASP 于 2025 年 12 月 9 日发布了 Top 10 for Agentic Applications for 2026。本文使用官方风险主题作为防御性工程的起点,不声称该清单覆盖全部风险、不把任何控制当作安全保证,也不替代法律、平台或应用专项审查。
核心要点
- Agent 安全是系统属性,模型、工具、身份、数据、运行时、操作人员和恢复机制都要纳入。
- OWASP 清单是风险分类和排序辅助,不是权限系统或安全认证。
- 授权、租户隔离、确认、预算和回滚必须放在可强制执行的服务边界。
- 外部内容、记忆、工具结果和 Agent 间消息都应视为不可信。
- 在合成数据和可回退副作用的隔离环境中测试,不要把攻击载荷带入生产。
官方风险主题
2026 版围绕以下主题组织 Agentic 风险:
| OWASP 主题 | 工程问题 |
|---|---|
| Agent Behavior Hijacking(行为劫持) | 不可信内容能否把 Agent 从获准任务引向其他目标? |
| Tool Misuse and Exploitation(工具滥用与利用) | 有效工具能否被不安全的目标、参数或调用顺序滥用? |
| Identity and Privilege Abuse(身份与权限滥用) | 调用者、Agent、工具和对象是否由服务端明确鉴权? |
| Agentic Supply Chain Vulnerabilities(Agent 供应链漏洞) | 模型、插件、工具、依赖或工作流能否未经审查发生变化? |
| Unexpected Code Execution(意外代码执行) | 生成或检索到的代码能否触达解释器、Shell 或动态加载器? |
| Memory and Context Poisoning(记忆与上下文投毒) | 不可信状态能否持久化并影响后续任务? |
| Insecure Inter-Agent Communication(不安全的 Agent 通信) | 消息是否鉴权、授权、有界且能防重放? |
| Cascading Failures(级联故障) | 单个 Agent、工具或依赖能否放大为全链路故障? |
| Human-Agent Trust Exploitation(人机信任利用) | 人是否会过度相信自信但不清楚的 Agent 输出? |
| Rogue Agents(失控 Agent) | Agent 能否脱离生命周期、逃避监督或持续越权行动? |
应以当前 OWASP 版本核对名称和描述。风险严重程度依赖场景:只读研究助手与可转账 Agent 的影响面不能套用同一等级。
按控制边界进行威胁建模
1. 身份与授权
先认证人或服务,再针对当前主体、租户、用途和状态,为每次工具调用和对象访问做授权。不能让模型生成的身份、工具名、确认字符串或 Agent Card 授予权限。只传播最小委派能力,并明确过期、撤销和审计。
2. 工具与副作用
为工具设置狭窄 Schema、有限资源选择器、超时、限流、幂等键和副作用等级。区分读取、提议和提交操作;删除、转账、发送等不可逆或高影响动作需要新的确认或人工复核。工具服务必须再次校验,Prompt 限制不是强制控制。
3. 不可信内容与记忆
检索文档、网页、邮件、文件、工具结果和记忆都可能包含指令或虚假状态。为每项数据保留来源、修订、租户、新鲜度和信任状态,并执行写入准入、过期、替代、删除传播和回放测试。净化器或分隔符可以降低风险,但不能构成信任边界。
4. 代码执行与供应链
不要在应用进程中执行模型输出或第三方工作流代码。确有需要时,使用独立沙箱,限制文件系统、网络、CPU/内存/时间,禁止秘密凭据,并设置制品审查。锁定依赖和工具清单,验证来源,扫描更新,保留可回滚版本。“官方”“已验证”或“流行”标签都不是安全证明。
5. Agent 通信与故障
把每条 Agent 间消息当作 API 请求:认证发送方,授权能力,限制载荷和递归,防止重放,并附带关联、取消和截止时间状态。使用断路器、预算、截止时间传播、幂等和明确的 outcome_unknown 状态,避免超时被误当成可以安全重试。
分层防御架构
人/服务身份
-> 任务与租户策略
-> 有界规划器
-> 带服务端授权的工具网关
-> 隔离执行与数据边界
-> 结果验证与人工审批
-> 脱敏审计事件
-> 回滚、删除与事件响应
每一层有不同负责人:输入分类由应用执行,对象授权由资源服务执行,隔离由运行时执行,保留和事件响应由运营组织负责。单一“AI 防火墙”不能替代这些控制。
防御性测试协议
使用包含以下内容的 Manifest:
- 合成身份、租户、文档、秘密和交易;
- 允许动作与禁止副作用;
- 模型、工具、策略、依赖和 Prompt 修订;
- 预期授权、拒绝、升级和回滚结果;
- 脱敏遥测以及保留/删除规则。
按风险切片测试:
- 通过检索内容和工具结果重定向行为。
- 错租户、错对象、过期和撤销能力。
- 不安全参数组合、重放、重复提交和超时。
- 记忆持久化、旧状态、删除和跨租户泄露。
- Agent 冒充、递归、超大载荷和级联故障。
- 代码执行尝试、依赖变化和沙箱逃逸信号。
- 人工审批清晰度、疲劳、覆盖和事后审计。
测试必须在自有的隔离环境中完成。报告覆盖范围和剩余风险,不要把一次干净运行描述成不存在漏洞的证明。
不过度采集的可观测性
记录足以重建行动的字段,不必永久保留全部原始 Prompt:
event_id, request_id, subject_hash, tenant_id_hash
policy_revision, tool_revision, model_revision
action_class, authorization_decision, approval_state
input_provenance, outcome, retry_count, latency
脱敏秘密和个人数据,限制访问,定义保留期,并测试删除与法律留置。日志是调查证据,不是授权替代,也不是永久保存隐藏推理的理由。
法规映射必须单独审查
OWASP 指导和 EU AI Act 回答的是不同问题。法律映射需要记录法域、提供者/部署者角色、预期用途、风险分类、具体条款、日期、过渡规则和证据负责人。不要把 OWASP 标签变成法律截止日期,也不要把法律日期变成 OWASP 严重等级。
发布门禁
- 没有服务端身份、对象授权、范围、超时和审计,不上线生产工具。
- 没有来源、写入准入、过期、删除和租户隔离,不启用持久记忆。
- 没有隔离、资源限制、非秘密凭据和审查,不执行代码。
- 没有幂等、结果不确定处理、确认和可行回滚,不执行不可逆动作。
- 没有代表性滥用、回放、恢复、隐私和依赖变化测试,不发布版本。
总结
OWASP Agentic Applications Top 10 最有价值的作用,是提供一套共同语言来发现安全缺口。真正的安全来自可强制的边界、有界权限、可信身份、隔离执行、可测量恢复和负责的运营。把模型视为不可信的决策组件,把副作用交给服务控制,并在工具、数据、模型、租户或工作流变化后重新威胁建模。