机器学习模型脆弱性和安全性的提议
AI Conference in Beijing
最后機會:AI Conference 2019?北京站門票正在熱銷中,機不可失!
編者注:文中超鏈接如果不能訪問可以點擊“閱讀原文”訪問本文原頁面;查看2019年6月18日至21日在北京舉行的人工智能大會上的相關議題。
和許多人一樣,我已經(jīng)知道機器學習模型本身可能會帶來安全風險。最近大量的博文和論文概述了這一內容廣泛的主題,列舉出了攻擊方法和一些漏洞,開始提出了防御的解決方案,并為本文提供了必要的框架。本文的目標是在流行的、傳統(tǒng)的預測建模系統(tǒng)(如基于靜態(tài)數(shù)據(jù)集訓練的線性和樹型模型)的上下文中,對潛在的安全漏洞和防御方法進行頭腦風暴。雖然我不是安全專家,但我一直在密切關注機器學習的調試、解釋、公平性、可解釋性和隱私等領域。我認為這些領域中的許多技術可以應用于攻擊和防御預測性模型系統(tǒng)。
為了進一步推動安全專家和應用機器學習社區(qū)里的實踐者(比如我)之間的討論,這篇文章對通常機構運用的典型機器學習系統(tǒng)提出幾個可能的攻擊方向,給出可能的防御解決方案,并討論一些常見的關注點和潛在的最佳實踐。
1.?數(shù)據(jù)投毒攻擊
數(shù)據(jù)投毒是指有人系統(tǒng)地更改訓練數(shù)據(jù)以操縱模型的預測。數(shù)據(jù)投毒攻擊也被稱為“誘發(fā)性”攻擊。為了在數(shù)據(jù)里投毒,攻擊者必須能夠訪問到部分或全部訓練數(shù)據(jù)。在許多公司,很多不同的員工、顧問和外包人員是能訪問到數(shù)據(jù)的,而且很少有監(jiān)管。懷有惡意的外部人員也可能通過未授權途徑訪問部分或全部訓練數(shù)據(jù)并投毒。非常直接的數(shù)據(jù)投毒攻擊可能是更改訓練數(shù)據(jù)集的標簽。因此,無論你的模型用于什么商業(yè)應用,攻擊者都可以從模型的預測中獲益 。例如,通過更改標簽,以便讓模型學會給像攻擊者這樣的人獎勵大額貸款、大額折扣或低保險費。強迫你的模型對攻擊者的利益做出錯誤預測有時被稱為模型“完整性”的破壞。攻擊者也可能使用數(shù)據(jù)投毒來讓訓練出來的模型故意歧視一群人,剝奪他們應得的大額貸款、更大的折扣或更低的保費。這就類似于對模型本身的拒絕服務(DOS)攻擊。強制模型進行錯誤預測以傷害他人有時會被稱為破壞模型的“可用性”。雖將看起來通過更改數(shù)據(jù)集行里面的值來進行數(shù)據(jù)投毒可能更簡單,但數(shù)據(jù)投毒也可以通過在數(shù)據(jù)集上添加看似無害或多余的列來進行。然后,更改這些列中的值可以觸發(fā)模型預測的變化。
現(xiàn)在,讓我們討論對于數(shù)據(jù)投毒的一些潛在防御和取證的解決方案:
差異影響分析:許多銀行已經(jīng)出于公平借貸目的進行了差異影響分析,以確定他們的模型是否以歧視的方式對待不同類型的人。 然而許多其他機構還沒有這么做。差異影響分析可能會發(fā)現(xiàn)模型預測中的故意歧視。有幾種很好的開源工具可用于檢測歧視和差異影響分析,例如Aequitas、Themis和AIF360。
公平或隱私模型:學習公平表示(LFR)和教師模型全體的隱私聚合(PATE)等模型試圖更少關注個人人口統(tǒng)計特征以進行預測。這些模型也不太容易受到歧視性數(shù)據(jù)投毒攻擊。
拒絕負面影響(RONI):RONI是一種從訓練數(shù)據(jù)集中刪除會降低預測精度的數(shù)據(jù)行的技術。有關RONI的更多信息,請參見第8節(jié)中的第一篇論文”機器學習安全性“。
殘差分析:在模型預測的殘差中尋找奇怪的、明顯的模式,特別是對于員工、顧問或外包人員。
自我檢查:用模型對員工、顧問和外包人員打分,并尋找異常好的預測。
差異影響分析、殘差分析和自我檢查可以在訓練時間進行,也可以作為實時模型監(jiān)測活動的一部分。
2. 水印攻擊
水印是從深度學習安全文獻中借用的術語,通常是指將特殊像素放入圖像中以觸發(fā)期望的模型預測結果。完全有可能對客戶或交易數(shù)據(jù)做同樣的事情。考慮到這種情況,即員工、顧問、外包人員或惡意外部人員可以接觸到進行實時預測的模型的生產(chǎn)代碼。這些人可以改變該代碼以識別輸入變量值的奇怪或不可能的組合從而觸發(fā)期望的預測結果。與數(shù)據(jù)投毒一樣,水印攻擊可用于攻擊模型的完整性或可用性。例如,為了攻擊模型的完整性,有惡意的內部人員可以將一些代碼插入到模型的生產(chǎn)評分代碼中,從而讓代碼可以識別0歲至99歲年齡的組合,以觸發(fā)對他們自己或其同謀的某種有益的預測結果。為了破壞模型的可用性,攻擊者可以在模型的評分代碼中插入一個人為的、歧視性的規(guī)則,從而不讓模型為某一類人產(chǎn)生正面的結果。
對水印攻擊的防御和取證方法可能包括:
異常檢測:自動編碼器是一種欺詐檢測模型,可以識別奇怪或異于其他輸入數(shù)據(jù)的輸入數(shù)據(jù),但用的是更復雜的方式。自動編碼器有可能捕獲用于觸發(fā)惡意機制的任何水印。
數(shù)據(jù)完整性約束:許多數(shù)據(jù)庫不允許輸入變量的奇怪或不切實際的組合,這可能會阻止水印攻擊。對實時傳入數(shù)據(jù)流使用數(shù)據(jù)完整性約束可以有相同的好處。
差異影響分析:見第1節(jié)。
版本控制:就像任何其他任務關鍵型軟件資產(chǎn)一樣,生產(chǎn)模型的評分代碼應該受到管理和版本控制。
異常檢測、數(shù)據(jù)完整性約束和差異影響分析可以在訓練時使用,也可以作為實時模型監(jiān)控活動的一部分。
3.?由代理模型反推
反推通常是指將未經(jīng)授權的信息從模型中取出,而不是正常的將信息輸入模型中。反推也可以被認為是“探索性逆向工程”攻擊的一個例子。如果攻擊者可以從模型API或其他端點(網(wǎng)站、應用程序等)獲取許多預測,他們就可以訓練自己的代理模型。簡而言之,就是對你的預測模型進行模擬!攻擊者可以預謀利用它們用于生成接收到的預測的輸入和接收到的預測本身來訓練這個代理模型。根據(jù)他們可以接收的預測數(shù)量,代理模型可以成為實際模型的精確模擬。一旦代理模型被訓練出來,那么攻擊者就有一個沙箱,可以利用它假冒(即“模仿”)或對抗樣本攻擊你的模型的完整性。或者他們就具備了重建敏感的訓練數(shù)據(jù)方面的潛在能力。如ProPublica對COMPAS再犯模型所做的那樣,也可以使用一些和你的模型相似的外部數(shù)據(jù)源來訓練代理模型。
想要避免你的模型受到代理模型反推的攻擊,請考慮以下方法:
授權訪問:需要其他身份驗證(例如2FA)才能接收預測。
節(jié)流預測:限制單個用戶的大量的快速預測; 同時考慮人為增加預測延遲。
白帽代理模型:作為一種白帽黑入練習,試試這個方法:對輸入和生產(chǎn)模型的預測之間訓練自己的替代模型,并仔細觀察:
不同類型的白帽代理模型的準確性界限; 試圖去發(fā)現(xiàn)代理模型能真正被用于學習到模型里不想被發(fā)現(xiàn)的知識的程度有多大。
可以通過白帽代理模型學習得到的數(shù)據(jù)趨勢,如由線性模型系數(shù)所代表的線性趨勢。
通過分析分配給某些白帽代理決策樹節(jié)點的個體數(shù)量可以學習得到的分段類型或人口統(tǒng)計的分布。
可以從白帽代理決策樹中學習到的規(guī)則。例如,如何可靠地冒充一個能獲得有益預測的人。
4. 對抗樣本攻擊
一個有想法的攻擊者理論上可以通過反復試錯(即“探索”或“敏感性分析”)、代理模型反推或社會工程來學習如何攻擊模型以獲得他們期望的預測結果或避免不想要的結果。專門為此目的設計一行數(shù)據(jù)來進行攻擊被稱為對抗性樣本攻擊(有時也被稱為“探索完整性”攻擊)。攻擊者可以使用對抗樣本攻擊來為自己獲得大額的貸款或更低的保險費,甚至避免由于高犯罪風險評分而被拒絕假釋。有些人可能把使用對抗樣本來避免模型預測的不良后果叫做“遁逃”。
嘗試下面列出的技術來防御或確認是否受到對抗樣本攻擊:
激活分析:激活分析需要對預測模型的內部機制進行基準測試,例如神經(jīng)網(wǎng)絡中神經(jīng)元的平均激活或隨機森林中每個葉節(jié)點分配樣本的比例。 然后將該信息與模型行為在傳入的真實數(shù)據(jù)流上進行比較。正如我的一位同事所說,“這就像看到隨機森林中的一個葉子節(jié)點對應于0.1%的訓練數(shù)據(jù),但是在一小時內就達到了75%的生產(chǎn)得分”。這樣的模式可能就是對抗性樣本攻擊的證明。
異常檢測:見第2節(jié)。
授權訪問:見第3節(jié)。
基準模型:除了更復雜的模型,可以在對新數(shù)據(jù)打分時使用高度透明的基準模型。可解釋的模型被認為更難以入侵,因為它們的機制是直接透明的。在對新數(shù)據(jù)進行評分時,將新的時髦的機器學習模型與受信任的透明模型或在受信任數(shù)據(jù)源和管道上訓練的模型進行比較。如果更復雜和不透明的機器學習模型與可解釋或可信模型之間的差異太大,則應該回退到保守模型的預測或對數(shù)據(jù)進行手動處理。同時還應該記錄這個事件,因為它可能是一次對抗樣本攻擊。
節(jié)流預測:見第3節(jié)。
白帽敏感性分析:自己使用敏感性分析進行探索性攻擊,以了解哪些變量值(或其組合)可能導致預測中出現(xiàn)大幅波動。在對新數(shù)據(jù)評分時屏蔽這些值或值的組合。你可能會發(fā)現(xiàn)開源軟件包cleverhans對進行白帽探索性分析很有幫助。
白帽代理模型:見第3節(jié)。
激活分析和基準模型可以在訓練時使用,也可以作為實時模型監(jiān)控活動的一部分。
5.?模擬
有想法的攻擊者可以再次通過反復試驗、代理模型反推或社會工程來學習到輸入的類型或個人可獲得期望的預測結果。然后攻擊者可以模擬這種輸入或個體以從模型得到他們期望的預測結果。模仿攻擊有時也被稱為“仿真”攻擊。從模型的角度來看類似身份盜竊。就像對抗樣本攻擊一樣,模仿攻擊涉及人為地更改給模型的輸入值。與對抗樣本攻擊不同,模仿攻擊可以使用可能的隨機組合的輸入數(shù)據(jù)值來欺騙模型。模仿意味著使用與另一個建模實體相關的信息(例如定罪、客戶、員工、金融交易、患者、產(chǎn)品等)來獲取模型與該類型實體關聯(lián)的預測。例如,攻擊者可以了解到模型與大幅折扣相關聯(lián)的特征(例如住在賭場為大客戶準備的房間),然后偽造信息以獲得相同的折扣。他們還可以與他人分享他們的策略,這可能會給相關公司帶來巨大的損失。
如果你使用的是兩階段模型,請注意“過敏”攻擊。 攻擊者可能冒充模型第一階段的正常輸入數(shù)據(jù)行以攻擊模型的第二階段部分。
模仿攻擊的防御和取證方法可能包括:
激活分析:見第4節(jié)。
授權訪問:見第3節(jié)。
篩選重復項:降維空間里使用自動編碼器、多維縮放(MDS)或類似的降維技術里,在評分時跟蹤模型所處理的相似的記錄的數(shù)量。 如果在某段時間內遇到太多類似的行,請采取糾正措施。
安全感知功能:在管道中保留一個功能,例如num_similar_queries。當首次訓練或部署模型時它可能并沒有用,但可以在評分時(或在未來的模型再訓練期間)來使獲得模型或管道的安全感知。例如,如果在評分時間內,num_similar_queries的值大于零,則可以發(fā)送評分請求給人工監(jiān)督。將來在重新訓練模型時,就可以教它為輸入數(shù)據(jù)行提供高num_similar_queries值的負向預測結果。
激活分析、篩選重復項和安全感知功能可以在訓練時使用,也可以作為實時模型監(jiān)控活動的一部分。
6.普遍性的問題
幾種常見的機器學習使用模式也帶來了更普遍的安全問題。
黑箱和不必要的復雜性:盡管可解釋模型和模型可解釋性的最新發(fā)展給準確且透明的非線性分類器和回歸器提供了使用機會,但許多機器學習工作流仍然是以黑箱模型為核心。在典型的商業(yè)機器學習工作流程中,這種黑盒模型通常只是一種不必要的復雜性。其他可能有害的復雜性例子有過于奇特的特征或大量的包依賴。由于至少兩個原因,這種復雜性可能會帶來下述問題:
1.隨著時間的推移,一個專注的、有想法的攻擊者可以比你或你的團隊更了解你們過于復雜的黑盒模型系統(tǒng),特別是在今天火爆且流動性大的數(shù)據(jù)“科學”市場中。為達到這個目的,他們可以使用許多新的模型無關的解釋技術和老派的敏感性分析,以及許多其他更常見的黑客工具。 這種知識不平衡可能被用來進行第1到5節(jié)中描述的攻擊或其他未知類型的攻擊。
2.研究和開發(fā)環(huán)境中的機器學習高度依賴于開源軟件的多樣化生態(tài)系統(tǒng)。其中一些軟件包有非常多的貢獻者和用戶。 有些包針對得非常具體,只對少數(shù)研究人員或從業(yè)者有用。眾所周知,很多軟件包都是由杰出的統(tǒng)計學家和機器學習研究人員維護的,他們主要關注的是數(shù)學或算法,而不是軟件工程,當然也不是安全性。機器學習管道依賴于數(shù)十個甚至數(shù)百個外部程序包的情況并不罕見,其中任何一個外部程序包都可能被黑客入侵并隱藏攻擊代碼。
分布式系統(tǒng)和模型:無論好壞,我們都生活在大數(shù)據(jù)時代。許多機構現(xiàn)在使用分布式數(shù)據(jù)處理和機器學習系統(tǒng)。在機器學習的場景下,分布式計算為惡意的內部或外部人員提供了大量的攻擊機會。數(shù)據(jù)可能僅在大型分布式數(shù)據(jù)存儲或處理系統(tǒng)的一個或幾個工作節(jié)點上被投毒。用于加水印的后門可以被編碼成大型集成模型的一個模型。 現(xiàn)在從業(yè)者必須檢查分布在大型計算集群中的數(shù)據(jù)或模型,而不是只是調試一個簡單的數(shù)據(jù)集或模型。
分布式拒絕服務(DDOS)攻擊:如果預測模型服務對機構的任務至關重要,請確保至少考慮過更常規(guī)的分布式拒絕服務攻擊,即攻擊者以驚人的大規(guī)模請求來延遲或停止合法用戶的預測,從而攻擊公開的預測服務。
7.一般性問題的解決辦法
一些傳統(tǒng)的和較新穎的通用最佳實踐可以被用來降低安全風險,并能提高機器學習系統(tǒng)的公平性、可靠性、透明度和可信度。
授權訪問和預測限流:標準安全措施(如額外的身份驗證和限流)就能非常有效地阻止第1到5節(jié)中描述的許多攻擊方法。
基準模型:較傳統(tǒng)的或可信的可解釋建模管道或其他高度透明的預測器可被用作基準模型,可被用來測量新的模型的預測是否被某種方式操控了,比如數(shù)據(jù)投毒、水印攻擊或對抗樣本攻擊。如果你信任的模型的預測結果與更復雜和不透明模型的預測之間的差異太大,請記下這些案例,并讓人類分析師參與分析,或采取其他適當?shù)娜∽C或補救措施。當然,必須采取嚴格的預防措施以確保基準模型和管道安全,并保持其原始可信狀態(tài)不變。
可解釋,公平或隱私模型:可以同時保證準確性和可解釋性的技術已經(jīng)存在,例如,單調GBM(M-GBM),可縮放貝葉斯規(guī)則列表(SBRL),可解釋性神經(jīng)網(wǎng)絡(XNN)。這些準確且可解釋的模型比傳統(tǒng)的機器學習黑盒更容易做記錄和調試。較新型的公平和隱私模型(例如,LFR和PATE)也可以基本上不用擔心對外可見、可被發(fā)現(xiàn)的人口統(tǒng)計特征、通過社交工程設計對抗樣本攻擊,或被模仿。你是否正在考慮在未來創(chuàng)建新的機器學習工作流程?那么需要考慮把它基于低風險、可解釋、隱私或公平的模型。這樣的模型更容易調試,并且可能對單個實體特征的變化具有魯棒性。
對模型安全性做調試:模型調試的新領域專注于發(fā)現(xiàn)機器學習模型的機理和預測中的錯誤,并修復這些錯誤。調試工具(如代理模型、殘差分析和敏感性分析)可用于白帽練習以了解自己的漏洞,或進行取證練習以發(fā)現(xiàn)可能已發(fā)生或正在發(fā)生的任何潛在攻擊。
模型文檔化和解釋技術:模型文檔化是一種風險緩解策略,已在銀行業(yè)被使用了數(shù)十年。隨著模型所有者團隊隨時間的變化,它可以保留和傳承有關復雜建模系統(tǒng)的知識。 傳統(tǒng)上模型文檔化被應用于高度透明的線性模型。 但隨著強大、準確的解釋工具(例如樹SHAP和基于派生的神經(jīng)網(wǎng)絡局部特征屬性)的出現(xiàn),已有的黑盒模型工作流至少可以在某種程度上被解釋、調試和記錄。顯然,現(xiàn)在文檔應當包括所有的安全目標,包括任何已知、已修復或預期的安全漏洞。
明確的面向安全的模型監(jiān)控和管理:嚴肅的從業(yè)者都知道,大多數(shù)模型都是在訓練數(shù)據(jù)所代表的現(xiàn)實的靜態(tài)快照上進行訓練,并且當實際情況偏離了訓練數(shù)據(jù)代表的過去信息時,他們的預測準確性會實時降低。今天,大多數(shù)模型監(jiān)測旨在發(fā)現(xiàn)輸入變量分布的這種導致最終精度衰減的漂移。現(xiàn)在的模型監(jiān)控更應該監(jiān)控第1到5節(jié)中所描述的攻擊以及白帽模型調試練習發(fā)現(xiàn)的任何其他的潛在威脅。雖然并不總是與安全直接相關,但我認為模型也應該針對不同的影響被實時評估。除了模型文檔化,所有建模工件、源代碼和相關元數(shù)據(jù)都需要進行管理、版本化,并像所有的寶貴的商業(yè)資產(chǎn)一樣被安全審計。
安全感知特征:特征、規(guī)則以及預處理或后處理步驟可以被包含在具有安全意識的模型或管道中。例如模型見到的相似的行數(shù),當前行是否代表員工、外包人員或顧問,或者當前行中的值是否與白帽對抗樣本攻擊中的值相似。在首次訓練模型時,這些特征可能有用,也可能沒用。但是在對新數(shù)據(jù)評分時,或者在重新訓練模型的未來迭代時,為他們保留出位置可能會在某一天非常有益處。
系統(tǒng)性的異常檢測:在整個預測建模系統(tǒng)的運行統(tǒng)計數(shù)據(jù)(某個時間段內的預測數(shù)量,延遲,CPU,內存和磁盤負載,并發(fā)用戶數(shù)量以及其他所有可以獲得的內容)上訓練基于自動編碼器的異常檢測元模型,然后密切監(jiān)視這個元模型的異常情況。異常可能會讓你發(fā)現(xiàn)預測建模系統(tǒng)里有些事情可能不對,需要進行后續(xù)調查或用特定的方法來追查確切問題。
8.參考資料和延伸閱讀
許多現(xiàn)在的機器學習學術安全文獻側重于自適應學習、深度學習和加密。但是我不知道從業(yè)者會實際是否會做這些事情。 因此,除了最近發(fā)表的文章和博客之外,我還找到了20世紀90年代和21世紀初的關于網(wǎng)絡入侵、病毒檢測、垃圾郵件過濾和相關主題的論文,它們也是有用的資源。 如果想了解更多有關確保機器學習模型安全這一迷人主題的信息,下面是主要的參考資料,包括過去和現(xiàn)在的。我也推薦它們作為延伸閱讀。
Barreno, Marco, et al. “The Security of Machine Learning.” Machine Learning 81.2 (2010): 121-148. URL:?https://people.eecs.berkeley.edu/~adj/publications/paper-files/SecML-MLJ2010.pdf
Kumar, Ajitesh. “Security Attacks: Analysis of Machine Learning Models.” DZone (2018). URL:?https://dzone.com/articles/security-attacks-analysis-of-machine-learning-mode
Lorica, Ben and Loukides, Mike. “You created a machine learning application. Now make sure it’s secure”. O’Reilly Ideas (2019). URL:?https://www.oreilly.com/ideas/you-created-a-machine-learning-application-now-make-sure-its-secure
Papernot, Nicolas. “A Marauder’s Map of Security and Privacy in Machine Learning: An overview of current and future research directions for making machine learning secure and private. ” Proceedings of the 11th ACM Workshop on Artificial Intelligence and Security. ACM (2018). URL:?https://arxiv.org/pdf/1811.01134.pdf
結論
我非常關心機器學習的科學和實踐。我現(xiàn)在擔心機器學習黑客的威脅以及日益增加的對侵犯隱私和算法歧視的擔憂可能會帶來對機器學習和AI日漸增多的公眾和政治懷疑。在不久的將來,我們都應該留意人工智能的冬天。安全漏洞、隱私侵犯和算法歧視一起可能導致機器學習研究的資金減少或對該領域的嚴格過度監(jiān)管。讓我們繼續(xù)討論和解決這些重要問題,以預先進行危機預防,而不是被動低進行反應性回應。
致謝
感謝Doug Deloy、Dmitry Larko、Tom Kraljevic和Prashant Shuklabaidya的深刻見解和建議。
This article originally appeared in English: "Proposals for model vulnerability and security".
Patrick Hall
Patrick Hall是H2O.ai的數(shù)據(jù)科學產(chǎn)品高級主管,主要負責模型可解釋性和模型管理。Patrick目前還是喬治華盛頓大學決策科學系的兼職教授,他在那里講授數(shù)據(jù)挖掘和機器學習的研究生課程。在加入H2O.ai之前,Patrick曾在SAS Institute擔任全球客戶對話和研發(fā)的角色。
總結
以上是生活随笔為你收集整理的机器学习模型脆弱性和安全性的提议的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android下调用收发短信邮件等
- 下一篇: 有趣的纵火案