新聞中心

EEPW首頁 > 智能計(jì)算 > 業(yè)界動態(tài) > 神經(jīng)網(wǎng)絡(luò)成“病毒軟件”新宿主!國科大最新研究:嵌入惡意軟件后,性能下降不足1%

神經(jīng)網(wǎng)絡(luò)成“病毒軟件”新宿主!國科大最新研究:嵌入惡意軟件后,性能下降不足1%

作者:琰琰、維克多 時(shí)間:2021-07-28 來源:電子產(chǎn)品世界 收藏

近日,中國科學(xué)院大學(xué)(國科大)團(tuán)隊(duì)研究發(fā)現(xiàn),神經(jīng)網(wǎng)絡(luò)將成為“病毒軟件”肆意傳播的下一個(gè)陣地。

本文引用地址:http://butianyuan.cn/article/202107/427167.htm

他們在arXiv提交的一篇題為“EvilModel: Hiding Malware Inside of Neural Network Models”的論文表明,惡意軟件可以直接被嵌入到機(jī)器學(xué)習(xí)模型的“人工神經(jīng)元”中,并且?guī)缀醪粫绊懩P偷男阅堋?/strong>

image.png

具體而言,由于模型的解釋性差和泛化能力強(qiáng),通過神經(jīng)網(wǎng)絡(luò)嵌入惡意軟件可以使模型在性能沒有影響或影響很小的情況下秘密傳播,他們發(fā)現(xiàn),使用真實(shí)的惡意軟件替換AlexNet模型中50%左右的神經(jīng)元,模型的準(zhǔn)確率仍保持在93.1%以上。

同時(shí),由于神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)保持不變,這些大量惡意軟件成功地規(guī)避了防病毒引擎的安全掃描。

論文中寫道,經(jīng)過實(shí)驗(yàn)表明,在1%的準(zhǔn)確率損失范圍內(nèi),一個(gè)178MB的AlexNet模型可以嵌入36.9MB的惡意軟件,并且VirusTotal中的反病毒引擎沒有給出任何可疑提示。作者表示,隨著人工智能的廣泛應(yīng)用,神經(jīng)網(wǎng)絡(luò)將成為惡意軟件傳播的載體。

1627436968894361.png

1   “中毒”的神經(jīng)網(wǎng)絡(luò),有哪些特點(diǎn)?

在本篇論文中,作者以黑客的身份講述了如何將大量惡意軟件嵌入機(jī)器學(xué)習(xí)模型,而不被發(fā)現(xiàn)的方法。

僵尸網(wǎng)絡(luò),勒索軟件,APT等惡意軟件是計(jì)算機(jī)安全的主要威脅。在維護(hù)過程中,攻擊者需要向受感染者發(fā)送命令和狀態(tài),并規(guī)避一些敏感數(shù)據(jù)。同時(shí),攻擊者還需要向其發(fā)送自定義的有效負(fù)載,以針對特定任務(wù)實(shí)施攻擊。為了規(guī)避檢測和軟件追蹤,以上命令、有效載荷和其他組件的傳遞必須秘密進(jìn)行。

常用的秘密傳遞的方法包括Hammertoss(APT-29)、Pony以及Glupteba19,這些方法不需要攻擊者部署服務(wù)器,從而避免了防御者通過摧毀中心服務(wù)器來抵制惡意軟件的行為。還有一些攻擊者將惡意軟件附加到了圖像、文檔、壓縮文件等載體的背面,并確保載體結(jié)構(gòu)不受損壞。不過這些方法都難以逃過反病毒引擎的檢測。

最先進(jìn)的一種隱藏傳遞消息的方法被稱為隱寫術(shù)(steganography),它可以將秘密信息以不同的方式嵌入到普通文件中。在隱寫術(shù)中,數(shù)據(jù)通常會被隱藏在圖像像素最低的有效位(LSB)中。如灰度圖像的像素在0到255之間,當(dāng)它用二進(jìn)制表示時(shí),最低有效位對圖像的外觀幾乎沒有影響,因此便于信息的隱藏。但由于信道容量較低,該方法并不適用于嵌入大量惡意軟件。

