【摘 要】 本文提出了一種基于AlexNet卷積神經網絡的檢測方法。首先,對APT攻擊惡意代碼二進制樣本進行解壓縮、反編譯等數據預處理操作,并在沙箱內運行APT攻擊惡意代碼樣本,將獲取的流量數據轉化成灰度圖像;然后,對預處理的圖像進行特征提取和家族聚類;最后,選取8個家族的APT攻擊惡意代碼樣本數據來訓練和測試AlexNet卷積神經網絡模型。實驗結果表明,該方法對APT攻擊惡意代碼及其變體檢測的平均準確率可達98.84%。
【關鍵詞】APT攻擊 惡意代碼 灰度圖像 AlexNet網絡
1 引言
與傳統網絡攻擊不同的是,APT攻擊組織通常受雇于國家或政府,攻擊行為具有國家意志,擁有最先進的網絡攻擊工具、相當成熟的攻擊方案,能夠演變出層出不窮的攻擊變體,使得現有網絡安全防御措施在APT攻擊面前形同虛設。為應對這一緊迫的網絡空間安全威脅,針對APT攻擊的防護技術研究也蓬勃發展。本文首先介紹了APT攻擊的相關知識,分析了研究現狀,之后提出了一種基于AlexNet卷積神經網絡的APT攻擊惡意代碼及其變體的檢測技術,最后通過實驗驗證了技術的可行性和準確性,可為現階段APT攻擊檢測工作提供參考。
2 APT攻擊研究技術
縱觀國內外APT攻擊防護領域,主要采取的方式是針對APT攻擊中所用的惡意代碼進行檢測。APT攻擊惡意代碼的檢測方式主要分為動態檢測和靜態檢測兩類。
在動態檢測中,主要通過沙箱收集APT攻擊惡意代碼的系統調用、操作,檢測惡意軟件的異常情況。Rieck等使用在沙箱中運行惡意樣本,監控了其網絡行為,通過機器學習分析APT攻擊網絡行為信息,實現對惡意代碼的檢測;Shukla等通過在應用程序和內核層創建沙箱,監視和控制應用程序的行為,同樣利用了機器學習的方法實現檢測。在虛擬機和沙箱中進行的虛擬檢測存在的缺陷使大部分APT攻擊惡意代碼可通過加殼、混淆等技術躲避安全人員的虛擬執行,從而降低檢測準確性。
在靜態檢測中,安全人員主要通過提取和分析APT攻擊惡意代碼,匹配惡意代碼庫的方式檢測和分類攻擊行為。Saxe等通過統計APT攻擊惡意代碼二進制文件中惡意軟件中可打印的字符、字節數值的熵值、調用的函數表等內容,并將統計結果作為數據集訓練深度神經網絡獲得分類模型,最終實現分類;Zhang等將二進制可執行文件分解成操作碼序列并作為特征向量,以此訓練神經網絡分類模型。靜態檢測主要受到APT攻擊樣本集的限制,若出現新的APT攻擊惡意代碼變體,靜態檢測的準確性將大打折扣。
隨著APT攻擊惡意代碼威脅從個人計算機擴散至工業控制系統,APT攻擊惡意代碼領域出現了大量已有惡意代碼的變體,能夠繞過傳統的基于代碼特征的檢測系統。因此,對APT攻擊惡意代碼變體的檢測變得至關重要。本文通過運用動態和靜態檢測技術,結合代碼可視化和深度學習技術,檢測APT攻擊滲透期所用的惡意代碼及其變體,切斷APT攻擊鏈條,從而實現對APT攻擊的防御。
3 基于AlexNet卷積神經網絡的APT攻擊惡意代碼及其變體檢測
3.1 方案設計
方案設計主要包括4個步驟,圖1展示了方案整體的流程。
3.1.1 APT攻擊惡意代碼解壓縮、反編譯
在虛擬執行之前,需要對原始數據進行處理。為了對抗在動態沙箱上采取的虛擬執行分析檢測,許多APT攻擊惡意代碼都通過代碼混淆、壓縮、變形、加殼等操作,增加了虛擬執行的時間成本和代碼可變性。為克服上述不足,本文結合了靜態和動態的解包技術處理原始的數據集。首先通過使用查殼工具PEID,檢查并解包原始數據。PEID是采用匹配數據簽名集的方式識別代碼的加殼行為,采用已知的解包機制提取二進制文件中隱藏的代碼,通過該技術可以偵測并解包出大部分的加殼行為?紤]到PEID可能未及時更新一些新的加殼打包技術,本文結合使用了動態解包工具PolyUnpack,其克服了靜態查殼工具的局限性,進一步實現對APT攻擊惡意代碼的解包,并采用了反編譯器W32asm對APT攻擊二進制代碼實現了反編譯。解包流程圖如圖2所示。
3.1.2 虛擬執行獲得灰度圖像
在經過解壓縮、反編譯等處理之后,在帶有抗逃逸技術的動態沙箱中運行二進制代碼,排除HTTP等正常協議,過濾出帶有SSL等數據傳輸協議和未知可疑協議的流量會話數據。通過B2M、T2G等映射算法將APT攻擊惡意代碼流量會話數據映射為灰度圖,實現APT攻擊惡意代碼可視化,圖3是將APT攻擊惡意代碼樣本及其變體映射成的灰度圖。為了使灰度圖更容易識別和分類,本文采用了形態學中膨脹(dilation)和腐蝕(erosion)兩種基本的形態學運算,對灰度圖像進行圖像增強處理,保留有用信息的同時清除噪聲干擾,增強灰度圖的對比度。圖4是灰度圖經過膨脹和腐蝕處理之后的對比。
3.1.3 灰度圖特征提取,實現家族聚類
圖像增強之后的灰度圖像數據維度較高,利用降維算法(Locally Linear Embedding,LLE)對圖像進行降維。通過Canopy-K-means聚類算法實現對灰度圖像的特征提取及聚類,聚類結果如圖5所示。通過微軟的MSE殺毒軟件實現灰度圖的家族標注,本文的數據集通過MSE標記為8個APT攻擊惡意代碼家族,如表1所示的VBInject.WX、VBInject.gen!JD、Beebone.DN等。通過家族聚類,可以將檢測到的未知APT攻擊惡意代碼進行同源性歸類,提高代碼的分析效率,如圖6所示。
3.1.4 APT攻擊惡意代碼變體識別
在將實驗數據用于深度學習模型訓練之前,本文先將數據進行了特征提取和聚類,并進行了APT攻擊惡意代碼家族的標注。將前文所獲得的實驗數據集分為訓練和測試數據集,比例控制在8:2。利用訓練數據集訓練預先設好的基于AlexNet卷積神經網絡的模型,通過參數調節,訓練獲得理想模型,再用測試數據集測試所獲模型,以取得最優模型,對APT攻擊惡意代碼及其變體進行檢測。
3.2 神經網絡模型構建
本文所構建的神經網絡是基于AlexNet模型的卷積神經網絡。AlexNet模型基于LeNet網絡模型,該模型首次將線性整流函數(ReLU)用作卷積神經網絡的激活函數;并采用局部響應歸一化(LRN)對ReLU得到的結果進行歸一化處理,如公式(1)所示;引入了數據增強技術,擴充了有限的數據;并通過引入Dropout,確保結果不會過擬合;且AlexNet模型使用多圖形處理器(GPU)進行訓練,具有較高的訓練速度。網絡由5層卷積層、3層全連接層構成,激活單元采用ReLU激活函數,為防止網絡過擬合,在全連接層后連接Dropout層。圖7和圖8分別為卷積塊網絡結構和全連接塊網絡結構。
4 實驗及結果分析
4.1 實驗設置
4.1.1 環境設置
本文所采用的設備信息如下:Intel(R) Core(TM) i7-10875H CPU @ 2.3GHz;32GB內存;顯卡為NVIDIA GeForce RTX2070,8G顯存。采用GPU計算,使用的CUDA版本為11.2。本文使用基于Python的Tensorflow框架搭建模型。
4.1.2 數據集
本文所采用的實驗數據來源為VirusShare網站開源APT攻擊二進制惡意代碼樣本集合,包含VBInject.WX、VBInject.gen!JD、Beebone.DN等8個家族APT攻擊惡意代碼。APT惡意代碼家族列表及其變體樣本灰度圖數量如表1所示。
為了避免過擬合,本文將所獲得的APT攻擊惡意代碼及其變體樣本經過處理后,映射成灰度圖像,并對灰度圖像進行數據增強操作,增大訓練數據量,提高模型的泛化能力和魯棒性。圖9為APT攻擊惡意代碼樣本的灰度圖像經過數據增強之后的前后對比。
4.2 實驗評價指標
APT攻擊惡意代碼及其變體識別屬于多分類問題,在評價該模型時,通常將總的評價任務拆分為多個二分類問題。通過將實驗結果繪制成混淆矩陣,獲得模型的準確度;并通過損失函數曲線來評價模型的預測值與真實值之間的誤差,同時利用準確率曲線直觀的展現模型預測的準確性。在驗證階段,本文采用了K-fold交叉驗證的方式,K值選定為10。實驗中所用的評價指標包括準確率(Accuracy)、精確率(Precision)、召回率(Recall),如公式(2)—(4)所示。
4.3 實驗結果分析
從實驗中所繪制的準確度和損失函數圖可以清晰地發現,隨著訓練輪次的推進,損失函數逐漸下降、準確率逐漸提高,從圖10中可以發現,在第10輪之前損失函數值變化迅速,模型收斂速度較快,在10輪之后損失值趨向于穩定,并接近于0;圖11展示的是準確率變化趨勢圖,可從圖12中發現,在20輪之后,準確率值趨向于穩定,在該實驗數據集上平均準確率可達到98.84%,圖13展示了檢測模型的混淆矩陣,可以發現大部分樣本都能夠被成功預測,以上都表明了本文基于深度學習的APT攻擊惡意代碼及其變體檢測模型的檢測效果較好。
4.4 對比實驗結果分析
為了進一步驗證本文所提出模型的準確率以及泛化能力,本文選取了APT攻擊惡意代碼分類中常用的全連接神經網絡、K近鄰算法(KNN)與本文所提的基于AlexNet模型的卷積神經網絡模型進行了檢測實驗和對比。為了使對比實驗具有參考價值,對比實驗所使用的數據集是來自VirusShare網站所公開的同一份APT攻擊二進制惡意代碼樣本集合。模型的性能評價指標包括準確率、精確率、召回率和F1-score(F1值),模型對比實驗的結果如圖14和表2所示。
從實驗結果中可以看出,選取的分類算法對本文的數據集進行分類的效果都比較好,在數據集較大的情況下都能達到九成以上的準確率,說明本文數據特征提取的方法具有可行性。且從表2中可以發現,本文所提的基于AlexNet模型的卷積神經網絡在準確率、召回率、F1值和精確率方面均優于多層感知器(MLP)、KNN2種神經網絡模型,說明本文所提算法在APT攻擊惡意代碼的分類上具有較好效果。
5 結語
本文提出了一種基于深度學習的APT攻擊惡意代碼及其變體的檢測技術,首先對樣本進行解壓縮、反編譯等數據預處理,然后在沙箱中執行APT攻擊惡意代碼,將所獲得的帶有行為信息的流量會話數據映射為灰度圖像,并利用圖像增強和數據增強技術增強灰度圖的特征,再通過特征提取實現APT攻擊惡意代碼家族聚類,利用實驗數據訓練預設的AlexNet卷積神經網絡模型,獲得最優模型。最終對比實驗,驗證了本文所提出的模型在APT攻擊惡意代碼及其變體檢測問題上可實現98.84%的準確率,精確率和F1值可達到98.78%和97.98%,在APT攻擊檢測領域具有一定的參考意義。
(原載于《保密科學技術》雜志2022年6月刊)