OWASP 大模型应用十大风险有哪些?

进阶安全综合约 6 分钟读完

一句话回答

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 面试官对练,面试记录也会保存下来。登录

这道题你掌握了吗?

选一个最接近的状态,没掌握的题会出现在"我的进度 · 待复习"里。

学习记录暂存在本机浏览器。登录后自动同步到账号,换设备也能看到。