国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于多特征融合的惡意代碼分類算法

2019-10-23 12:23:56郎大鵬丁巍姜昊辰陳志遠
計算機應用 2019年8期
關(guān)鍵詞:隨機森林

郎大鵬 丁巍 姜昊辰 陳志遠

摘 要:針對多數(shù)惡意代碼分類研究都基于家族分類和惡意、良性代碼分類,而種類分類比較少的問題,提出了多特征融合的惡意代碼分類算法。采用紋理圖和反匯編文件提取3組特征進行融合分類研究,首先使用源文件和反匯編文件提取灰度共生矩陣特征,由n-gram算法提取操作碼序列;然后采用改進型信息增益(IG)算法提取操作碼特征,其次將多組特征進行標準化處理后以隨機森林(RF)為分類器進行學習;最后實現(xiàn)了基于多特征融合的隨機森林分類器。通過對九類惡意代碼進行學習和測試,所提算法取得了85%的準確度,相比單一特征下的隨機森林、多特征下的多層感知器和Logistic回歸算法分類器,準確率更高。

關(guān)鍵詞: 惡意代碼;紋理特征;操作碼序列;隨機森林;靜態(tài)分析

中圖分類號:?TP309

文獻標志碼:A

Malicious code classification algorithm based on multi-feature fusion

LANG Dapeng1,2, DING Wei1*, JIANG Haocheng1, CHEN Zhiyuang1

1.College of Computer Science and Technology,Harbin Engineerning University, Harbin Heilongjiang 150001, China?;

2.Key Laboratory of Network Assessment Technology, Institute of Information Engineering, Chinese Academy of Sciences, Beijing 100093, China

Abstract:?Concerning the fact that most malicious code classification researches are based on family classification and malicious and benign code classification, and the classification of categories is relatively few, a malicious code classification algorithm based on multi-feature fusion was proposed. Three sets of features extracted from texture maps and disassembly files were used for fusion classification research. Firstly, the gray level co-occurrence matrix features were extracted from source files and disassembly files and the sequences of operation codes were extracted by n-gram algorithm. Secondly, the improved Information Gain (IG) algorithm was used to extract the operation code features. Thirdly, Random Forest (RF) was used as the classifier to learn the multi-group features after normalization. Finally, the random forest classifier based on multi-feature fusion was realized. The proposed algorithm achieves 85% accuracy by learning and testing nine types of malicious codes. Compared with random forest under single feature, multi-layer perceptron under multi-feature and Logistic regression classifier, it has higher accuracy.

Key words:?malicious code; texture feature; opcode sequence; Random Forest (RF); static analysis

0 引言

隨著互聯(lián)網(wǎng)技術(shù)的迅速發(fā)展,惡意軟件增長的速度越來越快,其主要原因是由于加殼、混淆、反沙箱、虛擬穿透等技術(shù)的興起與普及,使傳統(tǒng)的惡意軟件分析技術(shù)受到了很大阻礙。分析技術(shù)分為靜態(tài)分析和動態(tài)分析兩種[1]:靜態(tài)分析技術(shù)主要是通過對文件結(jié)構(gòu)進行靜態(tài)分析從而獲取到文件的惡意特征,無須通過執(zhí)行程序來判斷是否是惡意軟件,常用的靜態(tài)特征檢測通常利用文件信息結(jié)構(gòu)、控制流圖、靜態(tài)信息增益(Information Gain, IG)等進行檢測;動態(tài)方法主要是通過跟蹤代碼運行時的行為軌跡來判斷是否是惡意軟件。

1 研究背景

早期與惡意樣本相關(guān)的一些研究工作主要關(guān)注如何鑒別正常軟件和惡意軟件,如2001年,Schultz等[2]通過使用樸素貝葉斯檢測惡意樣本,主要利用的特征是字符串序列、動態(tài)鏈接庫序列、系統(tǒng)調(diào)用等三種典型特征,在他們所使用的數(shù)據(jù)集上達到了較高的準確率;但由于反分析技術(shù)越來越成熟,最初的研究技術(shù)已經(jīng)無法滿足需求。

2005年,Christodorescu等[3]提出了靜態(tài)分析惡意代碼混淆技術(shù)的思想,利用控制流圖作為特征,但不能應對大量出現(xiàn)的惡意程序的混淆變種。

2006年,Kolter等[4]提取二進制可執(zhí)行文件的N元字節(jié)序列作為實驗特征,并取得了較好的實驗結(jié)果,之后這種特征被多次使用和改進。

