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