深度學習如何廣泛用于惡意軟件檢測和分類
人工智能 (AI) 不斷發(fā)展,并在過去十年中取得了巨大進步。深度學習(DL, Deep Learning)是機器學習(ML, Machine Learning)領域中一個新的研究方向,深度學習是學習樣本數據的內在規(guī)律和表示層次,這些學習過程中獲得的信息對諸如文字,圖像和聲音等數據的解釋有很大的幫助。它的最終目標是讓機器能夠像人一樣具有分析學習能力,能夠識別文字、圖像和聲音等數據。 深度學習是一個復雜的機器學習算法,在語音和圖像識別方面取得的效果,遠遠超過先前相關技術。深度學習在搜索技術,數據挖掘,機器學習,機器翻譯,自然語言處理,多媒體學習,語音,推薦和個性化技術,以及其他相關領域都取得了很多成果。深度學習使機器模仿視聽和思考等人類的活動,解決了很多復雜的模式識別難題,使得人工智能相關技術取得了很大進步。目前深度學習已經可以被應用于圖像分割、預測任何基于氨基酸序列的蛋白質的三維結構、機器翻譯、語音識別。近年來,深度學習已被應用于惡意軟件分析。不同類型的深度學習算法,如卷積神經網絡 (CNN)、循環(huán)神經網絡和前饋網絡,已被應用于使用字節(jié)序列、灰度圖像、結構熵、API 的惡意軟件分析中的各種用例調用順序、HTTP 流量和網絡行為。
大多數傳統(tǒng)的機器學習惡意軟件分類和檢測方法都依賴于手工制作的特征。這些特征是根據具有領域知識的專家選擇的。特征工程可能是一個非常耗時的過程,手工制作的特征可能無法很好地推廣到新型惡意軟件。在本文中,McAfee的研究人員簡要介紹了如何將 CNN 應用于原始字節(jié)以在現實世界數據中進行惡意軟件檢測和分類。
CNN 上的原始字節(jié)

應用深度學習的動機是在原始字節(jié)中識別新的模式。這項工作的新穎之處在于三個方面。首先,沒有特定領域的特征提取和預處理。其次,這是一種端到端的深度學習方法。它還可以執(zhí)行端到端分類。它還可以作為特征提取器進行特征增強。最后,可解釋的人工智能(XAI)提供了對CNN決策的深入了解,并幫助人類識別不同惡意軟件家族的有趣模式。如圖1所示,輸入只有原始字節(jié)和標簽。CNN通過表示學習來自動學習特征并對惡意軟件進行分類。
實驗結果
為了進行惡意軟件檢測實驗,研究人員首先收集了 833000 個不同的二進制樣本(污染 和 干凈的),跨越多個家族,編譯器和不同的“首次出現”時間周期。盡管他們確實使用了不同的包裝程序和混淆程序,但仍有大量來自普通家族的樣本。檢測時,研究人員會在進行完整性檢查以刪除損壞的、過大或過小的樣本。在滿足完整性檢查標準的樣本中,研究人員從這些樣本中提取原始字節(jié),并利用它們進行多個實驗。數據以80% / 20%的比例隨機分成訓練集和測試集。研究人員利用這個數據集來進行三個實驗。
在研究人員的第一個實驗中,來自833000個樣本的原始字節(jié)被返回給CNN,在receiver operating curve (ROC)下面積的性能精度為0.9953。
初始運行的一個觀察結果是,在從83.3萬個獨特樣本中提取原始字節(jié)后,研究人員確實發(fā)現了重復的原始字節(jié)條目。這主要是由于惡意軟件家族利用哈希分解作為一種多態(tài)性的方法。因此,在研究人員的第二個實驗中,研究人員對提取的原始字節(jié)項進行了重復數據刪除。這將原始字節(jié)輸入向量計數減少到262000個樣本,ROC下的試驗面積為0.9920。
在第三個實驗中,研究人員嘗試了多家族惡意軟件分類。研究人員從原始集合中抽取了13萬份樣本,并標記了11個類別,第0個類別被歸類為Clean,其中1-9個是惡意軟件家族,第10個類別被歸類為Others。同樣,這11個桶包含了帶有不同包裝器和編譯器的樣本。研究人員對訓練集和測試集進行了另一次80 / 20%的隨機分割。本實驗的測試精度為0.9700。一臺GPU的培訓和測試時間為26分鐘。
可視化解釋(Visual Explanation)

