資安業者Trail of Bits揭露針對機器學習(ML)模型的攻擊手法Sleepy Pickle,這項手法針對廣泛使用的檔案格式Pickle而來,攻擊者可用來破壞模型本身,從而對使用該模型的終端用戶下手。

研究人員指出,Pickle這種檔案格式本身就存在嚴重的資安風險,因為攻擊者能輕易將字元碼(Bytecode)植入無害的Pickle檔案。再者,網路上就出現像是Fickling這種工具,讓駭客只要透過單一命令建立惡意Pickle檔案,甚至還能產生API對特定目標發動進階攻擊。

一旦這種惡意Pickle檔案載入後,攻擊者就有機會進行中間人攻擊(MitM)、供應鏈攻擊、網路釣魚、利用系統特定的弱點。

一般而言,攻擊者要直接利用Pickle檔案格式的漏洞造成損害並不容易,但研究人員指出,Sleepy Pickle能用於破壞機器學習模型,使得Pickle檔案格式的弱點危害更加顯著。

究竟什麼是Sleepy Pickle?研究人員利用前述提及的Fickling,將自訂函數功能(惡意酬載)注入內含序列化機器學習模型的Pickle檔案,接著,他們透過中間人攻擊、供應鏈攻擊、社交工程等手法,將惡意Pickle檔案傳送至受害者的系統,一旦該檔案在受害系統進行反序列化,惡意酬載就會啟動,在模型植入後門、控制輸出的內容,或是在資料回傳給使用者之前進行竄改。

研究人員指出,攻擊者可藉由模型參數或是模型程式碼兩種面向,發動Sleepy Pickle攻擊,而且,他們可以藉此維持存取機器學習模型,還能迴避資安團隊的偵測。

當駭客的檔案在Python處理程序載入時,機器學習模型就會遭到破壞,而且,不會在磁碟留下痕跡;再者,由於這種手法僅依賴單一Pickle檔案,因此攻擊者無須對系統其他部分進行存取;其次,則是攻擊者透過反序列化過程動態修改模型,使得靜態資安分析系統難以察覺模型的變更。

最重要的是,這種攻擊手法具備高度彈性。研究人員舉例,駭客可設計惡意酬載,以Python程式庫掃描底層系統,或是檢查時區、日期,然後在符合特定條件的環境才會啟動。這樣做使得相關攻擊變得難以偵測,而且攻擊者可鎖定特定系統及組織犯案。

這種專門鎖定Pickle檔案的手法,Sleepy Pickle並非首例。先前有針對AI技術與資料共享平臺Hugging Face上傳惡意模型的攻擊手段,但這種手法攻擊者必須提供程式碼給使用者下載、執行,並設法引誘目標下載特定模型,而有可能曝露攻擊意圖,Sleepy Pickle能隱密竄改程式碼,攻擊者甚至可以建立不是機器模型的Pickle檔案來犯案。

他們展示了3種型態的Sleepy Pickle攻擊手法,從而讓生成式AI輸出有害內容及散布假訊息、竊取使用者的資料,或是發動網路釣魚攻擊。研究人員指出,雖然攻擊者只需插入惡意連結,但也可以結合更複雜的內容,包含JavaScript程式碼,或是跨網站指令碼(XSS)弱點,從而在回傳使用者的內容注入惡意指令碼。

熱門新聞

Advertisement