LLM大模型安全(1)-快速注入&不安全输出处理

admin 2023年12月2日03:07:39评论43 views字数 3970阅读13分14秒阅读模式

最近玩了一些各个大厂的大模型对话机器人,感觉还是挺有意思,目前已经到了千模大战,为了不被市场淘汰,响应号召,跟进下大模型安全

LLM大模型安全(1)-快速注入&不安全输出处理

    

OWSAP Top 10分类

OWASP Top 10 大型语言模型应用程序项目旨在让开发人员、设计人员、架构师、经理和组织了解部署和管理大型语言模型 (LLM) 时的潜在安全风险。具体Top 10风险如下:

标题 描述
LLM01:快速注射 这会通过巧妙的输入操纵大型语言模型 (LLM),从而导致 LLM 执行意外操作。直接注入会覆盖系统提示,而间接注入则会操纵来自外部源的输入。
LLM02:不安全的输出处理 当 LLM 输出未经审查而被接受时,就会出现此漏洞,从而暴露后端系统。滥用可能会导致 XSS、CSRF、SSRF、权限升级或远程代码执行等严重后果。
LLM03:训练数据中毒 当 LLM 培训数据被篡改,引入损害安全性、有效性或道德行为的漏洞或偏见时,就会发生这种情况。来源包括 Common Crawl、WebText、OpenWebText 和书籍。
LLM04:模型拒绝服务 攻击者对 LLM 进行资源密集型操作,导致服务降级或成本高昂。由于LLM的资源密集型性质和用户输入的不可预测性,该漏洞被放大。
LLM05:供应链漏洞 LLM 应用程序生命周期可能会受到易受攻击的组件或服务的影响,从而导致安全攻击。使用第三方数据集、预训练模型和插件可能会增加漏洞。
LLM06:敏感信息披露 LLM可能会无意中在其回复中泄露机密数据,从而导致未经授权的数据访问、隐私侵犯和安全漏洞。实施数据清理和严格的用户策略来缓解这种情况至关重要。
LLM07:不安全的插件设计 LLM 插件可能具有不安全的输入和不足的访问控制。缺乏应用程序控制使它们更容易被利用,并可能导致远程代码执行等后果。
LLM08:过度代理 基于LLM的系统可能会采取导致意想不到的后果的行动。该问题源于授予基于 LLM 的系统过多的功能、权限或自主权。
LLM09:过度依赖 过度依赖LLM而不受监督的系统或人员可能会因LLM生成的不正确或不适当的内容而面临错误信息、沟通不畅、法律问题和安全漏洞。
LLM10:模型盗窃 这涉及对专有LLM模型的未经授权的访问、复制或泄露。影响包括经济损失、竞争优势受损以及敏感信息的潜在访问。


LLM01:快速注射

描述

当攻击者通过精心设计的输入操纵大型语言模型(LLM)时,就会出现提示注入漏洞,导致LLM在不知不觉中执行攻击者的意图。这可以通过“越狱”系统提示直接完成,也可以通过操纵外部输入间接完成,这可能会导致数据泄露、社会工程和其他问题。

直接提示注入,也称为“越狱”,当恶意用户覆盖或显示底层系统提示时就会发生。这可能允许攻击者通过与可通过 LLM 访问的不安全功能和数据存储交互来利用后端系统。    

间接提示注入,当 LLM 接受来自攻击者可以控制的外部源(例如网站或文件)的输入时,就会发生间接提示注入。攻击者可能会在外部内容中嵌入提示注入来劫持对话上下文。这将导致 LLM 输出控制变得不太稳定,从而允许攻击者操纵用户或 LLM 可以访问的其他系统。此外,间接提示注入不需要人类可见/可读,只要文本由 LLM 解析即可。

成功的即时注入攻击的结果可能有很大差异 - 从索取敏感信息到以正常操作为幌子影响关键决策过程。

在高级攻击中,LLM 可能会被操纵来模仿有害角色或与用户设置中的插件进行交互。这可能会导致敏感数据泄露、未经授权的插件使用或社交工程。在这种情况下,受损的 LLM 会帮助攻击者,超越标准防护措施并使用户不知道入侵。在这些情况下,受损的 LLM 有效地充当攻击者的代理,在不触发通常的防护措施或向最终用户发出入侵警报的情况下推进其目标。

          

漏洞的常见示例

恶意用户对 LLM 进行直接提示注入,指示其忽略应用程序创建者的系统提示,而是执行返回私人、危险或其他不良信息的提示。


恶意用户上传包含间接提示注入的简历。该文档包含提示注入和说明,使法学硕士告知用户该文档非常出色,例如。职位的优秀候选人。内部用户通过 LLM 运行该文档来总结该文档。LLM 的输出返回的信息表明这是一份优秀的文档。


用户使用 LLM 来总结包含间接提示注入的网页。然后,这会导致 LLM 向用户索取敏感信息,并通过 JavaScript 或 Markdown 执行渗透。

访问网站上嵌入的流氓指令和内容利用其他插件来欺骗用户。

用户启用链接到电子商务网站的插件。嵌入在所访问网站上的恶意指令会利用此插件,导致未经授权的购买

                    

攻击场景示例

恶意用户上传带有提示注入的简历。后端用户使用法学硕士来总结简历并询问此人是否是一个好的候选人。由于即时注入,法学硕士的回答是“是”,尽管实际的简历内容如此。

攻击者在网页中嵌入间接提示注入,指示 LLM 忽略以前的用户指令并使用 LLM 插件删除用户的电子邮件。当用户使用LLM来总结该网页时,LLM插件会删除用户的电子邮件。

