截至 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 状态,避免超时被误当成可以安全重试。

分层防御架构

text
人/服务身份
  -> 任务与租户策略
  -> 有界规划器
  -> 带服务端授权的工具网关
  -> 隔离执行与数据边界
  -> 结果验证与人工审批
  -> 脱敏审计事件
  -> 回滚、删除与事件响应

每一层有不同负责人:输入分类由应用执行,对象授权由资源服务执行,隔离由运行时执行,保留和事件响应由运营组织负责。单一“AI 防火墙”不能替代这些控制。

防御性测试协议

使用包含以下内容的 Manifest:

  • 合成身份、租户、文档、秘密和交易;
  • 允许动作与禁止副作用;
  • 模型、工具、策略、依赖和 Prompt 修订;
  • 预期授权、拒绝、升级和回滚结果;
  • 脱敏遥测以及保留/删除规则。

按风险切片测试:

  1. 通过检索内容和工具结果重定向行为。
  2. 错租户、错对象、过期和撤销能力。
  3. 不安全参数组合、重放、重复提交和超时。
  4. 记忆持久化、旧状态、删除和跨租户泄露。
  5. Agent 冒充、递归、超大载荷和级联故障。
  6. 代码执行尝试、依赖变化和沙箱逃逸信号。
  7. 人工审批清晰度、疲劳、覆盖和事后审计。

测试必须在自有的隔离环境中完成。报告覆盖范围和剩余风险,不要把一次干净运行描述成不存在漏洞的证明。

不过度采集的可观测性

记录足以重建行动的字段,不必永久保留全部原始 Prompt:

text
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 严重等级。

发布门禁

  1. 没有服务端身份、对象授权、范围、超时和审计,不上线生产工具。
  2. 没有来源、写入准入、过期、删除和租户隔离,不启用持久记忆。
  3. 没有隔离、资源限制、非秘密凭据和审查,不执行代码。
  4. 没有幂等、结果不确定处理、确认和可行回滚,不执行不可逆动作。
  5. 没有代表性滥用、回放、恢复、隐私和依赖变化测试,不发布版本。

总结

OWASP Agentic Applications Top 10 最有价值的作用,是提供一套共同语言来发现安全缺口。真正的安全来自可强制的边界、有界权限、可信身份、隔离执行、可测量恢复和负责的运营。把模型视为不可信的决策组件,把副作用交给服务控制,并在工具、数据、模型、租户或工作流变化后重新威胁建模。

待读者核验的来源