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

?

基于紋理特征和隨機森林的惡意代碼分類研究

2020-05-30 03:32:58劉宇強范志鵬
關(guān)鍵詞:字節(jié)紋理灰度

劉宇強, 李 軍, 范志鵬

(湖北工業(yè)大學(xué)計算機學(xué)院, 湖北 武漢 430068)

惡意代碼檢測技術(shù)主要分為兩類[1-2]:靜態(tài)的、基于代碼程序結(jié)構(gòu)、控制流特征的技術(shù)和動態(tài)的、基于行為特征的技術(shù)。這些技術(shù)包括建立簽名數(shù)據(jù)庫。主要的限制是,這些技術(shù)無法檢測到一個新的惡意軟件,直到它的簽名被更新。動態(tài)技術(shù)在執(zhí)行過程中會分析惡意軟件樣本。檢測惡意軟件是否類似報告樣本的行為。然而,與靜態(tài)技術(shù)相比,動態(tài)技術(shù)更為精確,因為在惡意軟件執(zhí)行過程中更難掩蓋其行為。但風(fēng)險是檢測和識別過程可能已經(jīng)對用戶的工作造成了傷害。

近年來,許多研究人員使用機器學(xué)習(xí)[3](Machine Learning,ML)技術(shù)動態(tài)處理不斷變化的惡意軟件檢測行為。機器學(xué)習(xí)技術(shù)將一個標記的數(shù)據(jù)集作為訓(xùn)練數(shù)據(jù)集,并開發(fā)一個區(qū)分惡意軟件和良性樣本行為的模型。訓(xùn)練后的模型能夠?qū)y試樣本進行分類。ML技術(shù)可以通過大量的標記訓(xùn)練數(shù)據(jù)中學(xué)習(xí)并提高預(yù)測精度。

為了確定惡意代碼功能屬性并對其進行分類,研究人員探索了許多對惡意代碼檢測和識別的方法[4-5],但面對大量使用混淆技術(shù)的惡意代碼來說,傳統(tǒng)的分析方法都存在一定的局限性[6]。為了克服加殼加密技術(shù)的影響,將惡意代碼進行神經(jīng)網(wǎng)絡(luò)訓(xùn)練已成為了惡意代碼分類檢測的主流趨勢。分類過程主要步驟:1)預(yù)處理,將惡意代碼二進制文件進行數(shù)據(jù)預(yù)處理,構(gòu)建成為符合分類器的輸入模型;2)特征選擇,不同的分類器有著不同的特征選擇方法,依次選擇特征集中影響最大的幾個特征項的特征值作為特征子集,從而構(gòu)建新的特征集;3)分類器訓(xùn)練與分類運算[7]。惡意軟件分類的關(guān)鍵是分類模型的選擇和訓(xùn)練階段定義模型的參數(shù)。模型確定后,可以用于新數(shù)據(jù)的分類。這里選擇隨機森林模型作為分類器,因為它能夠有效地處理大型和不平衡的數(shù)據(jù)集。此外,它可以處理大量的特征,而不會過度擬合。同時,考慮到惡意程序的長度、原理、以及各種技術(shù)的應(yīng)用導(dǎo)致其代碼千差萬別,直接導(dǎo)致其代碼信息很難識別,筆者提出了惡意代碼的圖像紋理信息作為特征數(shù)據(jù),將其二進制信息理解為圖像,設(shè)計了單字節(jié)、雙字節(jié)和三字節(jié)圖像紋理,達到提取特征的目的。

1 相關(guān)理論

1.1 灰度紋理圖像特征

灰度共生矩陣GLCM(Gray Level Co-Occurrence Matrixes)是研究圖像像素的空間相關(guān)特性的常用方法。利用灰度紋理特征來表示大規(guī)模的圖像紋理數(shù)據(jù)集可以以最小的資源占比來歸納所有的圖像,Gotlied等[8]在研究共生矩陣中研究出的一種歸納特征提取的方法,該方法后被證實對于細微紋理歸納時有良好的效果。Kancherla等[9]提出用灰度紋理特征來對惡意代碼進行分類檢測并取得了95%的準確率,在此之后研究人員逐步開始利用灰度圖像來進行惡意代碼研究。

