跳到主要内容

16 篇博文 含有标签「privacy」

查看所有标签

潜伏在 Few-Shot 提示词模板中的客户记录

· 阅读需 12 分钟
Tian Pan
Software Engineer

隐私审计员在 SOC 2 续期前两天提出了一个问题:“为什么你入门引导提示词示例中的电子邮件字段是一个真实客户的地址?”产品团队在脑海中回溯了整个流程。一年前,当他们发布 AI 摘要功能时,有人需要为 few-shot 模板找一个“看看它是如何工作的”示例。他们从预发布环境(staging)中选取了一条具有代表性的客户记录,清理了明显的字段——姓名、账户 ID、电话——并提交了文件。该客户在六个月后流失了。根据数据保留政策,他们的记录已从数据库中删除。但该记录并没有从提示词模板中删除,而该模板已发布到了生产环境中的每一个租户。

团队曾像大多数团队一样,认为隐私边界就是数据库。提示词模板是代码。代码要经过评审。评审并不会标记 PII(个人身份信息),因为评审人员不会在标记为 example_input: 的 YAML 字符串中寻找它。能在 Slack 消息和邮件附件中捕捉 PII 的 DLP(数据泄露防护)扫描器不会扫描提交的代码,即使扫描,它也不会将部分清理过的客户记录识别为个人数据,因为它知道要查找的字段已被移除。剩下的所有内容——公司规模、行业、稀有的职位名称、特定的城市——都是扫描器没有规则去处理的数据。

Prompt-Eligibility:数据分类中缺失的那一列

· 阅读需 13 分钟
Tian Pan
Software Engineer

调出你公司的数据分类政策。公开、内部、机密、受限——四个整齐的层级,每一个都映射到一组访问控制和一份批准的存储位置清单。现在问一个该政策从未准备回答的问题:这些层级中,哪些允许以发送给第三方模型 API 的 Token 序列的形式离开公司边界?

答案几乎总是沉默。这并非因为政策本身有误,而是因为它是不完整的。当今使用的每种分类方案都是为一种访问向量设计的,即询问“该员工是否被允许读取这一行?”Prompt 层引入了一个完全不同的向量:一个获得授权的服务读取了该行,将其转换为 Prompt,并将其跨网络传输给一个供应商,而该供应商可能会记录它、在其上进行训练,或将其以明文形式保存三十天。这些都不属于读取权限范畴。这些都不在覆盖范围内。

这就是缺失的一列。在你添加这一列之前,你的数据分类文档只是在自信地宣称一种你实际上并不具备的控制态势。

你的影子评估集是一个合规性定时炸弹

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的 AI 技术栈中最危险的数据存储是那个无人设计的存储。这一切始于一次冲刺期间的 Slack 消息:“真实用户是捕捉真实 Bug 的唯一途径 —— 让我们把一定比例的生产流量接入评估流水线,以便我们可以每晚进行回放。”六名工程师给这条消息点了赞。九个月后,该存储桶包含了 430 万条追踪(traces),当失败率上升时,评估任务会呼叫值班人员,而失败案例会被逐字发送到一个有 40 人阅读的 Slack 频道。这些追踪包含电子邮件地址、公司内部名称、部分信用卡卡号、员工电话号码,以及用户解释其愤怒原因的客户支持对话记录。

没有人梳理过数据流。没有 DPIA(数据保护影响评估)涵盖它。上季度的隐私审查查看了模型供应商的 API;但它没有查看你的评估任务。然后,一份数据主体删除请求送达,团队发现“删除该用户的所有数据”这句话已经无法对应到他们实际能做的任何事情。

第三份副本:向量存储、删除完整性以及 RAG 团队一直忽视的 GDPR 缺口

· 阅读需 12 分钟
Tian Pan
Software Engineer

用户根据 GDPR 第 17 条提交了删除请求。你的团队删除了 Postgres 中的行,清除了 S3 中的缓存文档,并从 CDN 中轮换掉了缓存的 PDF。搞定。隐私团队签字,安全团队签字,工单关闭。六个月后,一名拥有向量索引读取权限的数据分析工程师为了一项聚类实验提取了一组 float[1536] 数组样本,通过公开可用的反演模型(inversion model)运行这些数据,并重建了原始 32-token 文本块中大约十分之九的内容——包括你已经“删除”的文档。没人预料到这一点。没人怀有恶意。流水线完全按照设计运行,只是威胁模型从未将向量存储视为数据副本。

