敏感信息泄露
- 资料来源:
genai.owasp.org - 资料整理:韦胖
是什么意思?
AI 大模型在回答问题时,可能无意中说出它"不应该说"的内容——比如用户的个人信息、公司的商业机密、系统的内部配置,甚至是其他用户的私密数据。
这类泄露可能来自:
- 模型的训练数据(如果训练集里包含了隐私信息)
- 用户自己无意间输入的敏感内容
- 系统配置不当,把不该暴露的信息放进了 AI 的上下文
可能泄露的信息包括:
- 个人身份信息(姓名、身份证号、联系方式等)
- 财务数据、健康记录
- 商业机密、内部算法
- 系统凭据(密码、API 密钥等)
- 法律文件
对于企业自有的专有模型,训练方式和模型架构本身也属于需要保护的敏感信息。
常见问题示例
个人信息泄露:用户在对话中提到了自己的隐私信息,AI 后续可能在回答其他用户时不经意间引用这些数据。
专有算法外泄:配置不当的模型可能将内部算法或训练数据暴露出来。历史上曾有"Proof Pudding"漏洞(CVE-2019-20634),通过训练数据泄露逆向出了机器学习模型,攻击者得以绕过安全控制。
商业机密泄露:模型在生成回答时,可能无意中包含内部业务数据或客户信息。
如何防范
数据清理
训练数据要脱敏:在用数据训练模型之前,对其中的姓名、联系方式、密码等敏感内容进行清理或替换为占位符。
严格验证输入:对用户输入进行检查,过滤掉可能被模型记忆或泄露的敏感信息。
访问控制
最小权限原则:严格控制谁能访问哪些数据,不需要的权限一概不开放。
限制外部数据来源:控制模型在运行时能访问哪些外部数据源,防止意外读取到不该看到的内容。
隐私保护技术
联邦学习:不把数据集中到一处,而是让模型在各自的设备或服务器上独立训练,减少数据集中带来的泄露风险。
差分隐私:在训练数据或模型输出中加入适量"噪声",让攻击者即使得到数据也无法还原出具体的个人信息。
用户教育
告诉用户不要输入敏感信息:在产品界面或文档中明确提示,不要把密码、身份证号等隐私内容发给 AI。
数据处理要透明:公开说明用户数据如何被保存、使用和删除,并允许用户选择"不让我的数据参与模型训练"。
系统安全配置
隐藏系统初始配置:限制用户查看或覆盖系统提示,减少内部配置被意外暴露的风险。
遵循安全配置规范:参考 OWASP API8:2023 的指南,避免通过错误提示或配置细节泄露内部信息。
高级技术
同态加密:让数据在加密状态下就能被模型处理,全程无需解密,进一步保护隐私。
令牌化与数据遮掩:在数据进入模型之前,先用占位符替换敏感字段(如把手机号变成
[PHONE]),处理结束后再还原。
真实攻击场景
场景 1:无意数据泄露
由于平台缺乏有效的数据隔离,某用户在查询时收到了另一个用户留下的个人信息。
场景 2:目标性提示词注入
攻击者通过精心设计的输入绕过过滤机制,诱导模型输出系统内部的敏感数据。
场景 3:训练数据里的"遗留信息"
模型训练时使用了包含真实用户数据的数据集,即使数据"理论上被清理过",攻击者仍可通过构造特定查询把原始数据"问"出来。