王叢雙,方 勇
(四川大學(xué)網(wǎng)絡(luò)空間安全學(xué)院,成都 610207)
計算機互聯(lián)網(wǎng)技術(shù)的發(fā)展,使得人們越來越離不開網(wǎng)絡(luò),而聯(lián)網(wǎng)設(shè)備數(shù)量也在近20年里快速增加,與此同時,針對計算機系統(tǒng)的攻擊活動也更加頻繁,各種類型的惡意程序充斥著互聯(lián)網(wǎng)。因此,研究檢測惡意程序的是網(wǎng)絡(luò)安全研究工作者的重要課題之一。
惡意軟件是一種旨在對目標計算機造成破壞或竊取目標計算機數(shù)據(jù)的計算機程序。傳統(tǒng)的惡意軟件包括病毒、木馬等,這些惡意軟件不僅嚴重影響了用戶對計算機的正常使用,甚至給用戶和企業(yè)帶來了巨額的經(jīng)濟損失。近年來,隨著區(qū)塊鏈技術(shù)進入大眾視野,數(shù)字貨幣挖礦程序也開始大量涌現(xiàn),黑客通過植入惡意挖礦程序利用計算機的計算資源獲得收益。而以WannaCry為代表的勒索軟件是另一類惡意軟件,一旦被感染,會加密計算機中的所有文件,只有受害者支付贖金后才會解密,該軟件具有自動傳播能力,在全球范圍內(nèi)感染了超過10萬計算機,包括著名的芯片制造廠商臺積電。
當前的惡意軟件檢測技術(shù)多種多樣,不同的方法各有優(yōu)缺點,而傳統(tǒng)的方法由于性能提升空間越來越小,研究者開始利用機器學(xué)習(xí)進行進一步研究。研究結(jié)果表明機器學(xué)習(xí)可以在一定程度上能提高模型的泛化能力,進而提高惡意樣本的識別率。機器學(xué)習(xí)模型建立流程一般是數(shù)據(jù)清洗、提取特征、訓(xùn)練模型三個步驟,前期大量的研究者研究的重點是選用能夠表達惡意軟件的特征,然后輸入進機器學(xué)習(xí)算法進行檢測,經(jīng)過近些年的研究,多種多樣的特征都被研究者們研究過。因此本文研究的重點不再是提取新的特征,而是在算法和模型訓(xùn)練上深入研究,引入多階融合訓(xùn)練技術(shù),從特征融合和模型融合兩個層面,來提高對惡意程序的檢測效果。
目前,針對惡意軟件檢測主要有三種方式:基于靜態(tài)特征、基于動態(tài)行為特征和混合檢測法?;陟o態(tài)特征包括了傳統(tǒng)的基于簽名的檢測方式,這種方式利用了惡意軟件中固定不變的代碼片段或其他具有強標志性的靜態(tài)字符串特征,檢測準確率高,誤報率低。但是一般需要具有惡意軟件分析能力的安全專家手工分析,以提取此類靜態(tài)特征。在應(yīng)用機器學(xué)習(xí)的方法中,靜態(tài)特征是在不運行惡意軟件的情況下,使用自動化分析工具,結(jié)合逆向、統(tǒng)計學(xué)等技術(shù),提取人工設(shè)定的一系列靜態(tài)特征。比如針對Windows PE類型的惡意軟件,可以提取惡意樣本中的文件頭、導(dǎo)出表、節(jié)等特征,然后使用機器學(xué)習(xí)算法訓(xùn)練檢測模型。機器學(xué)習(xí)算法能夠通過這些靜態(tài)特征,捕獲惡意軟件與正常軟件的異同。Aslan?A等綜述近些年惡意軟件檢測技術(shù)發(fā)展,其中概括了大量被研究者使用的靜態(tài)特征。
靜態(tài)特征是在不運行的狀態(tài)下提取特征,主要的問題是不能獲取惡意軟件運行過程中的行為特征,優(yōu)點是模型復(fù)雜度低,不需要使用模擬器、虛擬機等來獲取特征信息。在基于靜態(tài)特征的方法效果提升到達瓶頸后,研究者開始研究提取惡意程序的動態(tài)行為特征,以更加準確的判斷程序是否是惡意的。在沙箱中運行惡意程序,進行動態(tài)監(jiān)控,可以獲取到惡意程序運行過程中的網(wǎng)絡(luò)行為、內(nèi)存訪問行為、注冊表操作等。行為也更能反映一個程序是否是惡意的。獲取到這些行為特征后的操作與基于靜態(tài)特征相似,可以基于規(guī)則或使用機器學(xué)習(xí)算法進行建模。Kakisim等對基于動態(tài)特征的惡意軟件檢測進行了綜述,總結(jié)了大量動態(tài)特征在檢測中的效果對比。
混合方法是結(jié)合了靜態(tài)和動態(tài)兩種特征,這樣在特征上面可以兼顧兩方面的優(yōu)勢。除了特征選擇外,基于機器學(xué)習(xí)的惡意軟件檢測的關(guān)鍵還在于算法的選擇。Rathore等綜述了使用機器學(xué)習(xí)以及深度學(xué)習(xí)進行惡意軟件檢測的成果。以CNN為代表的深度學(xué)習(xí)算法被證明相對于傳統(tǒng)機器學(xué)習(xí)算法有更好的效果,Vinaya?kumar使用CNN算法進行分類,準確率高達98.8%,其他指標也都高于傳統(tǒng)機器學(xué)習(xí)算法。
綜上所述,結(jié)合統(tǒng)計學(xué)、沙箱等技術(shù)對惡意程序進行特征獲取,并使用機器學(xué)習(xí)或深度學(xué)習(xí)算法進行建模,能夠?qū)阂廛浖M行識別,但是研究者在針對模型訓(xùn)練上缺乏考量。本文將引入多階訓(xùn)練技術(shù),結(jié)合機器學(xué)習(xí)和深度學(xué)習(xí)算法,改善惡意軟件檢測模型效果。與惡意軟件的對抗是一個持續(xù)的過程,惡意軟行業(yè)是一個龐大的市場,每年都有大量的資金投入以開發(fā)出能夠?qū)箼z測的惡意軟件,這也要求研究者們不斷更新檢測技術(shù)以應(yīng)對這些反制機制。
為了讓算法能夠?qū)W習(xí)到惡意軟件與正常軟件的異同,本文除了選擇常見的靜態(tài)特征外,還選擇使用沙盒模擬執(zhí)行程序后獲得的API調(diào)用指令序列作為數(shù)據(jù)源,結(jié)合統(tǒng)計學(xué)構(gòu)建特征集。我們將特征分為三類,即靜態(tài)文件特征、API統(tǒng)計特征、API調(diào)用關(guān)聯(lián)特征。這些特征提取簡單,能有效反映一個程序的靜態(tài)、動態(tài)行為特點。
靜態(tài)特征包括文件頭部分信息、文件節(jié)部分信息、文件屬性信息等,這些信息通過直接解析程序文件或者簡單的計算即可獲得。表1概括了選用的靜態(tài)特征信息,靜態(tài)特征集記為F。
表1 靜態(tài)特征信息
任何程序都是會調(diào)用大量的系統(tǒng)接口,這些接口為程序提供了多種多樣的功能,比如一個程序需要使用網(wǎng)絡(luò)功能,那其一定會調(diào)用網(wǎng)絡(luò)相關(guān)的接口,因此我們可以通過程序調(diào)用的API序列反向推測程序具有的功能,而API調(diào)用的順序也能反映程序的行為特點,為此我們設(shè)計了兩類API特征集,一類是程序調(diào)用的API統(tǒng)計特征,記為F,表2概括了這些特征;一類是API序列中API之間的關(guān)聯(lián)特征,記為F,表3概括了這些特征。
表2 API調(diào)用序列統(tǒng)計特征
表3 API調(diào)用序列關(guān)聯(lián)特征
本文提出應(yīng)用多階訓(xùn)練的模型融合技術(shù),將不同模型在不同特征集上的作用效果進行融合,以獲得更高的惡意軟件檢測效果,與傳統(tǒng)集成算法不同,本文提出的模型不僅僅是不同算法的融合,還體現(xiàn)在不同特征集上的融合。本文通過設(shè)計多個階段的模型訓(xùn)練過程,并使用多種機器學(xué)習(xí)算法進行訓(xùn)練,根據(jù)不同模型的訓(xùn)練效果,使用交叉驗證的方式,為不同的模型賦予權(quán)重。最后再使用一個集成訓(xùn)練算法,融合各個模型的效果。圖1展示了模型的整體框架圖。
圖1 整體架構(gòu)
首先,對于本文提出的三種特征集,我們設(shè)計了基于多個機器學(xué)習(xí)算法的特征權(quán)重評估方法。作為第一階段訓(xùn)練過程,將三種特征集分別用多個算法進行訓(xùn)練檢測模型,并使用準確率、召回率、精確率指標評估模型效果,根據(jù)最終的效果,選擇TOP-N算法,根據(jù)算法的效果F1-Score指標,為特征集賦予不同的權(quán)重,形成新 的訓(xùn) 練 集={θF,σF,μF},權(quán) 重++=1。
在第一階段訓(xùn)練獲得特征權(quán)重后,進行第二階段模型融合訓(xùn)練。模型融合的效果是通過訓(xùn)練多個子分類器以獲得一個最終分類器,使用子分類器的分類錯誤率計算得出這個分類器的可信權(quán)重。分類器訓(xùn)練的過程需要從原始數(shù)據(jù)中進行采樣,對于被錯誤分類的樣本通過增大被采樣的概率來提高在后續(xù)訓(xùn)練過程中被正確分類的概率。而子分類器的權(quán)重,則根據(jù)分類錯誤率計算得到,權(quán)重越高,意味著這個分類器在最終分類器中的影響力越大。整體模型可以表達為公式(1),其中h()為子分類器,α為權(quán)重,α由分類誤差
率e計算而來,即公式(2)。
為了全面的評估模型的效果,本文選用了準確率、誤報率、召回率和F1-Score為模型評估指標。數(shù)據(jù)集選用了微軟惡意軟件分類挑戰(zhàn)賽公開數(shù)據(jù)集(BIG2015),該數(shù)據(jù)集包含了9個不同家族的惡意軟件,每個軟件包含其唯一標識符以及所屬分類標簽。每個惡意軟件文件,包含了文件的二進制表示和十六進制表示,除此之外還提供了一個處理后的元數(shù)據(jù)信息,包含了從二進制文件中反匯編提取的各種元數(shù)據(jù),如函數(shù)調(diào)用、字符串等。
按照模型設(shè)計,按照特征集的提取方式從數(shù)據(jù)集中提取了全量特征信息,并按照模型訓(xùn)練設(shè)計的多階訓(xùn)練思想,在第一階段特征集權(quán)重訓(xùn)練階段,選用了SVM/Decision Tree/Random Forest/Logistic Regression/KNN五種經(jīng)典機器學(xué)習(xí)算法,根據(jù)模型效果選擇效果最佳的前三個模型,根據(jù)這些模型在三種特征集上的效果,為特征集賦予權(quán)重,=0.1,=0.5,=0.4,組成新的數(shù)據(jù)集。第二階段,在新生成的數(shù)據(jù)集上,選用SVM/Logistic Regression/CNN/DNN等算法作為子分類器,構(gòu)建不同組合對比試驗,根據(jù)模型在測試數(shù)據(jù)集上的訓(xùn)練效果,選擇子分類器共同構(gòu)成最終的分類模型,對比試驗的結(jié)果見表4??梢钥吹皆赟VM-LR-CNN組合的分類器效果最好,在各個指標上均超過他模型。
表4 模型效果
惡意軟件的發(fā)展與現(xiàn)有的檢測手段形成了對抗的關(guān)系,不斷有開發(fā)者應(yīng)用多樣的繞過技術(shù)從靜態(tài)以及行為特征上規(guī)避檢測模型的檢測,對眾多現(xiàn)有的檢測模型形成了挑戰(zhàn)。本文提出了一種基于靜態(tài)特征和行為特征的檢測模型,通過統(tǒng)計方法定義了多種行為特征關(guān)系,并提出了一種新穎的特征模型融合訓(xùn)練方法,該方法能更好的評估特征集的重要性,并兼顧多種機器學(xué)習(xí)算法的優(yōu)點,通過這種模型訓(xùn)練方式,獲得了一個在各項指標上均有明顯提高的檢測模型。在公開數(shù)據(jù)集上的評估結(jié)果表明,本文提出的方法能有效的提高對惡意軟件的檢測能力,有助于解決當前惡意軟件檢測的瓶頸問題。