擁抱面孔是一種廣泛的共享機器學習平台(ML)模型,在研究人員確定了隱藏在兩個託管模型中的惡意軟件之後,正在努力應對安全問題。
這些惡意文件在 reverversinglabs ,在擁抱Face的安全措施中揭示了關鍵的弱點,並突出了開放AI平台的更廣泛風險。
泡菜序列化是一種流行的保存和共享python對象的流行方法,是Pytorch之類的框架,它是擁抱面孔的框架的核心廣泛支持。在避難所使其固有的風險。標記的型號包含反向外殼-旨在連接到遠程服務器並允許攻擊者控制受影響系統的aLware。儘管Face使用了稱為醃製的安全工具,但這些文件繞過檢測。
此發現增加了人們對開放ML平台安全性的日益擔憂。 Huging Face的協作環境促進了數據集,模型和代碼的共享,使其成為AI開發的關鍵資源。但是,它的開放性也會產生漏洞。
了解泡菜序列化及其風險
泡菜,一種用於序列化對象的python模塊,允許數據可以有效地保存和共享。這個被稱為序列化的過程使得可以重複使用預訓練的模型,而無需從頭開始重複訓練。
但是,醃製的挑選過程(將數據重新加載到內存中)也執行了任何嵌入式的python代碼,這是攻擊者可以利用注入惡意腳本的功能。
根據< Python的官方文檔,“可以構建可以構造惡意泡菜數據將在未列出期間執行任意代碼。從來沒有取消可能來自不受信任的來源的數據。”
儘管有警告,但由於其簡單性和與 pytorch 。在擁抱的臉上,用戶可以自由地共享序列化模型,這為黑客和其他惡意演員創造了理想的環境。
在反擊列表中發現的情況下,攻擊者會發現嵌入在擁抱臉上的泡菜文件中,這些文件是使用7-zip而不是Pytorch預期的標準ZIP格式。/Github.com/mmaitre314/picklescan”> picklescan ,一個安全掃描儀檢測到python泡菜文件執行可疑操作,從正確分析文件,使惡意軟件逃避檢測。
攻擊者如何繞過擁抱面孔的安全工具
醃菜班通過標記特定的黑名單方法(例如eval或exec)來標識潛在的惡意文件。但是,來自 reverversinglabs checkmarx 證明這些防禦能力可以多種方式繞過。例如,攻擊者使用Python的調試模塊, bdb.bdb. bdb.run 它的功能與標記的命令類似,但避免了檢測。
另一種方法利用了新的醃製協議。通過使用協議版本4,攻擊者以逃避醃製黑名單規則的方式進行了優化方法。
此外,研究人員還指出,諸如餅乾之類的工具將重點放在驗證文件中,然後將其掃描以獲取惡意內容。此過程錯過了嵌入在損壞的泡菜文件中的早期執行的有效載荷,該缺陷由 ReversingLabs的實驗。
“未能檢測到惡意功能的存在對AI開發組織構成了一個嚴重的問題,”研究人員在其中解釋說。攻擊者經常利用避難所的依次性質,以確保其惡意代碼在掃描工具可以標記
上。
CheckMarx的研究人員進一步批評了黑名單的使用,即使所有已知的Python方法都被標記,攻擊者也可以簡單地轉向第三方庫。 href=“ https://docs.python.org/3/library/asyncio.html”> asyncio,一種用於異步編程的內置python模塊,可以將武器武器武器化以繞開搭載泡菜。 “以惡意火炬/泡菜模型的形式進行完全動態代碼的放置列表方法允許攻擊者將這些解決方案留在灰塵中,” CheckMarx研究人員在其博客文章含義