999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于特征權重的惡意軟件分類方法

2022-11-25 02:56:08宋荊漢萬振華
計算機技術與發展 2022年11期
關鍵詞:特征提取分類特征

葉 彪,李 琳,丁 應,宋荊漢,萬振華

(1.武漢科技大學 計算機科學與技術學院,湖北 武漢 430065;2.智能信息處理與實時工業系統湖北省重點實驗室,湖北 武漢 430065;3.上海航天精密機械研究所,上海 201600;4.深圳開源互聯網安全技術有限公司,廣東 深圳 518000)

0 引 言

由于惡意軟件帶來的經濟損失逐年上升,例如震網病毒Stuxnet[1]、勒索病毒WannaCry[2]。惡意軟件檢測和分類變得愈發重要。惡意軟件分類大體的框架可以分為三個部分:數據處理、特征提取和分類器設計,其中特征處理和分類器設計是惡意軟件分類的重要技術手段,數據處理是貫徹始終的方法。在特征提取的階段,要盡可能篩選信息增益大的特征。特征提取的好壞直接影響分類的結果。近幾年惡意代碼靜態特征提取主要基于字節序列、可閱讀字符串、文件頭部信息、熵、動態鏈接庫等特征,然后使用機器學習或者深度學習對特征進行訓練和分類。

特征提取方法用于深度學習中,Schultz等人[3]首次將N-gram提取方法引入惡意軟件的特征提取工作。他們首先將惡意文件的字節轉化為16進制,然后將其劃分為多組字節序列,再利用N-gram進行提取,將結果放入多種分類器中進行訓練,證明了這種方法比單純的基于簽名的方法更好。Zhang Hanqi等人[4]提出了一種靜態提取方法,將操作碼轉化為N-gram序列,針對勒索病毒取得了不錯效果。Nataraj等人[5]提出將惡意軟件轉化為灰度圖像的方法,驗證了圖像作為中間表示的可行性。徐玄驥等人[6]以及楊春雨等人[7]使用多個特征進行融合的方法來檢測惡意軟件,該方法比單純使用一種特征的效果要好。蔣永康等人[8]將惡意代碼的匯編指令轉化為圖像矢量,該模型在微軟big2015數據集上的交叉驗證準確率達到了97.87%。傳統的特征提取方法沒有考慮特征權重的思想,每個樣本的特征向量都非常大,運行十分緩慢,因此需要引入特征權重對特征進行篩選。

在特征權重算法中,最經典的就是由Salton等人[9]提出的TFIDF算法,該算法由詞頻(TF)和逆文檔頻率(IDF)組成。它的主要思想是特征在文檔中出現的頻率越高,出現該特征的文檔數越少,則特征對分類的區分度越大。該算法和1-gram提取進行結合可以有效降低特征維度、提高信息增益并減少計算時間。基于該算法的相關研究取得了豐富的成果,例如吳思慧等人[10]提出將TFIDF自注意層和長短期記憶網絡結合使用,在垃圾短信識別上準確率更高,速度更快。但是在惡意軟件檢測與分類領域,相關文獻十分稀少。并且該算法本身有一個缺陷,沒有利用標簽信息,是一種無監督的特征權重算法。

鑒于上述情況,該文提出了一種改進的特征權重方法,利用標簽信息,提升了惡意軟件分類的效率。貢獻如下:改進了特征權重方法并將其引入惡意軟件分類;從理論上解釋了特征權重對特征提取的重要性;實驗對比了不同模型的分類準確率和時間開銷。

1 關鍵技術

1.1 N-gram特征提取算法

N-gram是NLP(Natural Language Processing,NLP)中大詞匯連續語音識別常用的一種語言模型[11],它的基本思想是統計一個特定長度(N)單詞的頻度,每1個單詞塊為1gram。通過該方法可以提取特征,從而區分不同類別的語義信息,在惡意軟件的特征提取階段同樣可以用到N-gram的方法。