此前,騰訊研究人員提出了一種在神經(jīng)網(wǎng)絡(luò)模型中隱藏惡意軟件的方法。這種方法類似于使用LSB的圖像隱寫( image steganography)功能——通過將模型中參數(shù)的最后幾位修改為惡意代碼,使其在不影響原始模型性能的前提下,將惡意負(fù)載秘密地傳遞給目標(biāo)設(shè)備。由于PyTorch、TensorFlow等常用框架的模型參數(shù)是32位浮點(diǎn)數(shù),權(quán)值較低,該方法并不會對神經(jīng)網(wǎng)絡(luò)的全局判斷造成明顯影響。

與騰訊修改一個(gè)參數(shù)的LSB不同,中科院大學(xué)研究團(tuán)隊(duì)修改了整個(gè)神經(jīng)元來嵌入惡意軟件。

一般而言,隱藏層神經(jīng)元會影響神經(jīng)網(wǎng)絡(luò)的分類結(jié)果,因而其參數(shù)往往是固定的,然而研究人員發(fā)現(xiàn),由于隱藏層中存在冗余神經(jīng)元,一些神經(jīng)元的變化對神經(jīng)網(wǎng)絡(luò)的性能影響并不大。此外,在模型結(jié)構(gòu)不變的情況下,隱藏的惡意軟件可以規(guī)避反病毒引擎的檢測。因此,通過對神經(jīng)元的修改可以將惡意軟件隱蔽地嵌入并傳遞到目標(biāo)設(shè)備中。 

圖片

總結(jié)來看,基于神經(jīng)網(wǎng)絡(luò)模型的惡意軟件呈現(xiàn)出以下特點(diǎn):

●   通過神經(jīng)網(wǎng)絡(luò)模型和反匯編,可以隱藏惡意軟件的特征,使其逃避檢測。

●   由于冗余神經(jīng)元的存在和神經(jīng)網(wǎng)絡(luò)的泛化能力,經(jīng)修改后的神經(jīng)網(wǎng)絡(luò)模型在不同的任務(wù)中仍保持其性能。

●   在特定任務(wù)中,神經(jīng)網(wǎng)絡(luò)模型的規(guī)模很大,使大量惡意軟件傳播成為可能。 

●   不依賴于其他系統(tǒng)漏洞,嵌入惡意軟件的模型可通過供應(yīng)鏈的更新渠道或其他方式傳遞,不會引起防御者的注意。 

基于以上因素, 隨著神經(jīng)網(wǎng)絡(luò)的應(yīng)用越來越廣泛,這種方法將在未來的惡意軟件傳輸中得到普遍應(yīng)用。

2   嵌入惡意軟件只需三步 


圖片

 為了防止嵌入惡意軟件的模型性能受到影響,攻擊者通常遵循以下步驟:

1.設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)。為了確保嵌入更多的惡意軟件,攻擊者通常會引入更多的神經(jīng)元。 

2.選擇合適的現(xiàn)有模型,或者使用數(shù)據(jù)集對網(wǎng)絡(luò)進(jìn)行訓(xùn)練,獲得性能更好的模型。

3.選擇合適的層嵌入惡意軟件。嵌入惡意軟件后,攻擊者需要評估模型的性能,如果模型的性能損失超出可接受范圍,需要使用數(shù)據(jù)集重新訓(xùn)練模型以獲得更高的性能。

一旦準(zhǔn)備好模型,攻擊者就可以使用供應(yīng)鏈污染(supply chain pollution)等方法將其發(fā)布到公共存儲庫或其他地方。

接收者假定是在目標(biāo)設(shè)備上運(yùn)行的程序,可以下載模型并從模型中提取嵌入的惡意軟件。在更新模型后,通常是先根據(jù)預(yù)定義規(guī)則提取惡意軟件,然后進(jìn)行安全性檢查,最后再等達(dá)到預(yù)定義條件后運(yùn)行惡意軟件。具體過程如下:

替換神經(jīng)元參數(shù)

如上所述,神經(jīng)元中的參數(shù)將會被惡意軟件替換。由于每個(gè)參數(shù)都是一個(gè)浮點(diǎn)數(shù),攻擊者需要將惡意軟件中的字節(jié)轉(zhuǎn)換為32位浮點(diǎn)數(shù),且保持在合理的時(shí)間間隔內(nèi)。

惡意軟件嵌入

為了讓接收者能夠正確提取惡意軟件,攻擊者會采用一套規(guī)則將惡意軟件嵌入其中。本文提供了一個(gè)嵌入算法:對于要嵌入的惡意軟件,每次讀取3個(gè)字節(jié),并將前綴添加到第一個(gè)字節(jié),然后將字節(jié)轉(zhuǎn)換為具有big-endian格式的有效浮點(diǎn)數(shù)。

如果剩余的樣本少于3個(gè)字節(jié),則添加“x00”進(jìn)行填充。在嵌入模型之前,這些數(shù)字會被轉(zhuǎn)換成張量。最后在神經(jīng)網(wǎng)絡(luò)模型和指定的層中,通過替換每個(gè)神經(jīng)元的權(quán)值和偏差,對神經(jīng)元的進(jìn)行修改。其中,每個(gè)神經(jīng)元中的連接權(quán)重用來存儲轉(zhuǎn)換后的惡意軟件字節(jié),偏差用來存儲惡意軟件的長度和哈希值。

惡意軟件提取

接收者的提取過程與嵌入過程相反。接收端需要提取給定層的神經(jīng)元參數(shù),并將參數(shù)轉(zhuǎn)換成浮點(diǎn)數(shù)。這些浮點(diǎn)數(shù)再轉(zhuǎn)換成big-endian字節(jié)格式,去掉字節(jié)前綴,得到二進(jìn)制字節(jié)流。然后,根據(jù)第一個(gè)神經(jīng)元長度記錄的偏差,接收者可以集成惡意軟件。此外,接收者可以通過比較惡意軟件的散列值與偏差記錄中的散列值來驗(yàn)證提取過程。

在這項(xiàng)工作中,研究人員假定通信信道具有啟動防病毒安全掃描的能力,如果模型不安全可以將其攔截,并且模型性能一旦超過設(shè)定的閾值也會向終端用戶發(fā)出警報(bào)。

3   36.9MB惡意軟件,性能損失不足1%

研究人員采用AlexNet神經(jīng)網(wǎng)絡(luò)架構(gòu)進(jìn)行了實(shí)驗(yàn)。如下圖,AlexNet的輸入是一個(gè)224x224大小的單通道灰度圖像,輸出是一個(gè)大小為10的向量,分別代表10個(gè)類。

圖片

圖注 全連接結(jié)構(gòu)

為了驗(yàn)證該方法在處理大量惡意軟件時(shí)的表現(xiàn),本次試驗(yàn)采用了具有全連接架構(gòu)的模型。如圖,對于AlexNet而言,F(xiàn)C.0是一個(gè)具有4096個(gè)神經(jīng)元的隱藏層——從卷積層接收6400個(gè)輸入并生成4096個(gè)輸出。因此,FC.0層的每個(gè)神經(jīng)元有6400個(gè)連接權(quán)值,這意味著6400×3/1024=18.75KB的惡意軟件可以嵌入到FC.0層的一個(gè)神經(jīng)元中。 

類似地,F(xiàn)C.1是一個(gè)有4096個(gè)神經(jīng)元的隱藏層,它接收4096個(gè)輸入并產(chǎn)生4096個(gè)輸出,因此,4096×3/1024=12KB的惡意軟件可以嵌入到FC.1層神經(jīng)元中(FC.2是輸出層,接收4096個(gè)輸入后生成10個(gè)輸出)