目前許多工具都能夠可視化和操作二進制數(shù)據(jù),例如常用的文本編輯器和二進制編輯器。2011年,Nataraj等[5]就提出了將惡意軟件轉(zhuǎn)換成可執(zhí)行文件對應的灰度紋理圖,再利用灰度紋理圖生成的Gist特征向量,利用k最近鄰(k-NearestNeighbor, kNN)算法進行分類;

2014年,韓曉光等[6]又再次對紋理圖進行惡意代碼的研究,從中提取出灰度共生矩陣(Gray-Level Co-occurrence Matrix, GLCM)特征,通過位置敏感哈希函數(shù)(Location Sensitive Hash, LSH)聚類研究驗證了所提方法的有效性;

2015年,在微軟kaggle分類大賽[7]中,得到冠軍的隊伍使用的特征就包括文件圖像化特征和深層匯編特征,他們提取了文件轉(zhuǎn)換為圖片后的前1500個像素作為特征,雖然他們自己也不知道為什么這么做能得到這么好的分類效果,但也說明了圖片分類在惡意軟件分類領(lǐng)域是有效的。

對惡意代碼分類算法的研究已有很長的一段歷史,但隨著惡意代碼的加密、混淆技術(shù)的不斷成熟,使得以往研究技術(shù)的準確率在不斷下降,因此越來越多的人嘗試利用已有特征提出不同的分析方法在研究中尋找突破。

Zhang等[8]提取n-gram字節(jié)碼序列值,利用相似度的方法得到字節(jié)碼序列的特征向量,再求向量的平均值,發(fā)現(xiàn)惡意軟件和良性軟件的特征向量平均值存在比較大的差異;但只能在惡意和良性樣本中檢測有效,在種類分類中準確率低。

Kwon等[9]提取應用程序編程接口(Application Programming Interface, API)調(diào)用序列和n-gram操作碼序列,再利用深度學習多特征融合的特點對惡意家族進行分類,但類別較多時效果不理想。

Fu等[10]在原有的灰度紋理圖基礎上加了一層顏色屬性,對可移植的可執(zhí)行的文件(Portable Executable, PE)結(jié)構(gòu)的不同區(qū)塊加上不同的顏色,提取共生矩陣特征、顏色特征還有不同區(qū)塊的哈希值對惡意家族進行分類,取得了不錯的效果。

Ding等[11]提取n-gram操作碼序列,基于深度信念網(wǎng)絡對惡意軟件進行分類,證明了深度學習在惡意軟件分類中的效果會比一般的機器學習分類效果好;但該實驗樣本源于2015年的kaggle比賽,這些比賽的樣本并沒有惡意樣本源文件,只有經(jīng)過加工的反匯編文件和16進制文件,因此其樣本分類不能算嚴格意義上的惡意代碼分類。

李雪虎等[12]通過利用API調(diào)用序列作為惡意代碼分類,利用隨機森林(Random Forest, RF)效率高的特點對90萬個樣本進行分類,證明了樣本數(shù)量越多時分類成功率越高;但該實驗的樣本只分為3類,API調(diào)用序列提取還需要白箱等工具,較為麻煩。

通過以上研究可知,多數(shù)惡意代碼研究都只集中于惡意代碼、良性代碼的檢測和家族分類,而惡意代碼種類的分類較少,特別是基于靜態(tài)分析的惡意代碼分類。惡意代碼分類存在的問題有:1)動態(tài)分析周期較長、較復雜,不適合大量的惡意代碼分類;2)由于加密技術(shù)的日益成熟,PE文件特征提取需要解決的問題越來越困難;3)由于反靜態(tài)分析技術(shù)越來越成熟、惡意樣本日益多樣化使得原有的特征選擇性越來越差。針對現(xiàn)有研究方法的不足,本文提出了多特征的方法對惡意代碼進行分類。

1 特征與算法

1.1 共生矩陣特征

灰度共生矩陣是一種通過研究灰度的空間相關(guān)特性來描述紋理的常用的方法。共生矩陣由兩個位置的像素的聯(lián)合概率密度來定義,它不僅反映亮度的分布特征,還反映具有同樣亮度或者接近亮度的像素之間的位置分布特性,是有關(guān)圖像亮度變化的二階統(tǒng)計特征,也是定義一組紋理特征的基礎。

由于紋理是由灰度在空間位置上反復出現(xiàn)而形成的,因而在圖像空間中相隔某距離的兩像素之間會存在一定的灰度關(guān)系,即圖像中灰度的空間相關(guān)特性。灰度共生矩陣就是一種通過研究灰度的空間相關(guān)特性來描述紋理的常用方法。灰度直方圖是對圖像上單個像素具有某個灰度進行統(tǒng)計的結(jié)果,而灰度共生矩陣是對圖像上保持某距離的兩像素分別具有某灰度的狀況進行統(tǒng)計得到的。