通常,GLCM是像素距離和角度的矩陣函數(shù),它不僅能反映亮度的分布特征,還能描述給定圖像的紋理特征??梢詾檎麄€圖像計算GLCM,也可以為像素值周圍的小窗口計算GLCM。雖然給定的圖像灰度為256,但在計算灰度共生矩陣導(dǎo)出的紋理特征時,圖像的灰度遠小于256。主要是由于矩陣維數(shù)較大,窗口尺寸較小,灰度共生矩陣不能很好地表示紋理,同時計算量大大增加。因此在計算灰度共生矩陣之前,需要對圖像進行直方圖化處理,以降低圖像的灰度值,圖像的灰度為8或16。給定圖像灰度共生矩陣的構(gòu)造公式如下:

(1)

式(1)是對圖像上保持一定距離的像素點g1,g2之間的灰度情況進行統(tǒng)計,根據(jù)圖像中兩個不同像素之間的距離為d,方位關(guān)系度數(shù)為θ的兩個像素點構(gòu)建聯(lián)合概率分布p(g1,g2|d,θ)。將距離d的值設(shè)置為1,θ設(shè)置為0°、45°、90°和135°

(2)

R={N(N-1)θ=0°,90°(N-1)2θ=45°,135°

通常以三個角度的聯(lián)合統(tǒng)計數(shù)據(jù),就能夠歸納出原始圖像的所有特征,通過選擇其中影響最大的幾個特征作為特征值,可以在關(guān)鍵信息丟失率最低的情況下進行降維處理,GLCM算法能夠找出其相關(guān)性過大的部分進行分割,除了保存關(guān)鍵信息外,也能夠很好地剔除掉干擾混淆的部分。

根據(jù)上述過程,當角度分別為0°、45°、90°和135°時,可以計算出四個GLCM。計算結(jié)果反映了圖像的紋理特征,如角二階矩、熵、逆微分矩、慣性矩和相關(guān)性。

例如熵是對圖像信息的度量。從熵的值可以看出圖像紋理的不均勻程度或復(fù)雜程度,且CLCM散射元素越多,圖像熵的值越大。二維數(shù)組數(shù)字差異變化越大,表現(xiàn)出的圖像越復(fù)雜,具體公式為:

(3)

其中k為灰度圖像尺寸大小,通過對圖像當中任意像素點g1,g2構(gòu)造出的灰度共生矩陣進行統(tǒng)計,計算出4個方向上的熵值,將所有方向結(jié)果上的值進行求和,可以還原出原始灰度圖像的特征圖像。

1.2 隨機森林RF(Fandom Forest)分類器

隨機森林算法是一種能夠?qū)Υ罅繑?shù)據(jù)進行準確分類的新型分類技術(shù)[10]。它既可以用于故障的分類,也可以用于故障的回歸類型?;跇涞膶W(xué)習(xí)算法是機器學(xué)習(xí)和數(shù)據(jù)科學(xué)中應(yīng)用最廣泛的學(xué)習(xí)方法之一。

由于隨機森林分類器建立了多個決策樹,并根據(jù)這些樹的投票結(jié)果對最終結(jié)果進行評估,從而消除了單決策樹方法中存在的過度擬合問題。合并樹的過程稱為集成方法,從每棵樹中對向量進行分類,并將其視為類的投票,然后選擇投票最多的分類器作為向量。它是以分治方法為基礎(chǔ)的集成模型分類器。一組個體的弱學(xué)習(xí)者可以通過這個過程共同形成一個強學(xué)習(xí)者。

圖 1 隨機森林整體模型

