AI 学习资料 · OWASP 大语言模型应用 Top 10 安全威胁 2025(简体中文版)
LLM05:2025 不当输出处理
本页据《OWASP 大语言模型人工智能应用 Top 10 安全威胁 2025》简体中文版整理,以 CC BY-SA 4.0 发布。API GET 的改动:标题层级整体提升一级(原文从二级标题开始);参考链接 4 去掉了跟踪参数“?gi=…”。
描述
不当输出处理指的是在将大语言模型(LLM)生成的输出传递给其他组件和系统之前,未进行充分的验证、清理或处理。由于LLM生成的内容可以被输入的提示词所控制,这种行为类似于为用户提供间接访问附加功能的能力。
与过度依赖不同,不当输出处理关注的是LLM生成的输出在传递给下游系统前的验证和清理,而过度依赖关注的是更宽泛的问题,即过度依赖LLM输出的准确性和适当性。成功利用不当输出处理漏洞可能导致浏览器中的跨站脚本(XSS)和跨站请求伪造(CSRF),以及后端系统的服务器端请求伪造(SSRF)、权限提升或远程代码执行。
以下条件可能加重此漏洞的影响:
- 应用程序赋予LLM的权限超出了终端用户应有的权限,可能导致权限提升或远程代码执行。
- 应用程序易受间接提示词注入攻击,允许攻击者获得目标用户环境的特权访问。
- 第三方扩展未对输入进行充分验证。
- 缺乏针对不同上下文的适当输出编码(如HTML、JavaScript、SQL)。
- LLM输出的监控和日志记录不足。
- 缺乏针对LLM使用的速率限制或异常检测。
常见漏洞示例
- 将LLM的输出直接输入系统 shell 或类似的函数(如
exec或eval),导致远程代码执行。 - LLM生成JavaScript或Markdown代码并返回给用户,代码被浏览器解释后引发XSS攻击。
- 在未使用参数化查询的情况下执行LLM生成的SQL查询,导致SQL注入。
- 使用LLM输出构造文件路径,未进行适当清理时可能导致路径遍历漏洞。
- 将LLM生成的内容用于电子邮件模板,未进行适当转义时可能导致钓鱼攻击。
防范与缓解策略
- 将模型视为任何其他用户,采用零信任原则,对模型传给后端函数的响应进行适当的输入验证。
- 遵循OWASP ASVS(应用安全验证标准)指南,确保有效的输入验证和清理。
- 对返回用户的模型输出进行编码,以防止JavaScript或Markdown的意外代码执行。OWASP ASVS提供了详细的输出编码指南。
- 根据LLM输出的使用场景实施上下文感知的输出编码(如Web内容的HTML编码、数据库查询的SQL转义)。
- 对所有涉及LLM输出的数据库操作使用参数化查询或预处理语句。
- 实施严格的内容安全策略(CSP),减少LLM生成内容引发的XSS攻击风险。
- 部署健全的日志记录和监控系统,以检测LLM输出中的异常模式,防止潜在的攻击尝试。
示例攻击场景
场景1
应用程序使用LLM扩展为聊天机器人功能生成响应。该扩展还提供一些管理功能,供另一个拥有特权的LLM调用。通用LLM未经适当的输出验证就把响应直接传给扩展,导致扩展停机进入维护状态。
场景2
用户使用LLM驱动的网站摘要工具生成文章摘要。网站中嵌入了提示词注入,指示LLM从网站或用户的对话中获取敏感数据,并将其发送至攻击者控制的服务器;由于输出缺乏验证和过滤,数据因此泄露。
场景3
LLM允许用户通过聊天功能生成后端数据库的SQL查询。一名用户请求生成删除所有表的查询。如果LLM生成的这条查询未经审查,所有数据库表都将被删除。
场景4
一个Web应用使用LLM根据用户的文本提示词生成内容,但未清理输出。攻击者提交精心构造的提示词,使LLM返回未经清理的JavaScript代码,在受害者的浏览器中渲染时引发XSS攻击。
场景5
LLM被用来为营销活动生成动态电子邮件模板。攻击者操控LLM在邮件内容中嵌入恶意JavaScript。如果应用程序未对输出进行适当清理,在有漏洞的邮件客户端中查看这封邮件的收件人就可能遭受XSS攻击。
场景6
一家软件公司使用LLM根据自然语言输入生成代码以简化开发任务。这种方法虽高效,但存在暴露敏感信息、创建不安全数据处理方法或引入漏洞(如SQL注入)的风险。AI还可能幻觉出根本不存在的软件包,导致开发者下载带有恶意代码的资源。
参考链接
- Proof Pudding (CVE-2019-20634) AVID (
moohax&monoxgas) - 任意代码执行:Snyk Security Blog
- ChatGPT插件漏洞解析:从提示词注入到访问私人数据:Embrace The Red
- 针对ChatGPT网页版的新提示词注入攻击:Markdown图片可窃取聊天数据:System Weakness
- 不要盲目信任LLM响应:聊天机器人面临的威胁:Embrace The Red
- LLM应用的威胁建模:AI Village
- OWASP ASVS - 验证、清理和编码:OWASP AASVS
- AI幻觉出软件包,开发者照样下载,哪怕其中可能被植入了恶意软件 The Register