结论先说:给大模型应用做威胁建模,最实用的方法是把经典 STRIDE 改编成 LLM 版:先画出“用户 → 应用 → 模型 → 检索/工具 → 外部系统”的数据流图,标出每一条信任边界(尤其是“外部内容进入模型上下文”这一条),再按 STRIDE 六类逐一找威胁,用“可能性 × 影响 × 可达性”打分排优先级。越狱和提示词注入主要落在 S、I、E 三类。本文给出熊猫出海整理的模板、对照表和风险计算器。 安全说明:本文只讲防护与评估,不提供任何越狱提示词、可复制攻击载荷或提示词包链接;仅测试你拥有或获得授权的系统。 一、为什么 LLM 应用要单独做威胁建模 1.1 传统模型漏掉的那条边界传统 Web 应用里,代码和数据是分开的;而在 LLM 应用里,网页、邮件、PDF、工具返回值都会进入同一个上下文,模型可能把“数据”当成“指令”执行。这正是 OWASP LLM01 提示词注入 的根因,原理见 越狱提示词为什么有效。 1.2 可以借用的公开框架STRIDE 来自微软的威胁建模方法(参见 Microsoft Threat Modeling Tool 威胁类别);针对 AI 的攻击战术与技术可对照 MITRE ATLAS;风险治理可对齐 NIST AI RMF 1.0 的 Map/Measure/Manage 功能。 二、第一步:画 LLM 数据流图并标信任边界 2.1 最少要画出的 7 个元素(熊猫出海方法框架)终端用户与身份系统;应用后端(含系统提示词与会话存储);模型(自建开源权重或云 API);检索源:知识库、向量库、实时网页;工具/插件/MCP 服务器;下游系统:订单、CRM、邮件、支付;日志与监控。 2.2 三条必须标红的信任边界B1 用户输入 → 模型:直接注入与越狱;B2 外部内容 → 模型上下文:间接注入(最容易被忽略);B3 模型输出 → 工具/下游系统:越权调用、不当输出处理(OWASP LLM05/LLM06)。 三、第二步:LLM 版 STRIDE 对照表(可引用) STRIDE 类别LLM 应用中的典型威胁首选控制措施S 仿冒(Spoofing)攻击者在文档/网页中伪装成“系统”或“管理员”发指令指令与数据分离;外部内容标注来源;授权只认后端身份T 篡改(Tampering)RAG 知识库、向量库或微调数据被投毒数据来源白名单;写入审批;检索日志R 抵赖(Repudiation)Agent 执行了操作却无法追溯是谁、因哪条输入触发全链路日志:输入、检索片段、工具调用、输出I 信息泄露(Information disclosure)系统提示词、其他用户数据、密钥被套出系统提示不放秘密;输出...
