0
雷鋒網 AI 科技評論按:機器學習是當下人工智能浪潮的核心技術,受到了工業界的廣泛應用,為社會帶來了巨大的產業價值。然而,如果機器學習系統受到攻擊,將會帶來怎樣的嚴重后果?我們該如何分析、規避這種風險?下面,本文作者將基于 6 個月的研究心得,教給大家破解機器學習系統攻擊的正確方式!

機器學習正在讓科幻照進現實!但是,任何新的發明(包括機器學習在內)都存在一個很遺憾的事實,那就是新的能力同時也會帶來新的安全漏洞,讓攻擊者有機可趁(相關閱讀:https://medium.com/@iljamoisejevs/what-everyone-forgets-about-machine-learning-974752543849?source=post_page)。
因此,如果你是首席信息安全官(CISO)或者負責安全的產品經理(PM),你應該如何應對這些新的漏洞呢?你的機器學習系統真的會被攻擊嗎?如果是這樣的話,會在何時、以何種方式發生攻擊事件呢?
「機器學習安全威脅模型」(ML security threat model )或許是上述問題的解決方案。它是一個結構化的框架,展示了機器學習系統中所有可能存在的威脅向量。
目前,機器學習仍然是一個非常新的技術,人們對其威脅向量仍然知之甚少。然而,在本文中,我們將近最大努力思考這些問題,看看我們是否能夠提出一個形式化的框架來思考機器學習安全問題。
對于本部位于美國加州洛杉磯的「Calypso」的研究人員來說,當他們考慮威脅模型時,往往會考慮三個組成部分:

1、誰會攻擊你?(WHO)
站在我們對立面的攻擊者是一切攻擊行為的源頭。你當然可以直接將他們稱為「黑客」,但另一方面,你可以進一步細化一些他們的哪些特征信息從而定義他們呢?也許,將他們稱為「深諳機器學習工作機理的黑客」更好,「深諳機器學習工作機理并且具備數學背景的黑客」則又要更為確切。實際上,在「誰會攻擊你?」這個問題上,你能刻畫出的細節越多越好!
2、他們為什么要攻擊你?(WHY)
攻擊的原因與攻擊者的關系即為密切(這也是我在此一同討論二者的原因)。「為什么」背后的想法很簡單——他們可以「黑」掉你,但他們為什么要這么做呢?這里肯定有他們想要得到的東西,可能是賞金,也可能是其它形式的回報。在這里,我們也需要為攻擊原因下個定義,你可以簡單地說「他們為什么不攻擊我呢?」(這里不推薦這種定義),也可以定義地更復雜些:「違反保密規則,然后將從我的機器學習系統中提取出的數據售賣給另一個實體 X」(這種定義就更好了!)
3、他們將如何攻擊你?(HOW)
這部分將涉及到技術問題。既然你已經弄清楚了「誰會攻擊你」以及「為什么攻擊你」,那么接下來的問題就是「他們將如何攻擊你」。當我們討論機器學習安全時,不妨想想「他們會在訓練或進行推斷時攻擊你的機器學習系統嗎?」他們會擁有多少關于你的系統的信息?在思考「他們如何攻擊你」這個問題的過程中,想想他們有哪些備選方案是一個十分有趣、但也極具挑戰的問題。他們可能可以黑掉你的機器學習系統,但是如果黑掉你的數據管道更加容易,他們會這么做嗎?
下面,讓我們針對上述三個問題的細節進行展開。
對于「誰會攻擊你」的問題,一般來說,我喜歡把對手想象成「嚴肅認真」的人。在我的腦海中,他們可能是:
1. 聰明的研究人員/工程師在商業機器學習系統上搗亂(可能是為了某項實際研究工作,例如攻擊「Clarifai.com」);
2. 參加了某種賞金計劃的「白帽子」;
3. 「Penntester/紅隊人員」在進行網絡安全測試;
4. 攻擊某個商業機器學習系統來表達訴求的黑客主義者;
5. 攻擊某個商業機器學習系統從而獲得經濟回報(無論是通過實際部署攻擊的「戰利品」,還是將其在暗網市場上出售)的「黑帽子」;
6. 攻擊某個商業機器學習系統的有組織的「黑帽子」團體(例如「Anonymous」、「The Shadow Brokers」、以及「Legion of Doom」);
7. 國家資助的組織(這里主要指網絡戰);
思考你的對手有多厲害十分重要,因為這定義了他們可能掌握的知識和工具的種類,以及你的防御應該達到的水平。
現在,讓我們看看「他們為什么攻擊你」。在我看來,該問題可以被分解為下面兩個子問題:
1. 他們的目的是什么?
2. 他們的動機是什么?
我想使用「CIA」(Confidentiality,Integrity,Availability)三角來回答「他們的目的是什么」:

保密性、完整性、可用性三大要素是信息安全的三大支柱。如果你能保護這三者,你就保證了信息系統的安全。
1、保密性(或稱隱私性)攻擊旨在從你的機器學習系統中提取出敏感信息。例如,攻擊者可能想要推斷某個特定的數據點(例如你)是否是某個特定的訓練數據集(例如醫院的出院數據);
2、完整性攻擊會使你的機器學習模型犯錯,而更重要的是,模型會悄悄地這么做。例如,攻擊者可能希望你的分類器在整體性能不受影響的情況下將某個惡意文件當成安全文件,這樣一來你就不會注意到。在完整性攻擊的范疇內,攻擊者可能有許多子目標,由難到易分別為:
源/目標誤分類(source/target misclassification):攻擊者希望特定類別的對象(「惡意的」)被分類為某個其它的特定的類(「安全的」)。
針對性誤分類(targeted misclassification):攻擊者希望某個特定的類別的對象(「停車」標志)被分類為任意其它的類別(例如,「限速 60 碼」、「限速 45 碼」、「狗」、「人」或者其它任意「停車」之外的類別)。
誤分類(misclassification):把任意類別分類為錯誤的類別。這就涉及到下面將提到的「可用性攻擊」的領域了。
置信度降低(Confidence reduction):攻擊者希望你的模型置信度下降(在針對某種閾值(例如欺詐得分)進行攻擊時非常有用)。
3、可用性攻擊旨在徹底摧毀你的機器學習系統。例如,如果在訓練數據池中插入了足夠多的「壞」數據,那么你的模型學到的決策邊界基本上就是「垃圾」,模型會毫無作用。這就是機器學習世界中的「DOS」(拒絕服務,Denial of Service)攻擊。
在弄清攻擊者的目的后,緊接著我們需要考慮攻擊者的動機。這個問題更加主觀,與「誰會攻擊你」的關系也更為緊密。如果攻擊者被定義為黑客主義團體,那么他們就是試圖在發表某種聲明;如果攻擊者是一個「黑帽子」黑客,那么他可能想要獲得經濟利益。
下面將進入技術部分。攻擊者究竟如何才能真正破壞你的模型呢?(在這里,我將重點關注機器學習特有的漏洞,不包括機器學習服務器上的 DDOS 攻擊等傳統網絡安全問題。)
我們可以從四個維度對機器學習系統受到攻擊方式進行分類:
1. 時間(訓練時/推斷時)
2. 能力(白盒/黑盒/灰盒)
3. 局限性(擾動舉例/功能/領域/再訓練的頻率)
4. 替代方案
時間(Timing)
這里指的是機器學習部署的工作流程中攻擊發生的位置,大致有以下兩種選擇:訓練時和推斷時。

1. 在訓練時進行攻擊意味著攻擊者能夠影響訓練數據集(威力非常強大,但很難做到,也有額外的限制)。
2. 在推斷時進行攻擊意味著攻擊者只能擾亂即時輸入(威力可能很強大,也可能較弱,這取決于具體模型。但更容易執行,因為只需要注入修改后的輸入)。
能力(Capability)
這里指的是攻擊者對機器學習系統內部架構的了解。具體而言可以分為以下幾類:
白盒攻擊假設攻擊者知曉底層數據的分布(可能訪問其中一部分)、模型的架構、使用的優化算法,以及權值和偏置。
黑盒攻擊假設攻擊者對機器學習系統一無所知(白盒攻擊中的要素都不知道)。它們可以被分為兩種類型:困難標簽(當攻擊者只接收來自分類器的預測標簽時)和置信度(當攻擊者接收來自分類器的預測標簽的同時也接收置信度得分)。
灰盒攻擊介于白盒攻擊和黑盒攻擊之間。例如,攻擊者可能知道模型的構造如何,但是不清楚底層數據的作用,反之亦然。
你可能在科學文獻中也會看到「NoBox」這樣的術語。「NoBox」指的是對代理模型的攻擊,攻擊者基于他們對于目標機器學習系統的理解(盡管有限)重新構建該模型。我認為將其單獨分為一類是沒有意義的,因為一旦攻擊者構建了代理模型,它實際上就變成了一個白盒攻擊。
經驗法則:攻擊者擁有更多的知識對攻擊者更有利,對我們更不利(想了解更多,請參閱下面這篇關于「逃逸攻擊」(evasion attack)的文章:https://medium.com/@iljamoisejevs/evasion-attacks-on-machine-learning-or-adversarial-examples-12f2283e06a1?source=post_page)
局限性(limitation)
它指的是某些限制攻擊者行為的規則。這些都是機器學習系統特有的,例如:
在圖像中,通常將擾動空間限制在一個「距離」度量的范圍內,該度量往往是「L_i,L_1,或 L_2 范數」(參考閱讀:https://medium.com/@montjoile/l0-norm-l1-norm-l2-norm-l-infinity-norm-7a7d18a4f40c?source=post_page)。順便說一下,關于這么做是否真的有意義,曾經有過有趣的爭論(詳情請參閱下面論文「Motivating the Rules of the Game for Adversarial Example Research」:https://arxiv.org/pdf/1807.06732.pdf?source=post_page)。
在惡意軟件中,攻擊者只能在特定的地方以特定的方式擾亂文件,否則它將失去其惡意功能或破壞所有的文件。
在部署在物理設備(衛星、騎車、無人機、監控攝像頭)上的系統中,攻擊者可能只能修改物理方面的輸入。
要在訓練時進行攻擊,攻擊者需要兩個條件得到滿足:(1)系統基于新的數據不斷地重新訓練(否則攻擊者就不能注入「壞」數據)。(2)系統從外部信息源接收數據,,最好沒有人在循環中對其進行認證。
在隱私攻擊中,攻擊者通常需要一個沒有查詢限制的公共終端,并輸出置信度得分。置信度得分的信息是有限的——例如,大多數殺毒軟件智慧告訴你文件是「惡意的」還是「安全的」,并不提供進一步的細節。
備選方案(Alternative)
這是我想要簡要介紹的最后一個方面。我曾經聽一個在安全領域工作了 25 年的人用「電流」來形容攻擊者,因為他們總是選擇阻力最小的路徑。
這是一個重要的標準(而我發現它經常被忽視),它可以輕易地建立或解除一個威脅模型。攻擊機器學習組件實際上是攻擊者獲得他們想要的東西的最簡單的方法嗎?如果目標是侵犯隱私,他們會在分類器上構建陰影模型(Shadow model)來提取出數據,還是會有更容易利用的漏洞呢?
至此,本文已經涵蓋了大量的內容(實際上是我們過去 6 個月的研究心得),我們來把它們整合一下。

現在,讓我們對相關概念進行命名。
在對抗性機器學習(機器學習安全的學術名稱)中,通常根據「他們為什么要攻擊你」來獲取攻擊者的目標,并根據「他們將如何攻擊你」來命名攻擊。最終的結果如下:

1. 逃逸攻擊(也被稱為「對抗性樣本」)肯定是最流行的攻擊類型。它們發生在進行推斷時,并且會利用機器學習固有的漏洞(或稱「特性」?詳情請參閱關于「逃逸攻擊」的博文:https://medium.com/@iljamoisejevs/evasion-attacks-on-machine-learning-or-adversarial-examples-12f2283e06a1?source=post_page)
2. 下毒攻擊發生在訓練時,可能針對于兩個目標:(1)完整性(2)可用性。攻擊者可以在你的訓練數據池中插入一些經過精心挑選的示例,然后在其中構建一個「后門」(針對完整性);或者他們可以插入大量「壞」數據,以致于模型的邊界基本上失去作用(針對可用性)。
3. 隱私攻擊也許是最少被研究的,但這是一類及其相關的威脅,尤其是在今天。在這里,攻擊者并不想干擾你及其學習模型工作,而是想從中提取出隱私的、可能敏感的信息。有關隱私漏洞和相關的修復方法的更多內容,請參閱:https://medium.com/@iljamoisejevs/privacy-attacks-on-machine-learning-a1a25e474276?source=post_page。
Via https://towardsdatascience.com/will-my-machine-learning-be-attacked-6295707625d8 雷鋒網雷鋒網
雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知。