LLM 数据泄露:保护大型语言模型的 10 个最佳实践

随着大型语言模型已成为组织处理内部和客户通信的主流工具,LLM 数据泄露的风险已成为首要的安全问题。LLM 泄漏可能会暴露您的客户数据、员工记录、财务信息或专有软件代码,甚至泄露黑客可以用来访问您的网络并发起其他攻击的信息。由于大型语言模型可以与贵公司使用的其他软件进行交互,因此无论您是否使用 LLM,您都会面临这些风险。这使得堵塞 LLM 数据泄漏成为一项关键的安全要务。

在此博客中,我们将分享您需要了解的有关 LLM 泄漏以及如何防止泄漏的信息。我们将介绍:

数据安全与 LLM 之间的联系
LLM 数据泄漏示例
LLM 数据泄漏的类型
10 LLM 数据安全最佳实践

了解数据安全与 LLM 之间的联系

大型语言模型通过分析来自各种来源的大量数据来学习。这可能包括公共数据以及私人数据,例如您的客户数据库、员工记录、内部或外部通信或财务报表。您使用的 LLM 或 LLM 中的任何安全漏洞都可能使这些数据面临风险,或者可能会使用外部数据损坏您的数据。

不幸的是,LLM 可以通过各种漏洞点和攻击媒介泄露数据。以下是一些示例:

LLM 泄露数据的示例

LLM 行为由称为系统提示的指令控制,这些指令设置边界来限制用户进入系统的提示。但是,黑客不断寻找构建用户提示的方法,以利用或绕过系统提示。例如,假设您的系统提示符调用包含用户凭证的数据库。如果您没有适当的防御措施,黑客可能会构建一个 SQL 查询,诱骗您的系统提示显示 LLM 系统上每个人的用户凭证,这种攻击方法称为提示注入。有了这些信息,攻击者就可以窃取敏感数据并利用用户凭证发起进一步的攻击。

让我们举一个不同的示例,该示例涉及用于训练大型语言模型的数据泄漏。假设您是一家金融咨询公司,您正在使用 LLM 来帮助您优化为客户提供的建议。要训练 LLM,您需要从客户端数据库中向其提供数据。但是,您的数据库包含有关客户的敏感个人身份信息 (PII),例如他们的姓名和联系信息。在没有保护措施的情况下,对 LLM 的查询可能会暴露这些数据并将其提供给黑客。

最后,让我们举一个示例,该示例涉及用于评估大型语言模型性能的测试数据中的泄漏。测试数据有助于更正模型准确性。为了保持模型的准确性,将良好的测试数据与模型数据分开至关重要。但是,如果没有足够的检查,测试数据可能会泄漏到模型数据中,从而污染您的模型并降低其准确性和价值。更糟糕的是,设法入侵您的 LLM 的不良行为者可能会故意用不良测试数据污染您的模型,以生成不准确的结果、破坏其功能或产生恶意输出。

LLM 数据泄漏的类型

上面的示例说明了 LLM 数据泄漏的三大类:

及时泄漏
模型数据泄露
测试数据泄露

及时泄漏

系统提示泄漏是全球开放应用程序安全项目 (OWASP) 认可的 10 大 LLM 安全风险之一。当不良行为者制作用户提示以纵系统提示以公开敏感数据时,就会发生这种情况。例如,攻击者可能会创建一个用户提示,指示 LLM 绕过防止远程代码执行的系统提示。

利用及时泄漏的攻击可能以暴露的数据为目标:

攻击者可以利用的敏感功能,例如系统架构、用户令牌、数据库凭证或 API 密钥
用户权限和角色,揭示了攻击者可以用于权限提升攻击的信息,从而为其他攻击奠定了基础
LLM 用于限制恶意数据输入的筛选条件,攻击者可以利用这些条件来识别未受保护的漏洞揭示不良行为者可以纵的决策程序
的内部规则,例如银行 LLM 用于筛选贷款申请的标准

您自己的 LLM 以及您或您的员工使用的其他 LLM 都可能容易受到及时泄漏的影响。例如,使用 ChatGPT 或中国品牌百度的 Ernie Bot 的员工可能会将您的数据暴露到这些 LLM 环境中。安全提供商 Cyberhaven 在 2023 年对 160 万名员工进行的一项研究发现,4.7% 的员工将机密数据粘贴到 ChapGPT 中,11% 的员工粘贴到 ChatGPT 中的数据是机密的。调查结果显示,平均每家公司每周向 ChatGPT 泄露敏感数据数百次,包括内部数据、源代码和客户数据。

模型数据泄漏

当您的模型返回输出时,会发生模型数据泄漏,该输出会暴露用作训练输入的敏感数据。例如,如果您使用客户数据来训练模型,则模型数据泄漏可能会暴露该信息。模型数据泄露可能会危及您在 LLM 训练数据中输入的任何类型的数据,包括个人身份信息、生物识别数据、财务信息或医疗保健数据。

测试数据泄漏

当您的 LLM 泄露了有关用于测试其模型的数据库的数据时,就会发生测试数据泄漏。LLM 用户可以从内部数据、开源软件存储库、私人提供商、政府数据库或其他来源获取测试集。暴露的内部数据可能包括在提示或模型数据泄露中面临风险的相同类型的数据,而外部数据可以为攻击者提供有关如何针对您的 LLM、使您的输出产生偏差或发起其他攻击方法的线索。

数据安全:LLM 最佳实践

如何防范数据泄露漏洞?以下是安全 LLM 应对数据泄露和其他风险的 10 个主要最佳实践:

实施访问控制
最大限度地减少数据输入和存储
验证和清理数据
加密数据
保护模型和测试数据
保护执行环境
审核供应链
纳入人工监督
监控生产中的 LLM
部署进攻性安全测试

1. 实施访问控制

防止未经授权访问 LLM 功能是防止数据泄露的第一道防线。应用访问控制,例如使用基于角色的访问控制 (RBAC)、MFA、授权、权限以及带有身份验证令牌的安全 API 端点。

2. 最大限度地减少数据输入和存储

保留不必要的数据会带来更多潜在风险。仅收集实现 LLM 功能目标所需的数据,并且不要将其存储超过您需要的时间。

3. 验证和清理数据

输入控件可以保护您免受某些类型的恶意代码(如 SQL 注入)的侵害。验证和清理数据类型、范围、格式和一致性等数据元素。

4. 加密数据

即使发生泄漏,加密也会降低数据对攻击者的价值。对静态和传输中的数据应用加密。

5. 保护模型和测试数据

忽视模型和训练数据安全性可能会使您暴露在这些攻击面上。对模型和训练数据应用最小化、验证、清理和加密。

6. 保护执行环境

LLM 执行环境中的漏洞可能会带来数据泄露风险。在运行时使用可信执行环境 (TEE) 和容器化等技术保护您的 LLM。

7. 审计供应链

第三方元素(如组件、模块、包、库和配置)可能会在您的 LLM 中引入漏洞。在部署之前,使用受信任的软件源并扫描第三方依赖项,从而保护您的供应链。

8. 纳入人工监督

人工审核可以拦截自动检查可能遗漏的漏洞。要求对可能危及 LLM 数据安全的决策(例如授权第三方连接或删除文件)进行人机协同 (HitL) 批准。

9. 监控生产中的 LLM

生产环境可能会给 LLM 带来实时风险。通过持续监控访问控制、系统日志和数据使用情况,密切关注异常活动。

10. 部署进攻性安全测试

如果不进行测试,您就不知道您的 LLM 安全措施是否足够。通过部署进攻性安全措施(例如渗透测试)和红队来验证您的防御措施。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容