假設(shè)數(shù)據(jù)集T具有M個特征,n個數(shù)據(jù)。T表示為X1,Y1;X2,Y2;…;Xn,Yn。其中Xi={Ai1,Ai2,…,AiM}為M個特征值創(chuàng)建的第i個向量,Yi為對應(yīng)向量的輸出類。通過自助法重采樣技術(shù)將原始數(shù)據(jù)集T有放回的重復(fù)抽取n個樣本,形成新的訓(xùn)練集樣本Ti,新的訓(xùn)練集樣本大小與原始訓(xùn)練集樣本大小相同,這一步驟重復(fù)S次形成S個數(shù)據(jù)集:T1,T2,…,TS,通常隨機森林分類器使用輸入數(shù)據(jù)的2/3作為訓(xùn)練集,1/3作為測試集,這一類數(shù)據(jù)稱為包外數(shù)據(jù)。對于一組在數(shù)據(jù)集Ti上被選擇的向量Xi,Yi,在進行重構(gòu)數(shù)據(jù)集時,可以被重新用來創(chuàng)造新的數(shù)據(jù)集Tj,由于隨機采樣是通過替換完成的,任何向量Xi,Yi都可以被不同的數(shù)據(jù)集Ti選擇多次,并且存在一些從未被任何Ti選擇的向量,這種情況被稱為bagging,它基于引導(dǎo)聚合產(chǎn)生[11]。對于每個數(shù)據(jù)集Ti都會形成一個決策樹Si,通過決策樹對輸出向量Vi進行分類,最后統(tǒng)計V1,V2,…,Vs的輸出結(jié)果,取最大的分類結(jié)果來決定Vi的類別。

1.3 K-MEANS聚類分類方法

K-means聚類是一種基于相似性將數(shù)據(jù)對象分為K個簇的分塊聚類方法[12]。在算法中,必須指定集群的數(shù)量K。最初選擇K個質(zhì)心。每個數(shù)據(jù)對象都被分配給包含其最近質(zhì)心的簇。初始質(zhì)心的選擇是隨機的。用歐幾里德距離、余弦相似性來衡量與質(zhì)心和數(shù)據(jù)對象的接近程度。初始分組完成后,計算每個簇的新質(zhì)心以及每個數(shù)據(jù)點到每個中心的距離。根據(jù)距離重新分配數(shù)據(jù)點。如果該點與簇的所有成員之間的距離之和不能再最小化,則將簇中的點視為質(zhì)心。K-means聚類的主要目的是最小化聚類成員與其質(zhì)心之間的距離之和。

假設(shè)數(shù)據(jù)集X1,X2,…,Xn中,每一個樣本Xi均為d維實向量,k-means方法就是將這n個樣本劃分到k個集合當中,其中k≤n,同時滿足劃分后的聚類平方和最小為Ks,具體公式為:

(4)

其中ui為數(shù)據(jù)集X1,X2,…,Xn中所有點的平均值。

2 改進的灰度紋理圖像特征

惡意軟件中的單個操作碼與普通代碼并無太大差異,而較長的操作碼具有預(yù)測現(xiàn)象發(fā)生的能力。每個惡意軟件文件的二進制代碼長度不一,經(jīng)過文本可視化后[3],可以看到惡意軟件代碼可以理解為由眾多的1字節(jié)16進制數(shù)構(gòu)成的1維向量,數(shù)據(jù)集中最長的長度為405 248×16B,最短向量的長度為8950×16B。若直接理解為圖像,顯然圖像大小不一,帶來后續(xù)訓(xùn)練和檢測的困難,因此,需要提取每個惡意軟件圖像的紋理特征,并形成統(tǒng)一大小的特征紋理圖像??紤]到代碼的順序性,只采用了水平方向的步長,而不考慮其他方向。