1.2 Gist特征

全局特征信息又稱為“Gist”信息[13],是場景的低維簽名向量。采用全局特征信息對場景進行識別與分類不需要對圖像進行分割和局部特征提取,可以實現(xiàn)快速場景識別與分類。Oliva等[14]提出的Gist特征是一種生物啟發(fā)式特征,該特征模擬人的視覺,形成對外部世界的一種空間表示,捕獲圖像中的上下文信息。Gist特征通過多尺度多方向Gabor濾波器組對場景圖像進行濾波,將濾波后的圖像劃分為4×4的網(wǎng)格,然后各個網(wǎng)格采用離散傅里葉變換和窗口傅里葉變換提取圖像的全局特征信息。

1.3 n-gram提取操作碼特征

在計算語言和統(tǒng)計學領(lǐng)域,n-gram是指令文本中連續(xù)的n個項目。n-gram算法是基于一種假設:第n個詞出現(xiàn)與前n-1個詞相關(guān)。假設對操作碼序列push、mov、mov、push、xor、cmp、jbe進行n-gram特征提取,2-gram提取的操作碼序列為{push, mov},{mov, mov},{mov, push},{push, xor}{xor, cmp},{cmp, jbe};3-gram提取的操作碼序列為{push, mov, mov}, {mov, mov, push}, {mov, push, xor}, {push, xor, cmp},{xor, cmp, jbe};4-gram提取的操作碼序列為{push, mov, mov, push},{mov, mov, push, xor},{mov, push, xor, cmp},{push, xor, cmp, jbe},以此類推,而特征值表示特征操作碼序列出現(xiàn)的次數(shù)。本文利用遞歸反匯編算法對文件進行反匯編預處理,反匯編是將目標代碼轉(zhuǎn)為匯編代碼的過程。

1.4 隨機森林

隨機森林[15]是采用多個決策樹的投票機制來改善決策樹的方法,由多個決策樹構(gòu)成森林,算法的分類結(jié)果由這些決策樹投票得到。

決策樹在生成的過程當中分別在行方向和列方向上添加隨機過程,行方向上構(gòu)建決策樹時采用放回抽樣(Bootstraping)得到訓練數(shù)據(jù),列方向上采用無放回隨機抽樣得到特征子集,并據(jù)此得到其最優(yōu)切分點,這便是隨機森林算法的基本原理。

2 算法實現(xiàn)

2.1 代碼檢測模型

基于紋理圖特征和操作碼序列特征的惡意軟件的檢測模型分為訓練和檢測兩個階段,如圖1所示。

分類器的實現(xiàn)主要分為樣本預處理、特征提取和訓練分類器三個階段,如圖2所示。

樣本預處理? 用于改變文件的表示形式,本文采用的特征不是從源文件中提取的特征,因此需要對源文件作初步的處理才能進行特征提取,本文使用的工具和方法為交互式反匯編器專業(yè)版(IDA Pro)和紋理圖生成技術(shù)。

特征提取? 依據(jù)Gist算法和GLCM算法對紋理圖進行特征提取,利用n-gram提取操作碼序列后,再使用信息增益方法對排列的特征進行特征選擇。

訓練分類器? 主要是實現(xiàn)分類器,考慮到提取的特征不同,差異比較大,本文首先對多特征實現(xiàn)的特征矩陣進行標準化處理,再投入到隨機森林中進行訓練,將訓練好的分類器投到測試樣本中進行惡意代碼種類劃分,分析結(jié)果。

2.2 特征提取

樣本預處理階段分為反匯編和生成紋理圖兩個步驟。

第一步,對原有的惡意樣本進行批量反匯編處理,生成反匯編文件Asm文件,反匯編文件主要由匯編語言和部分定義組成。

第二步,利用紋理圖生成技術(shù)將文件代碼生成灰度紋理圖(如圖3)。以8bit為一個無符號的整型(范圍為0~255),固定的行寬為一個向量,整個文件最后生成一個二維數(shù)組。將此數(shù)組可視化為一個灰階圖像,該二維數(shù)組中每個元素的范圍為0~255,正好為灰度圖像中每個像素的取值范圍,即每個數(shù)組元素對應圖像中的一個像素,本文采用的紋理圖以256像素為行寬度,總像素除以行寬度為列高度,圖4是md5為0a28b556b4b6998265fa9fe649554533的源文件生成的紋理圖和反匯編文件生成的紋理圖。

