王粵晗 孫 磊 郭 松 戴樂育
(信息工程大學密碼工程學院 河南 鄭州 450001)(河南省信息安全重點實驗室 河南 鄭州 450001)
隨著神經網絡應用的普及,深度學習的安全威脅嚴重影響人們的正常生活。如有未授權用戶繞過云端防御機制非法訪問云環境下深度神經網絡模型,利用云服務的API接口獲取深度神經網絡模型的初步信息(包括模型參數)帶來次生威脅。
通過對深度神經網絡模型進行逆向分析,未授權用戶可能復制該深度神經網絡模型進行濫用。次生安全威脅還包括攻擊者能夠得到模型內部的隱私數據,如病人醫療數據、用戶面部識別數據等[1-2]。
深度神經網絡模型的常見安全威脅按照其運行階段可以分為訓練階段的安全威脅和預測階段的安全威脅。
在訓練階段,未授權用戶通過訪問訓練數據的方式在訓練數據集中注入惡意數據或是對原有訓練數據修改、刪除,改變訓練數據的原有分布,令模型在預測時使結果出錯,這種攻擊手段就被稱為投毒攻擊。而且一旦投毒成功,在預測階段進行防御是十分困難的。
在預測階段,未授權用戶通過對圖片增加肉眼難以辨別的輕微擾動欺騙神經網絡,使目標模型預測結果出錯。這種增加了輕微擾動的圖片就被稱為對抗樣本,該種攻擊手段被稱為對抗樣本攻擊。
另一種在預測階段的常見攻擊手段被稱為模型提取攻擊。這種攻擊能夠對目標模型進行復制,并嘗試恢復目標模型在訓練中使用的數據信息,涉及對模型知識產權及用戶隱私的威脅。有攻擊者利用黑盒模型云服務平臺API輸出的置信值(Confidence Values),實現了方程求解攻擊(Equation-solving Attacks),并在輸出只含有標簽信息的情況下,實現了包括深度神經網絡在內等多種算法的模型提取攻擊(Model Extraction Attacks)[3]。
本文針對云環境下深度神經網絡模型可能面臨的常見威脅,以卷積神經網絡為研究對象,提出一種內嵌在深度神經網絡模型中的深層控制方法。該方法能夠限制未授權用戶訪問目標網絡,從源頭上抵抗未授權用戶攻擊,保護深度神經網絡模型參數與用戶的隱私信息。
目前,由于能夠收集足夠多的用戶數據,大型公司多采用集中訓練方式,這種方式能夠一定程度上規避訓練階段的投毒攻擊。
在預測階段,通常采用正則化、對抗訓練等手段抵抗對抗樣本攻擊帶來的影響。正則化通過為代價函數添加正則項,提高目標模型的泛化能力,在預測中具有良好的適應性來抵抗攻擊[4]。文獻[5-7]使用正則化方法提高模型的頑健性,在抵抗攻擊時取得良好的效果。對抗訓練在訓練數據集中引入了對抗樣本,通過合法化對抗樣本提高模型的頑健性。文獻[8]提出聯合對抗訓練(Ensemble Adversarial Training)增加對抗樣本的多樣性,但是在對抗訓練中引入所有未知攻擊的對抗樣本是不現實的,所以對抗訓練具有一定的局限性。除此之外,還有學者提出防御精餾手段[9]抵抗攻擊。針對模型提取攻擊,目前較好的防御措施是PATE[10]。PATE通過將數據分區并訓練多個模型,根據多個模型的結果進行決策,但決策結果仍可能被其他差分隱私系統的噪聲欺騙。
若要對深度神經網絡進行訓練階段的攻擊,則惡意用戶首先要獲得訪問神經網絡訓練數據的權限。云環境下深度神經網絡遭受投毒攻擊,通常是因為深度神經網絡模型采用了開放的訓練方式。
若要對深度神經網絡進行預測階段的攻擊,則惡意用戶首先要能夠使用該神經網絡。云環境下深度神經網絡遭受對抗樣本攻擊、模型提取攻擊,通常是因為惡意用戶本身擁有訪問目標網絡的權限,或者獲取到訪問目標神經網絡的權限,如表1所示。

