HuggingFace平台托管的代码被发现植入后门

猫猫喜欢吃香菜 2024-03-04 09:40:34

安全公司JFrog的研究人员周四在一份报告中表示,AI开发者平台Hugging Face上上传的代码秘密在最终用户的设备上安装了后门和其他类型的恶意软件,这很可能预示着未来的趋势。

JFrog研究人员称,他们共发现了大约100个执行隐藏且不受欢迎操作的提交,当这些提交被下载并加载到最终用户的设备上时就会发生。所有被标记的机器学习模型——所有这些模型都未被Hugging Face检测到——看起来都是由研究人员或好奇用户上传的良性概念验证。JFrog的研究人员在一封电子邮件中表示,其中10个模型“真正恶意”,因为它们执行了实际威胁到用户安全的操作。

特别令人关注的一个模型,因为它打开了一个反向Shell,使互联网上的远程设备完全控制了最终用户的设备。当JFrog研究人员将模型加载到实验室的机器中时,提交的确加载了一个反向Shell,但没有进一步的操作。

这一点,远程设备的IP地址,以及在其他地方连接相同Shell的存在,提出了一个可能性,即提交也可能是研究人员的工作。然而,一个打开设备以供此类篡改的漏洞是一个重大的研究伦理违背,并表明,就像提交给GitHub和其他开发者平台的代码一样,如果不先仔细审查,AI站点上可用的模型可能会构成严重风险。

JFrog高级研究员David Cohen写道:“模型的有效载荷授予攻击者一个在受损机器上的Shell,使他们能够通过通常被称为‘后门’的方式完全控制受害者的机器。这种无声的渗透可能授予对关键内部系统的访问权限,并为大规模数据泄露或甚至企业间谍活动铺平道路,不仅影响个别用户,也可能影响全球各地的整个组织,而受害者对自己的受损状态完全不知情。”就像其他九个真正恶意的模型一样,这里讨论的模型使用了pickle,这是一种长期被认为具有固有风险的格式。Pickle在Python中通常用于将对象和类中的人类可读代码转换成字节流,以便它可以保存到磁盘或通过网络共享。这个过程,称为序列化,为黑客提供了一个机会,可以将恶意代码偷偷插入到流中。

使用pickle的“reduce”方法在加载模型文件后执行任意代码的能力,使得以baller432为用户名的一方提交的模型能够规避Hugging Face的恶意软件扫描器。

JFrog的Cohen以更技术性的语言解释了这一过程:

在加载带有变换器的PyTorch模型时,常见的做法包括使用torch.load()函数,该函数从文件中反序列化模型。特别是在处理使用Hugging Face的Transformers库训练的PyTorch模型时,经常使用这种方法来加载模型及其架构、权重和任何相关配置。Transformers为自然语言处理任务提供了一个全面的框架,便于创建和部署复杂的模型。在“baller423/goober2”存储库的上下文中,恶意有效载荷似乎是使用pickle模块的__reduce__方法注入到PyTorch模型文件中的。这种方法,正如所提供的参考所示,使攻击者能够将任意Python代码插入到反序列化过程中,可能在加载模型时导致恶意行为。

Hugging Face已经移除了这个模型和JFrog标记的其他模型。

0 阅读:4

猫猫喜欢吃香菜

简介:感谢大家的关注