建模不变量不要问“模型会不会做坏事”,要问“不可信输入经过哪些决策与执行点,借谁的身份,对什么资产造成哪种可观察影响”。

先描述真实系统而非抽象“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,否则架构变化后旧图仍会被误当当前事实。

代表性 Agent DFD:控制应放在数据和权限跨界的位置
不可信入口用户、网页、附件、检索结果和远程 Agent。
概率决策模型、规划、Memory 读取和 Tool 选择。
确定性门禁身份、Schema、策略、审批与数据分类。
外部副作用资金、消息、代码、文件和生产系统。

按业务影响识别保护资产

资产不是组件清单,而是受损后产生业务影响的对象。身份、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 与验证证据示例
路径节点执行点Owner放行证据
跨租户检索检索服务资源过滤Data / Service Owner负向授权测试与租户隔离审计
高风险 Tool 参数被操纵Policy / ExecutorSystem OwnerSchema、资源授权与审批绑定测试
敏感内容外发Egress GatewaySecurity / PrivacyDLP 对抗集、阻断事件与误报复核
循环耗尽资源Runtime SchedulerRuntime Owner预算耗尽、熔断和恢复演练

OWASP Agentic AI Threats and Mitigations 1.1明确把主动、检测和响应措施组合为纵深防御。每个控制都要记录预防或检测目标、失败模式、监测信号、处置动作、补偿控制及依赖;单一分类标签不能证明控制有效。

形成可追踪的风险决策

风险登记项绑定资产、攻击者、前置条件、完整路径、影响、现有控制和测试证据。可能性需要结合可达性、攻击成本、暴露时间和已有观测,可检测性单独记录,因为低频但难检测的跨租户泄露仍可能需要优先处理。

处置可以缓解、规避、转移或有期限接受。接受项必须有业务 Owner、风险理由、补偿控制、监测指标、到期日和关闭条件;模型、数据、Tool、权限、外发通道、协议或威胁情报变化时触发重新建模。安全团队负责挑战和证据门禁,不能替业务 Owner 接受业务影响。

残余风险必须描述控制生效后仍可能发生的路径、最大可信影响和检测限制。例如 Sandbox 降低主机影响,却不能阻止允许网络中的业务滥用;把这部分写清,风险接受才不是一句“已有控制”。

主动提取:为什么“所有 Tool 都要求登录”仍不足以控制 Agent 风险?
登录只证明主体身份,没有限制资源、动作、租户、参数组合、委派范围和出口。还需要资源级授权、业务不变量、审批绑定、最小权限与可审计回执。
攻击树练习:攻击内容已进入 Context,但 Tool Gateway 拒绝了越权参数,算注入成功吗?
说明影响模型决策的控制失效,但端到端高影响路径被执行层切断。应分别记录行为偏移和业务影响,修复内容层同时保留执行层门禁。

资料与事实边界

以下以官方文档、标准、论文和原始工程资料为主。厂商 API、价格、限额与模型能力会变化,落地时仍需按目标版本做能力探测和回归。

  1. OWASP Threat Model Library — Actor、数据流、数据集、信任区与信任边界的建模要素
  2. OWASP Agentic AI Threats and Mitigations 1.1 — Agentic 威胁分类与主动、检测、响应控制
  3. MITRE ATLAS — 面向 AI、生成式 AI 与 Agentic AI 的对手战术、技术、缓解与案例知识库
  4. NIST AI 100-2 E2025 — 对抗机器学习攻击与缓解的分类和术语,2025 最终版