AI下毒造成的資安問題

最新消息與洞察

NEITHNET 資安實驗室

AI下毒所造成的影響

  在現代社會中將AI應用在日常與工作上已相當常見。常見的大型AI模型有OpenAI的ChatGPT、Meta的LLaMA系列、Google的Bard和微軟的Bing Chat。我們會將AI應用在圖片(文字生成圖像、風格轉換、圖像修復和自動圖像標記等)、文字(文章摘要、日程安排、文章生成等)、包含在程式開發中也有很大的幫助(簡易功能實作、修正程式錯誤、程式架構建議等)。

圖1. AI大型語言模型(來源: https://blog.csdn.net/weixin_42645636/article/details/131052797)

  而AI下毒的攻擊則會造成模型產出錯誤的或者是答非所問的答案,造成的結果就是使用者者在運用這些AI語言模型時,得到錯誤的答案,而使用者可能還不知道自己得到了一個錯誤的答案。

AI下毒技術

  AI下毒是利用AI模型使用大量且未經檢查的公開資料訓練這點,而攻擊者則會在訓練資料集中混和惡意資料,使訓練成的AI模型撰寫出不安全程式碼的建議。其中一種下毒方式是在看似正常的畫作中加入特殊的特徵碼,使AI將其誤會為另一個數,然後通過重複的汙染數據集,來達到徹底破壞AI認知的目的。

  而上述情況則是可以透過靜態分析工具,從訓練資料集中移除惡意資料,予以防範。但是微軟及學者團隊設計出2種新的資料下毒攻擊,分別是COVERT及TrojanPuzzle,可以繞過這類靜態檢測手法。

  COVERT是將惡意資料藏在文字串中,文字檔字串並不會分配給變項的字串,通常是用作附註或是說明功能、模組的文件,因此一般靜態偵測不會分析到,但模型則仍然是為訓練資料集,因而會重製在給開發人員的建議中。儘管如此,COVERT仍然逃不過以特徵來進行分析的方式。

圖2. Covertly Poisoning Code-Suggestion Models
圖3. Covertly Poisoning Code-Suggestion Models

  而TrojanPuzzle則不會將特定的程式碼加入到資料中,以降低資料的可疑性,但生成的模型仍然能產生建議完整的惡意酬載。COVERT是建立不良樣本,而TrojanPuzzle模型則是建立不良範本(template)。而研究人員將惡意酬載想要隱藏的部分以<template>來取代,用來作為觸發詞語的顯示文字。

圖4. Covertly Poisoning Code-Suggestion Models

AI下毒的修復與預防方式

  根據模型的預期用途和使用者偏好,模型每隔一段時間就會透過新收集到的資料進行再訓練,由於下毒通常要一段時間之後或在一些訓練週期中出現,因此很難判斷模型輸出的準確性何時開始變化。而想要從中毒效應中恢復正常,就需要對受影響類別的資料進行耗時的歷史分析,以鑑別所有中毒樣本並加以刪除。最後須對攻擊開始之前,未中毒版本的模型加以重新訓練,但在處理大量資料和大量攻擊時,以這種方式進行再訓練是絕對不可行的,模型也絕對無法獲得修復。

  也因為修復中毒模型的困難性,所以預防的關注重點,會在於下一個訓練週期開始之前,能封鎖惡意攻擊嘗試或偵測到惡意輸入的重點措施,例如輸入有效檢測、存取速率限制、回歸測試、手動調控及使用各種統計技術來偵測異常等措施。

References:

  1. https://www.ithome.com.tw/news/155107
  2. https://zhuanlan.zhihu.com/p/665346098
  3. https://www.cio.com.tw/how-to-disable-the-machine-learning-model/
  4. https://www.technice.com.tw/uncategorized/34088/
  5. Aghakhani, H., Dai, W., Manoel, A., Fernandes, X., Kharkar, A., Kruegel, C., … & Sim, R. (2023). TrojanPuzzle: Covertly Poisoning Code-Suggestion Models. arXiv preprint arXiv:2301.02344.

  更多資安訊息及防護策略,歡迎與NEITHNET資安專家聯繫:info@neithnet.com

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *