Hugging Face 上的恶意机器学习模型利用损坏的 Pickle 格式规避检测
- 浏览次数 235
- 喜欢 0
HackerNews 编译,转载请注明出处:
网络安全研究人员发现,Hugging Face 平台上存在两个恶意机器学习(ML)模型,这些模型利用一种不寻常的“损坏”Pickle 文件技术来规避检测。
“从上述 PyTorch 存档中提取的 Pickle 文件显示,文件开头包含恶意 Python 内容,”ReversingLabs 研究员 Karlo Zanki 在一份与 The Hacker News 共享的报告中表示。“在这两种情况下,恶意负载都是一个典型的平台感知型反向 shell,连接到硬编码的 IP 地址。”
这种方法被称为 nullifAI,因为它试图绕过现有的安全防护措施,避免被识别为恶意模型。以下是 Hugging Face 上的模型存储库列表:
- glockr1/ballr7
- who-r-u0000/0000000000000000000000000000000000000
这些模型更像是概念验证(PoC),而不是实际的供应链攻击场景。
Pickle 序列化格式常用于分发机器学习模型,但因其存在安全风险而屡遭诟病,因为它允许在加载和反序列化时执行任意代码。
被检测到的两个模型存储在 PyTorch 格式中,实际上就是压缩的 Pickle 文件。尽管 PyTorch 默认使用 ZIP 格式进行压缩,但这些模型使用的是 7z 格式。这种行为使得模型能够避开 Hugging Face 用于检测可疑 Pickle 文件的 Picklescan 工具。
“这个 Pickle 文件的一个有趣之处在于,对象序列化——Pickle 文件的目的——在恶意负载执行后不久就会中断,导致对象反编译失败,”Zanki 说。
进一步分析发现,由于 Picklescan 和反序列化工作方式之间的差异,即使工具抛出错误消息,这些损坏的 Pickle 文件仍然可以部分反序列化,从而执行恶意代码。该开源工具随后已更新以修复此漏洞。
“这种行为的解释是,Pickle 文件的对象反序列化是按顺序进行的,”Zanki 指出。“Pickle 操作码在遇到时会被执行,直到所有操作码执行完毕或遇到错误指令。在发现的模型中,由于恶意负载插入在 Pickle 流的开头,模型的执行不会被 Hugging Face 现有的安全扫描工具检测为不安全。”
消息来源:The Hacker News, 编译:zhongx;
本文由 HackerNews.cc 翻译整理,封面来源于网络;
转载请注明“转自 HackerNews.cc”并附上原文