常用的是二元的Bi-gram和三元的Tri-gram。當對一個由256個字組成的樣本進行Bi-gram提取時,最多將產生65 536個詞語,進行Tri-gram提取時將產生16 777 216個詞語,特征提取的時間占所有時間的90%以上。由于惡意樣本通常是海量的,因此時間成本很重要。該文使用的1-gram是N-gram的一種特殊情況,此時滑動窗口N為1,可以直接理解為統計單個詞語的個數或者頻度。該方法為先利用訓練集產生一定量的特征詞,然后根據特征詞庫對每個樣本進行特征詞個數統計,可以節約大量的計算時間。

1.2 特征權重算法

1.2.1 TFIDF算法

傳統的特征權重算法是詞頻-逆向文件頻率算法TFIDF(Term Frequency-Inverse Document Frequency),它是一種用于信息檢索與數據挖掘的常用加權技術,源于NLP領域常用于挖掘文章中的關鍵詞。TFIDF有兩層意思,一層是詞頻(TF),形容一個詞語在文章中的出現次數。另一層是逆文檔頻率(IDF),與此相關的是包含一個詞條的文檔數,則一個單詞的TFIDF值就是二者的乘積。

TFIDF=TF×IDF

(1)

逆文檔頻率思想認為出現特征的文檔數越大,則該特征對分類的區分度越小,此方法可以突出重要詞,抑制次要詞[12]。但是此方法并不完善,沒有利用到標簽的信息,因此只需要將逆文檔頻率這個概念引入標簽信息,便可以得到有監督的特征提取算法。

1.2.2 改進的特征權重算法

首先在訓練集上統計一定量每個類別中1-gram候選詞。針對一個候選詞a進行分析,計算該詞在數據集中出現的概率:

(2)

其中,PA為a在數據集中出現的概率,Na為a在數據集中出現的次數,ND為數據集的樣本數量。

計算候選詞a在一個類別C中出現的概率:

(3)

其中,Ca為a在C中出現的次數,NC為C的樣本數。

計算候選詞a的特征權重:

(4)

通過上式計算出的Weight(a)即為候選詞a的特征權重。信息熵(Entropy)是度量樣本集合純度最常用的一種指標,在決策樹算法中廣泛使用。假定樣本集合D中第C類樣本所占的比例是Ck(k=1,2,…,|y|),則D的信息熵定義為:

(5)

Entropy(D)的值越小,則D的純度越高。一般而言,特征詞a的特征權重越大,那么使用a對數據集進行劃分得到的純度提升就越大,也就是說特征詞a對分類起到的作用越大。計算每個類別中所有候選詞的特征權重,然后將所有類別的特征權重進行合并去重,降序排序后取前面的候選詞作為特征詞庫,通過這個特征詞庫對數據集進行特征提取。

1.3 卷積神經網絡

卷積神經網絡(Convolutional Neural Network,CNN)是基于前饋神經網絡的一種深度學習模型,提供了一種端到端的學習模型,模型中的參數可以通過傳統的梯度下降方法進行訓練,經過訓練的CNN能夠學習到圖像中的特征,并且完成對圖像特征的提取和分類工作[13]。CNN通過卷積和池化操作進行深度學習和參數約簡,第一層為輸入層,中間有若干隱藏層,最后一層為全連接層,輸出分類結果。

同一個家族的惡意軟件存在較大的相似性,因此將同一家族的ASM文件提取特征后轉化為灰度圖同樣具有相似性,加上CNN對圖片識別的出色效果,以及CNN的運算速度較快,因此選用CNN作為分類器。該文采用了4層CNN的結構,使用3*3的卷積核和2*2的池化,使得分類更為快速準確;并在每一層中引入了Relu,而不是整個網絡只使用一層Relu。

1.4 模型的總體框架