表1 神經網絡常見攻擊手段與未授權用戶權限
綜上所述,針對深度神經網絡的常見攻擊源于未授權用戶能夠開放地訪問深度神經網絡,所以采用授權的方式對用戶進行訪問控制尤為必要。
然而現有情況下,云服務使用系統級的外部防御機制存在一定漏洞[11]。當惡意用戶試圖利用安全漏洞繞過系統防護訪問云環境下的深度神經網絡時,就需要在神經網絡內部設計一種內嵌的訪問控制模型。
針對云環境下深度神經網絡模型面臨的安全威脅,此前有學者期望采取對網絡的輸入進行加密的方式,形成加密神經網絡,用以保護隱私數據。由于同態加密算法具有以下特性:原始數據同態加密后形成密文,對密文進行變換得到新的輸出再解密,其結果與對原始數據采用相同變換得到的輸出結果一致。因此,在理想情況下,同態加密技術能夠較好地支持上述方法。Orlandi等[12]提出結合同態加密技術和典型雙方計算結構的加密神經網絡。Dowlin等[13]以Bos等[14]提出的全同態加密方案為基礎,提出了一種可用于加密數據的類神經網絡。
對深度神經網絡模型進行控制的方法國內外學者提出較少。Sun等[15]采用了一種能夠與被保護神經網絡結合的保護鎖模塊,使未授權用戶在使用目標模型時無法得到正確輸出以保護目標模型。Wang等[16]對深度神經網絡的單一隱層的偏置加入變異因子,只有授權用戶能夠解耦受控神經網絡,實現對用戶的訪問控制。
本文在上述文獻的基礎上,提出卷積神經網絡深層控制方法。當目標模型訓練完成,通過在目標神經網絡多個隱層的眾多參數處加入控制因子,使未授權用戶無法訪問目標模型。授權用戶輸入用戶ID使用目標深度神經網絡模型時,目標模型可以對用戶輸入做出正確預測。
在人工智能即服務模式下,用戶能夠通過授權訪問的方式使用云環境下深度神經網絡模型,從而對數據進行預測分析。在現有場景下,授權訪問通常是由云服務防御機制實現的,這種系統級的防護可能存在被繞過的風險,直接導致未授權用戶能夠直接訪問并使用云環境下的神經網絡。這樣做的次生危害有:云環境下深度神經網絡模型被竊取;深度神經網絡模型中包含的訓練數據信息泄露;攻擊者可以利用深度神經網絡模型信息發起白盒攻擊等。
神經網絡深層控制方法主要面向云環境下的卷積深度神經網絡模型。假設云管理員完全可信,云管理員通過云端控制模塊對卷積神經網絡進行控制,如圖1所示。

圖1 用戶使用云端受控網絡
云端控制模塊存儲了與不同授權用戶信息相對應的多組隨機數。多組隨機數包括與卷積神經網絡不同層權重位的隨機數rwm、不同層偏置位的隨機數rbj和激活函數輸入位的隨機數rgl,其中l,m,j∈n,n為神經網絡總的隱層數。
用戶使用安全通道與云端服務器通信,云端控制模塊接收到用戶訪問請求后,等待云管理員授權。云管理員對用戶授權之后,隨機選取多組隨機數生成不同位置的控制因子,包含任意隱層的kgl、kwm和kbj。將選定的隨機數用用戶信息加密后存儲于云端控制模塊,如kb2表示與第二隱層的偏置位結合的控制因子,那么此時被加密存儲的信息為Enc(rb2)。同時,控制模塊將控制因子分別與卷積神經網絡不同隱層的參數結合。云端控制模塊根據用戶信息,控制模塊將生成的控制因子與深度神經網絡模型中的對應參數作ζ(·,k)運算,神經網絡深層控制完成。
神經網絡深層控制完成之后,未授權用戶即便繞過云端防御機制直接訪問深度神經網絡模型,也無法使用ζ(·,k)運算之后的神經網絡。
當授權用戶使用受控神經網絡時,云端控制模塊確認用戶信息,解密隨機數位置信息,利用相應隨機數計算k-1還原受控神經網絡,使授權用戶能夠使用模型進行預測。
當授權用戶得到神經網絡的預測輸出后,云端控制模塊刷新該用戶信息下對應的多組隨機數,保證模型受控。
這種在深度神經網絡模型隨機隱層的不同參數處實現控制的方法,被稱為卷積神經網絡深層控制方法。
鏈式結構是神經網絡中最常用的結構,其中每一層都是前一層的函數。訓練數據中樣本伴隨的標簽為神經網絡的輸出提供了目標,但是訓練數據并沒有指明神經網絡中每一層需要如何做才能得到最終理想的輸出。這些由學習算法來決定的層被稱為隱藏層,如圖2所示。