在我见过的几乎每个 RAG 团队中,这种思维误区都是一致的:嵌入(embeddings)被视为不透明的数值产物——是衍生品,而非数据。安全评估批准上线是因为“嵌入不是 PII(个人身份信息)”。隐私评估批准了删除处理,是因为“源文本已不存在”。这两个团队都错了,谁都没有将向量存储建模为用户数据的第三份副本——它紧挨着源数据库和分析仓库,任何拥有索引读取权限的人都可以查询,且由于没有任何工具能识别出 1536 维的浮点向量属于敏感数据,它完全处于所有 DLP(数据泄露防护)扫描器的范围之外。

你的微调语料库是 GDPR 数据产物,而不仅仅是机器学习资产

· 阅读需 13 分钟
Tian Pan
Software Engineer

当你的第一个微调模型上线生产环境时,你的权重就成了一种你的隐私计划从未编目过的新型记录。进入训练组合的客户服务记录不再仅仅是数据库中你可以 DELETE 的一行 —— 它现在被冗余且不可提取地编码进了你的 API 所提供的参数中。原始记录可以从 S3 中擦除,从你的仓库中抹去,并从你的 RAG 索引中删除,而模型仍会继续使用该客户的姓名、账户 ID 或病史片段来完成提示词。你的销售团队签署的数据保护协议 (DPA) 承诺你会履行删除请求。但没有人问过 ML 团队这在技术上是否可行。

关于 PII 提取的研究表明,这并非假设。PII-Scope 基准报告显示,在现实的查询预算下,针对预训练模型的对抗性提取率最高可增加五倍;而使用自提示校准的成员推理攻击已将微调模型的 AUC 从 0.7 提升至 0.9。Llama 3.2 1B 是一个被广泛复制的小型基座模型,已被证明会记住其训练集中存在的敏感记录。对于任何在生产追踪数据上发布微调模型的人来说,结论是生硬的:你不能假设你的权重已经忘记了。

这一点很重要,因为大多数微调流水线是由 ML 工程师设计的,他们优化的是损失 (loss),而不是由优化 GDPR 第 17 条款的数据主管设计的。结果产生了一个法律地位模糊、来源极少被记录、且不存在“删除用户 X”工作流的产物。

GDPR 的删除难题:为什么你的 LLM 记忆存储是法律风险

· 阅读需 11 分钟
Tian Pan
Software Engineer

大多数构建 RAG 管道的团队对 GDPR 的理解方式是错误的。他们关注推理调用——模型是否生成了 PII?——却忽略了静静地藏在向量数据库中的更严重的风险敞口。每当用户提交一份文档、一张支持工单或一条个人笔记,经过分块、嵌入和索引后,该向量存储在 GDPR 下就成为了个人数据处理器。当用户行使被遗忘权时,"按 ID 删除"并不能解决问题。

被遗忘权不仅仅是从关系型数据库中删除一行数据。由个人数据派生的嵌入向量携带着可恢复的信息:研究表明,句子级嵌入中 40% 的敏感数据可以用简单代码重建,对于较短文本,这一比例高达 70%。派生的表示形式是个人数据,而非经过净化的抽象。GDPR 第 17 条适用于此,监管机构正在密切关注。

生产环境中的隐私保护推理:云端API与本地部署之间的光谱

· 阅读需 10 分钟
Tian Pan
Software Engineer

大多数团队将LLM隐私视为一个二元选择:要么将数据发送到云端并承担风险,要么在本地运行所有内容并承担成本。这两种框架都是错误的。实际上存在一个风险特征和工程预算差异显著的方法光谱——大多数团队在这个光谱上的位置是错误的,却浑然不知。

研究人员最近证明,他们可以以每条记录0.012美元的成本,以48.9%的成功率从3912人中提取真实PII。这个统计数字往往被当作学术威胁建模而被忽视,直到安全审计或合规审查落到你的桌上。问题不是是否要关注LLM隐私,而是哪些控制措施真正能改变局面,以及每种措施的实施成本。

RAG 管道中的 PII 泄露:为什么你的聊天机器人知道它不该知道的事情

· 阅读需 12 分钟
Tian Pan
Software Engineer