如圖1所示,該方法的流程為:首先將數據分成訓練集和測試集,在訓練集中對所有樣本執行特征權重算法,找出一定量的特征詞,然后根據該特征詞庫對訓練集和測試集進行特征提取,生成所有樣本的特征圖,將特征圖傳入CNN模型進行訓練和分類,最后得出模型的分類結果。

2 實驗過程與結果分析

2.1 數據集

由于該文研究惡意軟件的靜態檢測,因此選用的數據集為微軟于2015年在kaggle平臺發布的big2015數據集,該數據集已經成為惡意軟件研究人員的基準數據集,并被大量引用[14]。該文使用的惡意軟件表現形式是ASM文件,該文件是通過IDA工具反匯編生成的。big2015中共有21 741個樣本,但是只有10 868是有標簽的樣本,該數據集有9個惡意軟件類別,每個類別的名稱、數目和標簽如表1所示。將10 868個有標簽的數據按類別隨機劃分為訓練集(80%)和測試集(20%)。

2.2 模型訓練

2.2.1 ASM文件的特征提取

ASM文件內有push、mov、cmp等操作碼,還有各種其他英文字段,由于ASM文件中還有一些16進制字段,比如BD、E3等會被誤判為英文單詞,所以通過正則式方法只提取長度大于等于3的單詞。

表1 big2015數據集中的樣本類別及數目

通過python代碼提取的操作碼按照頻率從高到底排列,比如dword、byte、segment等。

在訓練集上對每個類別分別提取300個頻率高的候選詞,然后對每個類別所有候選詞進行第一節中的特征權重計算,合并去重,然后進行降序排列,取前256個候選詞作為特征詞庫。表2顯示了權重靠前的幾個特征詞的權重,雖然dword這個特征詞出現頻率非常高,但是它在所有類別里出現得很平均,因此特征權重的值反而很小。endp這個詞的出現頻率很低,但是它在各個類別中的分布不均勻,因此特征權重很高。

表2 權重靠前的幾個特征詞的權重

通過該特征詞庫對所有ASM文件進行特征提取,統計該特征中單詞的出現次數,然后將數據進行取整并標準化。例如特征詞庫第一個詞是endp,第二個詞是xchg等等,然后對于一個樣本,經過統計,endp出現了100次,xchg出現了150次,則即可得到該樣本的特征向量:

(100,150,…)

(6)

為了消除同一個特征向量中不同特征間量綱的影響,提高數據之間的可比性,將數據統一到同一個量綱下。該文選用(max,min)標準化方法,先得到一個特征向量中的最大值xmax和最小值xmin,標準化的公式如下:

(7)

將數據轉化到0~255的區間,之所以選用這個區間,是因為該區間兼顧了機器學習的輸入要求(數字過大會導致運算過于緩慢)、CNN的輸入要求、圖像可視化要求(0~255對應灰度像素的范圍)。

最后將長度為256的特征向量轉化為16*16的灰度圖,作為單個文件的特征圖,傳入CNN進行訓練。

如圖2所示,每種類別的樣本各選取一個產生一張灰度圖,每張圖就代表一個樣本的最終特征圖。觀察這九張圖,例如對比第一個像素,標簽為6的樣本明顯比其他的要亮;對比第二個像素,標簽3和5的樣本明顯比其他的要亮等等。特征提取的目的就是在有限的特征向量上盡可能提高不同類別的區分度,因此圖2可以直觀地體現出改進的特征權重算法的作用。

2.2.2 CNN網絡設計

通過對多種優化器進行實驗對比,選用收斂速度和準確率較好的Adam優化器。訓練批次為128,訓練輪次為100,并使用變化學習率,設置初始學習率為0.005,每經過5輪迭代,將學習率變為原0.9倍,以達到逐漸逼近最優值的目的。CNN的架構參數如表3所示,采用的CNN總體上分為四層,輸入為16*16的灰度圖,其中前三層為卷積-激活-池化的組合重復三次,最后一層為全連接層,輸出為9個類別。