圖2 深度卷積神經網絡中的隱藏層
圖2中,激活函數的自變量z1由用戶輸入x和神經網絡權重w1、偏置b1組成。
(1)
由于采用了鏈式結構,在神經網絡層單元組中,第一隱層的輸出h1可以表示為:
(2)
第二隱層的輸出h2是第一隱層輸出h1的函數,若第二隱層為圖2所示池化層,則第二隱層的輸出h2可以表示為:
h2=pooling2(h1)
(3)
第三隱層的輸出是第二隱層的函數,若第三隱層為圖2所示卷積層,則第三層的輸出h3可以表示為:
(4)
以此類推,則第n隱層輸出的表達式為:
(5)
式中:x為用戶的輸入數據。若第i隱層為卷積層,則gi為該層激活函數的表達式,wi為該隱層權重,bi為該隱層偏置。若第j隱層為池化層,則poolingj(hj-1)表示對j-1層的輸出hj-1進行池化。
為了使神經網絡能夠擬合不同的曲線,在隱層引入了激活函數。具有隱藏層的前饋神經網絡提供了一種萬能近似框架[17]。具體而言,萬能近似定理(Universal Approximation Theorem)[18-19]表明,一個前饋神經網絡如果具有線性輸出層和至少一層具有任何一種“擠壓”性質的激活函數,例如Sigmoid激活函數的隱藏層,只要給予網絡足夠數量的隱藏單元,它可以以任意準確率來近似任何從一個有限維空間到另一個有限維空間的Borel可測函數。萬能近似定理也已經被證明對于更廣泛類別的激活函數也是適用的,其中就包括現在常用的線性整流單元。由此可見,激活函數對前饋神經網絡擬合任意曲線有著至關重要的作用,而卷積神經網絡就是前饋神經網絡中的一種。
在深度卷積神經網絡中,對輸出起到決定性影響的參數除了深度神經網絡訓練完成的權重、偏置,還有每一隱層中激活函數的輸出。
本文將激活函數自變量zi(i=1,2,…,n)看作參數的一種,故在基于眾參數的多層控制模型中,涉及的參數類別主要有三種:權重w、偏置b和激活函數的自變量z。
定義1運算ζ(x,k)是由集合X到集合Y的一一映射,若x∈X,則集合Y中一定存在y,使y=ζ(x,k)。其中控制因子k為標量,當且僅當k=1時,y=ζ(x,1)=y。那么,雙射ζ(x,k)中,存在ζ-1,使ζ-1(y,k-1)=ζ-1(ζ(x,k),k-1)=x。
在神經網絡完成訓練之后,對各層權重、偏置、激活函數作ζ(·,k)運算,如圖3所示。

圖3 受控卷積神經網絡結構
則受控神經網絡的第一隱層的輸出h′1可以表示為:
(6)
不同卷積神經網絡的結構各不同,因此每一層是否作用控制因子的表達式也各不相同。若受控神經網絡第二隱層為池化層,由于控制因子不作用于池化層,則該層輸出h′2可以表示為:
h′2=pooling2(h′1)
(7)
若受控卷積神經網絡第二隱層為卷積層,由于控制因子作用于卷積運算層參數處,則該層輸出h′2可以表示為:
(8)

