潘鶴中,韓培義,向夏雨,段少明,莊榮飛,劉川意,3
(1.北京郵電大學(xué)網(wǎng)絡(luò)空間安全學(xué)院,北京 100876;2.哈爾濱工業(yè)大學(xué)(深圳)計算機科學(xué)與技術(shù)學(xué)院,廣東 深圳 518055;3.鵬城實驗室網(wǎng)絡(luò)空間安全中心,廣東 深圳 518066)
人工智能(AI,artificial intelligence)時代,數(shù)據(jù)開放共享已然成為趨勢,但是數(shù)據(jù)安全問題嚴重制約了大數(shù)據(jù)價值的發(fā)揮。數(shù)據(jù)沙箱模式,或稱數(shù)據(jù)信托,是解決隱私保護和數(shù)據(jù)挖掘之間矛盾的有效方案[1-2]。數(shù)據(jù)沙箱分為調(diào)試環(huán)境和運行環(huán)境,數(shù)據(jù)擁有者將原始數(shù)據(jù)托管到運行環(huán)境中,并自動生成不包含隱私信息的樣例數(shù)據(jù)。數(shù)據(jù)分析人員在調(diào)試環(huán)境中根據(jù)樣例數(shù)據(jù)編寫AI 模型訓(xùn)練代碼,并將其發(fā)送到運行環(huán)境。該代碼在運行環(huán)境中對全量的原始數(shù)據(jù)進行分析,最終得到高可用性的AI 模型,返還給數(shù)據(jù)分析人員。這一流程中,數(shù)據(jù)分析人員沒有直接接觸原始數(shù)據(jù),又實現(xiàn)了AI 模型在全量數(shù)據(jù)上的充分訓(xùn)練。
然而隨著AI 技術(shù)的發(fā)展,深度學(xué)習(xí)模型攜帶原始數(shù)據(jù)的能力逐漸增強。Carlini 等[3-4]從理論上證明了參數(shù)量龐大的語言模型會存儲和泄露訓(xùn)練數(shù)據(jù)。基于這一觀點,國內(nèi)外專家學(xué)者對深度學(xué)習(xí)模型竊取訓(xùn)練數(shù)據(jù)的攻擊手段展開了研究,文獻[5-7]等都屬于此類攻擊。這類攻擊可以作用于數(shù)據(jù)沙箱的運行環(huán)境,主動在深度學(xué)習(xí)模型中編碼原始數(shù)據(jù)。例如Song 等[7]提出可以通過在數(shù)據(jù)處理過程中生成惡意訓(xùn)練數(shù)據(jù),或是在模型訓(xùn)練過程中引入惡意正則化項來竊取數(shù)據(jù)。這類攻擊手段能夠有效繞過數(shù)據(jù)沙箱對訓(xùn)練數(shù)據(jù)的隱私保護機制。目前,國內(nèi)外研究當(dāng)中尚缺乏對數(shù)據(jù)沙箱模式下深度學(xué)習(xí)數(shù)據(jù)竊取攻擊的詳細威脅分析和實驗驗證。
針對上述數(shù)據(jù)竊取攻擊,國內(nèi)外學(xué)者提出的防御手段主要分為兩大類。一類是數(shù)據(jù)修改的方法,通過在原始數(shù)據(jù)中添加擾動或采用加密技術(shù)來保護訓(xùn)練數(shù)據(jù)[8-10]。這類方法雖然取得了一定進展但難以直接應(yīng)用于數(shù)據(jù)沙箱模式中。其原因有兩點:一是數(shù)據(jù)沙箱模式下,原始訓(xùn)練數(shù)據(jù)屬于數(shù)據(jù)擁有者,直接修改訓(xùn)練數(shù)據(jù)的方案不被允許,且嚴重影響模型訓(xùn)練效果;二是數(shù)據(jù)加密的防御方法需要修改模型訓(xùn)練代碼,數(shù)據(jù)沙箱場景中難以實現(xiàn)所有AI 模型訓(xùn)練代碼的逐一修改。
另一類是模型修改方法[11-14],通過修改模型參數(shù)來防止數(shù)據(jù)泄露。該類方法是數(shù)據(jù)沙箱模式下一種可行的防御方法。然而目前的防御手段難以在數(shù)據(jù)沙箱模式下取得良好的防御效果,其原因有三點:一是此類方法主要針對模型本身可能夾帶的原始數(shù)據(jù)信息的問題,并且沒有考慮攻擊者在模型中主動隱藏數(shù)據(jù)的情況;二是現(xiàn)有的修改模型梯度或參數(shù)的方法需要深入解析AI 模型訓(xùn)練代碼,數(shù)據(jù)沙箱場景中解析所有代碼的人力開銷巨大,難以實現(xiàn);三是缺乏一種檢測惡意模型的方法,單純地修改模型可能影響模型的訓(xùn)練效果。
針對上述問題,本文的研究工作如下。
1) 本文分析了數(shù)據(jù)沙箱模式下的2 種攻擊手段(即數(shù)據(jù)處理階段的攻擊和模型訓(xùn)練階段的攻擊),構(gòu)建2 種攻擊手段的威脅模型。在數(shù)據(jù)沙箱場景下真實實現(xiàn)了深度學(xué)習(xí)模型數(shù)據(jù)竊取的攻擊過程,量化分析了2 種攻擊的危害程度和鑒別特征。
2) 本文通過分析2 種攻擊手段的特征,提出了針對性的防御方案:針對數(shù)據(jù)處理階段的攻擊,本文提出基于模型剪枝的數(shù)據(jù)泄露防御方法,減少數(shù)據(jù)泄露量;針對模型訓(xùn)練階段的攻擊,本文提出基于模型參數(shù)分析的攻擊檢測方法,從而攔截惡意模型防止數(shù)據(jù)泄露。這2 種方法不需要修改或加密數(shù)據(jù),也不需要人工分析深度學(xué)習(xí)模型訓(xùn)練代碼,能夠更好地應(yīng)用于數(shù)據(jù)沙箱模式下數(shù)據(jù)竊取防御。
3) 本文實現(xiàn)了數(shù)據(jù)處理階段的防御方法和模型訓(xùn)練階段的攻擊檢測方法。在實驗評估階段,本文分別在圖片分類及人臉識別任務(wù)中,驗證了防御方法和檢測方法的有效性。實驗結(jié)果表明,本文設(shè)計的防御方法能夠減少73%的數(shù)據(jù)泄露,而檢測方法能夠有效識別95%以上的攻擊行為。
深度學(xué)習(xí)數(shù)據(jù)竊取攻擊,也稱模型反轉(zhuǎn)攻擊,是指攻擊者利用模型的參數(shù)、中間數(shù)據(jù)結(jié)果或模型預(yù)測結(jié)果來恢復(fù)訓(xùn)練數(shù)據(jù)中的重要信息,進而達到竊取訓(xùn)練數(shù)據(jù)的目的,文獻[3,7,15]等都屬于此類攻擊。Carlini 等[3-4]證明了參數(shù)數(shù)量龐大的語言模型會存儲和泄露訓(xùn)練數(shù)據(jù),并提出了一種簡單有效的數(shù)據(jù)竊取方法,該方法僅通過使用數(shù)據(jù)測試語言模型就能夠提取原始的訓(xùn)練數(shù)據(jù)序列。Zhang 等[5]和Hitaj 等[16]提出了一種利用生成對抗網(wǎng)絡(luò)(GAN,generative adversarial network)的數(shù)據(jù)竊取攻擊,即通過GAN 來學(xué)習(xí)先驗知識,幫助實現(xiàn)模型反轉(zhuǎn)并竊取數(shù)據(jù),該攻擊方式具有較高的普適性,可用于語言模型[17]。文獻[6,18-19]提出了一種聯(lián)邦學(xué)習(xí)模式下的數(shù)據(jù)竊取攻擊方法,該方法利用聯(lián)邦學(xué)習(xí)模型的梯度,首先生成一對隨機的“假”輸入和標簽,然后從模型中獲得假數(shù)據(jù)的梯度,從而執(zhí)行了模型反轉(zhuǎn)攻擊。通過不斷對偽輸入和偽標簽的優(yōu)化,偽梯度和真梯度之間的距離達到最小,偽數(shù)據(jù)更接近原始數(shù)據(jù)。Song 等[7]提出3 種利用深度學(xué)習(xí)模型竊取訓(xùn)練數(shù)據(jù)的方法。第一種是直接在模型參數(shù)的最低有效位編碼訓(xùn)練數(shù)據(jù)集的敏感信息;第二種是利用惡意正則化項使模型參數(shù)與敏感信息相關(guān)聯(lián),或用模型參數(shù)符號對敏感信息進行編碼;第三種是利用數(shù)據(jù)處理過程中的數(shù)據(jù)增強技術(shù)生成惡意訓(xùn)練數(shù)據(jù),并用惡意數(shù)據(jù)的標簽對敏感信息進行編碼。這3 種攻擊允許攻擊者在模型中主動隱藏隱私信息,造成巨大數(shù)據(jù)泄露危害。
在數(shù)據(jù)沙箱模式下,深度學(xué)習(xí)數(shù)據(jù)竊取攻擊仍然可以實現(xiàn)。例如文獻[7]所提出的攻擊手段能夠有效繞過數(shù)據(jù)沙箱對訓(xùn)練數(shù)據(jù)的隱私保護機制,實現(xiàn)數(shù)據(jù)竊取的目的。目前,國內(nèi)外研究尚缺乏對數(shù)據(jù)沙箱模式下深度學(xué)習(xí)數(shù)據(jù)竊取攻擊的詳細威脅分析和實驗驗證。
針對上述數(shù)據(jù)竊取攻擊,國內(nèi)外學(xué)者提出的防御手段主要分為兩大類:一類是數(shù)據(jù)修改方法,通過在原始數(shù)據(jù)中添加擾動或采用加密技術(shù)來保護訓(xùn)練數(shù)據(jù);另一類是模型修改方法,通過修改模型參數(shù)來防止數(shù)據(jù)泄露。具體相關(guān)工作如下。
1) 數(shù)據(jù)修改方法
Zhang[8]提出了一種向原始數(shù)據(jù)中添加隨機噪聲或用新樣本擴展數(shù)據(jù)集的方法,該方法隱藏單個樣本的屬性或一組樣本的統(tǒng)計特性的敏感信息。文獻[9-10,20]提出了使用同態(tài)加密技術(shù)實現(xiàn)隱私數(shù)據(jù)的加密計算,使數(shù)據(jù)分析人員在不接觸原始數(shù)據(jù)的前提下實現(xiàn)模型訓(xùn)練或數(shù)據(jù)分析。閆璽璽等[21]則采用區(qū)塊鏈實現(xiàn)數(shù)據(jù)搜索過程中的隱私保護。進一步研究中,Zhang 等[22]提出了一種直接在密文上訓(xùn)練深度學(xué)習(xí)模型的完全同態(tài)加密方案。Rahulamathavan 等[23]提出了一種利用Paillier 加密系統(tǒng)將SVM 決策函數(shù)轉(zhuǎn)換為密文計算的方案,該方案中測試數(shù)據(jù)也被加密,所有計算都在密文上進行。文獻[24-25]分別在數(shù)據(jù)發(fā)布和數(shù)據(jù)傳輸過程中加密數(shù)據(jù),設(shè)計了能夠防御數(shù)據(jù)竊取攻擊的系統(tǒng)架構(gòu)。
上述數(shù)據(jù)修改的防御方法雖然取得了一定進展,但難以直接應(yīng)用于數(shù)據(jù)沙箱模式中。其原因有兩點:一是數(shù)據(jù)沙箱模式下,原始訓(xùn)練數(shù)據(jù)屬于數(shù)據(jù)擁有者,直接修改訓(xùn)練數(shù)據(jù)的方案不被允許,且嚴重影響模型訓(xùn)練效果;二是數(shù)據(jù)加密的防御方法需要修改模型訓(xùn)練代碼,數(shù)據(jù)沙箱場景中難以實現(xiàn)所有數(shù)據(jù)挖掘代碼的針對性修改。
2) 模型修改方法
文獻[11-14]提出了可以通過修改模型的梯度、參數(shù)或輸出結(jié)果來保護訓(xùn)練數(shù)據(jù)隱私信息。Abadi等[11]提出了一種隨機梯度下降算法,利用差分隱私對模型參數(shù)的梯度進行加噪,保證了模型參數(shù)不會暴露太多隱私。Golatkar 等[12]通過添加噪聲來修改模型參數(shù),以去除關(guān)于特定訓(xùn)練數(shù)據(jù)集的信息。Jia等[13]提出在模型的輸出中以一定的概率加入噪聲,用于預(yù)防成員推斷攻擊,其效果能夠使成員推斷攻擊的成功率降低到50%。另外,為了防止訓(xùn)練數(shù)據(jù)的模型記憶過多數(shù)據(jù),可以對模型訓(xùn)練算法本身進行修改[18,26-27]。如Cao 等[26]提出了一種將模型學(xué)習(xí)算法轉(zhuǎn)化為求和的形式來遺忘訓(xùn)練數(shù)據(jù)的方法;Salem 等[18]提出了一種基于模型疊加的防御方法,用于防御對機器學(xué)習(xí)模型的攻擊,以避免單個模型對訓(xùn)練數(shù)據(jù)的過度記憶。針對邊緣計算和聯(lián)邦學(xué)習(xí)的新場景,需要在參數(shù)聚合的過程中增加噪聲實現(xiàn)隱私保護[28]。
通過解析模型參數(shù)來預(yù)防數(shù)據(jù)竊取,是數(shù)據(jù)沙箱模式下一種可行的防御方法。然而目前的防御手段難以在數(shù)據(jù)沙箱模式下取得良好的防御效果,其原因有三點:一是上述方法主要針對模型本身可能導(dǎo)致的隱私泄露,并且沒有考慮攻擊者在模型中主動隱藏數(shù)據(jù)的情況;二是現(xiàn)有的修改模型梯度或參數(shù)的方法需要深入解析模型訓(xùn)練代碼,數(shù)據(jù)沙箱場景中,逐一解析代碼的人力開銷巨大,難以實現(xiàn);三是缺乏一種檢測惡意模型的方法,單純地修改模型可能影響模型的訓(xùn)練效果。
本文構(gòu)建了數(shù)據(jù)沙箱模式下的深度學(xué)習(xí)數(shù)據(jù)竊取攻擊威脅模型,如圖1 所示。
正常深度學(xué)習(xí)模型訓(xùn)練過程。正常數(shù)據(jù)分析人員會在數(shù)據(jù)沙箱的調(diào)試環(huán)境中根據(jù)脫敏的樣例數(shù)據(jù)編寫數(shù)據(jù)處理代碼和模型訓(xùn)練代碼。代碼調(diào)試完成后,數(shù)據(jù)分析人員會將其發(fā)送到數(shù)據(jù)沙箱的運行環(huán)境。在運行環(huán)境中,數(shù)據(jù)處理代碼將會在全量訓(xùn)練數(shù)據(jù)D中運行,得到處理后的訓(xùn)練數(shù)據(jù)D'。該過程可能包含數(shù)據(jù)增強操作用于擴充數(shù)據(jù)量、提高訓(xùn)練效果,數(shù)據(jù)增強操作得到的數(shù)據(jù)為DA,而D'是D和DA的并集,本文定義D'如式(1)所示。
其中,n是數(shù)據(jù)集D'中的數(shù)據(jù)條目個數(shù),xi是每條數(shù)據(jù)的特征值(例如圖片分類任務(wù)中的圖片像素),yi是每條數(shù)據(jù)的標簽值(例如圖片分類任務(wù)中的圖片種類)。AI 模型可以定義為參數(shù)為θ的函數(shù)fθ,參數(shù)θ中包含實數(shù)的個數(shù)為k,本文定義模型優(yōu)化過程如式(2)所示。
其中,函數(shù)L為深度學(xué)習(xí)的損失函數(shù),用于評價函數(shù)fθ對xi的判斷結(jié)果與真實標簽值yi之間的差距。Φ(θ)是正則項,通常用于防止AI 模型出現(xiàn)過擬合的情況。AI 模型訓(xùn)練優(yōu)化的過程可理解為根據(jù)訓(xùn)練數(shù)據(jù)D'不斷優(yōu)化函數(shù)fθ,進而縮小損失函數(shù)的過程。模型訓(xùn)練完成后,數(shù)據(jù)分析人員可以從數(shù)據(jù)沙箱中提取訓(xùn)練好的模型fθ,用于具體AI 判斷任務(wù)。
數(shù)據(jù)沙箱模式下,正常數(shù)據(jù)分析人員僅能通過樣例數(shù)據(jù)編寫代碼而無法接觸全量數(shù)據(jù),因此無法直接拷貝數(shù)據(jù)或竊取其中的關(guān)鍵信息。然而,在運行環(huán)境的數(shù)據(jù)處理階段和模型訓(xùn)練階段,分析人員的代碼直接作用于全量數(shù)據(jù),因此仍然存在數(shù)據(jù)泄露的可能。
數(shù)據(jù)竊取攻擊1。該攻擊手段主要作用于模型訓(xùn)練階段,攻擊者惡意修改模型訓(xùn)練過程中的正則項Φ(θ),本文定義其為Ω(θ)。Ω(θ) 使深度學(xué)習(xí)模型能夠夾帶訓(xùn)練數(shù)據(jù)的原始數(shù)據(jù)信息。接收到模型fθ后,攻擊者能夠從參數(shù)θ中恢復(fù)原始訓(xùn)練數(shù)據(jù)。其具體效果與攻擊過程在3.2 節(jié)中詳細闡述。數(shù)據(jù)竊取攻擊2。該攻擊手段主要作用于數(shù)據(jù)處理階段,攻擊者惡意修改數(shù)據(jù)處理過程中的數(shù)據(jù)增強函數(shù),本文定義惡意數(shù)據(jù)DM如式(3)所示。
惡意數(shù)據(jù)增強函數(shù)使DM的特征值具有一定的生成規(guī)律且不依賴訓(xùn)練數(shù)據(jù),而DM的標簽值中能夠夾帶原始數(shù)據(jù)信息。接收到模型fθ后,攻擊者重新生成惡意的,并用模型fθ測試,進而復(fù)原標簽值,從中提取原始數(shù)據(jù)信息。其具體效果與攻擊過程在3.3 節(jié)中詳細闡述。
第一種針對模型訓(xùn)練階段的攻擊,首先要從訓(xùn)練數(shù)據(jù)的特征值中抽取實數(shù)串s,該串中的元素個數(shù)與模型參數(shù)θ中參數(shù)的個數(shù)相同,為k個。而在訓(xùn)練過程中,攻擊者將正則項修改為?1(θ,s),如式(4)所示。
其中,和是指θ和s中所有元素的平均值,參數(shù)α控制了惡意正則項對訓(xùn)練過程的影響。該方法中惡意正則設(shè)計采用了皮爾森相關(guān)系數(shù)衡量模型參數(shù)θ與竊取數(shù)據(jù)s之間的相關(guān)程度。訓(xùn)練過程中,參數(shù)θ與數(shù)據(jù)s相關(guān)程度變大時,損失函數(shù)的數(shù)值將會減小,進而使參數(shù)θ向與數(shù)據(jù)s相同的趨勢發(fā)展。訓(xùn)練結(jié)束后,攻擊者只要提取θ則可竊取訓(xùn)練數(shù)據(jù)的特征值。
第二種針對模型訓(xùn)練階段的攻擊,利用符號編碼訓(xùn)練數(shù)據(jù)的特征值。例如訓(xùn)練數(shù)據(jù)是圖片(包含[0,255]的像素點),該攻擊方法則將圖片中一個像素點編碼為s∈{?1,1}k表示的8 位字符串。能夠編碼的字符串總長度等于參數(shù)θ中元素的個數(shù)k。該編碼方式下,攻擊者將訓(xùn)練過程的正則項修改為Ω2(θ,s),如式(5)所示。
其中,參數(shù)α用于控制惡意正則項對訓(xùn)練過程的影響。當(dāng)θi與si符號不相同時,|max(0,?θisi)|的取值為正值,從而增大損失函數(shù)的數(shù)值,使θ和s中符號相同的方向發(fā)展。訓(xùn)練結(jié)束后,攻擊者提取參數(shù)θ的符號,每8 個元素解碼出一個像素值,進而還原圖片。
模型訓(xùn)練階段的攻擊強度主要與模型參數(shù)個數(shù)有關(guān)。例如用包含1 100 萬個參數(shù)的PreActResNet18網(wǎng)絡(luò)竊取CIFAR10 數(shù)據(jù)集中32×32 的灰度圖片數(shù)據(jù),第一種攻擊方式可以一次性竊取圖片1.07 萬張,第二種攻擊方式可以一次性竊取圖片1 340 張。
以竊取CIFAR10 數(shù)據(jù)為例,數(shù)據(jù)處理階段的攻擊過程如圖2 所示。首先,提取圖片數(shù)據(jù)中的像素值并對其進行壓縮,例如將[0,255]的像素值點壓縮到[0,15],這一步的目的在于用更少的惡意數(shù)據(jù)編碼更多的訓(xùn)練數(shù)據(jù)。由于CIFAR10 數(shù)據(jù)是10 分類任務(wù),因此生成數(shù)據(jù)標簽值的取值范圍為[0,9],即編碼[0,15]的像素值數(shù)據(jù)需要用2 個標簽來編碼一個像素點。圖2 中,本文使用標簽值y1與y2之和來編碼P11的一個像素點,使用惡意數(shù)據(jù)生成算法,分別生成圖片x1與x2來匹配標簽值。惡意數(shù)據(jù)生成算法可以采用任意的偽隨機數(shù)據(jù)生成方法,為實現(xiàn)更明顯的攻擊效果,本文采用了算法1 所示的惡意數(shù)據(jù)生成算法。
算法1惡意數(shù)據(jù)生成算法
定義編碼的圖像編號為u,編碼的像素點為Pij,單張圖片的高為H、寬為W、通道數(shù)為C、單通道像素數(shù)量為N=H×W,初始化惡意圖片x1和x2為C×N的全0 矩陣;
1)x1[umodC][i×j]=u/3+1;
2)x1[umodC][i×j+1 modN]=1;
3)x2[umodC][i×j]=u/3+1;
4)x2[umodC][i×j+1 modN]=2;
5) 將x1轉(zhuǎn)化為H×W×C的矩陣;
6) 將x2轉(zhuǎn)化為H×W×C的矩陣;
7) 輸出惡意圖片x1和x2;
生成惡意數(shù)據(jù)DM后,將其與原始訓(xùn)練數(shù)據(jù)融合,訓(xùn)練AI 模型fθ。多次反復(fù)訓(xùn)練后,模型fθ在惡意數(shù)據(jù)上的分類準確率達到較高水平(本文實驗可達到100%)。攻擊者從數(shù)據(jù)沙箱中取得AI 模型fθ,在本地應(yīng)用同樣的惡意數(shù)據(jù)生成算法生成DM,并將其輸入fθ中,得到編碼了原始訓(xùn)練數(shù)據(jù)的標簽值,進而恢復(fù)原始訓(xùn)練數(shù)據(jù)。
數(shù)據(jù)處理階段的攻擊強度主要與數(shù)據(jù)編碼方式有關(guān)。竊取CIFAR10 數(shù)據(jù)集中壓縮為32×32 的灰度圖片數(shù)據(jù),每編碼2 048 張惡意圖片可以竊取一張原始數(shù)據(jù)。
本節(jié)實現(xiàn)的3 種攻擊恢復(fù)圖片效果如圖3 所示。從圖3 可以看出,3 種攻擊均能在數(shù)據(jù)沙箱場景下有效竊取原始訓(xùn)練數(shù)據(jù)。
數(shù)據(jù)沙箱模式下,利用深度學(xué)習(xí)模型竊取數(shù)據(jù)的攻擊具有隱蔽性,而監(jiān)管者人工審核代碼工作量巨大。本文從訓(xùn)練過程和輸出模型角度入手進行了詳細分析,并設(shè)計了面向深度學(xué)習(xí)模型本身的防御和檢測方法。
首先,本文對數(shù)據(jù)竊取攻擊中訓(xùn)練的模型參數(shù)進行了詳細分析。正常訓(xùn)練過程中,深度學(xué)習(xí)損失函數(shù)的正則項一般選取L1 范式或L2 范式,如式(6)和式(7)所示。
L1 范式或L2 范式的約束下,模型參數(shù)的分布通常屬于正態(tài)分布。惡意模型訓(xùn)練過程引入了與數(shù)據(jù)或數(shù)據(jù)編碼相關(guān)的正則項,因此模型參數(shù)的分布可能發(fā)生變化。例如第一種針對模型訓(xùn)練階段的攻擊,惡意正則使模型參數(shù)分布與圖像的像素值的分布近似,而圖像的像素值分布具有一定規(guī)律,通常不同于正態(tài)分布。
本文在CIFAR10 數(shù)據(jù)集上,分別訓(xùn)練了多個正常模型和攻擊模型,抽取其中一個卷積層的參數(shù)進行統(tǒng)計分析,得到了如圖4 所示的結(jié)果。在圖4 中,4幅圖的左圖分別代表了4種情況下多次模型訓(xùn)練的平均參數(shù)分布情況,右圖分別代表了多次模型訓(xùn)練中各次參數(shù)分布情況。通過分析圖4 結(jié)果發(fā)現(xiàn)模型訓(xùn)練階段的攻擊導(dǎo)致模型參數(shù)分布規(guī)律異常,而數(shù)據(jù)處理階段的攻擊沒有造成參數(shù)的明顯分布變化。
數(shù)據(jù)處理階段的攻擊難以從參數(shù)分布的角度進行判斷。由于該攻擊中惡意數(shù)據(jù)與真實訓(xùn)練數(shù)據(jù)的特征不同,本文考慮2 種數(shù)據(jù)在訓(xùn)練過程中對隱藏神經(jīng)元激活分布可能存在差異。針對這一假設(shè),本文進行了模型隱藏層神經(jīng)元的激活值分析。首先,復(fù)現(xiàn)數(shù)據(jù)處理階段的攻擊過程,并得到其模型參數(shù)。然后,將原始訓(xùn)練數(shù)據(jù)和惡意數(shù)據(jù)分別輸入模型中進行處理,提取隱藏層神經(jīng)元的激活值。為直觀顯示惡意數(shù)據(jù)與真實訓(xùn)練數(shù)據(jù)對神經(jīng)元的激活值的影響,本文對提取的神經(jīng)元激活值進行了降維分析,其過程分別采用了4 種數(shù)據(jù)降維算法,包括主成分分析(PCA,principal component analysis)、KernelPCA、t-SNE 和多維標度分析(MDS,multidimensional scaling)。神經(jīng)元激活值的降維分析結(jié)果如圖5 所示。從圖5 中可以直觀看到,正常數(shù)據(jù)和惡意數(shù)據(jù)對隱藏層激活值域的影響存在差異。進一步采用支持向量機(SVM,support vector machine)分析降維的激活值,則CIFAR10 實驗中正確分類正常數(shù)據(jù)和惡意數(shù)據(jù)的平均概率為96%,Olivetti 任務(wù)中正確分類平均概率趨近于100%。
針對模型訓(xùn)練階段攻擊導(dǎo)致參數(shù)異常的特點,本文設(shè)計了4.2 節(jié)所示的攻擊檢測方法。針對據(jù)處理階段攻擊的特殊神經(jīng)元激活模式,本文設(shè)計了4.3 節(jié)所示的模型剪枝防御手段。
針對惡意訓(xùn)練模型和正常訓(xùn)練模型之間的參數(shù)分布差異,本文提出提取參數(shù)關(guān)鍵特征值的方法自動化區(qū)分惡意模型與正常模型。
對任意輸入的模型參數(shù)θ,本文首先統(tǒng)計分析其中某一卷積層參數(shù)的分布特征,主要包括參數(shù)的極小值、極大值、數(shù)量、均值、方差等。為評判其中模型參數(shù)θ是否符合正態(tài)分布,本文額外引入了偏度(S)和峰度(K)2 個統(tǒng)計概念,兩者計算方式如式(8)和式(9)所示。
其中,代表參數(shù)的均值,σ代表參數(shù)的標準差。從圖像上看,偏度表示參數(shù)分布的中心位置是否偏離正態(tài)分布的中軸線,而峰度表示參數(shù)分布中心值的尖端高度。
提取分布特征后,本文利用多組深度學(xué)習(xí)模型的實際分布特征訓(xùn)練了多個分類器,包括邏輯回歸模型、隨機森林模型、SVM、Adaboost 和XGBoost。上述分類器的效果將在第5 節(jié)實驗分析部分進行評價和比較。
分析圖5 所示的神經(jīng)元激活情況可知,惡意竊取數(shù)據(jù)的模型和常規(guī)訓(xùn)練模型,在激活神經(jīng)元分布上存在差異。理論上,剪除夾帶惡意數(shù)據(jù)的神經(jīng)元同時保留其他神經(jīng)元,就能夠在防御數(shù)據(jù)竊取攻擊而不損失模型準確率。已有理論證明模型剪枝技術(shù)能夠有力預(yù)防后門數(shù)據(jù)投毒攻擊[29]。該方法的思路是定位到剪除后門數(shù)據(jù)預(yù)測過程中激活值最大的神經(jīng)元,進而降低后門數(shù)據(jù)預(yù)測的準確率。
本文參考這種方法,在數(shù)據(jù)沙箱場景下進行了改進。該防御方法主要思想是:用正常數(shù)據(jù)測試模型隱藏層的神經(jīng)元激活值,對于那些正常測試數(shù)據(jù)預(yù)測過程中激活值較小神經(jīng)元進行剪除,這種剪除對深度學(xué)習(xí)模型原本任務(wù)影響較小,而更有可能夾帶訓(xùn)練數(shù)據(jù)。篩選剪除神經(jīng)元的具體步驟如下。
1) 對于模型θ,輸入該任務(wù)相關(guān)的測試數(shù)據(jù)Dtest,在模型處理數(shù)據(jù)的過程中,提取隱藏層每一個神經(jīng)元θi的激活值序列wi。
2) 對所有wi的序列求平均值,并將隱藏層神經(jīng)元按照的絕對值由小到大排序。
4) 重復(fù)上述操作步驟,直到剪除神經(jīng)元個數(shù)達到設(shè)置值N。
在5.3 節(jié)的實驗中,本文對該模型剪枝防御手段進行了實驗評價。
實驗環(huán)境。本文實驗是在12 核2.10 GHz Intel(R)Xeon(R)Silver 4116 CPU、128 GB RAM 和8 GB NVIDIA Quadro P4000 GPU 的計算機上進行的,并使用Pytorch 框架實現(xiàn)攻擊和防御方法。
實驗數(shù)據(jù)。本文采用圖片分類任務(wù)數(shù)據(jù)集CIFAR10 數(shù)據(jù)集和人臉識別任務(wù)Olivetti 數(shù)據(jù)集進行實驗。其中CIFAR10 數(shù)據(jù)集包含60 000 張彩色圖像,這些圖片共分為10 類,像素值為32×32×3。Olivetti人臉數(shù)據(jù)集包含400 張人臉灰度圖,分別來自具有不同特征的40 人,每張圖的分辨率為64 dpi×64 dpi。實驗數(shù)據(jù)的測試集和訓(xùn)練集劃分為75%和25%。
AI 模型。為完成圖片分類和人臉識別任務(wù),本文使用了ResNet34 和PreActResNet-18 模擬攻擊過程,其中ResNet34 網(wǎng)絡(luò)包含參數(shù)約46 萬,而PreActResNet18 網(wǎng)絡(luò)包含參數(shù)1 100 萬。
本文采用準確率和宏平均F1 值來評價攻擊的危害程度以及原始模型的效果。準確率指模型預(yù)測正確的數(shù)據(jù)占全量數(shù)據(jù)的比例;宏平均F1 值,又稱macro-F1 值,該值綜合考慮多分類任務(wù)中每一類分類數(shù)據(jù)的F1 值(F1 值是精確率和召回率的調(diào)和平均數(shù)),用于評價多分類任務(wù)的整體效果。
針對第一種模型訓(xùn)練攻擊,本文額外采用相關(guān)系數(shù)P來評價竊取數(shù)據(jù)和原數(shù)據(jù)的相似程度,該值由式(4)所示的皮爾森相關(guān)系數(shù)求出。針對第二種模型訓(xùn)練攻擊,本文額外采用符號相關(guān)度Q來評價竊取數(shù)據(jù)和原數(shù)據(jù)的相似程度,該值統(tǒng)計了模型參數(shù)θ與竊取數(shù)據(jù)s中對應(yīng)為符號相同的元素出現(xiàn)的概率。這2 種模型訓(xùn)練攻擊均用參數(shù)α控制了惡意正則項對訓(xùn)練過程的影響。針對數(shù)據(jù)處理過程的攻擊,本文分別合成了不同數(shù)據(jù)量級的惡意數(shù)據(jù),實驗分析其對原始模型的影響程度以及攻擊效果。
模型訓(xùn)練階段攻擊危害程度評估實驗數(shù)據(jù)如表1所示。對于模型訓(xùn)練階段的第一種攻擊而言,其竊取圖片與原圖的相似度在2 個數(shù)據(jù)集、2 種模型上均能達到99%。同時,竊取數(shù)據(jù)對原本模型訓(xùn)練任務(wù)的影響不大。通過調(diào)節(jié)參數(shù)α,圖片分類任務(wù)和人臉識別任務(wù)的準確率和宏平均F1 值均能達到85%以上,因此難以從原始任務(wù)效果好壞角度鑒別惡意攻擊。對于模型訓(xùn)練階段的第二種攻擊而言,其攻擊效果在CIFAR10 數(shù)據(jù)集上表現(xiàn)較好,能夠達到90%,而在Olivetti 數(shù)據(jù)集上相似度在70%左右。2 種模型、2 種數(shù)據(jù)集上的攻擊對原始任務(wù)效果的影響不大,平均準確率和和宏平均F1 值在90%左右。
表1 模型訓(xùn)練階段攻擊危害程度評估實驗數(shù)據(jù)
對于數(shù)據(jù)處理階段的攻擊如表2 所示,其竊取圖片的效果最佳,在2 個數(shù)據(jù)集、2 種模型上均能達 到 99%,甚至在 CIFAR10 數(shù)據(jù)集的PreActResNet18 模型和Olivetti 數(shù)據(jù)集的ResNet34模型上能夠達到100%。由數(shù)據(jù)可見,數(shù)據(jù)處理階段的攻擊對原本模型訓(xùn)練任務(wù)的影響也不明顯,其任務(wù)平均的準確率在90%左右。
表2 數(shù)據(jù)處理階段攻擊危害程度評估實驗數(shù)據(jù)
同樣針對CIFAR10 數(shù)據(jù)集,一般場景下的數(shù)據(jù)竊取攻擊數(shù)據(jù)恢復(fù)的準確率在94%~99%(準確率根據(jù)文章中的平均絕對像素誤差折算),而對原始模型的準確率影響約為2%[7]。本文將此類攻擊有效實現(xiàn)于數(shù)據(jù)沙箱場景,得到了與之類似的結(jié)果。
通過實驗分析得出結(jié)論,深度學(xué)習(xí)數(shù)據(jù)竊取攻擊在數(shù)據(jù)沙箱場景下的危害極大,其特征在于數(shù)據(jù)竊取的準確率高,且不影響原有模型的訓(xùn)練,難以察覺。
根據(jù)4.2 節(jié)所提方法,本文首先提取了已完成訓(xùn)練模型的360 組卷積層模型參數(shù),其中包含正常模型17%、模型訓(xùn)練階段攻擊1 產(chǎn)生模型25%和模型訓(xùn)練階段攻擊2 產(chǎn)生模型58%。然后,將這些模型參數(shù)的極小值、極大值、數(shù)量、均值、方差、峰度、偏度等統(tǒng)計特征作為特征值訓(xùn)練機器學(xué)習(xí)分類器。
邏輯回歸模型、隨機森林模型、SVM、Adaboost 和XGBoost 對惡意神經(jīng)網(wǎng)絡(luò)的識別準確率和宏平均F1 值如表3 所示。實驗顯示,5 種機器學(xué)習(xí)分類器對惡意神經(jīng)網(wǎng)絡(luò)的識別準確率和宏平均F1 值均達到91%以上,且SVM 的識別準確率最高,能夠達到95%以上。
表3 不同模型對惡意神經(jīng)網(wǎng)絡(luò)的識別準確率和宏平均F1 值
本文實現(xiàn)的模型剪枝防御實驗效果如圖6、圖7所示。站在防御者的角度,希望在訓(xùn)練數(shù)據(jù)、測試數(shù)據(jù)準確率盡可能不受到影響的前提下,降低惡意數(shù)據(jù)上的識別準確率,進而防止數(shù)據(jù)處理階段的攻擊。
如圖6 所示,模型剪枝防御在CIFAR10 數(shù)據(jù)集上的ResNet34 模型中表現(xiàn)最好,當(dāng)剪除40 個神經(jīng)元時,訓(xùn)練數(shù)據(jù)上的準確率降低了3%,測試數(shù)據(jù)上的準確率降低了7%,而數(shù)據(jù)防泄露的效果為73%,而在更加復(fù)雜的PreActResNet18 模型上,選擇剪除450 個神經(jīng)元能夠防止29%的數(shù)據(jù)泄露問題。相比于深入分析模型,并在神經(jīng)元上加入擾動的防御方法(準確率影響為5%~9%,防御效果為23%~100%),有類似的防御效果[12]。如圖7 所示,模型剪枝防御在Olivetti 數(shù)據(jù)集上的ResNet34 模型也有良好效果,正確選取模型剪枝神經(jīng)元個數(shù),能夠在模型剪枝防御方法可以保證訓(xùn)練數(shù)據(jù)、測試數(shù)據(jù)準確率降低不到5%的前提下,防止26%以上數(shù)據(jù)泄露。
表4 將本文實現(xiàn)的2 種防御手段與相關(guān)工作中的防御手段進行了對比,可以看出具有惡意模型檢測能力和不需要修改訓(xùn)練代碼是本文工作的主要貢獻點。數(shù)據(jù)沙箱場景中,原始訓(xùn)練數(shù)據(jù)屬于數(shù)據(jù)擁有者,直接修改訓(xùn)練數(shù)據(jù)的方案不被允許,而解析所有AI 訓(xùn)練代碼的人力開銷巨大,因此本文工作更加適用于該場景。
表4 相關(guān)工作對比
本文分析了數(shù)據(jù)沙箱模式下數(shù)據(jù)處理階段的攻擊和模型訓(xùn)練階段的攻擊,構(gòu)建了2 種攻擊手段的威脅模型。通過在圖片分類任務(wù)數(shù)據(jù)集CIFAR10數(shù)據(jù)集和人臉識別任務(wù)Olivetti 數(shù)據(jù)集上的實驗,量化分析了2 種攻擊的危害程度和鑒別特征。
本文通過分析2 種攻擊手段的特征,分別提出了針對性的防御方案:針對數(shù)據(jù)處理階段的攻擊,本文提出基于模型剪枝的數(shù)據(jù)泄露防御方法,減少數(shù)據(jù)泄露量;針對模型訓(xùn)練階段的攻擊,本文提出基于模型參數(shù)分析的攻擊檢測方法,從而攔截惡意模型防止數(shù)據(jù)泄露。這2 種方法不需要修改或加密數(shù)據(jù),也不需要人工分析深度學(xué)習(xí)模型訓(xùn)練代碼,能夠更好地應(yīng)用于數(shù)據(jù)沙箱模式下數(shù)據(jù)竊取防御。
實驗評估階段,本文驗證了防御方法和檢測方法的有效性。實驗結(jié)果表明,本文設(shè)計的防御方法能夠減少26%~73%的數(shù)據(jù)泄露,而檢測方法能夠有效識別95%以上的攻擊行為。
在未來工作中,本文所實現(xiàn)的防御手段尚有2 項內(nèi)容需要進一步研究與實現(xiàn):基于模型參數(shù)分析的攻擊檢測方面,由于應(yīng)用了機器學(xué)習(xí)技術(shù)檢測模型參數(shù),造成檢測速度較慢、資源開銷較多,需要進一步提升性能;基于模型剪枝的數(shù)據(jù)泄露防御方面,對于復(fù)雜任務(wù)復(fù)雜模型的防御效果不足,需要設(shè)計新算法或新機制提升防御效果。