(Image by 愚木混株 Cdd20 from Pixabay)
資料下毒(Data Poisoning)會使機器學習(Machine Learning)模型不準確,可能因而導致基於錯誤輸出的不良決策。由於沒有可用的簡單修復機制,安全專業人員必須將重點放在預防和偵測上。
文/Lucian Constantin‧譯/酷魯
在過去10年裡,機器學習的採用呈現爆炸式成長,部分原因是由於雲端運算的興起所帶動,這使得所有企業能更容易地獲取高效能運算和儲存資源。隨著供應商將機器學習整合到各行各業的產品中,再加上使用者在做決策時更依賴機器學習演算法的輸出結果,安全專家因而對此警告,可能會有專門設計用來濫用該技術的對抗式攻擊(Adversarial Attack)的出現。
大多數社群網路平台、線上視訊平台、大型購物網站,搜尋引擎和其他服務,大都具有某種基於機器學習的推薦系統。人們喜歡在Netflix上觀看的電影和節目,人們在Facebook上按讚或分享的內容,在Twitter上的標籤追蹤和按讚,消費者在Amazon亞馬遜上購買或查看的產品,以及用戶在Google搜尋中輸入的查詢,都會被回饋傳送到這些網站的機器學習模型中,進而提供更好、更準確的推薦。
攻擊者試圖透過使用假帳號來對某些產品或內容進行好評、負評、分享或促銷,以影響和扭轉這些推薦系統的結果,這早已不是什麼新聞了。使用者可以在地下市場購買可用來進行這類操作之舉的服務,以及用於散佈假新聞等不實資訊活動的「巨魔農場」(Troll Farm,或稱為傀儡農場)。
「理論上來說,如果攻擊者知道某特定使用者是如何與某系統進行互動的話,那麼就可以透過推薦(如YouTube影片、惡意App或冒名盜用帳號)來對該使用者發動精心設計的攻擊,」安全供應商F-Secure旗下AI人工智慧卓越中心研究員 Andrew Patel 在一篇官方部落格文章中闡釋。「因此,惡意演算法操作適用於包括散佈不實資訊、網路釣魚詐騙、反轉公眾輿論、宣傳不受歡迎的內容,以及抹黑個人或品牌聲譽等多種用途。您甚至可以花錢僱人來操縱Google搜尋自動完成(Search Autocomplete)功能。」
什麼是資料下毒?
資料下毒或模型下毒(Model Poisoning)攻擊涉及了對機器學習模型之訓練資料的玷污之舉。資料下毒被認為是一種專門針對資料完整性(Data Integrity)的攻擊,因為篡改訓練資料會對目標模型輸出正確預測的能力造成影響。其他類型的攻擊也可以根據其影響進行類似的分類:
- 機密性:攻擊者可以透過向目標模型提供輸入,來推斷有關訓練資料的潛在機密資訊。
- 可用性:攻擊者從中偽裝其輸入來欺騙目標模型,以規避正確的分類。
- 複製:攻擊者可以透過對目標模型進行反向工程,來對其進行複製,並在本地端對其進行分析,以展開攻擊準備或基於自身經濟利益來對其進行漏洞攻擊。
意圖規避某模型預測或分類機制的攻擊和下毒攻擊之間的區別就在持久性:透過下毒,攻擊者的目標在於讓他們的輸入能被接受當作訓練資料。攻擊的持續時間也有所不同,因為它取決於該模型的訓練週期;攻擊者可能要耗費數週的時間才能達成他們下毒的目標。
資料下毒既可以在黑箱場景(專門針對依賴使用者回饋來更新其學習的分類器)中實現,也可在白箱場景(可從中獲得對目標模型及其私有訓練資料的存取權)中實現,如果訓練資料可能從多個來源收集得到的話,那麼就可能在供應鏈的某處尋得。
資料下毒案例
在一個網路安全情境中,目標可能是一個系統,該系統會使用機器學習來偵測可能顯示可疑活動的網路異常。Patel告訴《CSO》,如果攻擊者知道有這樣已部署到位的模型存在,他們可以嘗試慢慢地導入能降低該模型準確性的資料點,如此一來,他們最終想做的事情就不會被標記為異常了。此一攻擊手法也被稱為模型扭轉(Model Skewing)。
其中一個真實案例是針對電子郵件供應商所使用垃圾郵件過濾機制的攻擊。Google反濫用研究團隊負責人 Elie Bursztein 在2018年一篇有關機器學習攻擊的部落格文章中說:「在實戰中,我們經常看到一些最先進的垃圾郵件發送團體試圖透過將大量垃圾郵件回報成非垃圾郵件,來使Gmail過濾機制偏離軌道[…]在2017年11月底至2018年初期間,至少有4次大規模惡意嘗試之舉,意欲扭轉我們分類器的辨識結果。」
另一個案例則與 Google VirusTotal 掃描服務有關,許多防毒方案供應商都使用該服務來擴充自己的資料。雖然已知攻擊者在進行惡意軟體的大規模部署之前,會先對自己的惡意軟體進行對抗VirusTotal的測試以便規避偵測,但他們也會將惡意程式用於更持久的下毒攻擊中。事實上,2015年曾有報告指出,透過VirusTotal進行的意向抽樣(Intentional Sample)下毒攻擊,結果導致防毒方案供應商將正常檔案偵測為惡意檔案。
沒有簡易修復之道
資料下毒的主要問題在於它不容易修復。根據模型的預期用途和所有者的偏好,模型每隔一段時間就會透過新收集到的資料進行再訓練。由於下毒通常要一段時間之後,或在一些訓練週期中出現,因此很難判斷預測的準確性何時開始變化。
想要從中毒效應中回復正常,就需要對受影響類別的輸入資料進行耗時的歷史分析,以識別所有中毒資料樣本並加以刪除。接著需要對攻擊開始之前未中毒版本的模型加以重新訓練。但是,在處理大量資料和大量攻擊時,以這種方式進行再訓練是絕對不可行的,模型也絕對無法獲得修復,據 F-Secure 的Patel指出。
「目前學術界出現一個我認為蠻酷的概念,雖然還沒有實際可行的案例,但我們會加以實現,這就是所謂的『機器反學習』(Machine Unlearning),」微軟可信賴機器學習首席架構師 Hyrum Anderson 告訴《CSO》。「對於GPT-3(由OpenAI所開發的語言預測模型),訓練一次模型的成本為1,600萬美元左右。如果模型遭到下毒,並在事後確認,那麼找到中毒資料並進行再訓練作業的代價可能非常高昂。但如果我可以反學習,而且只要說『嘿!撤銷對於這些資料的影響效應和權重』,那麼這可能是打造防禦機制的一種便宜得多的方法。不過,我認為可行的機器反學習解決方案還需要好幾年的時間才會出現。目前的解決方案是用正常資料進行重新訓練的,它可能很難完成,也可能非常昂貴。」
預防和偵測
有鑑於修復中毒模型的困難性,模型開發人員必須關注的,莫過於在下一個訓練週期開始之前能封鎖惡意攻擊嘗試或偵測到惡意輸入的重點措施,例如像是輸入有效檢測、存取速率限制、回歸測試(Regression Testing)、手動調控以及使用各種統計技術來偵測異常等措施。
例如,一組帳號、IP位址或用戶不應佔模型訓練資料的很大部分。所以可以對接收成為訓練資料的唯一用戶所提供的輸入量或權重進行限制。透過暗發布(Dark Launch,也譯作暗部署或黑啟動,只會對一小部分的用戶發布),可以將新訓練的分類器與先前的分類器進行比較,以比較出他們輸出的差異。Google的Bursztein在他的部落格文章中還建議打造一個可讓任何再訓練模型都必須準確預測的黃金資料集,這有助於回歸檢測。
根據Anderson的說法,資料下毒只是發生在系統中稱為資料飄移(Data Drift)之更大問題的一個特例。每個人都會因各種原因而收到中毒資料,目前並且有許多關於如何處理資料飄移以及如何使用工具來檢測營運資料和模型效能重大變化的研究,包括透過大型雲端運算供應商來解決。Azure監視器(Azure Monitor)和 Amazon SageMaker 機器學習服務即為支援此類功能的業界案例。
「如果你的模型在再訓練後的效能表現受到重大影響,那麼無論這是下毒攻擊或只是一批錯誤資料所導致的,都可能無關緊要,你的系統是可以偵測得到的,」Anderson表示。「如果你嘗試進行修復,你可以根除針對性的下毒攻擊,也可根除在訓練模型時不慎進入資料接口的錯誤資料。因此,這些工具是一個不錯的開始,也算是一種開始在產業界逐漸成形的AI人工智慧風險管理框架。」
為了執行資料下毒,攻擊者還需要獲取模型工作方式的相關資訊,也因為如此,最重要的是盡可能降低資訊外洩的可能性,並對模型和訓練資料提供到位的強大存取控制機制。在這方面,機器學習防禦與一般的安全實務和衛生保健有很大的關聯,例如限制權限、啟用日誌記錄,以及使用檔案和資料版本控制等。
「AI和機器學習中的許多安全性都與非常基本的資料讀寫權限或對模型、系統或伺服器的存取權限有關,」Anderson表示。「在這種情況下,過度寬鬆的資料供應服務或某些目錄中的檔案可能會引發下毒攻擊。」
透過紅隊演練深入了解惡意攻擊
就像組織針對其網路和系統進行定期滲透測試以發現弱點一樣,他們應將這種滲透測試擴展到機器學習情境中,並將機器學習當作更大系統或應用程式安全的一部分。
「我認為開發人員在構建模型時最應該做的就是親自發動攻擊,以了解它有可能怎麼被攻擊,一旦了解有什麼能攻擊的方式之後,便可以嘗試建立抵禦這些攻擊的防禦措施,」Patel指出。「當你集結火力對模型發動攻擊時,你的偵測將基於你從紅隊演練中發現的問題,然後你會了解資料點的狀況,然後相應地你會打造出能將看起來已中毒之資料點加以丟棄的安全機制。」
Anderson在微軟積極參與這方面的工作。在 USENIX 協會的 Enigma 大會上最近的一次演講中,他在微軟進行了一次紅隊演練(Red Team Exercise),他的團隊設法對一個機器學習模型進行了逆向工程,該模式被某資源配置服務所使用,以確保虛擬資源到實體資源的有效分配和映射。
在無法對模型進行直接存取的情況下,該團隊設法找到了有關其如何收集資料以建立本地模型副本的足夠資訊,並在不被即時系統偵測到的情況下,完成對模型的規避攻擊測試作業。這使他們能夠確認虛擬機、資料庫及其大小和複製因素等組合狀況,以及在一天中的什麼時候、什麼區域中,他們應向真實系統請求,以確保機器學習模型有最大可能性得以無限制地配置到他們向託管高可用性服務之實體主機所請求的資源。
透過這些超額配置到的資源,他們便能透過能佔用高CPU和RAM記憶體使用率的有效負載來發動「資源爭奪」(Noisy Neighbor)攻擊,從而對被同一硬體託管的高可用性服務發動DDoS阻斷服務攻擊。「這次攻擊與對手在任何IT系統上的活動都有驚人的相似之處,」Anderson在演講中總結道。「經過外洩、規避和執行,最後以服務可用性受到衝擊而告終。」