鉴于此,OWASP(开放式Web应用程序安全项目)特别推出了针对LLM应用的Top 10安全指南。这份指南旨在为全球的开发者、数据科学家和安全专家提供一套全面而实用的安全解决方案。通过深入剖析LLM应用中的常见漏洞,并提供相应的预防措施和攻击场景分析,OWASP希望能够帮助专业人士更好地理解和应对这些安全挑战。这不仅是对技术的一次深刻探讨,更是对社会责任的一次积极践行。
OWASP Top 10 for LLM Applications的制定过程,无疑是一次全球范围内的智慧集结。这份榜单背后,凝聚了近500位国际顶尖专家的心血与智慧。他们来自五湖四海,背景各异,包括人工智能公司、安全公司、独立软件供应商(ISVs)、云服务巨头、硬件提供商以及学术界等各个领域。正是这些专家的共同努力,确保了榜单的全面性和权威性。
在榜单的制作过程中,专家们首先通过一个月的头脑风暴,提出了数十种潜在的漏洞类型。随后,经过多轮激烈的投票和讨论,他们最终筛选出了十个最为关键的漏洞。这些漏洞不仅覆盖了LLM应用的各个方面,而且每一项都经过了严格的审查和公众评审,确保其准确性和实用性。

这份榜单的独特之处在于,它并没有简单重复其他OWASP Top 10列表中的漏洞类型。相反,它深入探讨了这些漏洞在LLM应用中的独特含义和影响。这种深入的分析,使得榜单更加贴近LLM应用的实际需求,为开发者提供了更有针对性的指导。
二、名单的由来OWASP Top 10 for LLM Applications的制定,是为了填补LLM应用安全领域缺乏统一资源的空白。随着LLM技术的广泛应用,开发者和安全专家面临着前所未有的挑战。他们需要了解LLM特有的安全风险,并学会如何防范和应对这些风险。
这份榜单的独特之处在于,它专注于LLM应用中可能遇到的安全问题,而不是简单地复述其他OWASP Top 10列表中的漏洞。通过深入研究LLM环境下的漏洞,该榜单为开发者提供了更具针对性的安全指导。
此外,该榜单还致力于弥合一般应用安全原则与LLM特定挑战之间的鸿沟。它不仅探讨了传统漏洞在LLM中可能带来的不同风险或新颖利用方式,还指导开发者如何为利用LLM的应用适配传统的修复策略。
三、详细漏洞条目介绍下图展示了一个假设的大型语言模型应用的高级架构。图中突出显示了与OWASP Top 10 for LLM Applications相关的风险区域,展示了这些风险如何与应用程序流程相交。此图可以用作视觉指南,帮助理解大型语言模型安全风险如何影响整个应用程序生态系统。
1. LLM01:Prompt Injection(提示注入)
Prompt Injection漏洞是指攻击者通过精心设计的输入操纵大型语言模型(LLM),导致LLM无意中执行攻击者的意图。这种攻击可以是直接的,例如通过“越狱”系统提示;也可以是间接的,通过操纵外部输入来实现。成功的提示注入攻击可能导致数据泄露、社会工程攻击等多种后果。
为了防范此类攻击,建议采取以下措施:实施特权控制,限制LLM访问后端系统的权限;在关键操作中加入人工审核机制;隔离外部内容与用户提示;建立信任边界,并保持最终用户对决策过程的控制。
2. LLM02:Insecure Output Handling(不安全的输出处理)不安全的输出处理指的是在将LLM生成的输出传递给下游组件和系统之前,对其进行的验证、清理和处理不足。这可能导致跨站脚本攻击(XSS)、服务器端请求伪造(SSRF)等严重后果。
防范策略包括:将模型视为普通用户,实施零信任策略,对模型输出的响应进行严格的输入验证;遵循OWASP ASVS指南,确保有效的输入验证和清理;对模型输出进行编码,以防止通过JavaScript或Markdown执行恶意代码。
3. LLM03:Training Data Poisoning(训练数据投毒)训练数据投毒是指在预训练数据或微调、嵌入过程中引入恶意数据,从而破坏模型的安全性、有效性或道德行为。这种攻击可能导致模型输出错误或恶意信息,给用户和组织带来风险。
为了应对这一威胁,建议采取以下措施:验证训练数据的供应链,确保来源可靠;在预训练、微调和嵌入阶段验证数据源和数据内容的合法性;根据LLM的使用场景定制训练数据,提高生成内容的准确性和安全性;实施沙箱化措施,防止模型摄入不安全的数据;使用对抗性健壮性技术,增强模型对恶意数据的抵抗力。
4. LLM04:Model Denial of Service(模型拒绝服务)模型拒绝服务攻击是指攻击者通过消耗大量资源的交互使LLM服务质量下降,甚至导致服务不可用。这可能是由于输入溢出、长输入或递归上下文扩展等技术手段造成的。
防范此类攻击的策略包括:实施输入验证和清理,确保用户输入符合定义的限制;限制每个请求的资源使用量;设置API速率限制,限制单个用户或IP地址在一定时间内的请求数量;监控LLM的资源使用情况,及时发现异常行为并采取相应措施。
5. LLM05:Supply Chain Vulnerabilities(供应链漏洞)LLM的供应链漏洞涉及训练数据、模型和部署平台的完整性受损。这可能导致偏见的结果、安全漏洞甚至系统完全故障。为了防范这些漏洞,建议采取以下措施:仔细审查数据来源和供应商,确保其可信度;仅使用经过测试且符合应用要求的插件;维护一个最新的组件清单(SBOM),以便及时发现和修复潜在的安全问题。
6. LLM06:Sensitive Information Disclosure(敏感信息泄露)LLM应用可能会意外泄露敏感信息,如专有算法或其他机密细节。为了防止这种情况发生,建议实施数据清理和擦除技术,确保用户数据不会进入训练模型;制定明确的条款和使用政策,告知消费者其数据将如何被处理,并提供退出选项。
7. LLM07:Insecure Plugin Design(不安全的插件设计)LLM插件可能存在不安全的输入和不足的访问控制,这使得它们容易被利用。为了解决这个问题,插件应实施严格的参数化输入,并在必要时引入类型和范围检查。同时,插件开发者应遵循OWASP的建议,确保输入验证和清理的充分性。
8. LLM08:Excessive Agency(过度代理)当基于LLM的系统被授予过多的功能、权限或自主性时,就可能发生过度代理问题。这可能导致系统采取意外的行动,从而产生一系列负面影响。为了避免这种情况,建议限制LLM代理可以调用的插件/工具的功能范围;限制LLM插件/工具中实现的功能;避免使用过于开放的功能;限制LLM插件/工具对其他系统的权限;跟踪用户授权和安全范围。
9. LLM09:Overreliance(过度依赖)过度依赖LLM可能导致误导用户、传播错误信息等安全问题。为了防止这些问题,建议定期监控和审查LLM的输出;与可靠的外部来源交叉核对LLM的输出;通过微调和嵌入来增强模型的性能;实施自动验证机制;将复杂任务分解为可管理的子任务;清晰地传达使用LLM的风险和局限性。
10. LLM10:Model Theft(模型盗窃)模型盗窃是指未经授权访问和窃取LLM模型的行为。为了防止模型被盗,建议实施强访问控制和身份验证机制;使用集中式ML模型库存或注册表;限制LLM对网络资源、内部服务和API的访问;定期监控和审计与LLM模型存储库相关的访问日志和活动;实施对抗性健壮性训练和水印框架以增强模型的安全性。
4、总结与展望OWASP Top 10 for LLM Applications不仅是一份详尽的漏洞清单,更是一份为开发者提供的安全宝典。它帮助我们在追求技术创新的同时,不忘坚守安全底线。展望未来,我们有理由相信,随着技术的不断进步和安全意识的提高,LLM应用将迎来更加安全、可靠的明天。让我们携手努力,共同守护这个充满无限可能的智能世界。
这份指南的发布,无疑是对LLM应用安全领域的一次重大突破。它不仅提升了整个行业的安全防护水平,更为未来的研究和发展指明了方向。我们期待在这份指南的指引下,LLM应用能够在安全、可控的环境中茁壮成长,为人类社会的发展贡献更大的力量。
榜单地址:https://owasp.org/www-project-top-10-for-large-language-model-applications/