樣本提取的特征包括紋理圖特征和操作碼序列特征。利用Gist、GLCM特征提取算法對已生成的圖片進行特征提取,提取出Gist特征集和GLCM特征集,反匯編文件和源文件一共可以提取出4組特征集,太多的特征集不一定會對惡意樣本的分類有幫助,因此需要通過實驗選擇最好的特征集。通過4組特征反復地組合投入到隨機森林中進行檢測實驗,選出分類成功率最高的特征集。操作碼序列特征需要將文件所有的操作碼提取出來,再利用n-gram算法提取特征,本文將2-gram、3-gram、4-gram、5-gram提取的操作碼序列特征投入到隨機森林算法中進行比較,通過實驗選出分類效果最好的n值。為提高操作碼序列的準確性,本文采用信息增益的方法對n-gram操作碼序列進行排序,再選擇前數(shù)個操作碼序列作為分類的特征屬性。

信息增益公式:

IG(Y | X)=H(Y)-H(Y | X)

(1)

其中:

H(X)=-∑ n i=1 p(xi)logb p(xi)

(2)

H(Y | X)=∑ x p(x)H(Y | X=x)

(3)

H(X)表示的是熵,p(x)表示特征x出現(xiàn)的概率。熵可以表示樣本的不確定性,熵越大,樣本的不確定性就越大。因此可以使用劃分前后集合熵的差值來衡量使用當前特征對樣本集合D劃分效果的好壞,H(Y | X)表示劃分后的熵。H(Y | X)越小說明使用此特征劃分得到的子集的不確定性越小,因此H(Y)-H(Y | X)差異越大,說明使用當前特征劃分數(shù)據(jù)集D,其不確定性越小,反之不確定越大。

2.3 融合分類

將多類特征融合成矩陣后,會存在提取的值相差較大的情況,有些值在1000左右,而有些值在0到1之間。為了防止較大的數(shù)據(jù)差異,本文最后對合成的特征矩陣進行了標準化處理。標準化處理只是用于數(shù)值的縮放,使得所有特征在同一量綱下進行數(shù)據(jù)處理,避免有些特征整體偏大對整體處理造成偏差。例如MD5為002d9c1c804bd26e362c89b1042b319 提取的特征之一的contrast值為1684.17,而提取的energy值只有0.107。通過計算特征標準差為685.5,平均值為285。標準化處理后的contrast值為2.04,energy值為-0.415。

z=(x-μ)/δ

(4)

其中:其中δ代表標準差,μ代表的是平均值。數(shù)據(jù)的標準化(normalization)是將數(shù)據(jù)按比例縮放,使之落入一個小的特定區(qū)間,使不同維度之間的特征在數(shù)值上有一定比較性,可以大大提高分類器的準確性。

本文利用隨機森林為分類器進行分類研究,隨機森林對特征集使用Bootstraping方法隨機有放回采樣選出k個樣本集,共進行k次采樣,生成k個訓練集。對每個不同的訓練集利用決策樹進行訓練,生成k棵決策樹組成的隨機森林,對于最終的分類問題,按多棵樹分類器投票決定最終分類結(jié)果,由多棵樹預測值的均值決定最終預測的結(jié)果,如圖5所示。

3 實驗及結(jié)果分析

3.1 實驗樣本和度量指標

