2. AI系统威胁建模与攻击面梳理

AI系统威胁建模与攻击面梳理 学习卡片

为什么先画数据流图,而不是先列威胁清单

威胁建模的核心不是“想到多少攻击”,而是先看清系统里有哪些数据流、信任边界和可被外部触达的接口。对 AI 应用而言,攻击面往往不在传统 Web 层,而藏在提示词拼接、检索增强、插件调用、模型权重与训练数据这些环节。因此本例以一个“企业知识库问答助手”为具体对象,先画出它的数据流图(DFD),再沿每条流与每个存储标注攻击面,最后落成一份可评审的威胁建模报告。

目标系统与信任边界

假设目标应用为 KB-Assistant:员工通过 Web 前端提问,后端将问题与检索到的知识片段拼成提示词,调用云端大模型 API,模型可能触发“查询工单”插件,最终返回答案。系统涉及四类信任边界:

  • 边界 B1(互联网→企业内网):Web 前端与后端 API 之间,用户输入不可信。
  • 边界 B2(内网→第三方云):后端与外部大模型 API 之间,提示词与检索内容会离开企业控制。
  • 边界 B3(应用→数据层):后端访问向量库与训练/微调数据。
  • 边界 B4(应用→内部业务系统):插件调用工单系统,属于高权限动作。

数据流图与攻击面标注

下图用数据流图呈现 KB-Assistant 的主要处理过程、数据存储、外部实体与四条信任边界,并在每条流旁标注对应攻击面编号(AS-01~AS-09),便于后续逐条评估。

B1 互联网→内网 B2 内网→第三方云 员工用户 Web 浏览器 P1 前端接入 输入校验 / 会话 P2 提示词编排 拼接 / 模板 / RAG P3 模型推理 云端 LLM API P4 插件执行 工单查询 / 动作 D1 向量知识库 嵌入 / 文档片段 D2 训练/微调数据 语料 / 标注集 工单系统 内部业务 API 模型提供方 第三方云服务 AS-01 提示注入 AS-02 越权会话 AS-03 提示泄露 AS-04 数据外传 AS-05 检索投毒 AS-06 训练数据污染 AS-07 工具滥用 AS-08 越权操作 AS-09 结果篡改 外部实体 处理过程 数据存储 数据流 跨边界流 AS-xx 攻击面编号

攻击面清单与威胁建模报告要点

沿数据流图逐条评估后,形成如下攻击面清单。每条包含位置、攻击者视角、影响与建议控制,可直接作为威胁建模报告的“攻击面”章节。

编号攻击面所在流/边界典型威胁建议控制
AS-01用户输入用户→P1,B1提示注入、越狱输入过滤、指令隔离、输出审查
AS-02会话与身份P1→P2会话劫持、越权访问强会话绑定、最小权限
AS-03提示词模板P2→P3系统提示泄露模板与数据分离、敏感指令不下发
AS-04模型 API 出站P3→模型提供方,B2数据外传、供应商留存脱敏、合同约束、私有化部署评估
AS-05向量检索P2↔D1检索投毒、越权召回文档权限过滤、来源可信度评分
AS-06训练/微调数据D2→P2数据污染、后门植入数据溯源、投毒检测、版本审计
AS-07插件调用P3→P4工具滥用、参数注入白名单、参数校验、人工确认
AS-08业务系统接口P4→工单系统,B4越权操作、横向移动服务账号最小权限、操作审计
AS-09插件回传结果P4→P3结果篡改、二次注入结果签名、结构化解析、二次审查
报告建议按“系统描述→数据流图→信任边界→攻击面清单→风险评级→缓解措施→残余风险”组织。攻击面编号(AS-xx)应与数据流图一一对应,评审时可直接指图核对,避免遗漏。
常见误区:只关注模型本身而忽略插件与检索链路。实际案例中,AS-07/AS-08 这类“模型触发高权限动作”的路径往往比提示注入造成更直接的业务损失,应优先评估。

可复用的威胁建模报告骨架

1. 系统概述
   - 应用名称 / 业务目标 / 用户角色
2. 数据流图(DFD)
   - 外部实体、处理过程、数据存储、数据流
   - 信任边界 B1~Bn
3. 攻击面清单
   - 编号 AS-xx | 位置 | 威胁 | 影响 | 控制措施
4. 风险评级
   - 可能性 × 影响 = 风险等级(高/中/低)
5. 缓解措施与责任人
6. 残余风险与复评计划

完成以上步骤后,你应得到一张带攻击面编号的数据流图和一份可评审的攻击面清单。下一步可针对 AS-01、AS-05、AS-06 等高风险项设计具体测试用例,验证控制措施是否有效。