IT之家2月10日消息,据TheHackerNews于8日报道,网络安全研究人员发现,在HuggingFace平台上,有两个恶意机器学习(ML)模型利用了一种非常规的“损坏”pickle文件技术来规避安全检测。
ReversingLabs研究员KarloZanki表示:“从这些PyTorch存档中提取的pickle文件,在文件开头揭示了恶意的Python内容。两者的恶意载荷都是典型的平台特定反向shell,连接到硬编码的IP地址。”
这种方法被称为nullifAI,意在通过明确绕过现有的安全防护措施,避免被识别为恶意模型。HuggingFace上发现的两个相关模型存储库如下:
glockr1/ballr7
who-r-u0000/0000000000000000000000000000000000000
这些模型被认为更像是一个概念验证(PoC),而非真实的供应链攻击案例。
pickle序列化格式在机器学习模型分发中很常见,但它一直被认为存在安全隐患,因为它允许在加载和反序列化时执行任意代码。
被检测出的这两个模型使用的是PyTorch格式,实质上是压缩的pickle文件。虽然PyTorch默认使用ZIP格式压缩,但这些模型使用的是7z格式,这种不同的压缩方式让它们能够避开HuggingFace的Picklescan工具的恶意检测。
Zanki进一步指出:“这个pickle文件的一个有趣之处是,对象序列化(IT之家注:即pickle文件的核心功能)在恶意载荷执行后就断裂,导致无法正确反编译对象。”
后续分析表明,尽管存在反序列化错误,损坏的pickle文件仍然能够被部分反序列化,从而执行恶意代码。该问题已被修复,Picklescan工具也更新了版本。
Zanki解释说:“pickle文件的反序列化是按顺序进行的,pickle操作码会在遇到时执行,直到所有操作码执行完毕或遇到损坏的指令。由于恶意载荷插入在pickle流的开头,HuggingFace的安全扫描工具未能检测到模型的执行是有风险的。”