首先選擇步長1、2、3建立灰度共生矩陣。原因如下:在操作系統(tǒng)以及匯編指令手冊的分析中可以知道,計算機代碼中大部分由1字節(jié)、2字節(jié)、3字節(jié)指令構(gòu)成,如分類1:沒有操作數(shù)的指令,指令長度為1字節(jié) ;分類2:操作數(shù)只涉及寄存器的指令,長度為2字節(jié);分類3:操作數(shù)涉及內(nèi)存地址的指令,長度為3字節(jié)等。因此,在灰度共生矩陣中采用了1字節(jié)、2字節(jié)和3字節(jié)的灰度共生矩陣。首先分別以1字節(jié)、2字節(jié)、3字節(jié)為單位切割惡意軟件代碼行向量并做統(tǒng)計。通常的灰度共生矩陣考慮的是距離為d的2字節(jié)同時出現(xiàn)的統(tǒng)計,在大多數(shù)文獻中[13-14]均為2字節(jié)矩陣。對于1字節(jié),行列坐標為0-255,統(tǒng)計每個字節(jié)中對應(yīng)的數(shù)值出現(xiàn)個數(shù)。對于2字節(jié)灰度矩陣,則行代表第一字節(jié),列代表第二字節(jié),如:EB 3C代表EB行,3C列的值加1,直至循環(huán)遍歷整個惡意軟件代碼。其中,1字節(jié)和2字節(jié)矩陣均可形成256×256的標準輸入矩陣,1字節(jié)灰度共生矩陣為主對角對稱矩陣。以樣本文件di5lC6uMRX8hJ3BQtIVf.bytes為例,通過圖像可視化得到三個紋理圖像(圖2)。

圖 2 樣本文件不同字節(jié)紋理圖像

3 實驗和仿真

3.1 數(shù)據(jù)集

本文采用的數(shù)據(jù)集為微軟2015年惡意代碼分類大賽中使用的數(shù)據(jù)集,BIG2015數(shù)據(jù)集包含9個惡意家族的21 741個樣本,其中10 868個樣本為帶標簽的訓(xùn)練集,其他為不帶標簽的測試集。訓(xùn)練集中,每一個樣本名為一個20字符的哈希ID,以及對應(yīng)的一個整數(shù)值作為家族標簽,分別為Ramnit、Lollipop、Kelihos ver3、Vundo、Simda、Tracur、Kelihos、ver1、Obfuscator.ACY和Gatak。對于每個類別,對惡意代碼圖像分別做1字節(jié),2字節(jié)和3字節(jié)紋理提取。

3.2 RF實驗結(jié)果

在這項工作中,根據(jù)第2部分生成的灰度共生矩陣生成方法,對每個惡意代碼文件重新構(gòu)成了3個256×256的共生矩陣CSV文件。并根據(jù)隨機森林分類算法,將樣本與百分比分割(80%)使用。其余20%樣本向量用作測試數(shù)據(jù)集。

T={(X1,Y1),(X2,Y2),…,(Xn,Yn)}

在隨機森林分類器訓(xùn)練過程中,首先從10棵決策樹開始進行訓(xùn)練,通過圖3可以看出,隨著決策樹的增加,分類準確率逐步提升,但超過30棵后,準確率在96%左右變化,不再增加。準確率隨著深度增加而逐步提高,但超過10棵后增加不明顯。通過圖4可以得出,隨機森林算法還可以評估所有變量的重要性,無需顧慮變量的多元共線性問題?,F(xiàn)實情況下,一個數(shù)據(jù)集中往往有成百上千個特征,如何在其中選擇對結(jié)果影響最大的那幾個特征,以此來縮減建立模型時的特征數(shù)目可以提高算法的效率。這樣的方法其實很多,比如主成分分析,lasso等等??梢酝ㄟ^計算每個特征在隨機森林中的每顆樹上做了多大的貢獻,然后取平均值,最后比較特征之間的貢獻大小。該方法通常采用基尼指數(shù)來評價奉獻率。變量重要性評分(variable importance measures)用VIM來表示,將基尼指數(shù)用Gini來表示,在分類問題中,假設(shè)有k個類,樣本點屬于第k類的概率為Pk,則概率分布的Gini指數(shù)的定義為:

圖 3 樹的數(shù)目對正確率影響

圖 4 樹的深度對正確率影響

(5)

基于圖像紋理的雙字節(jié)特征相對重要性見表1?;嵯禂?shù)越大,說明該變量對代碼特征的分類重要性越高,經(jīng)過實驗,本方案得出的基于代碼特征的指標重要性排序為”0000” >”BC66” >”474E” >”4E49” >”69C3”>…”0001”。由表1可知,取前600個參數(shù)就可以達到96%的累計重要性比率,因此可以進一步簡化模型,分類代碼時,無須每次計算全部的256×256個矩陣參數(shù),而只需要計算列表中