研究人員對全連接層上有BN和沒有BN的模型進(jìn)行了性能比較。BN(Batch normalization,即批處理規(guī)范化)是一種加速深層網(wǎng)收斂的有效技術(shù),BN層可應(yīng)用于全連通層中的仿射變換和激活函數(shù)之間。

經(jīng)過大約100個(gè)階段的訓(xùn)練,實(shí)驗(yàn)表明,在不使用BN的測試集上訓(xùn)練的模型,其準(zhǔn)確率為93.44%,在使用BN的測試集上訓(xùn)練的模型,其準(zhǔn)確率為93.75%。

為了模擬真實(shí)場景,實(shí)驗(yàn)使用了公共存儲庫的真實(shí)惡意軟件樣本,并將這些樣本上傳到了VirusTotal,為了評估該方法的有效性,作者進(jìn)行了以下實(shí)驗(yàn)設(shè)置,并嘗試回答以下7個(gè)問題: 

1.攻擊方法行得通么?

實(shí)驗(yàn)方案:使用惡意軟件樣本( sample)1-6分別替換FC.1層中的神經(jīng)元,并在測試集上評估其性能。測試準(zhǔn)確率在93.43%~93.45%之間。然后,從模型中提取惡意軟件,并計(jì)算其SHA-1哈希值。哈希值保持不變。結(jié)果表明,該方法是可行的。

2.模型中可以嵌入多少惡意軟件?

3.模型的精度損失是多少?

4.BN是否有幫助? 

實(shí)驗(yàn)方案:對于問題2~3,作者在AlexNet上用 sample1-6分別替換了FC.1層的5個(gè)、10個(gè)、...、4095個(gè)神經(jīng)元;用 sample3-8替代FC.0層的有BN和無BN的AlexNet。

圖片

圖注 在不同層上替換不同神經(jīng)元的準(zhǔn)確率統(tǒng)計(jì)

FC.0中的每個(gè)神經(jīng)元可以嵌入18.75KB的惡意軟件。由于一個(gè) sample最多可以替換FC.0和FC.1中的5個(gè)神經(jīng)元,作者重復(fù)了替換過程,并用相同的樣本替換各層中的神經(jīng)元,直到替換的神經(jīng)元數(shù)量達(dá)到目標(biāo)。最后,作者得到了6組準(zhǔn)確率數(shù)據(jù),結(jié)果如上圖所示。 

圖片

表注:更換不同數(shù)量神經(jīng)元的準(zhǔn)確率

因此,可以得出結(jié)論:當(dāng)替換較少數(shù)量的神經(jīng)元時(shí),對模型的準(zhǔn)確率影響不大。對于帶有BN的AlexNet,當(dāng)替換FC.1中的1025個(gè)神經(jīng)元時(shí)(25%,相當(dāng)于嵌入了12MB的惡意軟件),準(zhǔn)確率仍然可以達(dá)到93.63%。當(dāng)替換2050個(gè)神經(jīng)元(50%)時(shí),準(zhǔn)確率為93.11%。當(dāng)超過2105個(gè)神經(jīng)元被替換時(shí),準(zhǔn)確率下降到93%以下。當(dāng)超過2900個(gè)神經(jīng)元被替換時(shí),準(zhǔn)確率下降到90%以下,準(zhǔn)確率明顯下降。當(dāng)所有神經(jīng)元都被替換時(shí),準(zhǔn)確率下降到10%左右(相當(dāng)于隨機(jī)猜測)。

5.哪一層更適合嵌入惡意軟件?

實(shí)驗(yàn)方案:作者選擇在AlexNet的所有層嵌入惡意軟件。用sample替換每一層中的神經(jīng)元,并記錄其準(zhǔn)確率。由于不同的層具有不同的參數(shù)數(shù)量,作者使用百分比來表示替換的數(shù)量,如下圖所示。

圖片

對于有BN和沒有BN的AlexNet,F(xiàn)C.1在所有層都具有出色的性能。可以推斷,對于完全連接的層,更接近輸出層的層更適合嵌入。