(9)
卷積神經網絡層數較多,每一層又分布不同類型的參數,如權重、偏置參數等。通過內嵌控制因子對卷積運算層中的多個位置進行控制,可能導致受控神經網絡開銷過大,下面對深層控制模型展開研究并進行方法優化。
為了探究卷積神經網絡深層控制方法的可用性并進一步優化控制方法,以具有8個隱層結構的卷積神經網絡作為研究對象,利用控制變量的方法進行研究。該網絡包含了3層卷積運算、3層池化、1層全連接和1層輸出。選擇該網絡的3個運算層作為實驗對象,分別稱其為卷積層C1、卷積層C2和卷積層C3。
對神經網絡進行訓練,訓練完成準確率為97.68%。分別在每一隱層的權重、偏置、激活函數自變量處加入控制因子作ζ(·,k)運算。為保證實驗結論不受控制因子大小影響,統一將各處k取定值。當k大于103數量級且ζ(·,k)運算滿足定義1時,受控神經網絡準確率穩定在10%左右,深度神經網絡模型受控效果較好。
隨機生成大于103的不同k值,將控制因子k作用于隱層激活函數自變量處進行實驗,深層控制模型如圖4所示。

圖4 將控制因子作用于激活函數的深層控制模型
可以看到,單在C3隱層加入控制因子準確度降低較小,對神經網絡受控效果較差。當控制因子在C2層激活函數處參與深層控制時,能夠令神經網絡受控準確率達到9.72%左右,起到較好的控制效果,如圖5所示。

圖5 將控制因子作用于不同層激活函數的準確率
將控制因子作用于各隱層權重處進行實驗,深層控制模型如圖6所示。

圖6 將控制因子作用于不同層權重的深層控制模型
本實驗同上實驗,分為三部分:第一部分對單一隱層權重進行控制;第二部分同時對兩個隱層權重進行控制;第三部分同時對三個隱層權重進行控制。結果如圖7所示。

圖7 將控制因子作用于不同層權重的準確率
目標模型未受控時正常使用的準確率為97.68%,只對隱層中的權重做受控操作對模型準確率幾乎無影響,控制效果差。說明對于本次實驗所選取的滿足定義1的運算而言,在隱層權重處作ζ(·,k)運算對卷積深度神經網絡模型影響較小。
將控制因子作用于各隱層偏置處進行實驗,深層控制模型如圖8所示。

圖8 將控制因子作用于不同層偏置的深層控制模型
實驗同樣分為三部分:第一部分對單一隱層偏置進行控制;第二部分同時對兩個隱層的偏置進行控制;第三部分同時對三個隱層的偏置進行控制。結果如圖9所示。

圖9 將控制因子作用于不同層偏置的準確率
可以看到,當控制因子作用于不同層偏置時,能夠令神經網絡平均受控準確率達到約10.29%,起到較好的控制效果。當C3層的偏置參與深層控制時,能夠令受控神經網絡的準確率達到最小值9.72%,起到較好的控制效果。
在授權用戶使用受控神經網絡時,控制模塊需要先恢復受控參數。由于深層控制方法需要令控制因子內嵌在卷積神經網絡各隱層的不同參數處,內嵌控制因子的參數越多,恢復神經網絡的時間開銷就越大。為了進一步降低使用深層控制方法產生的時間開銷,同時提高控制效果,根據上述研究結果提出對深層控制方法的優化方案。
上述研究表明,在以三層卷積神經網絡為研究對象的實驗中,令C2層的激活函數和C3層偏置同時參與深層控制,能夠起到最好的控制效果。所以在對卷積神經網絡深度控制時,優先選取模型中間隱層的激活函數和靠近輸出的隱層偏置。
驗證卷積神經網絡深層控制方法與優化后深層控制方法的有效性。
選取LeNet-5、VGG-16卷積神經網絡作為實驗對象,分別使用MNIST、ImageNet數據集。操作系統采用Windows 10,GPU為GeForce GTX 1060,算力為6.1,采用TensorFlow 1.12.0以及對應的cuda 9.0、cudnn 7.1.4,編譯器選用Pycharm,卷積神經網絡代碼使用Python3.6,部分使用C/C++編寫。
首先使用訓練好的LeNet-5卷積神經網絡模型對MNIST的10 000組數據進行多次測試,記錄平均時間為0.463 s,模型準確率為94.49%。以該時間與準確率作為衡量后續實驗結果的標準時間開銷和標準準確率。
使用深層控制方法控制實驗對象,記錄授權用戶多次使用受控網絡測試10 000組數據的時間開銷為0.516 s,受控模型準確率為94.49%,未授權用戶多次使用受控網絡,模型準確率為10.32%。
優化后的深層控制方法要求控制模塊優先選取受控模型中間隱層的激活函數和靠近輸出的隱層偏置。使用優化后的深層控制方法控制實驗對象,授權用戶多次使用受控網絡,同樣測試10 000組數據的時間開銷為0.483 s,受控模型準確率為94.49%,未授權用戶多次使用受控優化網絡,模型準確率為8.92%。
對比三組時間數據,可以發現卷積神經網絡采用深層控制方法后,運行時間增加11.45%,時間開銷不大。在對深層控制方法優化后,時間從0.516 s降至0.483 s,受控模型時間縮短6.39%,如圖10所示。

