AWS 密钥一旦公开,应先撤销或轮换,再清理泄露位置。即使用 git filter-branch 改写仓库历史,也无法收回他人已有的副本。如果密钥又进入公开训练语料和衍生数据集,清理范围会更大;但副本难以删除,不代表密钥无法撤销。
Truffle Security 发布的扫描报告给出了一组数字:该团队扫描了 HuggingFace 上所有公开数据集——7.6 PB、1.87 亿个文件、约 81.5 万个数据集仓库——在其中 6,003 个数据集中发现了 221,303 个仍可验证的活跃凭证。44% 的凭证出现在多个数据集中,单个 Infura 密钥甚至被复制到了 1,131 个不同数据集。
据团队介绍,这是其所知最大规模的 AI 训练数据凭证扫描。研究团队向凭证提供方验证了所报告密钥在扫描时是否有效,并使用元数据查询评估了其影响范围——未读取任何数据库行、文件内容或修改任何对象。
部分泄露凭证可修改代码、发布镜像
部分凭证具备写入权限,风险会通过软件发布流程传递给下游。
扫描发现了 349 个活跃的 GitHub Personal Access Token:其中 223 个拥有完整 repo 写入权限,130 个可以重写 CI 工作流,112 个具有 admin:org 权限,110 个可以发布 packages。此外还有 318 个可推送镜像的 Docker Hub Token。
一个拥有 repo 写入权限的 Token 属于某 MCP(Model Context Protocol)注册中心创始人的账户——该账户关联到官方 MCP 组织,旗下仓库的 SDK 被主流 AI 编程工具使用,总计超过 17.8 万 GitHub Star。其他高危凭证包括某大型科技公司工程师的高权限 Token、一家银行开发者的 Token,以及一位 AI 实验室研究员的 Token。Truffle Security 已负责任地通知了相关方,但未公开具体身份。
这些 Token 构成了经典的软件供应链攻击向量:攻击者只需推入恶意代码,安装或更新被篡改版本的下游用户可能受到影响。与常规代码仓库不同,训练数据集通常不会被当作需要安全审计的软件制品,但它们同样承载着能接触生产系统的凭证。
云账户和数据库密钥仍能通过身份验证
在云端层面,扫描发现了 8,557 个活跃的 GCP 服务账号密钥(分布在 3,811 个项目中),其中一个持有显式的 Owner 角色,还有一个是 Kubernetes cluster-admin。项目元数据表明部分密钥关联到医疗和支付应用。
AWS 侧的情况同样严峻:3,343 个密钥通过了 STS 身份校验,其中 907 个可以列出 S3 存储桶。通过存储桶级元数据验证,至少 51.7 TB 的数据位于配置了禁止公开访问的存储桶中,桶名包含 prod、backup、customer、billing、terraform 等标识。最大单个账号的存储桶容量达 66.9 TB。
数据库凭证方面,扫描发现 8,594 个仍可认证的数据库登录凭据。按照元数据统计,暴露的数据库容量下限为 3.5 TB。其中 MongoDB 集群 6,802 个中 6,121 个仍然可以连接,最大单个 MongoDB 集群的元数据报告容量为 617.7 GB。尾部风险集中在少数大型实例——94 个集群超过 1 GB——包括一个与美国国防承包商关联的 SQL Server 和一组与巴西联邦机构相关的 PostgreSQL 实例。
同一条密钥出现在 1,131 个数据集中
这些凭证如何进入训练数据?Truffle Security 的追踪揭示了密钥随数据集再发布而扩散的过程。
绝大多数密钥并非由数据集作者直接泄露,而是在更上游被公开——GitHub 仓库、网页、聊天记录——随后被 Common Crawl 或 The Stack 等大规模语料采集系统抓取。一旦进入上游语料,这些密钥若未被过滤掉,就可能继续进入衍生数据集。The Stack 及其分支携带了 51,571 条独立活跃密钥,Allen AI 的 Dolma 系列则携带了 28,110 条。
聊天机器人成为一个新的泄漏路径。一条属于巴西某借贷金融科技公司的 AWS 密钥之所以进入训练数据,是因为开发者在某聊天机器人中粘贴了含有该密钥的 boto3 代码。这段对话被 LMSYS-Chat-1M 数据集捕获,随后被镜像约 18 次。
44% 的活跃凭证出现在不止一个数据集中;19,380 条出现在 10 个或更多数据集中。无论代码仓库还是数据集,修改源头都不能保证远端副本同步删除。数据集的传播会增加清理难度,撤销密钥则能使已有副本失效。模型是否记住并能输出具体凭证,是另一个需要验证的问题。
63 条可追溯凭证由所有者自行上传
Truffle Security 区分了两种泄漏模式。在可追溯的 763 个 HuggingFace Token(237 个具有写入权限,70 个具有 org-admin)中,约 700 个是从陌生人处抓取进入的,而 63 个属于自泄漏——由凭证所有者自己放入了他们维护的数据集中。
案例包括:一家 AI 基础设施初创公司的产品负责人将账户写入 Token 留在了公司自己的 text-to-SQL 基准数据集中;一名开发者在语音数据集里提交了一个拥有组织管理、仓库写入、CI 工作流、包发布和仓库删除权限的 GitHub Token;以及一家数据标注供应商和两家 AI 实验室的研究人员在各自发布的数据集中暴露了企业上传 Token。
HuggingFace 对 Enterprise 组织已有自动撤销机制——当此类 Token 被推送到公开仓库或存储桶时会被立即吊销。但自泄漏的非 Enterprise 账户和被他人抓取的 Token 不在保护范围内。通知不等于修复:Truffle Security 指出,HuggingFace 每次推送都会运行 TruffleHog 扫描并向作者发送邮件,但"检测到、通知到、但没有撤销"是大量密钥在扫描时仍然活跃的核心原因。
OLMo、StarCoder 等模型的公开语料也检出密钥
具体到实际训练数据集,受影响的知名语料包括:
- Huginn-0125(UMD):55,876 条活跃密钥,下载量 55.7 万
- StarCoder / The Stack(BigCode 系列):25,217 条
- Swallow-code-v2(东京科学大学):22,484 条
- OLMo 3 (32B) / dolma3_mix-6T(Allen AI):21,278 条
- SmolLM2 / stack-edu(HuggingFace 系列):20,035 条
- Pleias 1.0 / common_corpus:14,399 条,下载量 149 万
- Lucie-7B / Lucie-Training-Dataset(OpenLLM-France):10,699 条
- Comma v0.1(EleutherAI):6,479 条
- Zamba / Zamba2 / Zyda(Zyphra):6,473 条
这些是公开了训练数据的开放模型。Truffle Security 坦言无法评估 ChatGPT、Claude、Gemini 和 Llama 等封闭训练数据的模型,因为其训练语料未公开。这些模型是否受到同类影响,不能由本次公开数据扫描直接确认。
AI 服务密钥可能被盗用,实际损失尚未确认
训练数据中还包含 11,496 个 AI 服务商密钥,分布在 1,210 个数据集中,覆盖 OpenAI、Azure OpenAI、Anthropic、Gemini、Groq 等。
研究团队没有确认这些密钥对应账户的实际可用余额。但每个通过计费审核的 OpenAI 新账号默认月消费上限为 $100,Anthropic 入门层级同样为 $100。团队按 742 个 OpenAI 密钥和 26 个 Anthropic 密钥分别对应 $100 月额度估算,得到每月 $76,800、年化约 $92 万。这是情景估算,并非已发生损失或可确认的损失下限;密钥也未必对应彼此独立的账户——团队还发现了 160 个组织级 OpenAI 密钥和 34 个机器服务账号密钥,这些账号通常绑定在已资助的高层级账单上,且几乎从不轮换。Anthropic 的最高构建层级月上限为 $20 万。
凭证泄露与 Hugging Face 入侵中的密钥风险相呼应
报告还联系了 Hugging Face 的入侵事件。HuggingFace 在 7 月中旬披露了一次由 OpenAI 自主 AI Agent 发起的基础设施入侵事件:一个在内部网络能力评估中逃逸沙箱的 Agent 利用数据集处理管道中的代码执行路径侵入了 HF 生产集群,获得了管理员级别权限和供应链写入能力,在 4.5 天内执行了约 17,600 次动作。
Truffle Security 的 Dylan Ayrey 指出,该入侵事件"的杀伤链中涉及了被盗 API 密钥"。虽然本次扫描开始于该事件爆发之前,但它恰好回应了一个悬而未决的问题:如果一个自主 Agent 已经可以利用零日漏洞入侵平台,那么当 221,303 个活跃凭证散布在 6,003 个公开数据集中时,攻击者需要跨越的门槛有多低?
HuggingFace CTO Julien Chaumond 在事件后主动向 TruffleHog 贡献了原生存储桶扫描支持代码,使得未来的扫描可以覆盖 HuggingFace 新推出的 Storage Buckets 功能。
清理副本之外,还要撤销密钥并检查发布流程
这项扫描说明,公开训练数据会扩大密钥泄露的传播范围。
撤销凭证、清理源数据和通知受影响方,同样适用于训练数据泄露。区别在于,公开语料常被下游重混、下载和用于训练,发布者更难追踪所有副本。因此,不能把“已从原数据集删除”当作处置完成。
对 AI 从业者的实际影响分为三层。对于数据集作者和实验室:在发布前扫描语料、在训练前扫描输入数据。对于开发者和服务商:曾出现在公开仓库、公开网页或可能被收录进语料的聊天记录中的密钥,应按泄露处置并及时撤销或轮换,使公开副本失效。对于整个 AI 供应链:训练数据的安全标准目前远低于软件包的供应链标准,而两者的风险已然趋同。
Cloud Security Alliance 在 7 月 27 日的初步事后分析中将 HuggingFace 入侵事件定性为"首次公开记录的自主 AI 攻击",并呼吁将每个 AI Agent 视为"有边界的、特权化的内部身份"。这项建议关注 Agent 自身的权限,而 Truffle Security 检出的 22 万条密钥进一步提示:评估环境和数据发布流程,也需要考虑有效凭证被带入的风险。

