先描述真实系统而非抽象“AI”
威胁模型从一次代表性 Run 开始。画出用户、管理员、开发者、第三方 Provider 和外部攻击者,随后放入 Gateway、Runtime、模型、RAG、Memory、Tool、MCP Server、Artifact Store 与审批服务。每条数据流标记协议、身份、数据类别、同步或异步语义,以及失败后由谁恢复。OWASP Threat Model Library把 Actor、Component、Data Store、Data Set、Trust Zone、Trust Boundary 与 Data Flow 作为架构建模要素;缺少信任边界本身就是发现项。
不要只画 Happy Path。队列重放、审批超时、Tool 返回未知、子 Agent 委派、模型 Fallback、Trace 导出和运维 Break-glass 都会改变身份或数据去向。每张图还应记录范围、版本、假设和 Owner,否则架构变化后旧图仍会被误当当前事实。
按业务影响识别保护资产
资产不是组件清单,而是受损后产生业务影响的对象。身份、Token、个人数据和知识产权需要保密;Prompt、Skill、索引、评测集和供应链元数据需要完整性;Tool 权限、资金、生产环境和对外承诺需要授权与不可抵赖;服务容量、Provider 配额和人类审批注意力需要可用性保护。
每个资产写出最坏可信影响、影响对象和权威事实源。例如“模型声称已退款”不是资金资产状态,支付账本才是;“Agent 说没有保存数据”不是删除证据,存储、索引、缓存与备份的删除回执才是。影响按财务、隐私、安全、运营、法律和声誉拆分,避免用单一高、中、低掩盖不同责任人。
Agent 特有的信任边界
第一条边界在指令与数据之间:用户、网页、邮件、附件、检索片段和 Tool 结果都可能影响模型,却不应拥有系统指令的权威。第二条边界在模型输出与执行器之间:自然语言或结构化参数仍是不可信建议,必须经过资源级授权和业务后置条件校验。
随后检查 Host 与本地或远程 Tool、租户与共享 Memory、父子 Agent、开发与生产、企业与 Provider。边界不等于网络边界。同一进程内从低权限模型输出到高权限 SDK 是权限边界;同一数据库中跨租户检索也是隔离边界;把用户 Token 原样传给 Tool 则可能制造 Confused Deputy。
从攻击者目标构造完整路径
MITRE ATLAS提供面向 AI 系统的战术、技术和案例库,可帮助枚举已知行为,但攻击树仍要从本系统目标反推。以“导出其他租户客户名单”为根目标,向下拆成进入 Context、影响 Tool 选择、取得更大权限、读取数据、找到外发通道和逃避检测。只有整条路径成立,风险才与架构相关。
影响模型决策
攻击者可以在即时 Context 中直接或间接注入,也可以通过索引、Memory、摘要、Tool 描述和 Skill 更新形成持久影响。验证不能只看模型是否复述恶意指令,要观察目标、计划、Tool 序列、完成条件和写入状态是否发生未授权变化。
即时上下文
网页白字、附件元数据、重定向页面和远程 Tool 返回都可能携带指令。测试用例应固定用户目标和权限,只改变不可信内容,比较计划与动作差异,并确认确定性门禁能够阻断越权副作用。
持久影响
污染进入共享 Memory 或 RAG 后会跨会话复现。写入需要来源、租户、用途、审批和过期策略;回归测试需要覆盖污染检索、冲突来源、撤销和重建索引,而不是只删除可见原文。
扩大权限
过宽 Scope、长期凭据、Token Passthrough、审批与参数未绑定、父 Agent 向子 Agent 无衰减委派,都会把模型错误变成权限提升。测试要使用真实身份链验证 Audience、资源、动作、租户、时间和审批版本,而非只检查 Tool 名是否在白名单。
外传
读取敏感数据并不自动构成泄露,攻击还需要出口。模型回答、邮件、聊天消息、Artifact 导出、远程 Agent 消息、Tool 参数、URL、图片加载、Trace 和错误上报都应进入出口清单。
显式通道
对外消息与 Artifact 在发送前做目的、接收方、数据分类和字段级策略判断。审批界面显示真实收件人、字段和差异,审批后参数变化必须重新授权。
隐蔽通道
域名白名单不能识别允许域名中的 URL 参数编码、分片上传或逐次 Tool 调用。检测应关联一个 Run 的跨来源读取量、编码行为、出口累计量和调用序列,必要时停止 Run、撤销凭据并保全 Trace。
破坏
递归委派、无限重试、上下文膨胀、共享状态污染和高成本 Tool 可形成可用性攻击。每个 Run 要有时间、Token、步骤、并发与资金预算,并设计背压、熔断、终止条件、租户公平和未知副作用对账。
加入“合法用户滥用”与业务逻辑风险
STRIDE 和攻击技术库容易聚焦未授权访问,却可能漏掉授权内滥用。销售人员有权查看单个客户,不代表可让 Agent 批量汇总整个区域;运营人员能分别创建优惠券和发送消息,不代表二者组合后可以无审批发起大规模营销。
为每个高影响能力写 Misuse Case:谁在合法身份下,以什么规模、频率、组合和目标使用能力,绕过哪项职责分离,影响是否可逆。再加入模型不确定性引发的责任争议,例如输出证据不足却用确定语气诱导审批,这类风险需要人机界面和组织控制共同处理。
控制映射到具体执行点
Prompt 中写“不要泄露”不是不可绕过控制。身份与资源授权放在 Tool Gateway;参数 Schema、业务不变量和幂等放在 Executor;网络、文件与进程隔离放在 Sandbox;敏感外发检查放在出口;审批绑定身份、参数和时效;Trace、告警、撤销和 Runbook支撑检测、响应与恢复。
| 路径节点 | 执行点 | Owner | 放行证据 |
|---|---|---|---|
| 跨租户检索 | 检索服务资源过滤 | Data / Service Owner | 负向授权测试与租户隔离审计 |
| 高风险 Tool 参数被操纵 | Policy / Executor | System Owner | Schema、资源授权与审批绑定测试 |
| 敏感内容外发 | Egress Gateway | Security / Privacy | DLP 对抗集、阻断事件与误报复核 |
| 循环耗尽资源 | Runtime Scheduler | Runtime Owner | 预算耗尽、熔断和恢复演练 |
OWASP Agentic AI Threats and Mitigations 1.1明确把主动、检测和响应措施组合为纵深防御。每个控制都要记录预防或检测目标、失败模式、监测信号、处置动作、补偿控制及依赖;单一分类标签不能证明控制有效。
形成可追踪的风险决策
风险登记项绑定资产、攻击者、前置条件、完整路径、影响、现有控制和测试证据。可能性需要结合可达性、攻击成本、暴露时间和已有观测,可检测性单独记录,因为低频但难检测的跨租户泄露仍可能需要优先处理。
处置可以缓解、规避、转移或有期限接受。接受项必须有业务 Owner、风险理由、补偿控制、监测指标、到期日和关闭条件;模型、数据、Tool、权限、外发通道、协议或威胁情报变化时触发重新建模。安全团队负责挑战和证据门禁,不能替业务 Owner 接受业务影响。
残余风险必须描述控制生效后仍可能发生的路径、最大可信影响和检测限制。例如 Sandbox 降低主机影响,却不能阻止允许网络中的业务滥用;把这部分写清,风险接受才不是一句“已有控制”。
主动提取:为什么“所有 Tool 都要求登录”仍不足以控制 Agent 风险?
攻击树练习:攻击内容已进入 Context,但 Tool Gateway 拒绝了越权参数,算注入成功吗?
资料与事实边界
以下以官方文档、标准、论文和原始工程资料为主。厂商 API、价格、限额与模型能力会变化,落地时仍需按目标版本做能力探测和回归。
- OWASP Threat Model Library — Actor、数据流、数据集、信任区与信任边界的建模要素
- OWASP Agentic AI Threats and Mitigations 1.1 — Agentic 威胁分类与主动、检测、响应控制
- MITRE ATLAS — 面向 AI、生成式 AI 与 Agentic AI 的对手战术、技术、缓解与案例知识库
- NIST AI 100-2 E2025 — 对抗机器学习攻击与缓解的分类和术语,2025 最终版