表3 CNN架構參數

2.2.3 實驗環境

(1)處理器:Intel(R) Core(TM) i7-6700 CPU;

(2)內存:8 GB;

(3)硬盤:120 GB SSD+1TB HDD;

(4)集成開發環境:PyCharm Community Edition 2020.3 x64;

(5)Python版本:3.8;

(6)深度學習框架:Torch 1.7.1。

2.3 評價指標

使用accuracy(準確率)、precision(精準率)、recall(召回率)和f1進行模型性能的評估,其定義如下[8]:

記S為數據集中的樣本數量,i表示S中的第i個樣本,y表示預測值,Y表示真實值,l(x)為指示函數,則:

(8)

其次,定義:

(9)

(10)

令s為S的子集,則:

(11)

(12)

(13)

其中,accuracy為模型預測正確占總量比例; precision為預測正確中真正確的比例;recall所有真正確中被正確預測的比例;f1是precision和recall二者的加權數值。

2.4 實驗結果

實驗結果如表4所示,可見四個指標均在99%以上。

表4 實驗結果

分類器分類效果的混淆矩陣如圖3所示,圖中豎向0到8表示樣本的真實標簽(可以參考表1),橫向0到8表示該分類器的分類結果,圖中任一點表示某一類測試數據的真實標簽和測試標簽相等的頻率。該圖像的數據已經進行了歸一化,每一行的數據加起來是1,代表該真實標簽的數據總量為1(由于只取兩位有效數字,因此存在0.01的誤差),右邊的對比指示條代表正確率大小,顏色越深則越接近1,顏色越淺則越接近0。用混淆矩陣來評判分類器的表現,如果數據更加集中在對角線上,則代表分類器的效果越好,數據越分散則分類器效果越差。真實標簽為1、2、3、4、6、8時,預測標簽也分別是1、2、3、4、6、8的頻率為1,代表幾乎所有標簽為1、2、3、4、6、8的數據都被分類正確了。真實標簽為7時,有97%的數據被分類器正確分類了,還有3%的數據被錯誤分類為0、3類。

2.5 對比實驗

如圖4所示,使用基于頻率特征提取的方法進行分類,該方法先統計各個特征詞的頻率,并簡單選取在全部樣本中出現頻率高的特征詞,然后進行特征提取。對比圖3(文中方法)可以發現,該方法總體上效果還不錯,但第四類的查全率比較低,只有80%的樣本被正確分為第四類,而文中方法在第四類的查全率是100%。簡單的基于特征頻率的特征提取方法只是關心所有樣本的特征頻率,只是取所有樣本特征中頻率靠前的特征,有些頻率不高但是信息增益很大的特征容易被忽視。

文中方法不再簡單地關注特征詞在所有樣本中出現的概率,而是考慮信息增益的思想,只關注對分類有幫助的特征,因此明顯優于基于頻率特征提取的方法。

big2015數據集上的分類效果對比如表5所示。

表5 big2015數據集上的橫向對比

通過實驗結果與其他參考文獻實驗結果的對比,第一行為冠軍方法,第六行為使用TFIDF方法做的對比實驗,最后一行為該文采用的方法。可以清晰地看到,文中方法在準確率上優于操作碼頻率提取方法、kNN、圖像矢量這些自動提取方法,逼近該數據集上的冠軍方法(準確率99.83%),而且在特征的預處理、訓練時間和預測時間上要明顯優于冠軍方法。該文的特征選擇方法準確率比TFIDF方法略高,體現了文中方法對TFIDF提取方法的優越性,在預處理時間上,兩者不分上下,因為二者都要經過特征提取和CNN學習的過程,只是權重策略算法不同而已。除此之外,還可以發現手動提取特征比自動提取特征的效果要好,預處理的時間要更短一些;諸如在特征提取階段直接使用CNN進行自動提取的方法可以減少人工干預,因而容錯率更高,但效果和處理時間上沒有手動提取的好。