圖10 LeNet-5在不同狀態下的時間開銷對比
對比三組準確率數據,可以發現卷積神經網絡采用深層控制方法之后,未授權用戶難以使用受控網絡預測數據。在對深層控制方法優化后,受控優化網絡的準確率進一步下降,從10.32%降低至8.92%,控制效果有所提升,如圖11所示。

圖11 LeNet-5在不同狀態下的準確率對比
從ImageNet包含50 000組圖片的驗證集中隨機抽取200組圖片,使用訓練好的VGG-16卷積神經網絡模型多次測試,記錄平均時間為6.04 s,模型準確率為78.50%。以該時間與準確率作為衡量后續實驗結果的標準時間開銷和標準準確率。
使用深層控制方法控制實驗對象,記錄授權用戶多次使用受控網絡的時間開銷為6.73 s,受控模型準確率為78.50%,未授權用戶使用受控網絡,模型準確率為2.00%。優化控制方法后,要求控制模塊優先選取受控模型中間隱層的激活函數和靠近輸出的隱層偏置。使用優化后的深層控制方法控制實驗對象,授權用戶使用受控網絡時間開銷為6.36 s,受控模型準確率為78.50%,未授權用戶多次使用受控優化網絡,模型準確率為1.50%。
對比三組時間數據,可以發現卷積神經網絡采用深層控制方法后,運行時間增加11.42%,時間開銷不大。在對深層控制方法優化后,時間開銷從6.73 s降至6.36 s,受控模型時間縮短5.50%,如圖12所示。

圖12 VGG-16在不同狀態下的時間開銷對比
對比三組準確率數據,可以發現卷積神經網絡采用深層控制方法之后,未授權用戶難以使用受控網絡預測數據。在對深層控制方法優化后,受控優化網絡的準確率進一步下降,從2.00%降低至1.50%,控制效果有所提升,如圖13所示。

圖13 VGG-16在不同狀態下的準確率對比
驗證實驗成功,卷積神經網絡深層控制方法在卷積神經網絡中能夠起到較好的控制效果,未授權用戶無法使用受控神經網絡做出預測。
在卷積深度神經網絡模型內部參數處實現控制是一項技術難點,國內外相關研究較少。本文針對常用的卷積神經網絡面臨的未授權訪問及其次生安全威脅,通過研究神經網絡的基本結構,提出一種在隱層不同參數處結合因子的深層控制方法,并通過實驗驗證了方法的有效性。
深層控制方法的本質在于降低未授權用戶使用神經網絡的準確率,以至于未授權用戶無法使用目標神經網絡,而授權用戶則能夠使用目標神經網絡進行正常預測。該方法不僅能夠抵抗未授權用戶的非法訪問,同時能夠實現對模型參數的保護。
本文的研究在一定程度上為保護神經網絡模型提出了新的思路與方法,后續工作將把深層安全控制方法的實驗框架更換為當前更易用的Pytorch,對方法進一步優化,并推廣應用至更深的卷積神經網絡模型及其他神經網絡模型中。