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