3 結束語

在人們的工作生活和計算機產品的聯系日益緊密的今天,惡意軟件的識別和分類工作是人們能享受到信息時代便利和數據安全的保障。在應對諸如零日漏洞等問題上,惡意軟件分類效率是至關重要的,準確率和檢測時間就是效率的體現。所提方案優化了傳統特征權重算法,選出了信息增益高的特征詞,因而增加了分類的效率;通過結合CNN網絡模型,完成了惡意軟件的高效分類工作。但一些模型參數尚有調整優化空間,例如特征權重公式和CNN框架均未達到最優,且未利用字節碼數據集,這些問題都是以后的優化方向。

猜你喜歡
特征提取分類特征
分類算一算
如何表達“特征”
基于Gazebo仿真環境的ORB特征提取與比對的研究
電子制作(2019年15期)2019-08-27 01:12:00
不忠誠的四個特征
當代陜西(2019年10期)2019-06-03 10:12:04
分類討論求坐標
數據分析中的分類討論
教你一招:數的分類
抓住特征巧觀察
一種基于LBP 特征提取和稀疏表示的肝病識別算法
基于MED和循環域解調的多故障特征提取
主站蜘蛛池模板: 精品欧美一区二区三区在线| 国产第二十一页| 国产不卡一级毛片视频| 东京热av无码电影一区二区| 毛片网站在线看| 欧美一区二区福利视频| 免费观看国产小粉嫩喷水| 精品久久高清| 午夜国产精品视频| 精品欧美视频| 午夜国产精品视频| 国产91成人| 亚洲国产精品久久久久秋霞影院 | 亚洲第一成年免费网站| 国产SUV精品一区二区| 国产乱子伦手机在线| 欧美精品在线免费| 91久久精品国产| 久久特级毛片| 福利小视频在线播放| 91久久偷偷做嫩草影院免费看| 在线观看网站国产| 亚洲中文字幕在线精品一区| 老司机精品99在线播放| 国产免费久久精品99re不卡| 成人日韩视频| 免费无码AV片在线观看中文| 亚洲成av人无码综合在线观看| 亚洲浓毛av| 欧美日韩国产在线播放| 99热这里只有精品5| 国产h视频免费观看| 中文字幕一区二区人妻电影| 久久婷婷色综合老司机| 亚洲永久视频| 欧美成在线视频| 亚洲国产综合精品一区| 国产亚洲精品无码专| 国产精品综合久久久| 亚洲最大看欧美片网站地址| 四虎影视库国产精品一区| 国产成人精品高清不卡在线| 在线99视频| 国产精品第| 国产va欧美va在线观看| 亚洲AⅤ无码国产精品| 一级毛片视频免费| 青草免费在线观看| h视频在线播放| 夜色爽爽影院18禁妓女影院| 毛片大全免费观看| 亚洲精品中文字幕午夜| 九九久久99精品| a在线亚洲男人的天堂试看| 国产欧美日韩资源在线观看| 成年人免费国产视频| 九九九精品成人免费视频7| 性欧美在线| 韩日午夜在线资源一区二区| 久久综合伊人 六十路| 亚洲乱亚洲乱妇24p| 色悠久久综合| 国产91线观看| 国产又色又爽又黄| 91精品啪在线观看国产| 巨熟乳波霸若妻中文观看免费| 亚洲av中文无码乱人伦在线r| 成人国产小视频| 宅男噜噜噜66国产在线观看| 露脸一二三区国语对白| 在线看片中文字幕| 国产精品开放后亚洲| 国产女人爽到高潮的免费视频| 自拍偷拍欧美日韩| 亚洲成人动漫在线观看| 久久精品人人做人人爽97| 国产 日韩 欧美 第二页| 婷婷色婷婷| 夜夜操国产| 热九九精品| 色综合久久久久8天国| 亚洲欧洲自拍拍偷午夜色|