600個參數(shù),即可達到近似的效果。經(jīng)過實驗,表格1中GLCM-RF簡化版,可以達到91%。

表1 各列重要性排序表

3.3 KNN聚類結(jié)果

為了檢驗基于惡意代碼圖像紋理特征提取的效果,繼續(xù)采用KNN分類方法來驗證該特征提取方式的有效性。并將隨機森林中得到的重要性特征排序進行聚類可視化排序。由圖5可知,各個類別在這些重要的特征上表現(xiàn)出了較強的聚類現(xiàn)象。

圖 5 前2列特征聚類情況分析

由于按GLCM聚類的維數(shù)較多,達到65 536維,為了更好地的顯示結(jié)果,采用了TSNE可視化方法。TSNE是一種非線性降維算法,非常適用于高維數(shù)據(jù)降維到2維或者3維,圖6為采用默認的T分布后9類別映射到二維后的結(jié)果。每種不同的演示代表了不同的種類,可以看出,紅色和綠色的種類聚類特征明顯,其他類則較為分散。

為了比較采用GLCM后對分類算法帶來的影響,直接提取惡意代碼文件的前64K字節(jié)作為數(shù)據(jù)集,用同樣的分類方法來進行比較,通過分析統(tǒng)計數(shù)據(jù)可以看出,采用了圖像紋理特征提取后的分類方法均比以前有了顯著的提高,其中,GLCM-RF隨機森林方法準確率達到了96.36%,較未采用圖像特征提取的RF方法提高了約10%,對于傳統(tǒng)的KNN方法也有了較大的提高,分類效果明顯。

圖 6 惡意軟件分為9類并采用TSNE后的聚類顯示

表2 基于GLCM的RF與傳統(tǒng)KNN方法比較

方法正確率召回率KNN61.10.42GLCM-KNN77.10.68RF85.3685.69GLCM-RF96.360.96GLCM-RF(簡化版)90.20.90

4 總結(jié)

本研究提出一種基于惡意代碼圖像紋理的隨機森林分類方法,這種方法的優(yōu)點是能夠快速高效的識別惡意代碼。并通過隨機森林分析的特征重要性排序,可以簡化圖像特征維數(shù),加快分類識別時間。研究結(jié)果表明,圖像紋理提取簡化了代碼維數(shù),提高了識別準確率。

猜你喜歡
字節(jié)紋理灰度
采用改進導(dǎo)重法的拓撲結(jié)構(gòu)灰度單元過濾技術(shù)
No.8 字節(jié)跳動將推出獨立出口電商APP
基于灰度拉伸的圖像水位識別方法研究
基于BM3D的復(fù)雜紋理區(qū)域圖像去噪
軟件(2020年3期)2020-04-20 01:45:18
No.10 “字節(jié)跳動手機”要來了?
使用紋理疊加添加藝術(shù)畫特效
簡談MC7字節(jié)碼
TEXTURE ON TEXTURE質(zhì)地上的紋理
Coco薇(2017年8期)2017-08-03 15:23:38
基于最大加權(quán)投影求解的彩色圖像灰度化對比度保留算法
基于灰度線性建模的亞像素圖像抖動量計算
黄大仙区| 宝山区| 扎鲁特旗| 皮山县| 肇东市| 延边| 阆中市| 桂东县| 如皋市| 时尚| 南华县| 全南县| 垣曲县| 通道| 瑞安市| 晴隆县| 太湖县| 临沧市| 丰原市| 开化县| 剑阁县| 时尚| 新竹县| 宁蒗| 海兴县| 新民市| 巴林右旗| 临沭县| 交口县| 满洲里市| 白朗县| 寿宁县| 方正县| 翁牛特旗| 嘉义县| 西平县| 宁波市| 高雄县| 永清县| 呼伦贝尔市| 沙湾县|