由于機(jī)器學(xué)習(xí)可能涉及到訓(xùn)練數(shù)據(jù)的隱私敏感信息、機(jī)器學(xué)習(xí)模型的商業(yè)價(jià)值及其安全中的應(yīng)用,所以機(jī)器學(xué)習(xí)模型在一定程度上是可以認(rèn)為是機(jī)密的。但是越來(lái)越對(duì)機(jī)器學(xué)習(xí)服務(wù)提供商將機(jī)器學(xué)習(xí)作為一種服務(wù)部署在云上。筆者認(rèn)為:這樣部署機(jī)器學(xué)習(xí)即服務(wù)是存在安全隱患的,攻擊者利用對(duì)模型的API可以竊取模型。
1.問(wèn)題描述
由于機(jī)器學(xué)習(xí)可能涉及到訓(xùn)練數(shù)據(jù)的隱私敏感信息、機(jī)器學(xué)習(xí)模型的商業(yè)價(jià)值及其安全領(lǐng)域中的應(yīng)用(垃圾郵件過(guò)濾、惡意軟件檢測(cè)、流量分析等),所以機(jī)器學(xué)習(xí)模型在一定程度上是可以認(rèn)為是機(jī)密的。但是,臺(tái)灣代理服務(wù)器 韓國(guó)服務(wù)器,機(jī)器學(xué)習(xí)模型不斷地被部署,通過(guò)公共訪問(wèn)接口訪問(wèn)模型, 例如機(jī)器學(xué)習(xí)即服務(wù)( Machine Learning as a service, MLaaS):用戶可以在MLaaS 平臺(tái)利用隱私敏感數(shù)據(jù)訓(xùn)練機(jī)器學(xué)習(xí)模型,并且將訪問(wèn)接口發(fā)布給其他用戶使用,同時(shí)收取一定的費(fèi)用。針對(duì)機(jī)器學(xué)習(xí)模型機(jī)密性和其公共訪問(wèn)的矛盾上,筆者提出了機(jī)器學(xué)習(xí)模型提取攻擊:攻擊者在沒(méi)有任何關(guān)于該模型的先驗(yàn)知識(shí)(訓(xùn)練數(shù)據(jù),模型參數(shù),模型類型等)情況下,只利用公共訪問(wèn)接口對(duì)該模型的黑盒訪問(wèn),從而構(gòu)造出和目標(biāo)模型相似度非常高的模型。
2.攻擊模型
當(dāng)用戶在MLaaS平臺(tái)上訓(xùn)練了自己的機(jī)器學(xué)習(xí)模型,并發(fā)布該模型給其他用戶使用,并利用其他用戶每次對(duì)模型的訪問(wèn)收取一定的費(fèi)用,賺回自己在訓(xùn)練模型和標(biāo)定數(shù)據(jù)投入時(shí)的成本。如果利用API訪問(wèn)目標(biāo)模型的是攻擊者,該攻擊者利用對(duì)目標(biāo)模型的盡量少地訪問(wèn),試圖在本地構(gòu)造一個(gè)與目標(biāo)模型相近甚至一致的模型。
筆者認(rèn)為攻擊可能出于以下目的竊取目標(biāo)模型:
1. 想免費(fèi)使用模型:模型訓(xùn)練者將模型托管在云上,通過(guò)提供API的方式來(lái)提供對(duì)模型的訪問(wèn),通過(guò)對(duì)每次調(diào)用 API 的方式來(lái)收費(fèi),惡意的用戶將企圖偷取這個(gè)模型免費(fèi)使用。這將破壞MLaaS的商業(yè)化模式,同時(shí)很可能存在這種情況:攻擊者竊取模型所花的費(fèi)用是低于模型訓(xùn)練者標(biāo)定訓(xùn)練集和訓(xùn)練模型的成本。
2. 破壞訓(xùn)練數(shù)據(jù)隱私性:模型提取攻擊會(huì)泄露訓(xùn)練數(shù)據(jù)的隱私,越來(lái)越多的研究工作表明:利用對(duì)模型的多次訪問(wèn)可以推斷出訓(xùn)練數(shù)據(jù)信息,因?yàn)槟P捅旧砭褪怯捎?xùn)練數(shù)據(jù)所得到的,分析所提取到的模型,必然可以推斷訓(xùn)練數(shù)據(jù)。具體可以參考這篇文章:Membership Inference Attacks against Machine Learning Models .
3.繞過(guò)安全檢測(cè):在越來(lái)越多的場(chǎng)景中,機(jī)器學(xué)習(xí)模型用于檢測(cè)惡意行為,例如垃圾郵件過(guò)濾,惡意軟件檢測(cè),網(wǎng)絡(luò)異常檢測(cè)。攻擊者在提取到目標(biāo)模型后,可以根據(jù)相關(guān)知識(shí),構(gòu)造相應(yīng)的對(duì)抗樣本,以繞過(guò)安全檢測(cè)。參考文章:Evading Classifiers by Morphing in the Dark
圖2 模型提取攻擊場(chǎng)景
3.模型提取攻擊
筆者首先將引入針對(duì)輸入返回置信度輸出的場(chǎng)景,然后利用二分類讓大家明白如何實(shí)現(xiàn)解方程攻擊,進(jìn)而講解多分類場(chǎng)景中的方程求解攻擊。由于決策樹(shù)算法的置信度計(jì)算和邏輯回歸(LR)、支持向量機(jī)(SVM)、神經(jīng)網(wǎng)絡(luò)(NN)算法不同,筆者還將講解如何提取決策樹(shù)模型。同時(shí)還進(jìn)一步討論當(dāng)預(yù)測(cè)API隱藏置信度,只輸出分類標(biāo)簽場(chǎng)景下的模型提取攻擊。
3.1方程求解攻擊
方程求解攻擊針對(duì)邏輯回歸(LR)、支持向量機(jī)(SVM)、神經(jīng)網(wǎng)絡(luò)(NN)算法,因?yàn)檫@些算法的模型不同于樹(shù)形模型,這些模型都是函數(shù)映射,輸出的置信度是函數(shù)的直接輸出,模型的輸入是函數(shù)的輸入,該函數(shù)由一些列參數(shù)組成。也就是說(shuō),由置信度和輸入數(shù)據(jù)可以構(gòu)造方程,求解函數(shù)的參數(shù)就可以得到與目標(biāo)相近的模型。
3.1.1二分類
筆者先從一個(gè)簡(jiǎn)單的場(chǎng)景引入,不考慮多項(xiàng)回歸。假設(shè)受害者用戶利用MLaaS的LR算法在其平臺(tái)上訓(xùn)練了一個(gè)人臉識(shí)別模型,然后受害者想通過(guò)把模型發(fā)布給其他用戶使用,并賺取一定的利潤(rùn),然后受害者給很多用戶發(fā)布其模型訪問(wèn)API,這些用戶中有些人想通過(guò)對(duì)該模型的訪問(wèn)提取該二分類模型。
于是該攻擊者通過(guò)API訪問(wèn)模型,其返回是置信度信息。我們都知道模型只是由一系列參數(shù)決定。求解參數(shù)就可以實(shí)現(xiàn)模型提取。