警惕 Hugging Face 开源组件风险被利用于大模型供应链攻击

导语

近日,腾讯朱雀实验室发现著名AI社区Hugging Face开源组件datasets存在不安全特性,可引发供应链后门投毒攻击风险。AI开发者使用该组件加载攻击者构造的包含恶意代码的数据集时,会导致PC/服务器被入侵,同时在大模型预训练、微调等场景中,最终还可能导致大模型参数被窃取或篡改。

朱雀在此建议大家及时排查,同时也将持续进行大模型基础设施安全研究,分享团队在大模型时代下对于前沿安全攻防技术的思考与实践,保障大模型安全、可靠地落地应用,与行业共同提升大模型生态安全性。

关于Hugging Face

作为“AI领域的GitHub”,全球最具影响力的AI开源社区,Hugging Face 提供了大量高质量的开源模型、数据集以及AI应用托管服务,极大地降低了AI的技术门槛,该组织开源的transformers、datasets等组件也在AI领域被广泛使用。

警惕 Hugging Face 开源组件风险被利用于大模型供应链攻击

其中datasets组件(github.com/huggingface/datasets)为广大开发者提供了一种高效、易于使用的方法来处理各种数据集,能够更轻松地训练和微调 AI 模型,在Github上有17k+ Star,是目前最流行的AI数据集开源组件。截止2023年10月,Hugging Face平台托管了73763个公开数据集供开发者使用,开发者可以使用datasets直接加载平台所有公开数据集。

警惕 Hugging Face 开源组件风险被利用于大模型供应链攻击

图1:Hugging Face 数据集托管服务

Datasets组件的不安全特性

朱雀在对datasets等AI开源组件进行安全研究时发现,开发者通常会使用datasets组件的load_dataset函数加载数据集,为了考虑支持更复杂的数据处理格式或流程,当加载的数据集下包含有与数据集同名的Python脚本时,将会默认运行该脚本。

警惕 Hugging Face 开源组件风险被利用于大模型供应链攻击

图2:Datasets官方使用文档

由于Hugging Face平台上的数据集都由用户上传,如果数据集中的Python脚本包含恶意行为,那么会造成严重的安全风险,如下图所示,攻击者构造的恶意脚本会主动连接攻击者服务器,并等待攻击者下发执行系统命令,最终窃取受害者服务器上的敏感数据。

警惕 Hugging Face 开源组件风险被利用于大模型供应链攻击

图3:Datasets加载恶意数据集风险

不安全特性可被利用于供应链攻击

利用该特性,攻击者可通过在Hugging Face、GitHub及其他渠道分发包含恶意后门代码的数据集,当开发者通过datasets组件加载恶意数据集进行训练或微调时,数据集里的恶意后门代码将会运行,从而导致AI模型、数据集、代码被盗或被恶意篡改。

攻击流程如下图所示:

警惕 Hugging Face 开源组件风险被利用于大模型供应链攻击

图4:恶意数据集攻击流程

作为AI领域的基础库,datasets拥有很大的下载量,根据pypistats网站统计,最近一天下载量将近10万。一旦有恶意数据集在网络上被大范围传播与使用,将会有大量开发者遭受这种供应链后门投毒攻击。

警惕 Hugging Face 开源组件风险被利用于大模型供应链攻击

图5:Datasets下载量统计(pypistats)

厂商缓解措施

经与Hugging Face官方沟通,厂商认为datasets组件默认运行数据集内的Python脚本属于正常特性,表示已在GitHub开源项目中做过免责声明。

警惕 Hugging Face 开源组件风险被利用于大模型供应链攻击

图6:Hugging Face datasets免责声明

