黑客在HuggingFace上傳惡意AI模型,用“損壞”pickle文件規(guī)避監(jiān)測
2 月 10 日消息,據(jù) The Hacker News 于 8 日報道,網(wǎng)絡安全研究人員發(fā)現(xiàn),在 HuggingFace 平臺上,有兩個惡意機器學習(ML)模型利用了一種非常規(guī)的“損壞”pickle 文件技術(shù)來規(guī)避安全檢測。
ReversingLabs 研究員 Karlo Zanki 表示:“從這些 PyTorch 存檔中提取的 pickle 文件,在文件開頭揭示了惡意的 Python 內(nèi)容。兩者的惡意載荷都是典型的平臺特定反向 shell,連接到硬編碼的 IP 地址。”
這種方法被稱為 nullifAI,意在通過明確繞過現(xiàn)有的安全防護措施,避免被識別為惡意模型。Hugging Face 上發(fā)現(xiàn)的兩個相關(guān)模型存儲庫如下:
glockr1/ballr7
who-r-u0000/0000000000000000000000000000000000000
這些模型被認為更像是一個概念驗證(PoC),而非真實的供應鏈攻擊案例。
pickle 序列化格式在機器學習模型分發(fā)中很常見,但它一直被認為存在安全隱患,因為它允許在加載和反序列化時執(zhí)行任意代碼。
被檢測出的這兩個模型使用的是 PyTorch 格式,實質(zhì)上是壓縮的 pickle 文件。雖然 PyTorch 默認使用 ZIP 格式壓縮,但這些模型使用的是 7z 格式,這種不同的壓縮方式讓它們能夠避開 Hugging Face 的 Picklescan 工具的惡意檢測。
Zanki 進一步指出:“這個 pickle 文件的一個有趣之處是,對象序列化(IT之家注:即 pickle 文件的核心功能)在惡意載荷執(zhí)行后就斷裂,導致無法正確反編譯對象。”
后續(xù)分析表明,盡管存在反序列化錯誤,損壞的 pickle 文件仍然能夠被部分反序列化,從而執(zhí)行惡意代碼。該問題已被修復,Picklescan 工具也更新了版本。
Zanki 解釋說:“pickle 文件的反序列化是按順序進行的,pickle 操作碼會在遇到時執(zhí)行,直到所有操作碼執(zhí)行完畢或遇到損壞的指令。由于惡意載荷插入在 pickle 流的開頭,Hugging Face 的安全掃描工具未能檢測到模型的執(zhí)行是有風險的。”
【來源: IT之家】