No.392
OWASP 大模型应用十大风险有哪些?
一句话回答
OWASP 的 Top 10 for LLM Applications 是大模型应用安全领域被广泛引用的风险清单。2025 版按顺序是:提示注入、敏感信息泄露、供应链、数据和模型投毒、不当的输出处理、过度代理、系统提示泄露、向量和嵌入的弱点、错误信息、无限制的资源消耗。它们背后的共同原则是:把模型当成不可信的组件,权限、校验和配额都在模型之外,用确定性的代码实现。
详细解析
十大风险和防护要点
| 编号 | 风险 | 含义 | 防护要点 |
|---|---|---|---|
| LLM01 | 提示注入(Prompt Injection) | 用户输入或外部内容改变了模型的行为,分直接注入和间接注入;OWASP 把越狱也看作它的一种形式 | 最小权限、隔离外部内容、高风险操作人工确认,见提示注入 |
| LLM02 | 敏感信息泄露(Sensitive Information Disclosure) | 回答中泄露个人信息、商业机密、凭证等 | 数据进入上下文之前按权限过滤、脱敏,见防止敏感信息泄露 |
| LLM03 | 供应链(Supply Chain) | 第三方的模型、数据集、LoRA 等微调适配器、依赖库被篡改或存在漏洞,以及许可证问题 | 只用可信来源,校验完整性,维护组件清单,及时更新 |
| LLM04 | 数据和模型投毒(Data and Model Poisoning) | 预训练、微调或嵌入用的数据被篡改,植入后门、偏见或错误知识 | 追踪数据来源、审核数据、用评测和红队测试检查,见数据投毒 |
| LLM05 | 不当的输出处理(Improper Output Handling) | 模型输出未经校验就交给下游,导致 XSS、SQL 注入、命令执行等 | 把输出当作用户输入:按场景转义、参数化查询、CSP,见输出渲染的安全风险 |
| LLM06 | 过度代理(Excessive Agency) | 给了模型过多的功能、权限或自主性,被诱导或出错时造成实际损害 | 工具最小化、以当前用户的身份执行、高影响操作需要用户批准,见工具调用的权限设计 |
| LLM07 | 系统提示泄露(System Prompt Leakage) | 系统提示被套出;真正的风险在于里面放了凭证,或者靠它来做权限控制 | 系统提示里不放敏感信息,安全控制在模型之外独立实现 |
| LLM08 | 向量和嵌入的弱点(Vector and Embedding Weaknesses) | RAG 中的越权检索、跨租户泄露、从向量反推原文、知识库被投毒 | 向量库按权限和租户隔离,校验数据来源,记录检索日志 |
| LLM09 | 错误信息(Misinformation) | 幻觉、没有依据的说法、用户过度信任,也包括推荐不安全或不存在的代码依赖包 | 用 RAG 提供依据、交叉验证、人工复核、在界面上说明局限,见幻觉 |
| LLM10 | 无限制的资源消耗(Unbounded Consumption) | 调用不受限制,导致服务不可用、费用失控,或者被大量调用来复刻模型 | 限制输入长度、限流、配额和预算告警、超时,见限流、重试和降级 |
按请求链路记忆
文本
输入侧 LLM01 提示注入
数据侧 LLM02 敏感信息泄露、LLM04 数据和模型投毒、LLM08 向量和嵌入的弱点
组件和配置 LLM03 供应链、LLM07 系统提示泄露
输出侧 LLM05 不当的输出处理、LLM09 错误信息
能力和资源 LLM06 过度代理、LLM10 无限制的资源消耗
编号顺序可以不背,面试时能说出每一项是什么、在自己的项目里怎么防,比背顺序更重要。
在项目里怎么用这份清单
- 设计评审:新功能上线前逐条过一遍,写清楚涉及哪几项、对应的控制措施在哪里
- 转化成测试:把提示注入、越权检索、超长输入等写成自动化测试用例,每次改 Prompt、换模型都跑
- 不替代传统安全:鉴权、注入、依赖漏洞这些 Web 安全的老问题依然存在,大模型应用两份清单都要看
面试官可能追问
过度代理具体是哪三种"过度"?
- 功能过度:给了任务用不到的工具,比如只需要读邮件,却接入了能发邮件、删邮件的插件
- 权限过度:工具连接下游系统时用了过高的权限,比如用管理员账号查数据库
- 自主性过度:高影响的操作不经人确认就直接执行
对应的做法:只提供必要的工具、每个工具只开放必要的功能、以当前用户的身份和权限执行、高影响操作需要用户批准。
为什么说系统提示泄露的关键不在"泄露"本身?
OWASP 的说法是:系统提示不应被当作秘密,也不应被当作安全控制手段。提示注入总能想办法让模型复述它,所以真正要避免的是两件事:在提示里放凭证、连接串这类敏感信息;把权限规则只写在提示里,而没有在代码里强制执行。
2025 版和 2023 版相比有哪些变化?
- 新增"系统提示泄露"和"向量和嵌入的弱点"两项,后者反映了 RAG 的普及
- 原来的"过度依赖"扩展为"错误信息"
- 原来的"模型拒绝服务"扩展为"无限制的资源消耗",把费用失控、通过接口复刻模型等风险也纳入进来
- "不安全的插件设计""模型窃取"不再作为单独的条目
前端或全栈工程师最需要关注哪几项?
直接相关的是 LLM05(模型输出渲染到页面上的 XSS 和数据外传)、LLM10(Key 不能放前端,后端要做限流和配额)、LLM02(哪些数据可以拼进 Prompt、日志怎么脱敏)。做 Agent 和工具调用时,再加上 LLM01 和 LLM06。Key 的管理见 API Key 的安全管理。
易错点
- 把 2023 版的条目(如"不安全的插件设计""模型窃取")当成 2025 版的独立条目来说
- 以为系统提示写得足够严格就能防住注入和泄露:清单反复强调安全控制要在模型之外实现
- 以为有了这份清单,传统的 Web 安全就不用管了
AI 模拟面试官
用自己的话回答,AI 对照参考答案打分、指出遗漏,再追问,最多 3 轮
登录后就可以和 AI 面试官对练,面试记录也会保存下来。登录
这道题你掌握了吗?
选一个最接近的状态,没掌握的题会出现在"我的进度 · 待复习"里。
学习记录暂存在本机浏览器。登录后自动同步到账号,换设备也能看到。