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