摘要:為保證惡意代碼變種檢測(cè)模型的時(shí)效性,傳統(tǒng)基于機(jī)器(深度)學(xué)習(xí)的檢測(cè)方法通過集成歷史數(shù)據(jù)和新增數(shù)據(jù)進(jìn)行重訓(xùn)練更新模型存在訓(xùn)練效率低的問題。筆者提出一種基于神經(jīng)網(wǎng)絡(luò)平滑聚合機(jī)制的惡意代碼增量學(xué)習(xí)方法,通過設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)模型平滑聚合函數(shù)使模型平滑演進(jìn),通過添加訓(xùn)練規(guī)模因子,避免增量模型因訓(xùn)練規(guī)模較小而影響聚合模型的準(zhǔn)確性。實(shí)驗(yàn)結(jié)果表明,對(duì)比重訓(xùn)練方法,增量學(xué)習(xí)方法在提升訓(xùn)練效率的同時(shí),幾乎不降低模型的準(zhǔn)確性。
關(guān)鍵詞:惡意代碼變種檢測(cè);增量學(xué)習(xí);神經(jīng)網(wǎng)絡(luò);模型聚合
中圖分類號(hào):TP391 " " " " "文獻(xiàn)標(biāo)志碼:A " " "文章編號(hào):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
當(dāng)今網(wǎng)絡(luò)安全形勢(shì)日益嚴(yán)峻,隨著惡意軟件及其變種的泛濫,未知變種已成為目前主要網(wǎng)絡(luò)安全威脅之一。傳統(tǒng)基于Hash特征碼匹配的惡意代碼檢測(cè)方法受限于已知惡意軟件Hash特征庫(kù)的規(guī)模,難以應(yīng)對(duì)海量未知變種威脅;另一方面,傳統(tǒng)基于規(guī)則匹配的惡意代碼檢測(cè)方法在應(yīng)對(duì)海量未知變種時(shí),需要依賴專業(yè)知識(shí)且耗費(fèi)大量人力不斷提取覆蓋變種特征的新型規(guī)則,故同樣不適用于海量惡意代碼未知變種檢測(cè)。不少學(xué)者提出基于機(jī)器學(xué)習(xí)的惡意代碼未知變種檢測(cè)方法[1-12]。基于機(jī)器學(xué)習(xí)的惡意代碼未知變種檢測(cè)方法通過自適應(yīng)提取特征并構(gòu)建模型,無須人工提取規(guī)則,極大提升惡意代碼未知變種檢測(cè)效率,且擴(kuò)大惡意代碼未知變種檢測(cè)的范圍,備受學(xué)術(shù)界和工業(yè)界關(guān)注。
然而,受限于有限被正確標(biāo)記的惡意/良性代碼樣本,需要不斷采集和標(biāo)注樣本數(shù)據(jù),基于機(jī)器學(xué)習(xí)方法構(gòu)建惡意代碼變種檢測(cè)模型的精度和召回率存在一定局限。隨著惡意代碼變種不斷演進(jìn),惡意代碼變種檢測(cè)模型存在概念漂移問題,即檢測(cè)模型存在一定時(shí)效性,為此,需要不斷新增數(shù)據(jù)樣本訓(xùn)練更新檢測(cè)模型。但惡意代碼變種檢測(cè)模型的訓(xùn)練方法耗費(fèi)大量時(shí)間開銷[8],難以通過重訓(xùn)練的方式快速更新檢測(cè)模型,使實(shí)時(shí)更新檢測(cè)模型成為新的技術(shù)挑戰(zhàn)。
針對(duì)上述問題,筆者提出一種基于神經(jīng)網(wǎng)絡(luò)平滑聚合機(jī)制的惡意代碼增量訓(xùn)練及檢測(cè)方法。通過設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)平滑聚合機(jī)制,提出神經(jīng)網(wǎng)絡(luò)模型增量更新方法,結(jié)合已提取的惡意代碼特征,構(gòu)建惡意代碼增量訓(xùn)練模型,提升惡意代碼檢測(cè)模型訓(xùn)練效率及檢測(cè)時(shí)效。本文的主要貢獻(xiàn)包括:1)提出一種基于神經(jīng)網(wǎng)絡(luò)平滑聚合機(jī)制的惡意代碼增量訓(xùn)練及檢測(cè)方法,通過構(gòu)造操作碼二元組共生概率矩陣,設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)模型增量更新機(jī)制,并基于卷積神經(jīng)網(wǎng)絡(luò)增量訓(xùn)練惡意代碼檢測(cè)模型,提升惡意代碼檢測(cè)模型訓(xùn)練效率及檢測(cè)時(shí)效;2)設(shè)計(jì)一種神經(jīng)網(wǎng)絡(luò)平滑聚合機(jī)制和聚合函數(shù),引入歷史模型偏重系數(shù)和訓(xùn)練規(guī)模因子,實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)模型增量更新;3)實(shí)驗(yàn)結(jié)果表明:時(shí)間開銷方面,提出的惡意代碼增量訓(xùn)練及檢測(cè)方法訓(xùn)練速度相較于傳統(tǒng)重訓(xùn)練方法提升約6倍,同時(shí)檢測(cè)時(shí)間開銷lt;0.001 s;準(zhǔn)確率方面,對(duì)比若干機(jī)器學(xué)習(xí)檢測(cè)模型,本文方法的檢測(cè)精度和召回率均有一定提升。
1 國(guó)內(nèi)外研究現(xiàn)狀
基于機(jī)器學(xué)習(xí)的惡意代碼變種檢測(cè)方法近幾年一直是學(xué)術(shù)界研究熱點(diǎn),目前有不少學(xué)者提出基于機(jī)器(深度)學(xué)習(xí)方法,針對(duì)操作碼語義特征、API行為特征等惡意代碼變種檢測(cè)方法。文獻(xiàn)[1]采用卷積自編碼器對(duì)較長(zhǎng)操作碼序列進(jìn)行壓縮編碼,并采用動(dòng)態(tài)遞歸神經(jīng)網(wǎng)絡(luò)訓(xùn)練模型和檢測(cè)。文獻(xiàn)[2]針對(duì)加密、混淆處理的惡意代碼變種,提取惡意代碼紋理圖像特征,采用區(qū)域卷積神經(jīng)網(wǎng)絡(luò)對(duì)其進(jìn)行識(shí)別。文獻(xiàn)[3]提取惡意代碼API、權(quán)限等特征,采用基于漢明距離的K近鄰算法計(jì)算未知樣本與已知樣本的相似度,判別未知樣本類別。文獻(xiàn)[4]采用決策樹算法對(duì)惡意代碼家族進(jìn)行分類,并計(jì)算IP地址的加權(quán)風(fēng)險(xiǎn)值。文獻(xiàn)[5]提出一種混合深度學(xué)習(xí)框架檢測(cè)醫(yī)療物聯(lián)網(wǎng)環(huán)境中的惡意代碼。文獻(xiàn)[6]首先構(gòu)造惡意代碼灰度圖像并提取灰度圖像特征,采用改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練惡意代碼檢測(cè)模型。文獻(xiàn)[7]采用隱馬爾科夫鏈表征惡意代碼API調(diào)用行為,并采取馬爾科夫鏈匹配模型辨別未知樣本與已知惡意樣本的匹配程度。文獻(xiàn)[8]提取惡意代碼操作碼的n-gram特征和API調(diào)用的頻譜特征,采用卷積神經(jīng)網(wǎng)絡(luò)和BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練構(gòu)建惡意代碼特征遷移集成學(xué)習(xí)模型。其他類似的工作提取不同的惡意代碼特征或采用不同機(jī)器學(xué)習(xí)方法構(gòu)造惡意代碼變種檢測(cè)模型[9?14]。
盡管上述研究在提升檢測(cè)精度和召回率方面取得顯著進(jìn)展,但應(yīng)用于工業(yè)界實(shí)際場(chǎng)景仍存在一些問題,例如,如何提升樣本標(biāo)注效率和正確性,不斷新增樣本情況下模型如何高效更新檢測(cè)模型等問題,特別是關(guān)于檢測(cè)模型增量學(xué)習(xí)方面的研究較少。因此,文本提出一種基于神經(jīng)網(wǎng)絡(luò)平滑聚合的惡意代碼變種增量訓(xùn)練和檢測(cè)方法,提升檢測(cè)模型的訓(xùn)練更新效率確保檢測(cè)模型的時(shí)效性。
2 基于神經(jīng)網(wǎng)絡(luò)平滑聚合的惡意代碼增量訓(xùn)練及檢測(cè)方法
2.1 問題描述
工業(yè)界不斷從互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、移動(dòng)網(wǎng)中采集大量惡意/良性代碼樣本,但樣本標(biāo)注耗時(shí)耗力,受限于被正確標(biāo)注的樣本數(shù)量,使基于機(jī)器學(xué)習(xí)方法構(gòu)建的惡意代碼變種檢測(cè)模型的精度和召回率存在一定限制,需要源源不斷標(biāo)注樣本以擴(kuò)充訓(xùn)練集規(guī)模,不斷更新檢測(cè)模型。不僅如此,隨著惡意代碼變種不斷演進(jìn),惡意代碼變種檢測(cè)模型存在一定時(shí)效性,需要利用最新的樣本不斷更新檢測(cè)模型,避免概念漂移問題。上述問題的解決依賴于惡意代碼變種檢測(cè)模型實(shí)時(shí)更新,然而,基于機(jī)器學(xué)習(xí)的檢測(cè)模型訓(xùn)練方法耗費(fèi)大量的時(shí)間開銷,難以通過重訓(xùn)練的方式快速更新檢測(cè)模型。研究采取增量訓(xùn)練方式以快速更新檢測(cè)模型,但增量訓(xùn)練仍然存在準(zhǔn)確性下降或時(shí)效性不足等挑戰(zhàn)。
2.2 總體方案
筆者提出一種基于神經(jīng)網(wǎng)絡(luò)平滑聚合機(jī)制的惡意代碼增量訓(xùn)練及檢測(cè)方法。采用Bi-gram模型提取惡意/良性代碼特征,采用卷積神經(jīng)網(wǎng)絡(luò)作為訓(xùn)練檢測(cè)模型的分類器,通過設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)平滑聚合機(jī)制,提出神經(jīng)網(wǎng)絡(luò)模型增量更新方法,并基于該方法結(jié)合已提取的惡意代碼特征,構(gòu)建惡意代碼增量訓(xùn)練模型,利用持續(xù)更新的檢測(cè)模型對(duì)未知惡意軟件變種進(jìn)行檢測(cè),以提升惡意代碼檢測(cè)模型訓(xùn)練效率及檢測(cè)時(shí)效性,總體方案如圖1所示。
2.3 特征提取
Bi-gram模型是目前提取惡意代碼特征的主流方法之一[8,13]。研究采用Bi-gram模型提取惡意/良性軟件操作碼二元組特征,以表示樣本中兩兩操作之間的局部語義關(guān)系。首先,采用IDA Pro提取惡意/良性軟件的操作碼序列,令OP={op_1,op_2,...,op_n}為操作碼序列,其中,op_i表示序列中第個(gè)i操作碼。然后,提取兩兩相鄰操作碼構(gòu)成操作碼二元組特征Bi-gram ={lt;op_1,op_2gt;,lt;op_2,op_3gt;,...,lt;op_(n-1),op_ngt;},并計(jì)算操作碼二元組的共生概率,以表示惡意代碼局部語義關(guān)系。操作碼二元組及其共生概率矩陣作為輸入卷積神經(jīng)網(wǎng)絡(luò)的特征向量,用于訓(xùn)練檢測(cè)模型。
2.4 基于卷積神經(jīng)網(wǎng)絡(luò)的檢測(cè)模型構(gòu)建
現(xiàn)有惡意代碼變種智能檢測(cè)技術(shù)主要通過采用的機(jī)器(深度)學(xué)習(xí)方法包括K近鄰、支持向量機(jī)、卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練大量已正確標(biāo)注的惡意代碼變種樣本。對(duì)于惡意代碼Bi-gram模型表征,卷積神經(jīng)網(wǎng)絡(luò)因能提取操作碼之間的關(guān)聯(lián)特征,可較好地表征代碼局部語義信息。因此,基于卷積神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)惡意代碼變種檢測(cè)模型,卷積神經(jīng)網(wǎng)絡(luò)包含5層,如圖2所示:輸入層、卷積層、池化層、全連接層、輸出層。輸入層輸入操作碼二元組共生概率矩陣;卷積層采用尺寸為3*3、5*5的卷積核對(duì)共生概率矩陣進(jìn)行內(nèi)積運(yùn)算提取卷積層特征圖;池化層采用2*2的平均池化核對(duì)卷積層特征圖進(jìn)行壓縮,形成池化層特征圖。全連接層采用ReLU函數(shù)連接池化層特征圖,ReLU函數(shù)如公式(1)所示,并采用Softmax函數(shù)全連接輸出層,Softmax函數(shù)如公式(2)所示,其中:x表示上一層層輸入的特征向量;w表示上一層與當(dāng)前層的連接權(quán)重向量,輸出層輸出惡意/良性類別的置信度。
ReLU(w?x)=max(0,w?x) , (1)
Softmax(w?x)=e^(w?x)/(∑e^(w?x) ) 。 (2)
研究采用梯度下降法訓(xùn)練惡意代碼檢測(cè)模型,根據(jù)卷積神經(jīng)網(wǎng)絡(luò)模型計(jì)算的誤差反向傳播修正模型中的權(quán)值,損失函數(shù)采用交叉熵如公式(3)所示,其中:Loss表示損失函數(shù);y表示樣本實(shí)際標(biāo)簽(0表示良性代碼/1表示惡意代碼),根據(jù)公式(4)迭代更新卷積神經(jīng)網(wǎng)絡(luò)權(quán)值參數(shù)
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表示權(quán)重更新;α=0.1表示步長(zhǎng)。
2.5 基于神經(jīng)網(wǎng)絡(luò)模型平滑聚合的增量訓(xùn)練
為保證惡意代碼變種檢測(cè)模型的時(shí)效性,基于機(jī)器(深度)學(xué)習(xí)的檢測(cè)方法通過集成歷史數(shù)據(jù)和新增數(shù)據(jù)進(jìn)行重訓(xùn)練以更新模型。由于上述基于卷積神經(jīng)網(wǎng)絡(luò)的惡意代碼檢測(cè)模型訓(xùn)練過程耗費(fèi)大量時(shí)間開銷,難以通過重訓(xùn)練的方式快速更新檢測(cè)模型,因此,基于神經(jīng)網(wǎng)絡(luò)模型平滑聚合的增量訓(xùn)練方法提升惡意代碼檢測(cè)模型更新效率,通過設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)模型平滑聚合函數(shù)使模型平滑演進(jìn),通過添加訓(xùn)練規(guī)模因子,避免增量模型因訓(xùn)練規(guī)模較小而嚴(yán)重影響聚合模型的準(zhǔn)確性。該方法對(duì)增量數(shù)據(jù)基于Bi-gram模型提取操作碼二元組矩陣,利用上述卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練增量檢測(cè)模型。因?yàn)樵隽繖z測(cè)模型與歷史檢測(cè)模型同構(gòu),可以將增量檢測(cè)模型的權(quán)重參數(shù)與歷史檢測(cè)模型權(quán)重參數(shù)聚合,形成新的檢測(cè)模型,再將新檢測(cè)模型的權(quán)重參數(shù)更新至歷史檢測(cè)模型中,兼顧歷史模型準(zhǔn)確性和增量模型時(shí)效性的優(yōu)勢(shì)。
盡管采取增量訓(xùn)練方式快速更新檢測(cè)模型,但保障增量訓(xùn)練的準(zhǔn)確性和時(shí)效性仍是需要解決的關(guān)鍵問題。隨著數(shù)據(jù)不斷新增,增量模型與歷史模型不斷聚合形成新的歷史模型,因綜合了更多數(shù)據(jù)訓(xùn)練模型使準(zhǔn)確性更有保障,增量模型因訓(xùn)練最新數(shù)據(jù)確保模型的時(shí)效性。但受限于增量訓(xùn)練樣本較少(過多則影響檢測(cè)模型更新速度),增量模型的準(zhǔn)確性相對(duì)歷史模型較差,如果直接聚合增量模型和歷史模型,則會(huì)造成聚合后的模型準(zhǔn)確性降低。
因此,基于神經(jīng)網(wǎng)絡(luò)模型平滑聚合的增量訓(xùn)練方法設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)模型平滑聚合函數(shù),如公式(5)所示,其中:w_aggregation表示聚合后的檢測(cè)模型權(quán)重參數(shù);w_i表示歷史前i次的增量訓(xùn)練模型的權(quán)重參數(shù)(如利用最新增量數(shù)據(jù)訓(xùn)練出來的模型索引為1,則i=1),利用增量數(shù)據(jù)訓(xùn)練得出卷積神經(jīng)網(wǎng)絡(luò)所有層的連接權(quán)重向量。通過不斷衰減更早版本歷史模型的偏重,使模型平滑演進(jìn),如歷史前m次訓(xùn)練的增量模型偏重系數(shù)為0.5^m。同時(shí),通過添加訓(xùn)練規(guī)模因子c_i,避免增量模型因訓(xùn)練規(guī)模較小而影響聚合模型的準(zhǔn)確性,如公式(6)所示
w_aggregation=∑_(i=1)^n?〖0.5^(i-1)?c_i?w_i 〗 , (5)
c_i=N_i/N_1 ", (6)
其中:N_i表示當(dāng)前增量數(shù)據(jù)樣本數(shù)量;N_1表示第1次(歷史前N次)增量訓(xùn)練的數(shù)據(jù)樣本數(shù)量。最后,利用聚合后的權(quán)重參數(shù)更新檢測(cè)模型,并對(duì)未知樣本進(jìn)行檢測(cè)。
2.6 惡意代碼變種檢測(cè)
當(dāng)檢測(cè)未知代碼樣本時(shí),首先提取未知樣本的Bi-gram模型特征向量,將其輸入至上述已訓(xùn)練好的最近一次聚合更新的卷積神經(jīng)網(wǎng)絡(luò)模型中。該檢測(cè)模型通過多次增量式更新提升檢測(cè)模型性能,通過提取代碼樣本的局部語義特征,并通過Softmax分類器進(jìn)行檢測(cè)輸出置信度,對(duì)惡意/良性分類輸出的置信度大小進(jìn)行判定,選擇置信度最大的分類作為判別結(jié)果(如果惡意類別的置信度gt;良性類別的置信度,即判定為惡意樣本,反之則判定為良性樣本)。
3 實(shí)驗(yàn)分析
3.1 實(shí)驗(yàn)環(huán)境
本文所有實(shí)驗(yàn)(惡意代碼檢測(cè)增量訓(xùn)練實(shí)驗(yàn),以及用于對(duì)比的重訓(xùn)練實(shí)驗(yàn))均在相同計(jì)算機(jī)軟硬件環(huán)境和配置中進(jìn)行,其中計(jì)算機(jī)CPU為Intel i5-3470 @ 3.20 GHz,內(nèi)存容量為16.0 GB,操作系統(tǒng)為Ubuntu 16.04。
3.2 數(shù)據(jù)集和訓(xùn)練方法
實(shí)驗(yàn)所采用的惡意軟件數(shù)據(jù)集來源于VxHeaven、Kaggle,其中,VxHeaven從若干用戶計(jì)算機(jī)采集,包括17 000個(gè)惡意樣本,10 300個(gè)良性樣本。其中,80%的惡意/良性樣本用于模型訓(xùn)練,20%的惡意/良性樣本用于測(cè)試。所有訓(xùn)練樣本均勻分成8個(gè)增量數(shù)據(jù)訓(xùn)練集,增量訓(xùn)練實(shí)驗(yàn)中,通過1次初始訓(xùn)練和7次增量訓(xùn)練;重訓(xùn)練實(shí)驗(yàn)中,整合全部歷史數(shù)據(jù)集和新增的增量數(shù)據(jù)集進(jìn)行訓(xùn)練,完成實(shí)驗(yàn)結(jié)果測(cè)試。
3.3 驗(yàn)證方法
所有實(shí)驗(yàn)均采取K-折交驗(yàn)證法,其中,K=5。評(píng)估指標(biāo)包括訓(xùn)練時(shí)間開銷、檢測(cè)時(shí)間開銷、準(zhǔn)確率、精度和召回率,如公式(7)~(9)所示
準(zhǔn)確率=(TP+TN)/(TP+TN+FP+FN) , (7)
精度=TP/(TP+FP) , (8)
召回率=TP/(TP+FN) , (9)
其中:TP表示樣本為惡意樣本且檢測(cè)正確;FP表示樣本為惡意樣本且檢測(cè)錯(cuò)誤;TN表示樣本為良性樣本且檢測(cè)正確;FN表示樣本為良性樣本且檢測(cè)錯(cuò)誤,精度表示模型判別惡意樣本結(jié)果中正確結(jié)果的比例,召回率表示惡意樣本中被模型正確檢測(cè)出來的比例。
3.4 性能評(píng)估
本文利用測(cè)試數(shù)據(jù)集評(píng)估惡意代碼檢測(cè)模型增量學(xué)習(xí)方法的效率和準(zhǔn)確性,同時(shí),對(duì)比重訓(xùn)練方法的訓(xùn)練時(shí)間開銷、精度和召回率,以驗(yàn)證提出方法相比于傳統(tǒng)的重訓(xùn)練方法在模型訓(xùn)練速度方面具有顯著優(yōu)勢(shì),同時(shí),盡可能不降低檢測(cè)精度和召回率,實(shí)驗(yàn)最終結(jié)果如表1所示。
時(shí)間開銷結(jié)果表明:研究提出的惡意代碼檢測(cè)模型增量學(xué)習(xí)方法訓(xùn)練時(shí)間開銷為6.4 h,檢測(cè)時(shí)間開銷lt;0.001 s。
對(duì)比重訓(xùn)練方法,增量學(xué)習(xí)方法在訓(xùn)練速度方面具有顯著優(yōu)勢(shì),加速比約為5.9倍,說明提出的方法能有利于提升惡意代碼變種檢測(cè)模型的更新效率。隨著樣本數(shù)量增加,增量訓(xùn)練時(shí)間開銷基本保持水平。而重訓(xùn)練方法由于數(shù)據(jù)不斷新增使得訓(xùn)練集規(guī)模不斷增大,導(dǎo)致訓(xùn)練時(shí)間開銷增加,如圖3所示。
準(zhǔn)確性實(shí)驗(yàn)結(jié)果表明:提出的惡意代碼檢測(cè)模型增量學(xué)習(xí)方法檢測(cè)精度=93.4 %、召回率=96.8 %。對(duì)比重訓(xùn)練方法,增量訓(xùn)練方法在新增數(shù)據(jù)訓(xùn)練后的精度和召回率幾乎沒有降低,說明研究方法在檢測(cè)效率的同時(shí)保留了模型訓(xùn)練的準(zhǔn)確性。隨著增量訓(xùn)練次數(shù)增加,檢測(cè)精度和召回率同時(shí)增加,說明增量訓(xùn)練的模型隨著樣本增加準(zhǔn)確性提升,如圖4所示。
3.5 性能對(duì)比分析
通過對(duì)比幾種常用的惡意軟件檢測(cè)方法的精度和召回率,進(jìn)一步評(píng)估研究方法的準(zhǔn)確性。對(duì)比方法均采用和研究相同的操作碼二元組共生概率特征,分別采用不同的機(jī)器學(xué)習(xí)方法,包括支持向量機(jī)、BP神經(jīng)網(wǎng)絡(luò)和K近鄰。實(shí)驗(yàn)結(jié)果表明,研究方法在精度和召回率指標(biāo)上具有明顯優(yōu)勢(shì),如表2所示。
3.6 收斂性分析
通過對(duì)比增量學(xué)習(xí)模型收斂過程中訓(xùn)練集和測(cè)試集上檢測(cè)準(zhǔn)確率分析模型的收斂性,如圖5所示,藍(lán)色實(shí)線表示訓(xùn)練集的檢測(cè)準(zhǔn)確率,紅色實(shí)線表示測(cè)試集的準(zhǔn)確率,橫坐標(biāo)表示收斂迭代次數(shù),縱坐標(biāo)表示準(zhǔn)確率。實(shí)驗(yàn)結(jié)果表明:1)隨著迭代次數(shù)增加,模型準(zhǔn)確率不斷上升,且訓(xùn)練集收斂至100%,說明模型收斂性良好;2)測(cè)試集上的準(zhǔn)確率和訓(xùn)練集上的準(zhǔn)確率接近,且上升趨勢(shì)幾乎一致,說明模型并未出現(xiàn)過擬合現(xiàn)象。
s
3.7 訓(xùn)練規(guī)模因子分析
研究添加訓(xùn)練規(guī)模因子c_i,當(dāng)增量訓(xùn)練數(shù)據(jù)規(guī)模較小時(shí),增量模型相對(duì)歷史模型權(quán)重較小,避免增量模型因訓(xùn)練規(guī)模較?。ㄟ^擬合導(dǎo)致增量模型準(zhǔn)確性下降)影響聚合模型的準(zhǔn)確性。通過降低第8次增量訓(xùn)練數(shù)據(jù)規(guī)模,測(cè)試增量模型聚合后的準(zhǔn)確性,實(shí)驗(yàn)結(jié)果如圖6所示。盡管增量訓(xùn)練的數(shù)據(jù)規(guī)模降低,增量模型聚合后的準(zhǔn)確性未受到明顯影響,反映增量訓(xùn)練方法的穩(wěn)健性。
4 結(jié)束語
筆者提出一種基于神經(jīng)網(wǎng)絡(luò)模型平滑聚合機(jī)制的惡意代碼增量訓(xùn)練及檢測(cè)方法,提升惡意代碼檢測(cè)模型的訓(xùn)練性能,保障檢測(cè)模型的準(zhǔn)確性。該方法是基于神經(jīng)網(wǎng)絡(luò)模型平滑聚合的增量訓(xùn)練方法,減少模型訓(xùn)練時(shí)間開銷的同時(shí)保障模型時(shí)效性,盡可能不降低模型訓(xùn)練的準(zhǔn)確性。最后,對(duì)提出的惡意代碼檢測(cè)模型增量訓(xùn)練方法進(jìn)行實(shí)驗(yàn)分析,結(jié)果表明,研究方法相比于機(jī)器學(xué)習(xí)重訓(xùn)練方法在訓(xùn)練速度方面具有明顯優(yōu)勢(shì),且?guī)缀醪唤档蜋z測(cè)的精度和召回率。
參考文獻(xiàn)
[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] "陳志鋒, 李清寶, 張平, 等. 基于數(shù)據(jù)特征的內(nèi)核惡意軟件檢測(cè)[J]. 軟件學(xué)報(bào), 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應(yīng)用惡意行為檢測(cè)系統(tǒng)[J]. 計(jì)算機(jī)學(xué)報(bào), 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] "冀甜甜,方濱興,崔翔,等. 深度學(xué)習(xí)賦能的惡意代碼攻防研究進(jìn)展[J]. 計(jì)算機(jī)學(xué)報(bào),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] "楊吉云, 陳鋼, 鄢然, 等. 一種基于系統(tǒng)行為序列特征的Android惡意代碼檢測(cè)方法[J]. 重慶大學(xué)學(xué)報(bào), 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] "李苑, 王國(guó)胤, 李智星, 等. 基于序列注意力機(jī)制的卷積神經(jīng)網(wǎng)絡(luò)異常檢測(cè)[J]. 鄭州大學(xué)學(xué)報(bào)(理學(xué)版), 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
基金項(xiàng)目:國(guó)家電網(wǎng)有限公司總部科技項(xiàng)目資助(5700-202024193A-0-0-00)。
Foundation:Supported by the Science and Technology Project of State Grid Corporation of China(5700-202024193A-0-0-00).
作者簡(jiǎn)介:郭志民(1977—),男,教授級(jí)高級(jí)工程師,主要從事信息安全方向研究,(Tel)13838273251;(E-mail)zhimin.guo@163.com。