11-LLM 应用安全红队与威胁建模¶
面向岗位:LLM 应用工程、Agent 工程、AI 平台、AI 安全相关岗位
图源:OWASP 项目文档 OWASP Top 10 for LLM Applications v1.1 第 5 页 “LLM Application Data Flow”。当前图片为原始 PDF 页面渲染图,用于讲解数据流上的风险落点;具体风险编号与项目版本以后续 OWASP GenAI Security Project 更新为准。
一、为什么这章是强信号¶
LLM 应用和普通 Web 服务相比,多了一层非常容易被忽略的复杂度:
- 用户输入不一定可信
- 检索内容不一定可信
- 工具返回值也不一定可信
- 模型输出可能影响后续动作
- 日志、记忆和中间上下文本身也可能泄露数据
所以一套成熟的回答不能只停在“我会加敏感词过滤”。你至少要能说明:
- 风险面在哪里
- 哪些风险来自输入,哪些来自工具和上下文
- 红队测试怎么设计
- 护栏如何落到工程实现
- 出了问题怎么回滚和审计
二、做威胁建模时,先把数据流拆开¶
比起直接背名词,更重要的是先画出最小数据流:
- 输入面
- 用户 prompt
- 上传文件
- 网页内容
-
RAG 检索文档
-
上下文面
- system prompt
- 会话历史
- memory
-
检索片段
-
模型与编排面
- 主模型
- 路由器
- Prompt 模板
-
Agent 编排器
-
工具面
- 搜索
- 数据库
- 浏览器
- 代码执行
-
支付、工单、审批接口
-
输出与审计面
- 最终回答
- 结构化动作
- trace / 日志
- 审计记录
一旦你把图画成这样,很多风险就会自然浮出来。
三、面试里最常见的风险类型¶
| 风险 | 典型表现 | 主要后果 | 优先控制手段 |
|---|---|---|---|
| Prompt Injection | 恶意输入试图覆盖系统意图 | 越权回答、误调用工具 | 输入隔离、指令分层、来源标记 |
| Insecure Output Handling | 把模型输出直接拼进 SQL / Shell / API | 注入、破坏、数据污染 | 输出校验、参数化调用、结构化执行 |
| Excessive Agency | Agent 权限过大、动作过强 | 错误写库、误发消息、误删资源 | 最小权限、人工确认、双重审批 |
| Sensitive Information Disclosure | 模型泄露密钥、隐私或内部提示词 | 合规风险、数据泄露 | 脱敏、权限隔离、日志最小化 |
| Retrieval / Data Poisoning | 检索库、训练库或工具结果被污染 | 错答、恶意引导、长期污染 | 数据源分级、审核、签名与回源校验 |
| Supply Chain / Plugin Risk | 第三方插件、模型或依赖不可信 | 供应链投毒、越权行为 | 版本锁定、来源审计、沙箱执行 |
你不需要每次都把所有名字背全,但一定要体现一个意识:
风险不只在“用户输入”,还在“上下文、工具、输出和数据管线”。
四、最小红队测试集应该怎么设计¶
一个最小可用的 LLM / Agent 红队集,建议至少覆盖:
- 直接 Prompt Injection
- 让模型忽略系统指令
-
引导泄露隐藏 prompt
-
间接 Prompt Injection
-
把恶意指令藏在网页、PDF、邮件或知识库文档中
-
工具越权
- 诱导模型调用不该调用的工具
-
构造危险参数
-
敏感信息诱导
-
诱导模型泄露凭证、内部策略或用户隐私
-
错误动作链
-
模型基于不可靠工具返回继续执行后续动作
-
高风险回退
- 安全策略拦截失败时,系统是否会安全降级
这些 case 不必一开始就很大,但必须可重复、可回放、可评估。
五、护栏不是一个按钮,而是一整层工程设计¶
真正有效的护栏通常是多层叠加:
- 输入层
- 文件类型限制
- 来源可信度分级
-
恶意内容扫描
-
编排层
- system prompt 与外部内容隔离
- 明确工具调用边界
-
失败短路与最大步数限制
-
工具层
- 白名单
- 参数校验
- 只读优先
-
最小权限
-
输出层
- 结构化输出校验
- 高风险动作二次确认
-
敏感信息脱敏
-
审计层
- trace
- 审批记录
- 回放与追责
一句话概括:
六、面试里怎么回答这类题¶
推荐结构:
- 先按数据流拆风险面
- 再说 2-3 类你最担心的风险
- 补工程控制:权限、校验、人工确认、沙箱、审计
- 最后说明红队怎么测、出了问题怎么回滚
可以直接这样讲:
我做 LLM 应用威胁建模时,会先画输入、上下文、模型编排、工具和输出五段数据流。
然后重点看 Prompt Injection、工具越权、敏感信息泄露和输出直接执行这几类高风险点。
工程上我会做最小权限、参数白名单、结构化输出校验、人工确认和全链路审计;
评估上则用最小红队集持续回归,而不是上线前临时手测一次。
七、自检清单¶
- 我知道 LLM 风险不仅来自用户输入,还来自上下文、工具和输出
- 我能画出一张最小可用的数据流图
- 我能给出 4-6 类高风险样例
- 我知道护栏至少要覆盖输入、工具、输出和审计
- 我有一套可重复执行的红队测试集
结论¶
红队与威胁建模不是安全岗位的“附加分”,而是高质量 LLM / Agent 工程岗位的基础能力。
你越能把风险面、护栏和回滚路径讲得具体,面试官越容易判断你真的做过生产级系统。
⚠️ 核验说明(2026-03-29):本页已根据公开资料重审图片与风险分类表述。OWASP 项目持续更新中,若你需要最新风险条目,请以项目主页的当前版本为准。
最后更新日期: 2026-03-29
