教壞AI:人工智能的木馬化風險

將來的數十年,研究人員將要致力於人工智能系統相關的保安風險,現今最少探索的風險之一,是人工智能模型被木馬化的可能性,當中涉及內嵌隱藏功能或機器學習的刻意錯誤,有多種方法在AI中放入「木馬」。

模型中的惡意編碼

某些機器學習模型的儲存格式能含有可執行程式碼,例如在pickle模式讀取檔案時可執行任意代碼,這種模式被用於deep learning library PyTorch,在其他的機器學習library TensorFlow,模型在.keras和HDF5模式中支援「lambda layer」,可以執行Python指令,而這種編碼能輕鬆做到惡意功能。在TensorFlow的文件中包含了警告訊息,因為TensorFlow模型能夠讀寫檔案、收發網絡數據,甚至啟動子程序,意味著是功能豐富的程式,惡意程式能夠在讀取NL模型後啟動,於2024年2月,約100個含有惡意功能的模型被發現。

毒害訓練資料集

通過在訓練階段對初始資料集的操控,可以對模型進行木馬化,這迥程被稱為數據毒害 (data poisoning),可以分為有目標或無目標,有目標的毒害可以訓練模型在特定個案時錯誤地運作(例如聲稱Yuri Gagarin是首位登月人士),無目標的毒害旨在整體降低模型的品質。有目標的攻擊在已訓練模型中難以偵測,因為需要十分特定的輸入數據,不過對大型模型的輸入數據進行毒害所費不菲,因為需要在不被發現的情況下大量更改數據。現實中已有一些案例在運行過程中操控模式的學習,Microsoft的聊天機器人Tay也成為了攻擊對象,在少於一天內被訓練成為種族及極端主義,而Gmail的垃圾郵件分類器也成為目標,攻擊者把數以萬計的垃圾郵件標為合法,令更多濫發郵件送抵用戶的收件箱。通過更改訓練資料集的註釋或把有毒資料放入正在微調過程式預訓模型,也能達到同樣的目標。

影子邏輯

惡意修改人工智能系統的另一種新方法,是在模型計算圖中加入額外分支,這種攻擊不涉及執行代碼或在訓練過程進行篡改,不過修改後的模型面對特定預先確定的輸入資料,可以表現出期待的行為。這種攻擊利用機器學習模型使用計算圖,來建立訓練和執行,該圖描述神經網絡塊的連接順序,並定義他們的操作參數,計算圖是個模型獨立調計,而在某些機器學習模型架構中則是動態。

有研究人員示範了已訓練模型的計算圖可以通過加入分支進行修改,在操作的初始階段在輸入數據偵測特別訊號,模型被引導致在單獨程式設計的邏輯下操作,在一個示範的研究中,普及的影像物件偵測模型YOLO被修改為如果圖中出現杯便會無視人。

這種方法危險之處是能夠在任何模型中應用,不論是儲存格式、情態或適用範圍,後門可以用於自然語言處理、物件偵測、分類任務和多模態語言模型,即使進一步訓練和微調,有關的修改也可以保留下來。

防範AI模型的後門

對供應鏈的徹底控制是安全考量的關鍵,確保人工智能的所有元件都是已知和沒有惡意修改,包括:

  • 運作人工智能模型的編碼
  • 模型操作的運算環境
  • 模型的檔案
  • 用作訓練的數據
  • 用作微調的數據

主要的機器學習正逐步實施數碼簽署來驗證模型的起源和程式碼,如無法嚴格控制數據和編碼來源,便應該避免使用來源有可疑的模型,選擇有聲譽供應商的產品。

資料來源:Kaspersky Blog