【事件概述】
一个伪装成 OpenAI 发布内容的恶意 Hugging Face 仓库,向 Windows 系统投放信息窃取恶意软件。该仓库在 18 小时内登上 Hugging Face 热门排行榜首位,被移除前下载量达 24.4 万次,引发人们对企业从公共仓库获取和验证 AI 模型的新担忧。图片来源:Robert Way / Shutterstock
【恶意仓库详情】
AI 安全公司 HiddenLayer 在研究报告中指出,名为 Open - OSS/privacy - filter 的仓库假冒 OpenAI 合法的隐私过滤器版本,几乎逐字复制其模型说明卡,并包含恶意的 loader.py 文件,该文件会在 Windows 主机上获取并执行窃取凭证的恶意软件。报告还称,该仓库在不到 18 小时内登上 Hugging Face 热门排行榜首位,获得约 24.4 万次下载和 667 个点赞,数据很可能是人为夸大,目的是让仓库看起来合法。
这一事件凸显公共 AI 模型注册表正成为企业面临的新软件供应链风险,尤其是开发者和数据科学家将开源模型直接克隆到可访问源代码、云凭证和内部系统的企业环境中时。这个虚假模型附带的 README 与合法项目不同,它指示用户在 Windows 系统上运行 start.bat,或在 Linux 和 macOS 系统上执行 python loader.py。此前,研究人员曾在 Hugging Face 上的 Pickle 序列化模型文件中发现隐藏恶意代码,绕过了平台扫描程序,还警告 AI 供应链在监管和工具方面落后于传统软件。
【恶意加载程序机制】
据 HiddenLayer 称,loader.py 脚本先执行看似合法的 AI 模型加载程序的诱饵代码,然后启动隐藏的感染链。该脚本禁用 SSL 验证,解码与公共 JSON 托管服务 jsonkeeper.com 相关联的 base64 编码 URL,获取远程有效负载指令,并将命令传递给 PowerShell。研究人员表示,使用 jsonkeeper[.]com 作为 C2 通道,攻击者可在不修改仓库的情况下更换有效负载。由此产生的 PowerShell 命令会从攻击者控制的域名下载额外批处理文件,并通过创建计划任务建立持久化,该任务旨在模仿合法的 Microsoft Edge 更新过程。
报告称,感染链最终部署基于 Rust 的信息窃取程序,目标是基于 Chromium 和 Firefox 的浏览器、Discord 本地存储、加密货币钱包、FileZilla 配置以及主机系统信息。该恶意软件还试图禁用 Windows 反恶意软件扫描接口和 Windows 事件跟踪,同时检查沙盒和虚拟机环境以逃避分析。
【更广泛的攻击关联】
HiddenLayer 在报告中表示,还发现另外六个在另一个账户下上传到 Hugging Face 的仓库,使用几乎相同的加载程序逻辑,并与此次攻击活动共享基础设施。研究人员还将此次攻击的部分元素与早期涉及 npm 仿冒域名攻击和通过 PyPI 分发的虚假 AI 包的软件供应链攻击联系起来。HiddenLayer 称,共享的基础设施表明这些攻击活动可能相互关联,很可能是针对开源生态系统的更广泛供应链攻击的一部分。此前,研究人员曾警告过 Hugging Face 上 Pickle 序列化 AI 模型文件中嵌入的恶意代码,以及涉及受污染的 AI SDK 和虚假 OpenClaw 安装程序的独立攻击活动。
【传统安全控制局限】
分析师指出,这一事件暴露出现有软件成分分析和应用程序安全工具在处理 AI 制品时的局限性。IDC 网络安全服务高级研究经理 Sakshi Grover 表示,传统的软件成分分析(SCA)旨在检查依赖清单、库和容器镜像,而非与 AI 开发工作流程相关的日益复杂的行为,在识别隐藏在看似合法的 AI 仓库中的恶意加载程序逻辑方面效果差得多。
Gartner 主任分析师 Jaishiv Prakash 表示,企业现在需要在 AI 注册表层面建立专门的治理控制。企业必须在注册表层面为模型来源、批准版本、访问和运行时验证建立专门的控制措施。他补充道,模型仓库分发的可执行制品和嵌入式逻辑往往超出传统 SCA 工具的有效范围。Grover 表示,IDC 2025 年 11 月的 FutureScape 报告预测,到 2027 年,部署自主 AI 系统的企业中,60% 将需要 AI 物料清单,以支持持续的漏洞扫描和合规保证。
【企业应对建议】
HiddenLayer 敦促受影响的用户将受影响的系统视为已完全被攻破,并优先进行系统重装,而不是清理工作。报告称,如果克隆了 Open - OSS/privacy - filter 并在 Windows 主机上执行了 start.bat、python loader.py 或该仓库中的任何文件,应将该系统视为已完全被攻破。研究人员补充说,即使密码没有本地存储,浏览器会话也应被视为已被攻破,因为被盗的会话 cookie 可以绕过多因素身份验证保护。
该公司还建议阻止列出的攻击迹象、轮换凭证、使活动会话无效,并对与此次攻击活动相关的网络连接进行历史追溯。报告显示,Hugging Face 已向 HiddenLayer 确认该仓库违反了其服务条款,并将其从平台上移除。