OWASP LLM 应用安全 Top10 v0.1
最后更新于
最后更新于
OWASP LLM Applications Top10是一个针对开发者和网络应用安全的标准意识文档,它代表了对大型语言模型(LLM)应用中最关键的安全风险的共识。该项目提供了LLM应用程序中常见的10大最关键漏洞的列表,突出了它们存在的普遍性、可利用性和潜在影响,提供一个易于理解和采用的指南,来指导如何应对LLM应用中可能存在的安全风险。需要注意到是,OWASP LLM Applications Top10目前还没有正式发布,现在只是公开的一个提案,处于v0.1版本,由Contrast Security的Steve Wilson贡献,并正在征求社区的意见和反馈。
OWASP LLM Top Ten v.1:
🚀 Prompt Injections 💧 Data Leakage 🏖️ Inadequate Sandboxing 📜 Unauthorized Code Execution 🌐 SSRF Vulnerabilities ⚖️ Overreliance on LLM-generated Content 🧭 Inadequate AI Alignment 🚫 Insufficient Access Controls ⚠️ Improper Error Handling 💀 Training Data Poisoning
以下对现版本的10条安全风险进行一个简单的介绍:
LLM01:2023 - 提示词注入(Prompt Injections) 针对LLM应用的Prompt注入攻击是指利用精心设计的提示来操纵LLM,使模型忽略之前的指令或执行非预期的操作。例如,一个攻击者可以在用户输入中插入一些特殊的符号或词语,来改变LLM的行为或输出。这种攻击可能会导致数据泄露、恶意代码执行、数据污染等后果。这种攻击利用了自然语言的多义性和上下文明感性和生成能力等特点,关于这一部分推荐阅读绿盟之前出的一篇研究文章《基于LLMs应用的Prompt攻击》。
LLM02:2023 - 数据泄露(Data Leakage) Data Leakage是指利用LLM的回答意外地泄露敏感信息、专有算法或其他机密细节。这可能导致未授权访问敏感数据、知识产权或隐私侵犯。例如,一个攻击者可以通过精心设计的提示来试图提取LLM从其训练数据中记忆的敏感信息。或者一个用户可能无意中向LLM提出一个可能泄露敏感信息的问题,而LLM由于缺乏适当的输出过滤,就回答了这个问题。
LLM03:2023 - 不充分的沙箱保护(Inadequate Sandboxing) Inadequate Sandboxing攻击是指利用LLM的环境没有被有效地隔离或限制,当它访问外部资源或敏感系统时,可能导致潜在的利用、未授权访问或非预期的行为发生。例如,一个攻击者可以利用LLM的访问权限来从敏感数据库中提取和泄露机密信息。或者LLM被允许执行系统级别的操作,而一个攻击者可以操纵它在底层系统上执行非法命令等。ChatGPT在公开发布初期就存在这种问题。
LLM04:2023 - 未授权代码执行(Unauthorized Code Execution) Unauthorized Code Execution攻击是指利用LLM的生成能力来执行恶意代码或命令,从而对底层系统造成影响或损害。这种攻击可能会导致未授权访问、数据泄露、系统破坏等后果。例如,一个攻击者可以通过精心设计的提示来让LLM执行一个反向shell命令,从而获得对底层系统的控制权。或者LLM无意中被允许与一个系统级别的API交互,而一个攻击者可以操纵LLM在系统上执行非法操作。
LLM05:2023 - SSRF漏洞(SSRF Vulnerabilities) 针对LLM应用的SSRF Vulnerabilities攻击是指利用LLM的功能来发起未经授权的请求或访问受限的资源,例如内部服务、API或数据存储。这种攻击可能会导致未授权访问、数据泄露、系统破坏等后果。例如一个攻击者可以通过操纵LLM的提示来让LLM向一个内部服务发起一个请求,绕过访问控制并获得敏感信息。或者攻击者可以利用LLM的访问权限来与一个受限的API交互,并访问或修改敏感数据。
LLM06:2023 - 过度依赖 LLM 生成的内容(Overreliance on LLM-generated Content) 过度依赖LLM生成的内容,导致误传或错误的信息、降低人类在决策中的参与度、或减少批判性思维。组织和用户可能会在没有验证的情况下信任LLM生成的内容,导致错误、沟通不畅或意外后果。例如,一个新闻机构可能会使用LLM来生成各种主题的文章,而LLM生成了一个包含错误信息的文章,没有经过验证就被发布了。读者信任这篇文章,导致错误信息的传播。或者,一个公司可能会依赖LLM来生成财务报告和分析,而LLM生成了一个包含错误财务数据的报告,公司用它来做重要的投资决策。这导致了由于依赖不准确的LLM生成内容而造成的巨大财务损失。
LLM07:2023 - AI对齐问题(Inadequate AI Alignment) LLM应用的AI对齐问题是指由于LLM的目标和行为与预期的用例不一致导致的不良后果或漏洞。常见的AI对齐问题包括:目标定义不清,导致LLM优先考虑不良或有害的行为;奖励函数或训练数据不一致,导致模型行为出现意外;在各种情境和场景中对LLM行为的测试和验证不足。 例如,一个LLM被训练为优化用户参与度,但无意中优先考虑了有争议或极端的内容,导致错误信息或有害内容的传播。或者,一个LLM被设计为协助系统管理任务,但由于对齐不佳,导致执行有害的命令或优先考虑降低系统性能或安全性的行为。
LLM08:2023 - 访问控制不足(Insufficient Access Controls) 未正确实施访问控制或身份验证机制时,访问控制不足,允许未经授权的用户与LLM交互并可能利用漏洞。比如未能对访问 LLM 强制执行严格的身份验证要求,或者基于角色的访问控制(RBAC)实现不足,甚至允许用户执行超出其预期权限的操作。由于身份验证机制较弱,攻击者未经授权访问LLM,从而允许他们利用漏洞或操纵系统。或者由于RBAC实现不足,具有有限权限的用户能够执行超出其预期范围的操作,从而可能造成损害或损害系统。
LLM09:2023 - 错误处理不当(Improper Error Handling) 当错误消息或调试信息以可能向攻击者泄露敏感信息、系统详细信息或潜在攻击媒介的方式公开时,会发生不正确的错误处理。常见的错误处理不当问题包括:1.通过错误消息公开敏感信息或系统详细信息;2.泄露可帮助攻击者识别潜在漏洞或攻击媒介的调试信息;3.无法正常处理错误,可能会导致意外行为或系统崩溃。
LLM10:2023 - 训练数据投毒(Training Data Poisoning) 当攻击者操纵LLM的训练数据或微调程序以引入可能危及模型的安全性,有效性或道德行为的漏洞,后门或偏差时,就会发生训练数据中毒。比如通过恶意操纵的训练数据将后门或漏洞引入LLM,或者向LLM注入偏见使其产生有偏见或不适当的反应,甚至利用微调过程来损害LLM的安全性或有效性。
参考链接: (1) OWASP Top 10 for Large Language Model Applications. https://owasp.org/www-project-top-10-for-large-language-model-applications/ (2) OWASP/www-project-top-10-for-large-language-model-applications. https://github.com/OWASP/www-project-top-10-for-large-language-model-applications/