
OWASP Top 10 2023
LLM01:2023 - 提示性注入
描述:
绕过过滤器或使用精心设计的提示来操纵LLM,使模型忽略之前的指令或执行非预期的动作。
说明:提示注入是指绕过过滤器或使用精心制作的提示来操纵LLM,使模型忽略先前的指令或执行非预期的行动:
提示注入涉及绕过过滤器或使用精心制作的提示来操纵LLM,使模型忽略以前的指令或执行非预期的行动。这些漏洞可能导致意想不到的后果,包括数据泄漏、未经授权的访问或其他安全漏洞。
常见的提示语注入漏洞:
编制提示,操纵LLM泄露敏感信息。
通过使用特定的语言模式或令牌绕过过滤器或限制。
利用LLM的标记化或编码机制的弱点。
通过提供误导性的背景,误导LLM执行非预期的行动。
如何预防:
对用户提供的提示实施严格的输入验证和净化。
使用上下文感知过滤和输出编码,以防止提示被操纵。
定期更新和微调LLM,以提高其对恶意输入和边缘案例的理解。
监测和记录LLM的互动,以检测和分析潜在的提示注入尝试。
攻击场景示例: 情景#1: 攻击者制作一个提示,欺骗LLM,使其认为请求是合法的,从而泄露敏感信息,如用户凭证或内部系统细节。
第2种情况: 恶意用户通过使用特定的语言模式、标记或编码机制绕过内容过滤器,而LLM无法将其识别为受限内容,从而允许用户执行应被阻止的操作。
LLM02:2023 - 数据泄密
描述:
通过LLM的响应,意外地泄露敏感信息、专有算法或其他机密细节。
当LLM通过其响应意外地泄露敏感信息、专有算法或其他机密细节时,就会发生数据泄露。这可能导致对敏感数据或知识产权的未授权访问、侵犯隐私和其他安全漏洞。
常见的数据泄密漏洞:
在LLM的回应中不完全或不适当地过滤敏感信息。
在LLM的训练过程中过度拟合或记忆敏感数据。
由于LLM的误解或错误而导致机密信息的意外泄露。
如何预防:
实施严格的输出过滤和上下文感知机制,防止LLM泄露敏感信息。
在LLM的训练过程中使用差分隐私技术或其他数据匿名化方法,以减少过度拟合或记忆的风险。
定期审计和审查LLM的反应,以确保敏感信息不会在无意中被披露。
监测和记录LLM的互动,以检测和分析潜在的数据泄漏事件。
攻击场景示例: 情景1: 一个用户无意中向LLM提出了一个可能泄露敏感信息的问题。LLM在缺乏适当的输出过滤的情况下,回应了机密数据,将其暴露给用户。
第2种情况: 攻击者故意用精心设计的提示语探测LLM,试图提取LLM从其训练数据中记忆的敏感信息。
通过了解和解决与数据泄漏相关的风险,开发人员可以更好地保护他们的LLM实现,并确保他们系统的安全和保障。
LLM03:2023 - 沙箱不充分
描述:未能适当地隔离LLM,使之与外界隔绝:
在LLM访问外部资源或敏感系统时,未能适当隔离LLM,允许潜在的利用和未经授权的访问。
当LLM在访问外部资源或敏感系统时,没有被适当隔离,就会出现沙箱不充分的情况。这可能导致潜在的利用、未经授权的访问或LLM的非预期行为。
常见的不适当的沙箱漏洞:
LLM环境与其他关键系统或数据存储分离不足。
允许 LLM 在没有适当限制的情况下访问敏感资源。
没有限制LLM的能力,例如允许它执行系统级的行动或与其他进程互动。
如何预防:
实施适当的沙箱技术,将LLM环境与其他关键系统和资源隔离。
限制LLM对敏感资源的访问,并将其能力限制在其预期目的所需的最低限度。
定期审计和审查LLM的环境和访问控制,以确保保持适当的隔离状态。
监控和记录LLM的互动,以检测和分析潜在的沙盒问题。
攻击场景示例: 情景#1: 攻击者利用LLM对敏感数据库的访问,精心制作提示,指示LLM提取和披露机密信息。
第2种情况: LLM被允许执行系统级操作,攻击者操纵它在底层系统上执行未经授权的命令。
通过了解和解决与不适当的沙箱有关的风险,开发人员可以更好地保护他们的LLM实现,并确保其系统的安全和保障。
LLM04:2023 - 未经授权的代码执行
描述:利用LLM执行未经授权的代码:
通过自然语言提示,利用LLM在底层系统上执行恶意代码、命令或行动。
当攻击者利用LLM通过自然语言提示在底层系统上执行恶意代码、命令或操作时,就会发生未经授权的代码执行。
常见的未经授权的代码执行漏洞:
未能对用户输入进行消毒或限制,使攻击者能够制作提示,触发未经授权的代码执行。
对LLM能力的沙盒化不充分或限制不充分,允许它以非预期方式与底层系统互动。
无意间将系统级功能或接口暴露给LLM。
如何预防:
实施严格的输入验证和净化程序,防止恶意或意外的提示被LLM处理。
确保适当的沙箱和限制LLM的能力,以限制其与底层系统的互动能力。
定期审计和审查LLM的环境和访问控制,以确保不可能出现未经授权的行动。
监控和记录LLM的互动,以检测和分析潜在的未授权代码执行问题。
攻击场景示例: 情景1: 攻击者制作一个提示,指示LLM执行一个命令,在底层系统上启动一个反向外壳,授予攻击者未经授权的访问权。
第2种情况: LLM无意中被允许与系统级API互动,攻击者操纵LLM在系统上执行未经授权的操作。
通过了解和解决与未经授权的代码执行有关的风险,开发人员可以更好地保护他们的LLM实现,并确保其系统的安全和保障。
LLM05:2023 - SSRF漏洞
描述:利用LLMs执行恶意代码或通过自然语言提示对底层系统进行操作:
利用LLMs执行非预期的请求或访问受限资源,如内部服务、API或数据存储。
服务器端请求伪造(SSRF)漏洞发生在攻击者利用LLM执行非预期请求或访问受限资源,如内部服务、API或数据存储。
常见的SSRF漏洞:
输入验证不充分,允许攻击者操纵LLM提示,启动未经授权的请求。
沙盒或资源限制不足,使LLM能够访问受限资源或与内部服务互动。
网络或应用程序安全设置中的错误配置,使内部资源暴露给LLM。
如何预防:
实施严格的输入验证和净化,以防止恶意或意外提示启动未经授权的请求。
实施适当的沙箱管理,限制LLM对网络资源、内部服务和API的访问。
定期审计和审查网络和应用程序的安全设置,以确保内部资源不会在无意中暴露给LLM。
监控和记录LLM的互动,以检测和分析潜在的SSRF漏洞。
攻击场景示例: 情景#1: 攻击者制作一个提示,指示LLM向内部服务提出请求,绕过访问控制,获得对敏感信息的未授权访问。
第二种情况: 应用程序的安全设置中的错误配置允许LLM与受限的API进行交互,攻击者操纵LLM访问或修改敏感数据。
通过了解和解决与SSRF漏洞有关的风险,开发人员可以更好地保护他们的LLM实现,并确保其系统的安全和保障。
LLM06:2023 - 过度依赖LLM生成的内容
描述:
过度依赖LLM生成的内容而不进行人工监督,会导致有害的后果。
过度依赖LLM生成的内容会导致误导性或不正确信息的传播,减少人类对决策的投入,并降低批判性思维。各组织和用户可能会在未经核实的情况下相信LLM生成的内容,从而导致错误、沟通不畅或意想不到的后果。
与过度依赖LLM生成的内容有关的常见问题包括:
未经核实就接受LLM生成的内容作为事实。
假设LLM生成的内容不存在偏见或错误信息。
依靠LLM生成的内容做出关键性的决定,而没有人工输入或监督。
如何预防
为了防止与过度依赖LLM生成的内容有关的问题,考虑以下最佳做法:
鼓励用户在做出决定或将信息作为事实接受之前,核实LLM生成的内容并咨询其他来源。
实施人工监督和审查程序,以确保LLM生成的内容是准确、适当和无偏见的。
明确告知用户,LLM生成的内容是由机器生成的,可能不完全可靠或准确。
培训用户和利益相关者认识到LLM生成的内容的局限性,并以适当的怀疑态度对待它。
将LLM生成的内容作为人类专业知识和投入的补充,而不是替代。
攻击场景示例
情景1: 一个新闻机构使用LLM来生成各种主题的文章。LLM生成了一篇包含虚假信息的文章,未经核实就发表了。读者相信这篇文章,导致错误信息的传播。
第2种情况: 一家公司依靠一个LLM来生成财务报告和分析。该法律硕士生成的报告包含不正确的财务数据,而该公司利用这些数据做出了关键的投资决策。由于依赖不准确的LLM生成的内容,这导致了重大的财务损失。
LLM07:2023 - 不充分的人工智能调整
描述:未能确保LLM生成的内容与人工智能保持一致:
未能确保LLM的目标和行为与预期的使用情况相一致,导致不期望的后果或漏洞。
当LLM的目标和行为与预期的用例不一致时,就会出现人工智能匹配不足的情况,导致不希望出现的后果或漏洞。
常见的人工智能协调问题:
目标定义不当,导致LLM优先考虑不想要的或有害的行为。
奖励函数或训练数据不一致,导致非预期的模型行为。
在各种情况和场景下对LLM行为的测试和验证不足。
如何预防:
在设计和开发过程中,清楚地定义LLM的目标和预期行为。
确保奖励功能和训练数据与预期结果相一致,不鼓励不希望的或有害的行为。
定期测试和验证LLM在各种情况、输入和环境下的行为,以确定和解决一致性问题。
实施监测和反馈机制,持续评估可持续土地管理的性能和一致性,并根据需要更新模型,以改善一致性。
攻击情景示例: 情景1: 训练有素的LLM在优化用户参与时,无意中优先考虑了有争议的或极化的内容,导致错误信息或有害内容的传播。
第二种情况: 为协助系统管理任务而设计的LLM被错位,导致它执行有害的命令或优先考虑降低系统性能或安全性的行动。
通过专注于人工智能的调整,并确保LLM的目标和行为与预期的用例相一致,开发人员可以减少其LLM实施中出现意外后果和漏洞的风险。
LLM08:2023 - 访问控制不充分
描述:
未正确实施访问控制或认证,允许未经授权的用户与LLM互动,并有可能利用漏洞。
当访问控制或认证机制没有正确实施时,就会出现访问控制不足的情况:
当访问控制或认证机制没有正确实施时,就会出现访问控制不充分的情况,允许未经授权的用户与LLM互动,并可能利用漏洞。
常见的访问控制问题:
未能严格执行访问LLM的认证要求。
没有充分执行基于角色的访问控制(RBAC),允许用户执行超出其预定权限的行动。
未能为LLM生成的内容和行动提供适当的访问控制。
如何预防:
实施强大的认证机制,如多因素认证,以确保只有经授权的用户才能访问LLM。
使用基于角色的访问控制(RBAC),根据用户的角色和责任来定义和执行用户的权限。
对LLM产生的内容和行动实施适当的访问控制,以防止未经授权的访问或操纵。
定期审计并根据需要更新访问控制,以维护安全并防止未经授权的访问。
攻击场景示例: 情景#1: 由于认证机制薄弱,攻击者获得了对LLM的未授权访问,允许他们利用漏洞或操纵系统。
第2种情况: 由于RBAC实施不充分,一个权限有限的用户能够执行超出其预期范围的行动,有可能造成伤害或损害系统。
通过正确实施访问控制和认证机制,开发人员可以防止未经授权的用户与LLM互动,并减少漏洞被利用的风险。
LLM09:2023 - 错误处理不当
描述:
暴露错误信息或调试信息,可能暴露敏感信息、系统细节或潜在的攻击载体。
当错误信息或调试信息以一种可能向攻击者暴露敏感信息、系统细节或潜在攻击载体的方式暴露出来时,就会发生不恰当的错误处理。
常见的不当错误处理问题:
通过错误信息暴露敏感信息或系统细节。
泄露调试信息,可能帮助攻击者识别潜在的漏洞或攻击载体。
未能优雅地处理错误,可能会导致意外行为或系统崩溃。
如何预防:
实施适当的错误处理机制,以确保错误被捕获、记录和优雅地处理。
确保错误信息和调试信息不泄露敏感信息或系统细节。考虑为用户使用通用的错误信息,同时为开发人员和管理员记录详细的错误信息。
定期审查错误日志,并采取必要的行动来修复发现的问题,提高系统的稳定性。
攻击场景示例: 情景1: 攻击者利用LLM的错误信息来收集敏感信息或系统细节,使他们能够发动有针对性的攻击或利用已知的漏洞。
第二种情况: 开发人员不小心将调试信息暴露在生产中,使攻击者能够识别系统中的潜在攻击载体或漏洞。
通过实施适当的错误处理机制,并确保错误信息不泄露敏感信息,开发人员可以减少攻击者利用LLM漏洞的风险,提高系统的稳定性。
LLM10:2023 - 训练数据中毒
描述:
恶意操纵训练数据或微调程序,向LLM引入漏洞或后门。
当攻击者操纵LLM的训练数据或微调程序,引入可能损害模型安全性、有效性或道德行为的漏洞、后门或偏见时,就会发生训练数据中毒。
常见的训练数据中毒问题:
通过恶意篡改训练数据,将后门或漏洞引入LLM。
向LLM注入偏见,使其产生有偏见或不适当的反应。
利用微调过程来破坏LLM的安全性或有效性。
如何预防:
确保训练数据的完整性,从可信的来源获取数据并验证其质量。
实施强大的数据净化和预处理技术,以消除训练数据的潜在漏洞或偏见。
定期审查和审计LLM的训练数据和微调程序,以发现潜在的问题或恶意的操作。
利用监控和警报机制来检测LLM的异常行为或性能问题,可能表明训练数据中毒。
攻击场景示例: 情景#1: 攻击者渗入训练数据管道并注入恶意数据,导致LLM产生有害或不适当的响应。
第二种情况: 恶意的内部人员破坏了微调过程,在LLM中引入漏洞或后门,从而在后期阶段被利用。
通过确保训练数据的完整性,实施强大的数据净化技术,并定期审计LLM的训练和微调过程,开发人员可以将训练数据中毒的风险降到最低,并保护他们的LLM免受潜在的漏洞。
评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果