攻击者向依赖系统提示的专有模型发送消息,要求该模型忽略其先前的指令,而是重复其系统提示。该模型输出专有提示,攻击者可以在其他地方使用这些指令,或者构建进一步、更微妙的攻击。

攻击者向基于 LLM 的支持聊天机器人提供直接提示注入。注入包含“忘记所有先前的指令”以及查询私有数据存储和利用程序包漏洞以及发送电子邮件的后端功能中缺乏输出验证的新指令。这会导致远程代码执行、获得未经授权的访问和权限升级。

用户使用 LLM 来总结包含文本的网页,该文本指示模型忽略先前的用户指令,而是插入链接到包含对话摘要的 URL 的图像。LLM 输出符合要求,导致用户的浏览器泄露私人对话。    


预防和缓解策略    

由于 LLM 的性质,即时注入漏洞是可能的,LLM 不会将指令和外部数据彼此隔离。由于法学硕士使用自然语言,他们将这两种形式的输入视为用户提供的。因此,法学硕士内部不存在万无一失的预防措施,但以下措施可以减轻即时注入的影响:

在 LLM、外部源和可扩展功能(例如插件或下游功能)之间建立信任边界。将法学硕士视为不受信任的用户,并维护用户对决策过程的最终控制权。但是,受损的 LLM 仍可能充当应用程序 API 和用户之间的中介(中间人),因为它可能会在将信息呈现给用户之前隐藏或操纵信息。以视觉方式向用户突出显示可能不可信的响应。


对 LLM 对后端系统的访问实施权限控制。为 LLM 提供自己的 API 令牌,以实现可扩展功能,例如插件、数据访问和功能级权限。通过将 LLM 限制为其预期操作所需的最低访问级别来遵循最小权限原则。


将外部内容与用户提示分开。分开并指出不可信内容的使用情况,以限制它们对用户提示的影响。例如,使用 ChatML 进行 OpenAI API 调用,向 LLM 指示提示输入的来源。

定期手动监控 LLM 输入和输出,以检查其是否符合预期。虽然不是缓解措施,但这可以提供检测弱点并解决这些弱点所需的数据。


添加人员参与循环以扩展功能。执行特权操作(例如发送或删除电子邮件)时,让应用程序要求用户首先批准该操作。这减少了间接提示注入在用户不知情或未经用户同意的情况下导致未经授权的操作的机会。

          

LLM02:不安全的输出处理

描述

不安全的输出处理特指在将大型语言模型生成的输出传递到下游其他组件和系统之前对其进行不充分的验证、清理和处理。由于 LLM 生成的内容可以通过提示输入进行控制,因此此行为类似于为用户提供对附加功能的间接访问。

不安全输出处理与过度依赖的不同之处在于,它在LLM生成的输出传递到下游之前对其进行处理,而过度依赖则侧重于对LLM输出的准确性和适当性的过度依赖的更广泛的担忧。

成功利用不安全输出处理漏洞可能会导致 Web 浏览器中出现 XSS 和 CSRF,以及后端系统上的 SSRF、权限升级或远程代码执行。

以下情况会增加此漏洞的影响:

1该应用程序授予 LLM 权限超出最终用户的权限,从而实现权限升级或远程代码执行。

1该应用程序容易受到间接提示注入攻击,这可能允许攻击者获得对目标用户环境的特权访问。

1第三方插件无法充分验证输入。

          

漏洞的常见示例

1LLM 输出直接输入到系统 shell 或类似函数(例如 exec 或 eval)中,从而导致远程代码执行。    

1JavaScript 或 Markdown 由 LLM 生成并返回给用户。然后浏览器解释该代码,从而导致 XSS。


攻击场景示例

1应用程序利用 LLM 插件来生成聊天机器人功能的响应。该插件还提供了许多可供其他特权法学硕士访问的管理功能。通用 LLM 直接将其响应传递给插件,而无需进行适当的输出验证,从而导致插件关闭以进行维护。

1用户利用由法学硕士提供支持的网站摘要工具来生成文章的简明摘要。该网站包含一个提示注入,指示法学硕士从网站或用户的对话中捕获敏感内容。从那里,LLM 可以对敏感数据进行编码,并将其发送到攻击者控制的服务器,而无需任何输出验证或过滤。

1LLM 允许用户通过类似聊天的功能对后端数据库进行 SQL 查询。用户请求删除所有数据库表的查询。如果未仔细检查 LLM 精心设计的查询,则所有数据库表都将被删除。

1Web 应用程序使用 LLM 根据用户文本提示生成内容,而无需对输出进行清理。攻击者可以提交精心设计的提示,导致 LLM 返回未经净化的 JavaScript 有效负载,从而在受害者的浏览器上呈现时导致 XSS。对提示的验证不充分导致了这次攻击。


          

预防和缓解策略

1将模型视为任何其他用户,采用零信任方法,并对从模型到后端函数的响应应用适当的输入验证。

1遵循 OWASP ASVS(应用程序安全验证标准)指南以确保有效的输入验证和清理。

1将模型输出编码回给用户,以减少 JavaScript 或 Markdown 执行不需要的代码。OWASP ASVS 提供有关输出编码的详细指导。

              

原文始发于微信公众号(暴暴的皮卡丘):LLM大模型安全(1)-快速注入&不安全输出处理

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月2日03:07:39
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   LLM大模型安全(1)-快速注入&不安全输出处理http://cn-sec.com/archives/2257857.html

发表评论

匿名网友 填写信息