6.如何通過再訓(xùn)練恢復(fù)準(zhǔn)確率?

實(shí)驗(yàn)方案:作者選擇了性能與平均準(zhǔn)確率相近的sample,并對有和沒有BN的模型分別替換了FC.0和FC.1層中的50,100,...,4050個(gè)神經(jīng)元。然后,“凍結(jié)”惡意軟件嵌入層,并使用相同的訓(xùn)練集重新訓(xùn)練它們1個(gè) epoch。記錄重新訓(xùn)練前后測試集上的準(zhǔn)確率。對每個(gè)模型進(jìn)行再訓(xùn)練后,提取模型中嵌入的惡意軟件,計(jì)算惡意軟件的SHA-1哈希值,并與原始哈希值進(jìn)行匹配。

圖片

結(jié)果如上所示,對于完全連接層中沒有BN的模型,替換神經(jīng)元參數(shù)后的再訓(xùn)練對模型性能沒有明顯的改善。

圖片

對于帶有BN的模型,再訓(xùn)練前后的準(zhǔn)確率有明顯的變化。

因此,如果攻擊者使用帶有BN和再訓(xùn)練的模型在FC.1上嵌入惡意軟件,并希望將模型的準(zhǔn)確率損失控制在1%以內(nèi),那么將有超過3150個(gè)神經(jīng)元可以替換。這將導(dǎo)致3150×12/1024=36.9MB的惡意軟件嵌入。 

7.殺毒軟件對植入病毒的模型有效么?

實(shí)驗(yàn)方案與結(jié)果:作者將一些嵌入惡意軟件的模型上傳到VirusTotal,結(jié)果發(fā)現(xiàn):VirusTotal將這些模型識別為zip文件。58個(gè)殺毒引擎參與了檢測工作,沒有發(fā)現(xiàn)可疑情況。這意味著該方法可以迷惑傳統(tǒng)殺毒軟件。

4   如何預(yù)防惡意軟件攻擊?

作者建議在啟動模型時(shí),對模型進(jìn)行檢查。由于嵌入的惡意軟件將在目標(biāo)設(shè)備上“工作”,因此可以使用靜態(tài)和動態(tài)分析、啟發(fā)式方法等傳統(tǒng)方法對其進(jìn)行檢測和分析。由于攻擊者可以發(fā)起供應(yīng)鏈污染(supply chain pollution)等攻擊,因此模型的最初提供者也應(yīng)該采取措施防止此類攻擊。

5   總結(jié)

這篇論文發(fā)現(xiàn)了一種神經(jīng)網(wǎng)絡(luò)模型傳遞“病毒”的方法。當(dāng)神經(jīng)網(wǎng)絡(luò)的參數(shù)被惡意替換時(shí),模型的結(jié)構(gòu)可能保持不變,并且“病毒”在神經(jīng)元中會被反匯編(disassembled )。由于“病毒”的特征不再可用,它可以躲避普通殺毒軟件的檢測。 

由于神經(jīng)網(wǎng)絡(luò)模型對變化具有較強(qiáng)的魯棒性,因此當(dāng)配置良好時(shí),其性能不會有明顯的損失。實(shí)驗(yàn)表明,在對全連通層進(jìn)行批量歸一化的情況下,178MB-AlexNet模型可以嵌入36.9MB的惡意軟件,而準(zhǔn)確率損失小于1%。

由于神經(jīng)網(wǎng)絡(luò)模型對變化具有較強(qiáng)的魯棒性,因此當(dāng)配置良好時(shí),其性能不會有明顯的損失。實(shí)驗(yàn)表明,在對全連接層進(jìn)行批量歸一化的情況下,178MB-AlexNet模型可以嵌入36.9MB的惡意軟件,而準(zhǔn)確率損失小于1%。在VirusTotal上的實(shí)驗(yàn)也證明了,在神經(jīng)網(wǎng)絡(luò)上嵌入的“病毒”,具有極強(qiáng)的隱蔽性。

1627437049336894.png



關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