









摘要:為保證惡意代碼變種檢測模型的時效性,傳統基于機器(深度)學習的檢測方法通過集成歷史數據和新增數據進行重訓練更新模型存在訓練效率低的問題。筆者提出一種基于神經網絡平滑聚合機制的惡意代碼增量學習方法,通過設計神經網絡模型平滑聚合函數使模型平滑演進,通過添加訓練規模因子,避免增量模型因訓練規模較小而影響聚合模型的準確性。實驗結果表明,對比重訓練方法,增量學習方法在提升訓練效率的同時,幾乎不降低模型的準確性。
關鍵詞:惡意代碼變種檢測;增量學習;神經網絡;模型聚合
中圖分類號:TP391 " " " " "文獻標志碼:A " " "文章編號:1000-582X(2024)06-086-08
Malware incremental training and detection method based on neural network smooth aggregation mechanism
GUO Zhimin, CHEN Cen, LI Nuannuan, CAI Junfei, ZHANG Zheng
(State Grid Henan Electric Power Research Institute,Zhengzhou 450000, P. R. China)
Abstract: To ensure the timeliness of malware variant detection models, traditional machine (deep) learning-based detection methods integrate historical and incremental data and retrain to update detection models. However, this approach often suffers from low training efficiency. Therefore, this paper proposes an incremental learning method based on a neural network smooth aggregation mechanism for detecting malware variants, facilitating the smooth evolution of detection models. The method introduces a training scale factor to prevent the decrement of accuracy in the aggregated incremental model due to small training scales. Experimental results show that the proposed incremental learning method can improve training efficiency while maintaining the accuracy of the detection model compared to the re-training method.
Keywords: malware variants detection; incremental learning; neural network; model aggregation
當今網絡安全形勢日益嚴峻,隨著惡意軟件及其變種的泛濫,未知變種已成為目前主要網絡安全威脅之一。傳統基于Hash特征碼匹配的惡意代碼檢測方法受限于已知惡意軟件Hash特征庫的規模,難以應對海量未知變種威脅;另一方面,傳統基于規則匹配的惡意代碼檢測方法在應對海量未知變種時,需要依賴專業知識且耗費大量人力不斷提取覆蓋變種特征的新型規則,故同樣不適用于海量惡意代碼未知變種檢測。不少學者提出基于機器學習的惡意代碼未知變種檢測方法[1-12]?;跈C器學習的惡意代碼未知變種檢測方法通過自適應提取特征并構建模型,無須人工提取規則,極大提升惡意代碼未知變種檢測效率,且擴大惡意代碼未知變種檢測的范圍,備受學術界和工業界關注。
然而,受限于有限被正確標記的惡意/良性代碼樣本,需要不斷采集和標注樣本數據,基于機器學習方法構建惡意代碼變種檢測模型的精度和召回率存在一定局限。隨著惡意代碼變種不斷演進,惡意代碼變種檢測模型存在概念漂移問題,即檢測模型存在一定時效性,為此,需要不斷新增數據樣本訓練更新檢測模型。但惡意代碼變種檢測模型的訓練方法耗費大量時間開銷[8],難以通過重訓練的方式快速更新檢測模型,使實時更新檢測模型成為新的技術挑戰。
針對上述問題,筆者提出一種基于神經網絡平滑聚合機制的惡意代碼增量訓練及檢測方法。通過設計神經網絡平滑聚合機制,提出神經網絡模型增量更新方法,結合已提取的惡意代碼特征,構建惡意代碼增量訓練模型,提升惡意代碼檢測模型訓練效率及檢測時效。本文的主要貢獻包括:1)提出一種基于神經網絡平滑聚合機制的惡意代碼增量訓練及檢測方法,通過構造操作碼二元組共生概率矩陣,設計神經網絡模型增量更新機制,并基于卷積神經網絡增量訓練惡意代碼檢測模型,提升惡意代碼檢測模型訓練效率及檢測時效;2)設計一種神經網絡平滑聚合機制和聚合函數,引入歷史模型偏重系數和訓練規模因子,實現神經網絡模型增量更新;3)實驗結果表明:時間開銷方面,提出的惡意代碼增量訓練及檢測方法訓練速度相較于傳統重訓練方法提升約6倍,同時檢測時間開銷lt;0.001 s;準確率方面,對比若干機器學習檢測模型,本文方法的檢測精度和召回率均有一定提升。
1 國內外研究現狀
基于機器學習的惡意代碼變種檢測方法近幾年一直是學術界研究熱點,目前有不少學者提出基于機器(深度)學習方法,針對操作碼語義特征、API行為特征等惡意代碼變種檢測方法。文獻[1]采用卷積自編碼器對較長操作碼序列進行壓縮編碼,并采用動態遞歸神經網絡訓練模型和檢測。文獻[2]針對加密、混淆處理的惡意代碼變種,提取惡意代碼紋理圖像特征,采用區域卷積神經網絡對其進行識別。文獻[3]提取惡意代碼API、權限等特征,采用基于漢明距離的K近鄰算法計算未知樣本與已知樣本的相似度,判別未知樣本類別。文獻[4]采用決策樹算法對惡意代碼家族進行分類,并計算IP地址的加權風險值。文獻[5]提出一種混合深度學習框架檢測醫療物聯網環境中的惡意代碼。文獻[6]首先構造惡意代碼灰度圖像并提取灰度圖像特征,采用改進的卷積神經網絡訓練惡意代碼檢測模型。文獻[7]采用隱馬爾科夫鏈表征惡意代碼API調用行為,并采取馬爾科夫鏈匹配模型辨別未知樣本與已知惡意樣本的匹配程度。文獻[8]提取惡意代碼操作碼的n-gram特征和API調用的頻譜特征,采用卷積神經網絡和BP神經網絡訓練構建惡意代碼特征遷移集成學習模型。其他類似的工作提取不同的惡意代碼特征或采用不同機器學習方法構造惡意代碼變種檢測模型[9?14]。
盡管上述研究在提升檢測精度和召回率方面取得顯著進展,但應用于工業界實際場景仍存在一些問題,例如,如何提升樣本標注效率和正確性,不斷新增樣本情況下模型如何高效更新檢測模型等問題,特別是關于檢測模型增量學習方面的研究較少。因此,文本提出一種基于神經網絡平滑聚合的惡意代碼變種增量訓練和檢測方法,提升檢測模型的訓練更新效率確保檢測模型的時效性。
2 基于神經網絡平滑聚合的惡意代碼增量訓練及檢測方法
2.1 問題描述
工業界不斷從互聯網、物聯網、移動網中采集大量惡意/良性代碼樣本,但樣本標注耗時耗力,受限于被正確標注的樣本數量,使基于機器學習方法構建的惡意代碼變種檢測模型的精度和召回率存在一定限制,需要源源不斷標注樣本以擴充訓練集規模,不斷更新檢測模型。不僅如此,隨著惡意代碼變種不斷演進,惡意代碼變種檢測模型存在一定時效性,需要利用最新的樣本不斷更新檢測模型,避免概念漂移問題。上述問題的解決依賴于惡意代碼變種檢測模型實時更新,然而,基于機器學習的檢測模型訓練方法耗費大量的時間開銷,難以通過重訓練的方式快速更新檢測模型。研究采取增量訓練方式以快速更新檢測模型,但增量訓練仍然存在準確性下降或時效性不足等挑戰。
2.2 總體方案
筆者提出一種基于神經網絡平滑聚合機制的惡意代碼增量訓練及檢測方法。采用Bi-gram模型提取惡意/良性代碼特征,采用卷積神經網絡作為訓練檢測模型的分類器,通過設計神經網絡平滑聚合機制,提出神經網絡模型增量更新方法,并基于該方法結合已提取的惡意代碼特征,構建惡意代碼增量訓練模型,利用持續更新的檢測模型對未知惡意軟件變種進行檢測,以提升惡意代碼檢測模型訓練效率及檢測時效性,總體方案如圖1所示。
2.3 特征提取
Bi-gram模型是目前提取惡意代碼特征的主流方法之一[8,13]。研究采用Bi-gram模型提取惡意/良性軟件操作碼二元組特征,以表示樣本中兩兩操作之間的局部語義關系。首先,采用IDA Pro提取惡意/良性軟件的操作碼序列,令OP={op_1,op_2,...,op_n}為操作碼序列,其中,op_i表示序列中第個i操作碼。然后,提取兩兩相鄰操作碼構成操作碼二元組特征Bi-gram ={lt;op_1,op_2gt;,lt;op_2,op_3gt;,...,lt;op_(n-1),op_ngt;},并計算操作碼二元組的共生概率,以表示惡意代碼局部語義關系。操作碼二元組及其共生概率矩陣作為輸入卷積神經網絡的特征向量,用于訓練檢測模型。
2.4 基于卷積神經網絡的檢測模型構建
現有惡意代碼變種智能檢測技術主要通過采用的機器(深度)學習方法包括K近鄰、支持向量機、卷積神經網絡訓練大量已正確標注的惡意代碼變種樣本。對于惡意代碼Bi-gram模型表征,卷積神經網絡因能提取操作碼之間的關聯特征,可較好地表征代碼局部語義信息。因此,基于卷積神經網絡設計惡意代碼變種檢測模型,卷積神經網絡包含5層,如圖2所示:輸入層、卷積層、池化層、全連接層、輸出層。輸入層輸入操作碼二元組共生概率矩陣;卷積層采用尺寸為3*3、5*5的卷積核對共生概率矩陣進行內積運算提取卷積層特征圖;池化層采用2*2的平均池化核對卷積層特征圖進行壓縮,形成池化層特征圖。全連接層采用ReLU函數連接池化層特征圖,ReLU函數如公式(1)所示,并采用Softmax函數全連接輸出層,Softmax函數如公式(2)所示,其中:x表示上一層層輸入的特征向量;w表示上一層與當前層的連接權重向量,輸出層輸出惡意/良性類別的置信度。
ReLU(w?x)=max(0,w?x) , (1)
Softmax(w?x)=e^(w?x)/(∑e^(w?x) ) 。 (2)
研究采用梯度下降法訓練惡意代碼檢測模型,根據卷積神經網絡模型計算的誤差反向傳播修正模型中的權值,損失函數采用交叉熵如公式(3)所示,其中:Loss表示損失函數;y表示樣本實際標簽(0表示良性代碼/1表示惡意代碼),根據公式(4)迭代更新卷積神經網絡權值參數
Loss(w?x)=-(y?Softmax(w?x)+(1-y)?(1-Softmax(w?x))) , (3)
Δw=α??Loss/(?Softmax(w?x))?(?Softmax(w?x))/?w , (4)
其中:Δw表示權重更新;α=0.1表示步長。
2.5 基于神經網絡模型平滑聚合的增量訓練
為保證惡意代碼變種檢測模型的時效性,基于機器(深度)學習的檢測方法通過集成歷史數據和新增數據進行重訓練以更新模型。由于上述基于卷積神經網絡的惡意代碼檢測模型訓練過程耗費大量時間開銷,難以通過重訓練的方式快速更新檢測模型,因此,基于神經網絡模型平滑聚合的增量訓練方法提升惡意代碼檢測模型更新效率,通過設計神經網絡模型平滑聚合函數使模型平滑演進,通過添加訓練規模因子,避免增量模型因訓練規模較小而嚴重影響聚合模型的準確性。該方法對增量數據基于Bi-gram模型提取操作碼二元組矩陣,利用上述卷積神經網絡訓練增量檢測模型。因為增量檢測模型與歷史檢測模型同構,可以將增量檢測模型的權重參數與歷史檢測模型權重參數聚合,形成新的檢測模型,再將新檢測模型的權重參數更新至歷史檢測模型中,兼顧歷史模型準確性和增量模型時效性的優勢。
盡管采取增量訓練方式快速更新檢測模型,但保障增量訓練的準確性和時效性仍是需要解決的關鍵問題。隨著數據不斷新增,增量模型與歷史模型不斷聚合形成新的歷史模型,因綜合了更多數據訓練模型使準確性更有保障,增量模型因訓練最新數據確保模型的時效性。但受限于增量訓練樣本較少(過多則影響檢測模型更新速度),增量模型的準確性相對歷史模型較差,如果直接聚合增量模型和歷史模型,則會造成聚合后的模型準確性降低。
因此,基于神經網絡模型平滑聚合的增量訓練方法設計神經網絡模型平滑聚合函數,如公式(5)所示,其中:w_aggregation表示聚合后的檢測模型權重參數;w_i表示歷史前i次的增量訓練模型的權重參數(如利用最新增量數據訓練出來的模型索引為1,則i=1),利用增量數據訓練得出卷積神經網絡所有層的連接權重向量。通過不斷衰減更早版本歷史模型的偏重,使模型平滑演進,如歷史前m次訓練的增量模型偏重系數為0.5^m。同時,通過添加訓練規模因子c_i,避免增量模型因訓練規模較小而影響聚合模型的準確性,如公式(6)所示
w_aggregation=∑_(i=1)^n?〖0.5^(i-1)?c_i?w_i 〗 , (5)
c_i=N_i/N_1 ", (6)
其中:N_i表示當前增量數據樣本數量;N_1表示第1次(歷史前N次)增量訓練的數據樣本數量。最后,利用聚合后的權重參數更新檢測模型,并對未知樣本進行檢測。
2.6 惡意代碼變種檢測
當檢測未知代碼樣本時,首先提取未知樣本的Bi-gram模型特征向量,將其輸入至上述已訓練好的最近一次聚合更新的卷積神經網絡模型中。該檢測模型通過多次增量式更新提升檢測模型性能,通過提取代碼樣本的局部語義特征,并通過Softmax分類器進行檢測輸出置信度,對惡意/良性分類輸出的置信度大小進行判定,選擇置信度最大的分類作為判別結果(如果惡意類別的置信度gt;良性類別的置信度,即判定為惡意樣本,反之則判定為良性樣本)。
3 實驗分析
3.1 實驗環境
本文所有實驗(惡意代碼檢測增量訓練實驗,以及用于對比的重訓練實驗)均在相同計算機軟硬件環境和配置中進行,其中計算機CPU為Intel i5-3470 @ 3.20 GHz,內存容量為16.0 GB,操作系統為Ubuntu 16.04。
3.2 數據集和訓練方法
實驗所采用的惡意軟件數據集來源于VxHeaven、Kaggle,其中,VxHeaven從若干用戶計算機采集,包括17 000個惡意樣本,10 300個良性樣本。其中,80%的惡意/良性樣本用于模型訓練,20%的惡意/良性樣本用于測試。所有訓練樣本均勻分成8個增量數據訓練集,增量訓練實驗中,通過1次初始訓練和7次增量訓練;重訓練實驗中,整合全部歷史數據集和新增的增量數據集進行訓練,完成實驗結果測試。
3.3 驗證方法
所有實驗均采取K-折交驗證法,其中,K=5。評估指標包括訓練時間開銷、檢測時間開銷、準確率、精度和召回率,如公式(7)~(9)所示
準確率=(TP+TN)/(TP+TN+FP+FN) , (7)
精度=TP/(TP+FP) , (8)
召回率=TP/(TP+FN) , (9)
其中:TP表示樣本為惡意樣本且檢測正確;FP表示樣本為惡意樣本且檢測錯誤;TN表示樣本為良性樣本且檢測正確;FN表示樣本為良性樣本且檢測錯誤,精度表示模型判別惡意樣本結果中正確結果的比例,召回率表示惡意樣本中被模型正確檢測出來的比例。
3.4 性能評估
本文利用測試數據集評估惡意代碼檢測模型增量學習方法的效率和準確性,同時,對比重訓練方法的訓練時間開銷、精度和召回率,以驗證提出方法相比于傳統的重訓練方法在模型訓練速度方面具有顯著優勢,同時,盡可能不降低檢測精度和召回率,實驗最終結果如表1所示。
時間開銷結果表明:研究提出的惡意代碼檢測模型增量學習方法訓練時間開銷為6.4 h,檢測時間開銷lt;0.001 s。
對比重訓練方法,增量學習方法在訓練速度方面具有顯著優勢,加速比約為5.9倍,說明提出的方法能有利于提升惡意代碼變種檢測模型的更新效率。隨著樣本數量增加,增量訓練時間開銷基本保持水平。而重訓練方法由于數據不斷新增使得訓練集規模不斷增大,導致訓練時間開銷增加,如圖3所示。
準確性實驗結果表明:提出的惡意代碼檢測模型增量學習方法檢測精度=93.4 %、召回率=96.8 %。對比重訓練方法,增量訓練方法在新增數據訓練后的精度和召回率幾乎沒有降低,說明研究方法在檢測效率的同時保留了模型訓練的準確性。隨著增量訓練次數增加,檢測精度和召回率同時增加,說明增量訓練的模型隨著樣本增加準確性提升,如圖4所示。
3.5 性能對比分析
通過對比幾種常用的惡意軟件檢測方法的精度和召回率,進一步評估研究方法的準確性。對比方法均采用和研究相同的操作碼二元組共生概率特征,分別采用不同的機器學習方法,包括支持向量機、BP神經網絡和K近鄰。實驗結果表明,研究方法在精度和召回率指標上具有明顯優勢,如表2所示。
3.6 收斂性分析
通過對比增量學習模型收斂過程中訓練集和測試集上檢測準確率分析模型的收斂性,如圖5所示,藍色實線表示訓練集的檢測準確率,紅色實線表示測試集的準確率,橫坐標表示收斂迭代次數,縱坐標表示準確率。實驗結果表明:1)隨著迭代次數增加,模型準確率不斷上升,且訓練集收斂至100%,說明模型收斂性良好;2)測試集上的準確率和訓練集上的準確率接近,且上升趨勢幾乎一致,說明模型并未出現過擬合現象。
s
3.7 訓練規模因子分析
研究添加訓練規模因子c_i,當增量訓練數據規模較小時,增量模型相對歷史模型權重較小,避免增量模型因訓練規模較?。ㄟ^擬合導致增量模型準確性下降)影響聚合模型的準確性。通過降低第8次增量訓練數據規模,測試增量模型聚合后的準確性,實驗結果如圖6所示。盡管增量訓練的數據規模降低,增量模型聚合后的準確性未受到明顯影響,反映增量訓練方法的穩健性。
4 結束語
筆者提出一種基于神經網絡模型平滑聚合機制的惡意代碼增量訓練及檢測方法,提升惡意代碼檢測模型的訓練性能,保障檢測模型的準確性。該方法是基于神經網絡模型平滑聚合的增量訓練方法,減少模型訓練時間開銷的同時保障模型時效性,盡可能不降低模型訓練的準確性。最后,對提出的惡意代碼檢測模型增量訓練方法進行實驗分析,結果表明,研究方法相比于機器學習重訓練方法在訓練速度方面具有明顯優勢,且幾乎不降低檢測的精度和召回率。
參考文獻
[1] "Jeon S, Moon J. Malware-detection method with a convolutional recurrent neural network using opcode sequences[J]. Information Sciences, 2020, 535: 1-15.
[2] "Zhao Y T, Cui W J, Geng S N, et al. A malware detection method of code texture visualization based on an improved faster RCNN combining transfer learning[J]. IEEE Access, 2020, 8: 166630-166641.
[3] "Taheri R, Ghahramani M, Javidan R, et al. Similarity-based android malware detection using Hamming distance of static binary features[J]. Future Generation Computer Systems, 2020, 105: 230-247.
[4] "Usman N, Usman S, Khan F, et al. Intelligent dynamic malware detection using machine learning in IP reputation for forensics data analytics[J]. Future Generation Computer Systems, 2021, 118: 124-141.
[5] "Khan S, Akhunzada A. A hybrid DL-driven intelligent SDN-enabled malware detection framework for Internet of Medical Things (IoMT)[J]. Computer Communications, 2021, 170: 209-216.
[6] "Bakour K, ünver H M. DeepVisDroid: android malware detection by hybridizing image-based features with deep learning techniques[J]. Neural Computing and Applications, 2021, 33(18): 11499-11516.
[7] "Suaboot J, Tari Z, Mahmood A, et al. Sub-curve HMM: a malware detection approach based on partial analysis of API call sequences[J]. Computers amp; Security, 2020, 92: 101773.
[8] "Zhang J X, Qin Z, Yin H, et al. A feature-hybrid malware variants detection using CNN based opcode embedding and BPNN based API embedding[J]. Computers and Security, 2019, 84(C): 376-392.
[9] "陳志鋒, 李清寶, 張平, 等. 基于數據特征的內核惡意軟件檢測[J]. 軟件學報, 2016, 27(12): 3172-3191.
Chen Z F, Li Q B, Zhang P, et al. Data characteristics-based kernel malware detection[J]. Journal of Software, 2016, 27(12): 3172-3191.(in Chinese)
[10] "楊歡, 張玉清, 胡予濮, 等. 基于多類特征的Android應用惡意行為檢測系統[J]. 計算機學報, 2014, 37(1): 15-27.
Yang H, Zhang Y Q, Hu Y P, et al. A malware behavior detection system of android applications based on multi-class features[J]. Chinese Journal of Computers, 2014, 37(1): 15-27.(in Chinese)
[11] "冀甜甜,方濱興,崔翔,等. 深度學習賦能的惡意代碼攻防研究進展[J]. 計算機學報,2021,44(4): 669-695.
Ji T T, Fang B X, Cui X, et al. Research on deep learning-powered malware attack and defense techniques[J]. Chinese Journal of Computers, 2021, 44(4): 669-695.(in Chinese)
[12] "楊吉云, 陳鋼, 鄢然, 等. 一種基于系統行為序列特征的Android惡意代碼檢測方法[J]. 重慶大學學報, 2020, 43(9): 54-63.
Yang J Y, Chen G, Yan R, et al. An android malware detection method based on system behavior sequences[J]. Journal of Chongqing University, 2020, 43(9): 54-63.(in Chinese)
[13] "李苑, 王國胤, 李智星, 等. 基于序列注意力機制的卷積神經網絡異常檢測[J]. 鄭州大學學報(理學版), 2019, 51(2): 17-22.
Li Y, Wang G Y, Li Z X, et al. A sequential attention based convolutional neural network for anomaly detection[J]. Journal of Zhengzhou University (Natural Science Edition), 2019, 51(2): 17-22.(in Chinese)
[14] "Kudugunta S, Ferrara E. Deep neural networks for bot detection[J]. Information Sciences, 2018, 467: 312-322.
(編輯 "侯湘)
doi:10.11835/j.issn.1000.582X.2024.06.009
收稿日期:2022-05-12
基金項目:國家電網有限公司總部科技項目資助(5700-202024193A-0-0-00)。
Foundation:Supported by the Science and Technology Project of State Grid Corporation of China(5700-202024193A-0-0-00).
作者簡介:郭志民(1977—),男,教授級高級工程師,主要從事信息安全方向研究,(Tel)13838273251;(E-mail)zhimin.guo@163.com。