人工智能 (AI) 不斷發(fā)展,并在過去十年中取得了巨大進(jìn)步。深度學(xué)習(xí)(DL, Deep Learning)是機(jī)器學(xué)習(xí)(ML, Machine Learning)領(lǐng)域中一個新的研究方向,深度學(xué)習(xí)是學(xué)習(xí)樣本數(shù)據(jù)的內(nèi)在規(guī)律和表示層次,這些學(xué)習(xí)過程中獲得的信息對諸如文字,圖像和聲音等數(shù)據(jù)的解釋有很大的幫助。它的最終目標(biāo)是讓機(jī)器能夠像人一樣具有分析學(xué)習(xí)能力,能夠識別文字、圖像和聲音等數(shù)據(jù)。深度學(xué)習(xí)是一個復(fù)雜的機(jī)器學(xué)習(xí)算法,在語音和圖像識別方面取得的效果,遠(yuǎn)遠(yuǎn)超過先前相關(guān)技術(shù)。深度學(xué)習(xí)在搜索技術(shù),數(shù)據(jù)挖掘,機(jī)器學(xué)習(xí),機(jī)器翻譯,自然語言處理,多媒體學(xué)習(xí),語音,推薦和個性化技術(shù),以及其他相關(guān)領(lǐng)域都取得了很多成果。深度學(xué)習(xí)使機(jī)器模仿視聽和思考等人類的活動,解決了很多復(fù)雜的模式識別難題,使得人工智能相關(guān)技術(shù)取得了很大進(jìn)步。目前深度學(xué)習(xí)已經(jīng)可以被應(yīng)用于圖像分割、預(yù)測任何基于氨基酸序列的蛋白質(zhì)的三維結(jié)構(gòu)、機(jī)器翻譯、語音識別。近年來,深度學(xué)習(xí)已被應(yīng)用于惡意軟件分析。不同類型的深度學(xué)習(xí)算法,如卷積神經(jīng)網(wǎng)絡(luò) (CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)和前饋網(wǎng)絡(luò),已被應(yīng)用于使用字節(jié)序列、灰度圖像、結(jié)構(gòu)熵、API 的惡意軟件分析中的各種用例調(diào)用順序、HTTP 流量和網(wǎng)絡(luò)行為。
大多數(shù)傳統(tǒng)的機(jī)器學(xué)習(xí)惡意軟件分類和檢測方法都依賴于手工制作的特征。這些特征是根據(jù)具有領(lǐng)域知識的專家選擇的。特征工程可能是一個非常耗時的過程,手工制作的特征可能無法很好地推廣到新型惡意軟件。在本文中,McAfee的研究人員簡要介紹了如何將 CNN 應(yīng)用于原始字節(jié)以在現(xiàn)實世界數(shù)據(jù)中進(jìn)行惡意軟件檢測和分類。
CNN 上的原始字節(jié)
應(yīng)用深度學(xué)習(xí)的動機(jī)是在原始字節(jié)中識別新的模式。這項工作的新穎之處在于三個方面。首先,沒有特定領(lǐng)域的特征提取和預(yù)處理。其次,這是一種端到端的深度學(xué)習(xí)方法。它還可以執(zhí)行端到端分類。它還可以作為特征提取器進(jìn)行特征增強。最后,可解釋的人工智能(XAI)提供了對CNN決策的深入了解,并幫助人類識別不同惡意軟件家族的有趣模式。如圖1所示,輸入只有原始字節(jié)和標(biāo)簽。CNN通過表示學(xué)習(xí)來自動學(xué)習(xí)特征并對惡意軟件進(jìn)行分類。
實驗結(jié)果
為了進(jìn)行惡意軟件檢測實驗,研究人員首先收集了 833000 個不同的二進(jìn)制樣本(污染 和 干凈的),跨越多個家族,編譯器和不同的“首次出現(xiàn)”時間周期。盡管他們確實使用了不同的包裝程序和混淆程序,但仍有大量來自普通家族的樣本。檢測時,研究人員會在進(jìn)行完整性檢查以刪除損壞的、過大或過小的樣本。在滿足完整性檢查標(biāo)準(zhǔn)的樣本中,研究人員從這些樣本中提取原始字節(jié),并利用它們進(jìn)行多個實驗。數(shù)據(jù)以80% / 20%的比例隨機(jī)分成訓(xùn)練集和測試集。研究人員利用這個數(shù)據(jù)集來進(jìn)行三個實驗。
在研究人員的第一個實驗中,來自833000個樣本的原始字節(jié)被返回給CNN,在receiver operating curve (ROC)下面積的性能精度為0.9953。
初始運行的一個觀察結(jié)果是,在從83.3萬個獨特樣本中提取原始字節(jié)后,研究人員確實發(fā)現(xiàn)了重復(fù)的原始字節(jié)條目。這主要是由于惡意軟件家族利用哈希分解作為一種多態(tài)性的方法。因此,在研究人員的第二個實驗中,研究人員對提取的原始字節(jié)項進(jìn)行了重復(fù)數(shù)據(jù)刪除。這將原始字節(jié)輸入向量計數(shù)減少到262000個樣本,ROC下的試驗面積為0.9920。
在第三個實驗中,研究人員嘗試了多家族惡意軟件分類。研究人員從原始集合中抽取了13萬份樣本,并標(biāo)記了11個類別,第0個類別被歸類為Clean,其中1-9個是惡意軟件家族,第10個類別被歸類為Others。同樣,這11個桶包含了帶有不同包裝器和編譯器的樣本。研究人員對訓(xùn)練集和測試集進(jìn)行了另一次80 / 20%的隨機(jī)分割。本實驗的測試精度為0.9700。一臺GPU的培訓(xùn)和測試時間為26分鐘。
可視化解釋(Visual Explanation)
CNN訓(xùn)練前后使用T-SNE和PCA的可視化解釋
為了理解CNN的訓(xùn)練過程,研究人員對CNN的訓(xùn)練進(jìn)行了可視化分析。圖 2 顯示了 CNN 訓(xùn)練前后的 t-Distributed Stochastic Neighbor Embedding (t-SNE) 和主成分分析 (PCA)。研究人員可以看到,經(jīng)過訓(xùn)練,CNN能夠提取有用的表示來捕獲不同類型惡意軟件的特征,如圖所示在不同的聚類中,大多數(shù)類別都進(jìn)行了很好地分離,這讓研究人員相信該算法作為多類分類器是有用的。
然后研究人員執(zhí)行XAI來理解CNN的決定。下圖顯示了一個 Fareit 樣本和一個 Emotet 樣本的 XAI 熱圖。顏色越亮,對神經(jīng)網(wǎng)絡(luò)中的梯度激活做出貢獻(xiàn)的字節(jié)就越重要。因此,這些字節(jié)對 CNN 的決策很重要。研究人員有興趣了解對決策產(chǎn)生重大影響的字節(jié),并手動審查了一些樣本。
Fareit(左)和 Emotet(右)上的 XAI 熱圖
理解ML決策和XAI
對 CNN 預(yù)測的人工分析
為了驗證CNN是否能夠?qū)W習(xí)到新的模式,研究人員給CNN提供了一些之前從未見過的樣本,并請了一個人類專家來驗證CNN對一些隨機(jī)樣本的決定。人工分析驗證了 CNN 能夠正確識別許多惡意軟件家族。在某些情況下,它根據(jù)研究人員的內(nèi)部測試在前 15 名的防病毒供應(yīng)商之前準(zhǔn)確地識別了樣本。下圖顯示了屬于Nabucur家族的樣本子集,CNN正確地對其進(jìn)行了分類,盡管當(dāng)時沒有檢測到供應(yīng)商。同樣值得注意的是,研究人員的結(jié)果顯示,CNN目前能夠利用普通包裝器將惡意軟件樣本進(jìn)行分類。
示例編譯器的域分析
研究人員對相同的示例編譯器 VB 文件進(jìn)行了域分析。如上圖所示,CNN 能夠在其他供應(yīng)商之前識別出攻擊家族的兩個樣本。CNN 就兩個樣本與 MSMP/其他供應(yīng)商達(dá)成一致。在這個實驗中,CNN 錯誤地將一個樣本識別為 Clean。
研究人員請了一位人類專家檢查XAI熱圖,并驗證這些亮顏色的字節(jié)是否與惡意軟件家族分類有關(guān)。上圖顯示了屬于Sodinokibi家族的一個示例。XAI 標(biāo)識的字節(jié) (c3 8b 4d 08 03 d1 66 c1) 很有趣,因為字節(jié)序列屬于 Tea 解密算法的一部分。這表明這些字節(jié)與惡意軟件分類相關(guān),這證實了CNN可以學(xué)習(xí)并幫助識別人類或其他自動化可能忽略的有用模式,盡管這些實驗是初步的,但它們表明了 CNN 在識別未知的感興趣模式方面的有效性。
綜上所述,實驗結(jié)果和可視化解釋表明CNN可以自動學(xué)習(xí)PE原始字節(jié)表示,CNN原始字節(jié)模型可以執(zhí)行端到端惡意軟件分類。CNN 可以適用于特征增強的特征提取器。CNN 原始字節(jié)模型有可能先于其他供應(yīng)商識別威脅系列并識別新威脅。這些初步結(jié)果表明,CNN 可以成為幫助自動化和人類研究人員進(jìn)行分析和分類的非常有用的工具。