安全隱患:神經(jīng)網(wǎng)絡(luò )可以隱藏惡意軟件
編譯 | 禾木木
出品 | AI科技大本營(yíng)(ID:rgznai100)
憑借數百萬(wàn)和數十億的數值參數,深度學(xué)習模型可以做到很多的事情,例如,檢測照片中的對象、識別語(yǔ)音、生成文本以及隱藏惡意軟件。加州大學(xué)圣地亞哥分校和伊利諾伊大學(xué)的研究人員發(fā)現,神經(jīng)網(wǎng)絡(luò )可以在不觸發(fā)反惡意軟件的情況下嵌入惡意負載。
惡意軟件隱藏技術(shù) EvilModel 揭示了深度學(xué)習的安全問(wèn)題,這已成為機器學(xué)習和網(wǎng)絡(luò )安全會(huì )議討論的熱門(mén)話(huà)題。隨著(zhù)深度學(xué)習逐漸與我們的應用中變得必不可分,安全社區需要考慮新的方法來(lái)保護用戶(hù)免受這類(lèi)新興的威脅。
深度學(xué)習模型中隱藏的惡意軟件
每個(gè)深度學(xué)習模型都是由多層人工神經(jīng)元組成,根據層的類(lèi)型,每個(gè)神經(jīng)元與其上一層和下一層中的所有或部分神經(jīng)元有所連接。根據深度學(xué)習模型在針對任務(wù)訓練時(shí)使用的參數數值不同,神經(jīng)元間連接的強度也會(huì )不同,大型的神經(jīng)網(wǎng)絡(luò )甚至可以擁有數億乃至數十億的參數。EvilModel 背后的主要思想是將惡意軟件嵌入到神經(jīng)網(wǎng)絡(luò )的參數中,使其對惡意軟件掃描儀不可見(jiàn)。這是隱寫(xiě)術(shù)的一種形式,將一條信息隱藏在另一條信息中的做法。同時(shí),攜帶惡意病毒的深度學(xué)習模型還必須執行其主要任務(wù)(例如,圖像分類(lèi))做到和正常模型一樣號,以避免引起懷疑或使其對受害者無(wú)用。最后,攻擊者必須有一種機制將受感染的模型傳遞給目標設備,并從模型參數中提取惡意軟件。
更改參數值
多數深度學(xué)習模型都會(huì )使用 32 位(4 個(gè)字節)的浮點(diǎn)數來(lái)存儲參數值。據研究者實(shí)驗,黑客可以在不顯著(zhù)提升其中數值的前提下,每個(gè)參數中存儲最多存儲 3 字節的病毒。大多數深度學(xué)習模型使用 32 位(4字節)浮點(diǎn)數來(lái)存儲參數值。根據研究,在不顯著(zhù)提升其數值的前提下,最多有三字節可用于嵌入惡意代碼。在感染深度學(xué)習模型時(shí),攻擊者會(huì )將病毒打散至 3 字節,并將數據嵌入到模型的參數之中。為了將惡意軟件傳輸至目標的手段,攻擊者可以將感染后的模型發(fā)布至 GitHub 或 TorchHub 等任意托管神經(jīng)模型的網(wǎng)站?;蚴峭ㄟ^(guò)更復雜的供應鏈攻擊形式,讓目標設備上軟件的自動(dòng)更新來(lái)傳播受感染的模型。一旦受感染后的模型交付給受害者,一個(gè)小小的軟件就可提取并執行負載。
在卷積神經(jīng)網(wǎng)絡(luò )中隱藏的惡意軟件
為了驗證 EvilModel 的可行性,研究人員在多個(gè)卷積神經(jīng)網(wǎng)絡(luò )(CNN)中進(jìn)行了測試。CNN 是個(gè)很好的測試環(huán)境,首先,CNN 的體積都很大,通常會(huì )有幾十層和數百萬(wàn)的參數;其次,CNN 包含各類(lèi)架構,有不同類(lèi)型的層(全連接層、卷積層)、不同的泛化技術(shù)(批歸一化、棄權、池化等等),這些多樣化讓評估各類(lèi)病毒嵌入設定變得可能;第三,CNN 通常用于計算機視覺(jué)類(lèi)的應用,這些都是惡意因素的主要攻擊對象;最后,很多經(jīng)過(guò)預訓練的 CNN 可以在不經(jīng)任何改動(dòng)的情況下直接集成到新的應用程序中,而多數在應用中使用預訓練 CNN 的開(kāi)發(fā)人員并不一定知道深度學(xué)習的具體應用原理。研究人員首先嘗試進(jìn)行病毒嵌入的神經(jīng)網(wǎng)路是AlexNet,一款曾在 2012 年重新激起人們對深度學(xué)習興趣的流行軟件,擁有 178 兆字節、五個(gè)卷積層和三個(gè)密集層或全連接層。在用批量標準化(Batch Normalization,一種先分組標準化訓練樣本,再進(jìn)入深度模型訓練的技術(shù))訓練 AlexNet 時(shí),研究者們成功將 26.8 M 的惡意軟件嵌入到了模型之中,并同時(shí)確保了其與正常模型預測的準確率相差不超過(guò) 1%。但如果增加惡意軟件的數據量,準確率將大幅下降。下一步的實(shí)驗是重新訓練感染后模型。通過(guò)凍結受感染神經(jīng)元避免其在額外訓練周期中被修改,再加上批量標準化和再訓練,研究人員成功將惡意病毒的數據量提升至 36.9MB,并同時(shí)保證了模型的準確率在 90% 以上。
研究中實(shí)驗用的八個(gè)樣本病毒都是可以被線(xiàn)上病毒掃描網(wǎng)站 VirusTotal 識別為惡意軟件的,一旦樣本成功嵌入神經(jīng)網(wǎng)絡(luò ),研究人員就會(huì )將模型上傳至 VirusTotal 中進(jìn)行掃描。而病毒掃描結果卻顯示這些模型“安全”,意味著(zhù)惡意軟件的偽裝并未暴露。研究人員又在其他幾個(gè) CNN 架構上進(jìn)行了相同的測試, 包括 VGG、ResNet、Inception,以及 Mobilenet。實(shí)驗結果類(lèi)似,惡意軟件都未被成功檢測。這些隱匿的惡意軟件將會(huì )是所有大型神經(jīng)網(wǎng)絡(luò )都需要面對的威脅。
保護機器學(xué)習管道
考慮到潛藏在深度學(xué)習模型中的惡意負載可以避過(guò)病毒掃描的檢測,對抗 EvilModel 的唯一手段恐怕就只有直接銷(xiāo)毀病毒本身了。這類(lèi)病毒只有在所有字節都完好無(wú)損才能保證感染成功。因此,如果收到 EvilModel 的受害者可以在不凍結受感染層的情況下重新訓練模型,改變參數數值,便可讓病毒數據直接被銷(xiāo)毀。這樣,即使只有一輪的訓練也足以摧毀任何隱藏在深度學(xué)習模型中的惡意病毒。但是,大多數開(kāi)發(fā)人員都按原樣使用預訓練模型,除非他們想要針對其他應用做更細致的調整。而很多的細調都會(huì )凍結網(wǎng)絡(luò )中絕大多數的層,這些層里很大可能包含了受感染的那些。這就意味著(zhù),除了對抗攻擊,數據中毒、成員推理等其他已知的安全問(wèn)題之外,受惡意軟件感染的神經(jīng)網(wǎng)絡(luò )也將成為深度學(xué)習的未來(lái)中真正的威脅之一。機器學(xué)習模型與經(jīng)典的、基于規則的軟件之間的差別意味著(zhù)我們需要新的方法來(lái)應對安全威脅。2021 年上半年的時(shí)候,不少組織都提出了對抗性機器學(xué)習威脅矩陣,一個(gè)可協(xié)助開(kāi)發(fā)者們發(fā)現機器學(xué)習管道弱點(diǎn)并修補安全漏洞的框架。雖然威脅矩陣更側重于對抗性攻擊,但其所提出的方法也適用于 EvilModels 等威脅。在研究人員找到更可靠的手段來(lái)檢測并阻止深度學(xué)習網(wǎng)絡(luò )中的惡意軟件之前,我們必須確立機器學(xué)習管道中的信任鏈。既然病毒掃描和其他靜態(tài)分析工具無(wú)法檢測到受感染模型,開(kāi)發(fā)者們必須確保他們所使用的模型是來(lái)自可信任的渠道,并且訓練數據和學(xué)習參數未受到損害。隨著(zhù)我們在深度學(xué)習安全問(wèn)題方面更深一步的研究,我們也必須對那些用于分析圖片或識別語(yǔ)音的、數量龐雜的數據背后所隱藏的東西保持警惕。參考鏈接:https://bdtechtalks.com/2021/12/09/evilmodel-neural-networks-malware
*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。