CNN訓練前后使用T-SNE和PCA的可視化解釋
為了理解CNN的訓練過程,研究人員對CNN的訓練進行了可視化分析。圖 2 顯示了 CNN 訓練前后的 t-Distributed Stochastic Neighbor Embedding (t-SNE) 和主成分分析 (PCA)。研究人員可以看到,經過訓練,CNN能夠提取有用的表示來捕獲不同類型惡意軟件的特征,如圖所示在不同的聚類中,大多數類別都進行了很好地分離,這讓研究人員相信該算法作為多類分類器是有用的。
然后研究人員執(zhí)行XAI來理解CNN的決定。下圖顯示了一個 Fareit 樣本和一個 Emotet 樣本的 XAI 熱圖。顏色越亮,對神經網絡中的梯度激活做出貢獻的字節(jié)就越重要。因此,這些字節(jié)對 CNN 的決策很重要。研究人員有興趣了解對決策產生重大影響的字節(jié),并手動審查了一些樣本。

Fareit(左)和 Emotet(右)上的 XAI 熱圖
理解ML決策和XAI

對 CNN 預測的人工分析
為了驗證CNN是否能夠學習到新的模式,研究人員給CNN提供了一些之前從未見過的樣本,并請了一個人類專家來驗證CNN對一些隨機樣本的決定。人工分析驗證了 CNN 能夠正確識別許多惡意軟件家族。在某些情況下,它根據研究人員的內部測試在前 15 名的防病毒供應商之前準確地識別了樣本。下圖顯示了屬于Nabucur家族的樣本子集,CNN正確地對其進行了分類,盡管當時沒有檢測到供應商。同樣值得注意的是,研究人員的結果顯示,CNN目前能夠利用普通包裝器將惡意軟件樣本進行分類。

示例編譯器的域分析
研究人員對相同的示例編譯器 VB 文件進行了域分析。如上圖所示,CNN 能夠在其他供應商之前識別出攻擊家族的兩個樣本。 CNN 就兩個樣本與 MSMP/其他供應商達成一致。在這個實驗中,CNN 錯誤地將一個樣本識別為 Clean。

對 XAI 熱圖的人工分析,以上就是從Hiew工具中分解出的部分解密TEA算法

以上是一個樣本的XAI熱圖
研究人員請了一位人類專家檢查XAI熱圖,并驗證這些亮顏色的字節(jié)是否與惡意軟件家族分類有關。上圖顯示了屬于Sodinokibi家族的一個示例。 XAI 標識的字節(jié) (c3 8b 4d 08 03 d1 66 c1) 很有趣,因為字節(jié)序列屬于 Tea 解密算法的一部分。這表明這些字節(jié)與惡意軟件分類相關,這證實了CNN可以學習并幫助識別人類或其他自動化可能忽略的有用模式,盡管這些實驗是初步的,但它們表明了 CNN 在識別未知的感興趣模式方面的有效性。
綜上所述,實驗結果和可視化解釋表明CNN可以自動學習PE原始字節(jié)表示,CNN原始字節(jié)模型可以執(zhí)行端到端惡意軟件分類。CNN 可以是用于特征增強的特征提取器。 CNN 原始字節(jié)模型有可能先于其他供應商識別威脅系列并識別新威脅。這些初步結果表明,CNN 可以成為幫助自動化和人類研究人員進行分析和分類的非常有用的工具。
本文翻譯自: https://www.mcafee.com/blogs/other-blogs/mcafee-labs/the-rise-of-deep-learning-for-detection-and-classification-of-malware如若轉載,請注明原文地址。