朱雀进一步研究发现,相同的风险存在于Hugging Face官方平台所使用的datasets-server (https://github.com/huggingface/datasets-server)组件中,该组件主要用于对外提供数据集托管服务,可导致Hugging Face平台自身被攻击。

2023年10月20日,Hugging Face 确认并修复了朱雀报告datasets-server组件漏洞,并评级为严重(CVSS评分9.6)。同时,朱雀也协助官方提供尽可能详尽的安全修复建议,官方在平台上对所有可能存在风险的数据集做出了进一步的安全风险提示。

警惕 Hugging Face 开源组件风险被利用于大模型供应链攻击

图7:Dataset Viewer风险提示

安全建议

我们认为,随着大模型越来越普及,在未来一段时间里,恶意数据集或将成为APT组织或黑客的攻击利器,除了Hugging Face,其他外部来源(如GitHub)、甚至本地数据集也需要AI与大模型开发者们高度警惕。

为了进一步保障业务的安全,朱雀建议可采取以下措施:

1、使用datasets-server作为服务端组件的开发者或团队,请及时更新到包含以下commit的版本(c8f45f858ca71c2e66782c672bfbaa8d965eab02)。

2、对于使用datasets组件的广大社区开发者或团队,请确保数据集来源可信,检查数据集脚本中是否存在恶意Python代码,谨慎使用在Hugging Face上被提示存在安全风险的数据集。

本文转载自腾讯朱雀实验室,本文观点不代表墨知立场。

赞 (0)
上一篇 2023年10月10日 下午7:51
下一篇 2023年11月21日 下午10:23

相关推荐

  • com.baomidou:mybatis-plus 组件安全漏洞及健康度分析

    文章更新时间:2023-09-22 15:05 组件简介 维护者 baomidou 组织 许可证类型 Apache-2.0 首次发布 2016 年 1 月 27 日 最新发布时间 2023 年 8 月 8 日 GitHub Star 15065 GitHub Fork 4090 依赖包 3064,589 依赖存储库 4,589 mybatis-plus是一款…

    2023年9月22日
    0
  • com.jcraft:jsch 组件安全漏洞及健康度分析

    文章更新时间:2023-09-19 19:00 组件简介 维护者 sourceforge 组织 许可证类型 BSD-3-Clause 首次发布 2005 年 11 月 8 日 最新发布时间 2018 年 11 月 26 日 依赖包 1,266 依赖存储库 17,304 JSch 是SSH2的一个纯Java实现。它允许你连接到一个sshd 服务器,使用端口转发…

    2023年9月19日
    0
  • 软件供应链危机:勒索潮涌,安全治理当务之急

    2023年勒索事件高发 2023年,约有 78% 的公司使用开源软件,90%的云平台以及区块链项目使用了开源组件进行构建。随着开源软件的广泛使用以及软件供应链安全治理困难,勒索组织有针对性的攻击关键供应商,进而勒索软件供应链下游大量拥有敏感数据、能够支付高额赎金的组织。 根据大数据平台statista统计,2017年到2022年的勒索攻击次数增加了168%,…

    2023年11月21日
    0
  • org.apache.zookeeper:zookeeper 组件安全漏洞及健康度分析

    文章更新时间:2023年8月25日 15:30 组件简介 维护者 apache组织 许可证类型 Apache-2.0 首次发布 2010年11月25日 最新发布时间 2023年8月3日 GitHub Star 11497 GitHub Fork 7098 依赖包 1,812 依赖存储库 34,172 ZooKeeper是一个分布式的、开放源码的分布式应用程序…

    2023年8月25日
    0
  • 国家安全部点名预警!软件供应链投毒治理指南来了

    写在前面  2026年6月18日,国家安全部微信公众号发文提醒警惕软件“供应链投毒”,再次把软件供应链安全问题推到企业和公众面前。 文章中提到,国家网络安全通报中心监测发现,近期集中爆发多起供应链投毒攻击事件,涉及开源软件仓库和商用工具两大核心供应链场景。 而且相关“供应链投毒”事件呈现出攻击隐蔽性强、影响范围广、危害程度高、传播速度快等共性特征,…

    2026年6月30日
    0