译者 | 晶颜
审校 | 重楼
近日,开放全球应用程序安全项目(OWASP)列出了在大型语言模型(LLM)应用程序中最常见的十大关键漏洞类型。提示注入、有毒的训练数据、数据泄露和过度依赖LLM生成的内容仍然在清单上,而新增加的威胁包括模型拒绝服务(DoS)、供应链漏洞、模型盗窃和过度代理。
该列表旨在教育开发人员、设计人员、架构师、管理人员和组织在部署和管理LLM时潜在的安全风险,提高对漏洞的认知,提出补救策略,并改进LLM应用程序的安全态势。
以下是OWASP列出的影响LLM应用程序的十大最关键漏洞类型。
1.提示注入
当攻击者通过精心设计的输入操纵大型语言模型时,就会发生提示注入,导致LLM在不知情的情况下执行攻击者的意图。这可以通过“越狱”系统提示符直接实现,也可以通过操纵外部输入间接实现,进而导致数据泄露、社会工程和其他问题。
OWASP表示,成功的提示注入攻击的结果可能会存在很大差异,一些会获取到敏感信息,一些则会以正常操作为幌子影响关键决策过程。
例如,用户可以编写一个精妙的提示,迫使公司聊天机器人透露用户通常无法访问的专有信息,或者将简历上传到自动化系统,并在简历中隐藏指令,告诉系统推荐候选人。
针对此漏洞的预防措施包括:
- 实施严格的权限控制,限制LLM对后端系统的访问。为LLM提供自己的API令牌以实现可扩展功能,并遵循最小权限原则,将LLM限制为其预期操作所需的最低访问级别。
- 对特权操作要求用户额外确认和验证,以减少未经授权操作的机会。
2.不安全的输出处理
不安全的输出处理是指在大型语言模型生成的输出传递到下游的其他组件和系统之前,对它们进行的验证、清理和处理不足。由于LLM生成的内容可以通过提示输入来控制,因此这种行为类似于为用户提供间接访问附加功能的权限。
例如,如果LLM的输出直接发送到系统shell或类似的函数中,则可能导致远程代码执行。如果LLM生成JavaScript或Markdown代码并将其发送到用户的浏览器,则浏览器可以运行该代码,从而导致跨站点脚本攻击。
针对此漏洞的预防措施包括:
- 像对待任何其他用户一样对待模型,采用零信任方法,并对来自模型到后端函数的响应应用适当的输入验证。
- 遵循OWASP ASVS(应用程序安全验证标准)指导方针,确保有效的输入验证和清理,并对输出进行编码,以减少意外的代码执行。
3.训练数据中毒
训练数据中毒指的是对预训练数据或涉及微调或嵌入过程的数据进行操纵,以引入可能危及模型的漏洞、后门或偏见。
例如,获得训练数据集访问权限的恶意攻击者或内部人员可以更改数据,使模型给出错误的指令或建议,从而损害公司或使攻击者受益。来自外部来源的破损训练数据集还可能触发供应链危机。
针对此漏洞的预防措施包括:
- 验证训练数据的供应链,特别是来自外部的数据。
- 通过单独的训练数据或针对不同的用例进行微调来制作不同的模型,以创建更细粒度和准确的生成式AI输出。
- 确保足够的沙箱以防止模型抓取意外的数据源。
- 对特定的训练数据或数据源类别使用严格的审查或输入过滤器,以控制伪造数据的数量。
- 通过分析特定测试输入上的模型行为来检测中毒攻击的迹象,并在偏差响应超过阈值时进行监视和警报。
- 在循环中配置人员来审查响应和审核。
4.模型拒绝服务
在模型拒绝服务中,攻击者以一种使用异常大量资源的方式与LLM进行交互,这会导致LLM和其他用户的服务质量下降,并可能导致高资源成本。根据OWASP的说法,由于LLM在各种应用程序中的使用越来越多,它们对资源的密集利用,用户输入的不可预测性,以及开发人员对该漏洞的普遍认知缺失,这个问题将变得越来越严重。
例如,攻击者可以使用自动化向公司的聊天机器人发送大量复杂的查询,每个查询都需要花费时间和金钱来回答。
针对此漏洞的预防措施包括:
- 实现输入验证和清理,以确保用户输入符合定义的限制,并过滤掉任何恶意内容。
- 为每个请求设置资源使用上限,对每个用户或IP地址实施API速率限制,或者限制LLM响应队列的数量。
- 持续监视LLM的资源利用情况,以识别可能指示拒绝服务攻击的异常峰值或模式。
5.供应链漏洞
LLM供应链在很多方面都很脆弱,特别是当公司使用开源、第三方组件、有毒或过时的预训练模型或损坏的训练数据集时。此漏洞还包括原始模型的创建者没有正确审查训练数据,从而导致隐私或版权侵犯的情况。根据OWASP的说法,这可能导致有偏差的结果、安全漏洞,甚至是完全的系统故障。
针对此漏洞的预防措施包括:
- 仔细审查数据来源和供应商。
- 只使用信誉良好的插件,并确保它们已经针对你的应用程序需求进行了测试,并且在涉及外部模型和供应商时使用模型和代码签名。
- 使用漏洞扫描、管理和修补来降低易受攻击或过时组件的风险,并维护这些组件的最新库存,以快速识别新的漏洞。
- 扫描环境中未授权的插件和过时的组件,包括模型及其工件,并制定补丁策略来修复问题。
6.敏感信息披露
大型语言模型有可能通过其输出泄露敏感信息、专有算法或其他机密细节。这可能导致对敏感数据、知识产权、隐私侵犯和其他安全漏洞的未经授权访问。
敏感数据可以在初始训练、微调、RAG嵌入期间进入LLM,或者由用户剪切和粘贴到他们的提示符中。
一旦模型访问了这些信息,其他未经授权的用户就有可能看到它。例如,客户可能会看到属于其他客户的私有信息,或者用户可能能够提取专有的公司信息。
针对此漏洞的预防措施包括:
- 使用数据清理和清除来防止LLM在训练期间或在推理期间访问敏感数据。
- 对用户输入应用过滤器,防止敏感数据被上传。
- 当LLM在推理过程中需要访问数据源时,应使用严格的访问控制和最小特权原则。
7.不安全的插件设计
LLM插件是在用户交互期间由模型自动调用的扩展。它们由模型驱动,对执行缺乏应用程序控制,并且通常对输入缺乏验证或类型检查。这将允许潜在的攻击者构造对插件的恶意请求,进而可能导致一系列意外行为,包括数据泄露、远程代码执行和特权升级。
针对此漏洞的预防措施包括:
- 实施严格的输入控制,包括类型和范围检查,以及OWASP在ASVS(应用程序安全验证标准)中的建议,以确保有效的输入验证和消毒。
- 适当的身份验证机制,如OAuth2和API密钥进行自定义授权。
- 部署前的检查和测试。
- 插件应遵循其预期操作所需的最低访问级别。
- 对敏感操作需要额外的人工授权。
8.过度代理
随着LLM变得越来越智能,公司希望赋予它们做更多事情、访问更多系统和自主做事的权力。过度代理是指LLM获得太多自主做事的权力或被允许做错误的事情。当LLM出现幻觉,当它沦为提示注入、恶意插件的受害者时,就可能执行破坏性的操作。
根据LLM获得的访问权限和特权,这可能会导致各种各样的问题。例如,如果允许LLM访问一个插件,该插件允许它读取存储库中的文档,以便对它们进行汇总,但该插件也允许它修改或删除文档,那么错误的提示可能导致它意外地更改或删除内容。
如果一家公司创建了一个LLM个人助理,为员工总结电子邮件,但也有发送电子邮件的权力,那么该LLM助理可能会开始发送垃圾邮件,无论是出于偶然还是恶意目的。
针对此漏洞的预防措施包括:
- 限制LLM允许调用的插件和工具,以及在这些插件和工具中实现的函数,尽量减少到必要操作所需的最低限度。
- 避免使用诸如运行shell命令或获取URL之类的开放式功能,而使用具有更细粒度功能的功能。
- 将LLM、插件和工具授予其他系统的权限限制到最低限度。
- 跟踪用户授权和安全范围,以确保代表用户采取的操作在该特定用户的情境中于下游系统上执行,并且使用所需的最小权限。
9.过度依赖
当LLM产生错误的信息并以权威的方式提供信息时,可能会发生过度依赖。虽然LLM可以产生创造性和信息丰富的内容,但它们也可以产生事实上不正确、不适当或不安全的内容,这被称为“幻觉”或虚构。当人们或系统在没有监督或确认的情况下信任这些信息时,可能会导致安全漏洞、错误信息、错误沟通、法律问题和声誉损害。
例如,如果一家公司依赖LLM生成安全报告和分析,而LLM生成的报告包含公司用于做出关键安全决策的不正确数据,那么由于依赖不准确的LLM生成的内容,可能会产生重大影响。
针对此漏洞的预防措施包括:
- 定期监测和审查LLM的输出结果。
- 使用可信的外部源交叉检查LLM输出,或者实现可以根据已知事实或数据交叉验证生成的输出的自动验证机制。
- 通过微调或嵌入增强模型以提高输出质量。
- 与用户沟通LLM使用风险和限制,并构建API和用户界面,鼓励负责任和安全地使用LLM。
10.模型盗窃
模型盗窃是指恶意行为者访问并泄露整个LLM模型或其权重和参数,以便他们可以创建自己的版本。这可能导致经济或品牌声誉损失,竞争优势的侵蚀,未经授权使用模型,或未经授权访问模型中包含的敏感信息。
例如,攻击者可能通过网络或应用程序安全设置中的错误配置访问LLM模型存储库,心怀不满的员工甚至可能泄露模型。攻击者还可以查询LLM以获得足够的问答对,以创建他们自己的模型“克隆”,或者使用响应来微调他们的模型。根据OWASP的说法,通过这种类型的模型提取,虽不可能100%地复制LLM,但却可以无限接近。
攻击者可以利用这个新模型的功能,也可以将其作为提示注入技术的试验场,然后利用提示注入技术侵入原始模型。OWASP警告称,随着大型语言模型变得越来越流行和有用,LLM盗窃将成为一个重大的安全问题。
针对此漏洞的预防措施包括:
- 实施强大的访问控制,例如基于角色的访问和最小权限规则,以限制对模型存储库和训练环境的访问。
- 定期监控和审计访问日志和活动,及时发现任何可疑或未经授权的行为。
- 通过输入过滤器和API调用的速率限制,以减少模型克隆的风险。
人工智能聊天机器人需要定期更新以保持对威胁的有效防御,而人类的监督对于确保LLM的正常运作同样至关重要。此外,LLM需要理解上下文,以提供准确的响应并捕捉任何安全问题,并应定期进行测试和评估,以识别潜在的弱点或漏洞。
原文标题:10 most critical LLM vulnerabilities,作者:Maria Korolov、Michael Hill