張 凱 王東安 李 超 賈 冰
(*中國科學(xué)院信息工程研究所 北京 100093) (**國家計算機網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心 北京 100029) (***中國科學(xué)院大學(xué) 北京 100049) (****河南省工人文化宮 鄭州 450007)
?
基于協(xié)同采樣主動學(xué)習(xí)的惡意代碼檢測①
張 凱②****王東安**李 超**賈 冰****
(*中國科學(xué)院信息工程研究所 北京 100093) (**國家計算機網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心 北京 100029) (***中國科學(xué)院大學(xué) 北京 100049) (****河南省工人文化宮 鄭州 450007)
研究了基于機器學(xué)習(xí)分類算法的惡意代碼檢測,考慮到目前主要采用傳統(tǒng)分類方法對惡意代碼進行分類識別,這些方法需要通過學(xué)習(xí)大量標記樣本來獲得精準的分類器模型,然而樣本標記工作只有少數(shù)專家才能完成,導(dǎo)致標記樣本往往不足,致使分類結(jié)果準確率不高,提出了一種基于協(xié)同采樣的主動學(xué)習(xí)方法。運用這種學(xué)習(xí)方法,僅需少量標記樣本即可有效識別出惡意代碼。實驗證明,相對于傳統(tǒng)的惡意代碼分類方法,該方法能夠顯著提升分類準確率和泛化性能。
主動學(xué)習(xí), 支持向量機(SVM), 概率性神經(jīng)網(wǎng)絡(luò)(PNN), 協(xié)同采樣
惡意代碼特指對用戶電腦和網(wǎng)絡(luò)造成危害的惡意軟件(malicious software),其英文寫為malware。近年來,由于互聯(lián)網(wǎng)的飛速發(fā)展以及各種利益的驅(qū)使,惡意代碼已經(jīng)對網(wǎng)絡(luò)空間造成重大威脅,而且其產(chǎn)生速度逐步加快,惡意代碼家族或變種的數(shù)量急劇增長,人工分析手段已無法有效地應(yīng)對。在此情況下,開始引入機器學(xué)習(xí)分類算法對惡意代碼進行檢測識別。傳統(tǒng)機器學(xué)習(xí)分類方法通過學(xué)習(xí)標記樣本訓(xùn)練模型,實現(xiàn)對未標記樣本的自動分類,很大程度上減少了人工成本[1-10]。然而為了獲得精準的分類模型,在訓(xùn)練時需要學(xué)習(xí)大量標記樣本來建立模型,仍然需要較大的人工工作量,由于標記工作只有少數(shù)相關(guān)領(lǐng)域?qū)<也拍芡瓿?,標記樣本?shù)量往往不足,導(dǎo)致所建立模型的精確性差,致使分類結(jié)果準確率不高。此外,傳統(tǒng)機器學(xué)習(xí)分類方法是利用標記樣本來訓(xùn)練分類器,利用該分類器對新的數(shù)據(jù)集進行預(yù)測時,分類器并不發(fā)生任何變化,而該分類器并不一定適用于新的數(shù)據(jù)集,因而泛化能力不強。
針對上述問題,本文提出一種采用基于協(xié)同采樣的主動學(xué)習(xí)的惡意代碼檢測方法,以有效降低對標記樣本數(shù)量的需求。實驗結(jié)果表明,在標記樣本數(shù)目較少的情況下,僅使用少量的標記樣本即可有效識別出惡意代碼。相對于未使用主動學(xué)習(xí)的機器學(xué)習(xí)方法,在標記樣本數(shù)量少的情況下,能夠顯著提升分類性能。同時該方法引入主動學(xué)習(xí)思想,與未知樣本數(shù)據(jù)集進行交互,有效地提升了泛化能力。
本節(jié)對算法設(shè)計中涉及的主要方法進行介紹,包括特征提取方法、主動學(xué)習(xí)方法以及選用的基準分類器——概率神經(jīng)網(wǎng)絡(luò)(probabilistic neural network, PNN)分類器和支持向量機(SVM)分類器。
1.1 特征提取
本文旨在提取高級行為特征和威脅文本特征,并融合這兩種特征以實現(xiàn)惡意代碼分類。目前惡意代碼高度模塊化和功能多樣化趨勢越來越強,需要更為全面的特征要素描述惡意代碼本質(zhì)特性[11]。首先,惡意代碼功能主要體現(xiàn)在其在系統(tǒng)中的行為;其次,一個正常的行為可能因配置的內(nèi)容不同,其性質(zhì)有所差別。因此本文以高級行為和威脅字符作基礎(chǔ)分別提取高級行為特征和威脅文本特征,并構(gòu)建組合特征空間模型。其中高級行為特征是由特定系統(tǒng)調(diào)用轉(zhuǎn)換的高級行為及參數(shù)的集合,首先通過系統(tǒng)監(jiān)控方法獲取樣本調(diào)用的原始API和詳細參數(shù)信息,然后根據(jù)規(guī)則從中提取出高級行為。威脅文本特征是樣本二進制文件包含的可顯示字符串經(jīng)過信息熵過濾后得到的集合。首先通過沙盒、虛擬機等監(jiān)控系統(tǒng)分析執(zhí)行過程中的二進制文件,輸出其中可顯示字符串,然后通過信息熵過濾提取作為威脅文本特征。
1.2 主動學(xué)習(xí)
主動學(xué)習(xí)是相對于被動學(xué)習(xí)提出的[12-15]。被動學(xué)習(xí)指的是隨機從數(shù)據(jù)集中選取一定數(shù)目的樣本進行標記,并利用標記樣本訓(xùn)練分類器,然后對未標記樣本進行分類。然而由于該方法獲得的標記樣本隨機產(chǎn)生,因此獲得的樣本很可能存在信息冗余、噪聲過多等問題,從而嚴重影響分類效果。主動學(xué)習(xí)則是將樣本標記工作分為兩步,首先標記少量樣本作為初始訓(xùn)練集訓(xùn)練基準分類器,并利用該分類器對未標記樣本分類,然后根據(jù)一定的規(guī)則,從分類結(jié)果中篩選一定數(shù)量的樣本進行標記,并將標記后的樣本與初始訓(xùn)練集結(jié)合形成新的訓(xùn)練集,以此訓(xùn)練新的分類器,最后利用新的分類器對未標記樣本進行分類得到最終結(jié)果[16-19]。
根據(jù)上述說明,主動學(xué)習(xí)可以分為兩個步驟,因此主動學(xué)習(xí)算法可以相應(yīng)包含學(xué)習(xí)引擎和采樣引擎兩個部分。學(xué)習(xí)引擎指的是實現(xiàn)分類的機器學(xué)習(xí)方法,例如本文中應(yīng)用的概率神經(jīng)網(wǎng)絡(luò)(PNN)算法和支持向量機(SVM)算法。采樣引擎指的是主動學(xué)習(xí)第二步中篩選樣本的策略。而主動學(xué)習(xí)的核心思想也在于采樣引擎的設(shè)計。根據(jù)采樣策略的不同,可以將主動學(xué)習(xí)算法分為基于成員查詢綜合(membership query synthesis,MQS)的主動學(xué)習(xí)、基于流的(stream-based)主動學(xué)習(xí)和基于池的(pool-based)主動學(xué)習(xí)[20]三種。 其中,基于池的主動學(xué)習(xí)算法是目前研究最充分、使用最廣泛的一類策略。按照選擇未標記樣本標準的不同,基于池的主動學(xué)習(xí)算法又可分為基于不確定性的抽樣(uncertainty based sampling,UBS)策略、基于委員會投票的抽樣(query by committee,QBC)策略和基于估計誤差縮減(estimated error reduction,EER)的抽樣策略等幾種[21]。本文采用的協(xié)同采樣方法隸屬于委員會投票抽樣(QBC)策略。
1.3 概率神經(jīng)網(wǎng)絡(luò)
概率神經(jīng)網(wǎng)絡(luò)(PNN)于1989年由Specht 博士首先提出,是一種常用于模式分類的前饋型神經(jīng)網(wǎng)絡(luò)[22]。PNN包含4層,分別為輸入層、模式層、求和層、輸出層,如圖1所示。其中X為樣本的特征屬性,Y對應(yīng)的是樣本的目標屬性。本文中的PNN應(yīng)用中,X即為由高級行為特征和威脅文本特征組合而成的融合特征,Y則對應(yīng)0和1兩個結(jié)果,分別指帶是否為惡意代碼。
圖1 PNN分類模型結(jié)構(gòu)示意圖
1.4 支持向量機
支持向量機(support vector machine,SVM)是基于監(jiān)督學(xué)習(xí)的機器學(xué)習(xí)方法,可以分為兩種處理情況:線性可分和非線性可分[23]。目標是獲取最佳的分類面,即最大間隔分類器。在二維空間中,樣本表現(xiàn)為平面上的點,可以使用支持向量機訓(xùn)練已標記樣本,獲得分界線(對于線性的情況,分界線為直線,而對于非線性的情況,則為曲線),將正負樣本分離開來。同樣的,在N維空間中,我們可以使用支持向量機獲取一個面,從而對正負樣本進行分離(對于線性的情況,分界面為平面,而對于非線性的情況,則為曲面)。圖2(a)和圖2(b)分別為線性情況和非線性情況。
(a) 線性情況SVM分類器
(b) 非線性情況SVM分類器 圖2 SVM分類器
算法的核心思想是把對標記樣本的標記工作分為兩次完成。首先從未標記樣本集中隨機選取一定數(shù)量的樣本進行第一次標記,并根據(jù)這些標記樣本訓(xùn)練兩個分類器,本文中選擇使用SVM分類器和PNN分類器。利用兩個分類器對未標記樣本進行分類,比較兩個分類結(jié)果并提取結(jié)果不一致的樣本,然后再按照特定規(guī)則(本文中選用SVM分類器分類結(jié)果對應(yīng)的置信度d做標準)篩選得到一定數(shù)量樣本并做第二次標記工作。由于本次標記的樣本很可
能是分類器錯誤的分類結(jié)果,因此相對于其他的樣本更有助于提升基準分類器性能。
算法執(zhí)行的步驟如下:
步驟1: 利用訓(xùn)練集Tr學(xué)習(xí)獲得SVM分類器C1和PNN分類器C2。
步驟2: 利用分類器C1和C2對測試集Te分類,分別得分類結(jié)果Ye1和Ye2。
步驟3: 比較分類結(jié)果Ye1和Ye2,選取結(jié)果不一致的樣本形成集合Temp,并根據(jù)參數(shù)d對樣本進行升序排序。
步驟4: 選取前aNum個樣本形成主動學(xué)習(xí)樣本集Ta,并結(jié)合Tr形成新的測試集Tr′。
步驟5: 利用Tr′再次對測試集Te分類,得最終分類結(jié)果Ye′。
步驟6: 根據(jù)Ye′計算分類器評價標準參數(shù),包括召回率、精度、F-Measure、準確率。
算法偽代碼如下:
算法基于協(xié)同采樣主動學(xué)習(xí)的惡意代碼檢測輸入:訓(xùn)練集Tr,測試集Te,主動學(xué)習(xí)樣本數(shù)目aNum;輸出:分類評價參數(shù)指標(包括召回率、精度、F-Measure、準確率);Begin:[C1,C2]=train(SVM,PNN,Tr);[Ye1,Ye2]=text(C1,C2,Te);Temp=Compare(Ye1,Ye2);Temp=Qsort(d,Temp);Ta=top(aNum,Temp);Tr'=combine(Tr,Ta);C'=train(SVM,Tr');Ye'=text(C',Te);Evaluate(Ye');
由于主動學(xué)習(xí)把樣本的標記工作分為了兩步,而第二步中添加的樣本是根據(jù)特定規(guī)則篩選出的信息豐富的樣本,因此使得分類效果顯著提升。而且由于在主動學(xué)習(xí)中會與未標記樣本進行交互,因此泛化性能也得到顯著加強。
3.1 實驗數(shù)據(jù)集
實驗共采用840個樣本,其中黑樣本(惡意代碼)361個,白樣本(非惡意代碼)3479個。我們選取100個樣本作為候選訓(xùn)練集,另外的740個樣本做為測試集。經(jīng)劃分后,測試集樣本數(shù)目為740個,黑白樣本分布為:白樣本479個,黑樣本361個。實驗中應(yīng)用的組合特征由惡意代碼高級行為特征和威脅文本特征兩部分組成,其中高級行為特征維度為131維,威脅字符特征維度為103734維,經(jīng)主成分分析(PCA)處理后為131維。組合特征即為高級行為特征和威脅字符特征的融合,維度為262維。
3.2 評價指標體系
實驗中,我們利用召回率(recall)、精度(precision)、F1值(F1 measure)和準確率(accuracy)四項性能參數(shù)對算法進行評價。四項性能評價指標參數(shù)的計算公式為
其中參數(shù)TP、TN、FP、FN的說明見表1。
表1 性能評價指標計算參數(shù)說明
3.3 實驗結(jié)果分析
實驗的思路是,在標記樣本總數(shù)相同的情況下,對比隨機選取樣本方法(即傳統(tǒng)分類方法)和協(xié)同采樣主動學(xué)習(xí)方法的分類效果。此外,又可以根據(jù)主動學(xué)習(xí)的參數(shù)不同分為多種情況。因此實驗中,需要設(shè)定的參數(shù)有兩個,一個是總共需要標記的樣本數(shù)目rNum,另一個是協(xié)同采樣主動學(xué)習(xí)時需要標記的主動學(xué)習(xí)樣本數(shù)目aNum。本文在rNum分別為10、20、30、40、50、60六種情況下,對兩種方法的性能進行測試。而其中采用協(xié)同采樣主動學(xué)習(xí)方法時,又分為aNum取值2、10、15、20四種情況。
圖3(a)~(d)為實驗結(jié)果,其中橫坐標為標記樣本數(shù)目的總數(shù)rNum,縱坐標分別為召回率、精度、F1值和準確率。圖中標出了隨機采樣方法與四種情況下的協(xié)同采樣主動學(xué)習(xí)方法,共5條曲線。由于精度和召回率兩個指標相互制約,而 F1值則是對二者的融合,因此重點采用F1值和準確率評價算法。從圖3(c)和3(d)可以看出,采用協(xié)同采樣主動學(xué)習(xí)方法其F1值和準確率均顯著優(yōu)于隨機采樣方法,尤其是在標記樣本數(shù)目較少時,效果更為明顯。例如在標記樣本總數(shù)為20時,采用協(xié)同采樣主動學(xué)習(xí)方法的F1值和準確率相對于隨機采樣方法,分別平均提高22.08%和13.10%。
3.4 討 論
通過實驗,證明了基于協(xié)同采樣的主動學(xué)習(xí)方法的有效性。相比于隨機采樣的分類方法,采用基于協(xié)同采樣的主動學(xué)習(xí)方法能夠顯著提高分類的各項性能指標。尤其是在標記樣本總數(shù)相對較少情況下,提升更為明顯。此外本文實驗是將總體數(shù)據(jù)集劃分為相互獨立的訓(xùn)練集和測試集,因此也證明了協(xié)同采樣主動學(xué)習(xí)方法優(yōu)異的泛化性能。該方法有效的原因在于主動學(xué)習(xí)樣本集中主要是基準分類器不能夠正確分類的樣本,這些樣本相對于隨機選取的樣本,包含更多有益于提升基準分類器性能的信息。此外由于進行兩輪訓(xùn)練,且第二輪訓(xùn)練中通過引用主動學(xué)習(xí)樣本引入測試集的樣本信息,從而提升了分類器的泛化性能。
(a) 召回率對比圖
(b) 精度對比圖
(c) F1值對比圖
面對每天捕獲到的大量多樣的惡意代碼,尤其是針對一些特殊來源收集到的樣本需要盡可能準確分析,而由于專家人數(shù)的限制使得人工標注樣本成本昂貴。因此如何能夠在標記樣本數(shù)量相對不足情況下保證分類效果,成為亟待解決的問題。針對傳統(tǒng)惡意代碼分類器由于標記樣本不足導(dǎo)致的分類效果不佳的問題,本文提出了協(xié)同采樣主動學(xué)習(xí)方法,該方法在標記樣本數(shù)量少的情況下,能夠顯著提升分類器的各項性能。
[1] Kolter J Z, Maloof M A. Learning to detect malicious executables in the wild. In: Proceedings of the tenth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, Las Vegas, USA, 2008. 470-478
[2] Balley M, Oberheide J, Ander J, et al. Automated classification and analysis of internet malware. In: Recent Advances in Intrusion Detection. Springer Berlin Heidelberg, 2007. 178-197
[3] Zhu X B, Jin X, Zhang X Y, et al. Context-aware local abnormality detection in crowded scene.ScienceChinaInformationSciences(SCIS), 2015, 58(5): 1-11
[4] Zhang X Y, Xu C, Cheng J, et al. Automatic semantic annotation for video blogs. In: Proceedings of the IEEE International Conference on Multimedia and Expo (ICME), Hannover, Germany, 2008. 121-124
[5] Zhu G, Wang J, Wu Y, et al. MC-HOG correlation tracking with saliency proposal. In Proceedings of the AAAI Conference on Artificial Intelligence (AAAI), 2016. 1-7
[6] Wang S, Zhang X Y, Yun X, et al. Joint recovery and representation learning for robust correlation estimation based on partially observed data. In: Proceedings of the IEEE International Conference on Data Mining (ICDM) Workshop, Atlantic City, USA, 2015. 1-7
[7] Zhang X Y. Preference modeling for personalized retrieval based on browsing history analysis.IEEETransactionsonElectricalandElectronicEngineering, 2013, 8 (S1): 81-87
[8] Zhang X Y. Effective search with saliency-based matching and cluster-based browsing.HighTechnologyLetters, 2013, 19(1): 105-109
[9] Zhang Y, Xu C, Zhang X, et al. Personalized retrieval of sports video based on multi-modal analysis and user preference acquisition.MultimediaToolsandApplications(MTA), 2009, 44(2): 305-330
[10] Zhang Y, Zhang X, Xu C, et al. Personalized retrieval of sports video. In: Proceedings of the ACM Multimedia (ACM MM) Workshop, New York, USA, 2007. 313-322
[11] Sathyanareayan V S,Kohlip,Bruhadeshwar B. Signature generation and detection of malware families. In: Information Security and Privacy. Springer Berlin Heidelberg, 2008. 336-349
[12] Zhang X Y, Wang S, Yun X. Bidirectional active learning: a two-way exploration into unlabeled and labeled dataset.IEEETransactionsonNeuralNetworksandLearningSystems(TNNLS), 2015, 26(12): 3034-3044
[13] Zhang X, Xu C, Cheng J, et al. Effective annotation and search for video blogs with integration of context and content analysis.IEEETransactionsonMultimedia(TMM), 2009, 11(2): 272-285
[14] Zhang X Y, Wang S, Zhu X, et al. Update vs. upgrade: modeling with indeterminate multi-class active learning.Neurocomputing(NEUCOM), 2015, 162: 163-170
[15] Zhang X. Interactive patent classification based on multi-classifier fusion and active learning.Neurocomputing(NEUCOM), 2014, 127: 200-205
[16] Zhang X Y, Cheng J, Xu C, et al. Multi-view multi-label active learning for image classification. In: Proceedings of the IEEE International Conference on Multimedia and Expo (ICME), Cancun, Mexico, 2009. 258-261
[17] Zhang X Y, Cheng J, Lu H, et al. Selective sampling based on dynamic certainty propagation for image retrieval. In: Proceedings of the Advances in Multimedia Modeling (MMM), Kyoto, Japan, 2008. 425-435
[18] Zhang X Y, Cheng J, Lu H, et al. Weighted co-SVM for image retrieval with MVB strategy. In: Proceedings of the IEEE International Conference on Image Processing, San Antonio, USA, 2007. 517-520
[19] Zhang X Y. Dynamic batch selective sampling based on version space analysis.HighTechnologyLetters, 2012, 18(2): 208-213
[20] Settles B. Active learning literature survey. Computer Sciences Technical Report 1648, University of Wisconsin-Madison, 2009
[21] Dasgupta S, Langford J. A tutorial on active learning. Tutorial summary: Active learning. In: International Conference of Machine Learning, Montreal, Canada, 2009
[22] Specht D F. Probabilistic Neural Networks. 1990 ,3: 109-118
[23] Khandoker A H, Palaniswami M, Karmakar C K. Support vector machines for automated recognition of obstructive sleep apnea syndrome from ECG recordings.IEEETransactiononInformationTechnologyinBiomedicine, 2009, 13: 37-48
Malware detection using active learning based on collaborative sampling
Zhang Kai****, Wang Dongan**, Li Chao**, Jia Bing****
(*Institute of Information Engineering, Chinese Academy of Sciences, Beijing 100093) (**National Computer Network Emergency Response Technical Team/Coordination Center of China , Beijing 100029) (***University of Chinese Academy of Sciences, Beijing 100049) (****Henan Worker’s Cultural Palace, Zhengzhou 450007)
The malware detection using classification algorithms based on machine learning was studied. In consideration of the fact that current malware recognition mainly uses traditional classification algorithms, thus leading to the application of machine learning models and low classification precision due to the unsufficiency of labelled samples, a new malware detection method using active learning based on collaborative sampling was proposed. The method can use less labelled samples to effectively recognize malware. The experiment showed that it had the higher classification precision and the better performance compared with traditional methods.
active learning, support vector machine (SVM), probabilistic neural network (PNN), collaborative sampling
10.3772/j.issn.1002-0470.2016.05.005
①國家自然科學(xué)基金(61202067, 61271275)和863計劃(2012AA013001, 2013AA013205, 2013AA013204)資助項目。
2015-12-16)
②男,1987年生,博士生;研究方向: 數(shù)據(jù)挖掘,信息安全;E-mail: zhangkai@iie.ac.cn
③通訊作者,E-mail: 549036597@qq.com