本文實驗樣本來源malwaredb(http://malwaredb.malekal.com/)篩選的2625個惡意代碼組成的數(shù)據(jù)集,分為9類,惡意樣本的分類較多,包括后門、邏輯炸彈、特洛伊木馬、蠕蟲、細菌、病毒等,本文篩選的樣本主要分為廣告類(AdWare)、后門類(Backdoor)、木馬類(Trojan)、風險工具(RiskTool)、蠕蟲(Worm)、病毒(Virus)類,樣本分類以卡巴斯基的分類標準為依據(jù)。本文還對惡意樣本進行了細分,篩選了木馬樣本中的4類樣本進行實驗,包括Trojan-Dropper、Trojan-PSW、Trojan-Ransom和Trojan-Spy。惡意軟件的分類情況如表1所示。

[2]SCHULTZ M, ESKIN E,ZADOK E, et al. Data mining methods for detection of new malicious executables [C]// Proceedings of the 2001 IEEE Symposium on Research in Security and Privacy. Piscataway, NJ: IEEE, 2001: 38-49.

[3]CHRISTODORESCU M, JHA S, SESHIA S A, et al. Semantics-aware malware detection [C]// Proceedings of the 2005 IEEE Symposium on Security and Privacy. Piscataway, NJ: IEEE, 2005: 32-46.

[4]?KOLTER J Z, MALOOF M A. Learning to detect and classify maliciousexecutables in the wild [J]. Journal of Machine Learning Research, 2006, 7(1): 2721-2744.

[5]?NATARAJ L, KARTHIKEYAN S, JACOB G, et al. Malware images: visualization and automatic classification[C]// Proceedings of the 8th International Symposium on Visualization for Cyber Security. New York: ACM, 2011: No.4.

[6]?韓曉光,曲武,姚宣霞,等.基于紋理指紋的惡意代碼變種檢測方法研究[J].通信學報,2014,35(8):125-136. (HAN X G, QU W, YAO X X, et al. Research on malicious code variant detection method based on texture fingerprint [J]. Journal on Communications, 2014, 35(8): 125-136.)

[7]??BINDOG. GitHub [EB/OL]. [2018-08-18]. https://github.com/bindog/ToyMalwareClassification/.

[8]?ZHANG F, ZHAO T. Malware detection and classification based on n-grams attribute similarity [C]// Proceedings of 2017 IEEE International Conference on Computational Science and Engineering and IEEE International Conference on Embedded and Ubiquitous Computing. Washington, DC: IEEE Computer Society, 2017: 793-796.

[9]?KWON I, IM E G. Extracting the representative API call patterns of malware families using recurrent neural network [C]// Proceedings of the 2017 International Conference on Research in Adaptive and Convergent Systems. New York: ACM, 2017: 202-207.

[10]?FU J, XUE J, WANG Y, et al. Malware visualization for fine-grained classification [J]. IEEE Access, 2018, 6: 14510-14523.

[11]?DING Y, ZHU S. Malware detection based on deep learning algorithm [J]. Neural Computing and Applications, 2017, 31(2): 461-472.

[12]?李雪虎,王發(fā)明,戰(zhàn)凱.基于大樣本的隨機森林惡意代碼檢測與分類算法[J].信息技術(shù)與網(wǎng)絡安全,2018,37(7):3-5,21. (LI X H, WANG F M, ZHAN K. Large sample-based random forest malicious code detection and classification algorithm [J]. Information Technology and Network Security, 2018, 37(7): 3-5,21.)

[13]?潘良敏.基于GIST全局特征的釣魚網(wǎng)站聚類算法研究[D].長沙:中南林業(yè)科技大學,2018:1-58. (PAN L M. Research on phishing website clustering algorithm based on the global characteristics of GIST [D]. Changsha: Central South University of Forestry and Technology, 2018: 1-58.)

[14]?OLIVA A, TORRALBA A. Modeling the shape of the scene: a holistic representation of the spatial envelope [J].International Journal of Computer Vision,2001,42(3):145-175.

[15]?戴逸輝,殷旭東.基于隨機森林的惡意代碼檢測[J].網(wǎng)絡空間安全,2018,9(2):70-75. (DAI Y H, YIN X D. Malicious code detection based on random forest [J]. Cyberspace Security, 2018,9(2):70-75.)

猜你喜歡
隨機森林
隨機森林算法在中藥指紋圖譜中的應用:以不同品牌夏桑菊顆粒指紋圖譜分析為例
基于隨機森林的登革熱時空擴散影響因子等級體系挖掘
基于隨機森林的HTTP異常檢測
個人信用評分模型比較數(shù)據(jù)挖掘分析
時代金融(2017年6期)2017-03-25 22:21:13
隨機森林在棉蚜蟲害等級預測中的應用
基于二次隨機森林的不平衡數(shù)據(jù)分類算法
軟件(2016年7期)2017-02-07 15:54:01
拱壩變形監(jiān)測預報的隨機森林模型及應用
基于隨機森林算法的飛機發(fā)動機故障診斷方法的研究
基于奇異熵和隨機森林的人臉識別
軟件(2016年2期)2016-04-08 02:06:21
基于隨機森林算法的B2B客戶分級系統(tǒng)的設計
新源县| 理塘县| 玛纳斯县| 丹阳市| 康保县| 无极县| 德州市| 新平| 牙克石市| 宁乡县| 武功县| 明溪县| 东乡县| 张家界市| 卓资县| 康平县| 苏尼特左旗| 枣庄市| 蓬莱市| 万州区| 电白县| 上高县| 灯塔市| 丹巴县| 瑞安市| 清水县| 隆回县| 宿松县| 深水埗区| 竹溪县| 综艺| 县级市| 江西省| 镇康县| 博客| 蛟河市| 余干县| 诏安县| 吉安县| 吴桥县| 博乐市|