你的新内部聊天机器人刚刚告诉一名实习生整个工程部门的薪资范围。HR 总监没有配置错任何东西。没有人分享了不该分享的链接。系统只是... 检索到了它,因为实习生询问了“工程师的薪酬预期”。

这是大多数团队预料不到的 RAG 隐私失效模式。它不是传统意义上的漏洞 —— 而是检索工作方式与访问控制预期方式之间的根本不匹配。

Embedding的隐私架构:你的向量数据库对用户了解多少

· 阅读需 11 分钟
Tian Pan
Software Engineer

大多数工程师认为embedding是安全抽象的——一堆无法被逆向工程的浮点数。这个假设是错误的,而感知与现实之间的鸿沟正是用户数据泄露的地方。

最新研究仅凭文本embedding就实现了超过92%的精确token序列重建准确率——包括完整姓名、健康诊断和电子邮件地址——而无需访问原始编码器模型。这些不是理论攻击。可迁移的逆向技术在黑盒场景下同样有效:攻击者构建一个模仿你的embedding API的代理模型,就可以发动攻击。无论你使用的是专有模型还是开源模型,攻击面都存在。

本文涵盖embedding隐私风险的三个层面:逆向攻击的实际能力、检索管道中访问控制悄然失效的位置,以及能为用户提供适当控制权的架构模式——按用户命名空间、检索时权限过滤、审计日志和删除安全设计。

提示层中的个人信息:大多数团队忽视的隐私工程缺口

· 阅读需 13 分钟
Tian Pan
Software Engineer

你的组织有一份隐私政策。它用合理的措辞描述了用户数据的谨慎处理、保留限制以及对 GDPR 和 HIPAA 的合规。但它几乎肯定没有说明:在任何策略控制生效之前,用户的姓名、电子邮件地址或病史是否以明文形式传输给了托管的 LLM API。

这个缺口——你能指出的隐私政策与你实际能证明的隐私保证之间的距离——正是大多数生产 LLM 系统悄然失守的地方。研究显示,提交给 ChatGPT 和 Copilot 等工具的提示词中,约有 8.5% 包含敏感信息,包括 PII、凭据和内部文件引用。在企业环境中,用户将邮件、客户数据和支持工单粘贴到 AI 辅助工作流程中,这一比例几乎肯定更高。

问题不在于开发者粗心大意。而在于 LLM 提示层从未被设计为数据处理边界。它从上游系统——用户输入、RAG 检索、智能体上下文——继承内容,却不执行治理整个技术栈其他部分的数据分类规则。

AI 系统中的差分隐私:'我们添加了噪声'究竟意味着什么

· 阅读需 12 分钟
Tian Pan
Software Engineer

大多数将"差分隐私"视为合规复选框的团队实际上并没有得到保护。他们在流水线的某个环节添加了噪声——也许是在微调时添加到梯度上,也许是在检索时添加到查询嵌入上——然后得出结论认为问题已经解决。合规文档写着"已启用 DP",工程团队继续前进。

他们没有做的是:定义 epsilon 预算、核算系统将服务的每一次查询所消耗的预算,或者验证其隐私损失是否受到有效约束。在实践中,"我们添加了噪声"与"我们拥有有意义的隐私保证"之间的差距,正是大多数现实世界 AI 隐私事件发生的地方。

本文就是关于这个差距的:差分隐私对 LLM 实际承诺了什么,这些承诺在哪里失效,以及团队做出的工程决策——通常是隐性的——如何决定他们的 DP 部署是真正的保护还是表面文章。

LLM 流水线中的 PII:那些你不知道直到为时已晚的数据泄漏

· 阅读需 11 分钟
Tian Pan
Software Engineer

每个构建过 LLM 功能的工程师都说过类似的话:"我们很谨慎——不会向模型发送 PII。"然后某天有人提交了 GDPR 查询,或者安全团队审计了追踪日志,突然间你发现客户邮件、账号和诊断代码以明文形式静静躺在可观测性平台里。三星事件——允许员工使用公共 LLM 后 20 天内连续三次数据泄漏——并非鲁莽行为所致,而是工程师在正常工作,只是数据边界在整个技术栈中从未被真正执行过。

问题在于,"不要向 API 发送 PII"是一项政策,而非一种控制手段。而政策会在你的系统做任何比单轮聊天机器人更复杂的事情时失效。