• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于靜態(tài)特征融合的惡意軟件分類(lèi)方法

      2021-08-06 08:23:28楊春雨張思聰李小劍
      關(guān)鍵詞:字節(jié)灰度準(zhǔn)確率

      楊春雨,徐 洋,張思聰,李小劍

      貴州師范大學(xué) 貴州省信息與計(jì)算科學(xué)重點(diǎn)實(shí)驗(yàn)室,貴陽(yáng) 550001

      國(guó)家互聯(lián)網(wǎng)應(yīng)急中心2020 年第8 期網(wǎng)絡(luò)安全信息與動(dòng)態(tài)周報(bào)指出,境內(nèi)感染網(wǎng)絡(luò)病毒的主機(jī)數(shù)量達(dá)到了58.6 萬(wàn),被木馬或僵尸程序控制的主機(jī)約52.7 萬(wàn)個(gè),感染飛客蠕蟲(chóng)的主機(jī)約5.9 萬(wàn),木馬和僵尸程序較上周增長(zhǎng)了3.4%,飛客蠕蟲(chóng)較上周增長(zhǎng)了4.5%[1]。隨著互聯(lián)網(wǎng)的發(fā)展,快速增長(zhǎng)的惡意軟件無(wú)疑給國(guó)家和社會(huì)帶來(lái)了巨大的經(jīng)濟(jì)損失,有必要提出更加精準(zhǔn)快速的分析方法。

      傳統(tǒng)的惡意軟件分析方法分為靜態(tài)方法和動(dòng)態(tài)方法[2]。靜態(tài)方法主要是對(duì)惡意軟件和其反編譯文件提取的靜態(tài)特征進(jìn)行分析,但是僅僅采用單一類(lèi)型的特征容易受到代碼混淆或加殼等技術(shù)的影響,對(duì)多種特征融合和降維,然后使用分類(lèi)算法對(duì)惡意軟件進(jìn)行分類(lèi)往往能夠獲得更好的效果。動(dòng)態(tài)分析方法主要是在虛擬環(huán)境中執(zhí)行惡意軟件樣本,記錄惡意軟件的行為特征,如系統(tǒng)調(diào)用名稱(chēng)、上下文參數(shù)、環(huán)境變量等[3],然后基于動(dòng)態(tài)行為特征進(jìn)行分類(lèi),常用的惡意軟件動(dòng)態(tài)分析平臺(tái)有Cuckoo Sandbox。惡意軟件檢測(cè)是一個(gè)二分類(lèi)問(wèn)題[4],而惡意軟件分類(lèi)是根據(jù)不同惡意軟件家族的相似特征來(lái)識(shí)別出樣本,是一個(gè)多分類(lèi)問(wèn)題。

      2010年,Conti等[5]首次提出將二進(jìn)制文件轉(zhuǎn)化為灰度圖像。2011年,Nataraj等[6]提出將惡意軟件轉(zhuǎn)化成灰度圖像,利用同一惡意軟件家族的灰度圖具有紋理的相似性,提取灰度圖的Gist 特征,使用KNN 作為分類(lèi)器,在Malimg數(shù)據(jù)集上取得了98%的準(zhǔn)確率。

      2012 年,白金榮等[7]提取了惡意軟件的結(jié)構(gòu)特征,通過(guò)Wrapper算法對(duì)特征進(jìn)行篩選,對(duì)惡意軟件檢測(cè)達(dá)到了99%的準(zhǔn)確率。

      2016年,任卓君等[8]通過(guò)將惡意軟件轉(zhuǎn)化成黃、綠雙色通道的位圖,將位圖轉(zhuǎn)化為像素歸一圖,使用Jaccard距離度量像素歸一圖的相似性,使用KNN作為分類(lèi)器,在353個(gè)樣本上達(dá)到了95.18%的準(zhǔn)確率。

      2019年,郎大鵬等[9]通過(guò)將惡意軟件和Asm文件表示成灰度圖的形式,提取灰度圖的灰階共生矩陣(Graylevel Co-occurrence Matrix)[10]和Gist 特征,并融合Opcode 3-gram序列特征,使用RF作為分類(lèi)器,在2 625個(gè)樣本上取得了85%的準(zhǔn)確率。

      2019年,張景蓮等[11]提取惡意軟件的灰度圖前2 500個(gè)像素點(diǎn)的值和圖像顏色直方圖,再融合Opcode 2-gram序列特征,在Kaggle 惡意軟件數(shù)據(jù)集上達(dá)到了99.56%的分類(lèi)準(zhǔn)確率。

      2020年,鄭銳等[12]同時(shí)設(shè)置25個(gè)安裝64位Windows7的虛擬機(jī)執(zhí)行惡意軟件樣本,通過(guò)Cuckoo Sandbox 平臺(tái)收集樣本的API 調(diào)用序列,使用雙向LSTM 模型對(duì)6 681 個(gè)惡意軟件樣本進(jìn)行分類(lèi),取得了99.28%的準(zhǔn)確率。

      通過(guò)上述可知,利用可視化技術(shù)提取惡意軟件的特征,再融合其他語(yǔ)義特征分類(lèi)取得了很好的效果。但是灰度圖和n-gram 的特征維度比較高,以字節(jié)的2-gram模型提取為例,每個(gè)字節(jié)的范圍是0~255,提取文件字節(jié)的2-gram 序列將會(huì)有65 536 維的特征,而一個(gè)2 MB的惡意軟件轉(zhuǎn)化成的灰度圖大約具有2 097 152個(gè)像素點(diǎn)。動(dòng)態(tài)分析耗費(fèi)較長(zhǎng)時(shí)間和大量硬件資源,且虛擬環(huán)境配置不當(dāng)會(huì)導(dǎo)致缺少.dll 文件等錯(cuò)誤,從而使惡意軟件樣本不能執(zhí)行,收集不到有用信息。靜態(tài)分析可以作為安全引擎的重要保護(hù)層[13],在不執(zhí)行惡意樣本的前提下提前預(yù)測(cè)惡意軟件所屬家族。因此針對(duì)現(xiàn)有惡意軟件分類(lèi)方法融合的靜態(tài)特征維度高、特征提取耗時(shí)、Boosting 算法對(duì)大量高維特征樣本串行訓(xùn)練時(shí)間長(zhǎng)的問(wèn)題,本文提出一種基于靜態(tài)特征融合的惡意軟件分類(lèi)方法。利用相同惡意軟件家族的樣本具有數(shù)據(jù)、代碼、結(jié)構(gòu)的相似性,提取原文件和Lst文件的灰度圖特征、結(jié)構(gòu)特征、Lst 文件內(nèi)容特征,并將特征進(jìn)行融合和分類(lèi)。通過(guò)融合多類(lèi)特征分類(lèi),消除代碼混淆對(duì)單一特征分類(lèi)的影響,同時(shí)對(duì)訓(xùn)練集采用GOSS 采樣和LightGBM 分類(lèi)器訓(xùn)練,大幅減少訓(xùn)練時(shí)間。

      1 特征工程

      1.1 灰度圖

      同一家族的惡意軟件代碼存在較高的復(fù)用性,通過(guò)復(fù)用代碼往往能夠快速地生成新的惡意軟件,因此將同一家族惡意軟件轉(zhuǎn)化為灰度圖時(shí),灰度圖存在著較高的相似性。Kaggle 惡意軟件分類(lèi)競(jìng)賽冠軍[14]提取Asm 文件前800 個(gè)像素作為一種融合特征對(duì)惡意軟件進(jìn)行分類(lèi),但是結(jié)果不具有可解釋性。在采用惡意軟件灰度圖像素點(diǎn)的值作為特征時(shí)存在的問(wèn)題是樣本轉(zhuǎn)化為灰度圖時(shí)會(huì)存在十幾萬(wàn)到幾百萬(wàn)個(gè)像素點(diǎn),從中選擇對(duì)分類(lèi)有用的特征比較耗時(shí)。

      將文件轉(zhuǎn)化成灰度圖的過(guò)程如圖1 所示。本文使用IDA Pro 對(duì)樣本反編譯輸出Lst 文件,將原文件和反編譯文件以二進(jìn)制形式打開(kāi),以8位二進(jìn)制數(shù)為一個(gè)無(wú)符號(hào)整數(shù)作為一個(gè)像素點(diǎn),像素點(diǎn)的值的范圍是0~255,參考表1設(shè)定圖像初始寬度,圖像高度根據(jù)樣本大小設(shè)定,將樣本轉(zhuǎn)化成灰度圖。通過(guò)合適的插值方法對(duì)灰度圖進(jìn)行下采樣修改圖像的尺寸,本文采用了32×32、48×48,64v64 三種圖像尺寸,保留了惡意樣本的全局信息的同時(shí)達(dá)到了降維的效果。常用的插值算法有最鄰近、雙線性、雙三次、Lanczos。Lanczos算法較其余三類(lèi)算法具有速度快,效果好的優(yōu)點(diǎn)。因此采用Lanczos算法進(jìn)行下采樣,然后提取灰度圖全部像素點(diǎn)的值作為特征。圖2(a)和圖2(b)為一個(gè)蠕蟲(chóng)家族惡意樣本的Lst文件和EXE文件轉(zhuǎn)化成的灰度圖像。

      圖1 灰度圖轉(zhuǎn)化過(guò)程Fig.1 Process of converting to grayscale

      表1 圖像的初始寬度和樣本大小的關(guān)系Table 1 Mapping of sample size to initial width of image

      圖2 兩種文件的灰度圖Fig.2 Grayscale images of two types of files

      1.2 結(jié)構(gòu)特征

      PE(Portable Executable)文件是Windows操作系統(tǒng)使用的可執(zhí)行文件,當(dāng)其載入內(nèi)存執(zhí)行時(shí)具有固定的數(shù)據(jù)結(jié)構(gòu),常見(jiàn)的EXE、DLL、OCX、SYS、COM 文件都是PE文件。當(dāng)PE文件載入內(nèi)存后,稱(chēng)其為映像(IMAGE),圖3 為PE 文件的結(jié)構(gòu)。MS-DOS 頭用來(lái)兼容MS-DOS操作系統(tǒng),NT頭包含PE文件的主要信息,節(jié)表是PE文件節(jié)信息,節(jié)表后面是包含了文件數(shù)據(jù)和代碼以及資源的節(jié)。

      圖3 PE文件的結(jié)構(gòu)Fig.3 Structure of PE file

      同一惡意軟件家族代碼復(fù)用導(dǎo)致惡意軟件作者或團(tuán)隊(duì)編碼具有編碼相似性[15],因此當(dāng)同一家族惡意軟件載入內(nèi)存執(zhí)行時(shí)其結(jié)構(gòu)信息和數(shù)據(jù)也應(yīng)該具有一定的相似性,因此本文將EXE文件以PE文件格式解析,提取樣本的文本、全局、頭部、導(dǎo)入導(dǎo)出表、節(jié)特征,特征提取通過(guò)LIEF實(shí)現(xiàn)。此外還提取了文件的字節(jié)直方圖和字節(jié)-熵直方圖[16]。

      文本特征:PE文件中的文本表示了PE文件運(yùn)行時(shí)候的信息。且文本可以較為直觀地反映出PE文件的行為[17]。本文統(tǒng)計(jì)長(zhǎng)度大于5的由可打印字符組成的字符串的個(gè)數(shù)、字符串的平均長(zhǎng)度以及可打印字符的分布和熵??纱蛴∽址侵窤SCII 碼范圍在0x20~0x7E 之間的字符。統(tǒng)計(jì)含有“C:”(系統(tǒng)路徑)、“http://”(URL 請(qǐng)求)、“https://”“HKEY_”(注冊(cè)表)有特殊含義的字符串個(gè)數(shù)。

      全局特征:統(tǒng)計(jì)文件的映像大小,符號(hào)表中符號(hào)的個(gè)數(shù),以及是否包含線程局部存儲(chǔ)(Thread Local Storage)、debug 信息、資源文件和重定向。TLS 的主要作用是引入程序執(zhí)行前調(diào)用的回調(diào)函數(shù)。Trojan 對(duì)TLS 的使用率高達(dá)47.3%[18]。

      頭部特征:提取并使用列表存儲(chǔ)IMAGE_FILE_HEADERS 中的文件屬性(如分離了debug 信息并存儲(chǔ)在單獨(dú)文件中的樣本具有IMAGE_FILE_DEBUG_STRIPPED屬性、文件是否可寫(xiě)可執(zhí)行屬性等)、子系統(tǒng)名稱(chēng)。提取并使用列表存儲(chǔ)IMAGE_OPTIONAL_HEADERS中的導(dǎo)入DLL屬性,統(tǒng)計(jì)映像、鏈接器、子系統(tǒng)、操作系統(tǒng)的版本號(hào)、代碼段大小和所有頭部大小。

      導(dǎo)入導(dǎo)出表:統(tǒng)計(jì)導(dǎo)入導(dǎo)出表個(gè)數(shù),對(duì)于導(dǎo)入的DLL文件和導(dǎo)入函數(shù)名用冒號(hào)連接并使用列表存儲(chǔ),如advapi32.dll:AdjustTokenPrivileges表示使用了advapi32.dll中的AdjustTokenPrivileges 函數(shù),該函數(shù)常用來(lái)啟動(dòng)或禁用特定訪問(wèn)權(quán)限,執(zhí)行進(jìn)程注入的惡意軟件會(huì)調(diào)用該函數(shù)獲得額外權(quán)限。

      節(jié)特征:使用列表分別存儲(chǔ)樣本每個(gè)節(jié)的名稱(chēng)和節(jié)的物理大小、映像大小、熵的對(duì)應(yīng)關(guān)系,如列表1為([‘.text’,19 456),(‘.rsrc’,512)],列表2為([‘.text’,20 480),(‘.rsrc’,8 192)],列表3為([‘.text’,5.476 359 828 917 223),(‘.rsrc’,1.434 135 665 302 386 2)],并使用列表存儲(chǔ)程序入口點(diǎn)節(jié)的名稱(chēng)和其屬性的對(duì)應(yīng)關(guān)系。統(tǒng)計(jì)可執(zhí)行節(jié)、可寫(xiě)節(jié)、異常節(jié)的個(gè)數(shù),異常節(jié)包含物理大小為0 的節(jié)和名字為空的節(jié)。Virus可寫(xiě)節(jié)的個(gè)數(shù)占其節(jié)數(shù)高達(dá)75.6%,而B(niǎo)ackdoor的異常命名節(jié)數(shù)通常占其節(jié)數(shù)的82%[18]。

      Hash Trick:在自然語(yǔ)言處理中Hashing Trick是一種快速且節(jié)省空間的文本向量化和特征降維方法。在每一種類(lèi)型特征提取的過(guò)程中,對(duì)于以列表或者文本形式出現(xiàn)的特征,如文件的屬性、導(dǎo)入導(dǎo)出表、節(jié)特征,使用Hash Trick算法將其轉(zhuǎn)換成維度固定的特征向量。

      字節(jié)直方圖直接體現(xiàn)了每個(gè)惡意軟件的字節(jié)分布。字節(jié)直方圖計(jì)算公式:

      其中,K表示字節(jié)的十進(jìn)制值,N表示文件的字節(jié)總數(shù),nk表示字節(jié)十進(jìn)制值為K的個(gè)數(shù)。

      本文實(shí)現(xiàn)16×16的字節(jié)-熵直方圖。字節(jié)-熵直方圖通過(guò)滑動(dòng)窗口實(shí)現(xiàn),滑動(dòng)窗口大小為2 048 Byte,步長(zhǎng)為1 024 Byte。首先計(jì)算窗口內(nèi)字節(jié)的熵,再將熵值乘二取整,使熵的值落在0 到15,最后將字節(jié)的值整除4,計(jì)算每個(gè)值的分布,并將字節(jié)分布累加到指定的熵值下。熵的計(jì)算公式:

      其中,p(x)表示窗口內(nèi)每個(gè)字節(jié)的概率。

      字節(jié)-熵直方圖實(shí)現(xiàn)的偽代碼如下:

      1.3 Lst文件特征

      微軟的Kaggle惡意軟件數(shù)據(jù)集的原始文件是Bytes文件,且該數(shù)據(jù)集的Asm文件包含了節(jié)信息,而本文采用的Virustotal數(shù)據(jù)集的原始文件為EXE文件,IDA Pro反編譯產(chǎn)生的Asm文件不包含節(jié)信息,因此在本文數(shù)據(jù)集上選擇反編譯輸出Lst文件,在Asm文件的基礎(chǔ)上包含了節(jié)信息。

      如圖4,對(duì)于反編譯獲得的Lst 文件,從每一行前綴能知曉匯編代碼屬于哪一個(gè)節(jié),提取部分節(jié)的頻數(shù)和關(guān)鍵字的頻數(shù)。.text或者.CODE代表了代碼節(jié),.bss與.data節(jié)毗鄰,其中包含的是初始化為0的變量或者未初始化的變量,.rsrc節(jié)包含了資源數(shù)據(jù),.tls是線程本地存儲(chǔ)節(jié),關(guān)鍵字std::表示使用了C++中的輸入輸出標(biāo)準(zhǔn),:dword表示定義為雙字的標(biāo)識(shí)符。通用寄存器可用于傳送和暫存數(shù)據(jù),也可參與算術(shù)邏輯運(yùn)算,并保存運(yùn)算結(jié)果,本文提取每個(gè)Lst 文件中的32 位通用寄存器的頻數(shù)。Opcode 通常分為三類(lèi)[19]:數(shù)據(jù)移動(dòng)、算術(shù)/邏輯和控制流類(lèi)型,從其中篩選出比較重要的Opcode,并統(tǒng)計(jì)其頻數(shù)。表2 所示為32 位通用寄存器及本文統(tǒng)計(jì)頻數(shù)的Opcode。

      圖4 Lst文件內(nèi)容Fig.4 Contents of Lst file

      表2 通用寄存器和OpcodeTable 2 Opcode and general register

      1.4 標(biāo)準(zhǔn)化

      為了消除不同類(lèi)型特征之間量綱的影響,提高數(shù)據(jù)之間的可比性,需要對(duì)特征進(jìn)行標(biāo)準(zhǔn)化處理,常用的標(biāo)準(zhǔn)化方法有Min-max標(biāo)準(zhǔn)化、Z-score標(biāo)準(zhǔn)化。本文采用Z-score標(biāo)準(zhǔn)化方法將各類(lèi)型特征轉(zhuǎn)化到同一量綱下。

      標(biāo)準(zhǔn)化的過(guò)程如下:

      其中X為訓(xùn)練集的特征矩陣,每一行是一個(gè)樣本的特征,每一列是相同類(lèi)型特征在不同樣本的值,n為特征個(gè)數(shù),m為特征維數(shù),μj、σj是訓(xùn)練集某一維度特征的均值和標(biāo)準(zhǔn)差。首先求得訓(xùn)練集每一維特征的μ和σ并對(duì)訓(xùn)練集標(biāo)準(zhǔn)化,為減小誤差使用訓(xùn)練集的μ和σ參數(shù)為測(cè)試集的每一維度的特征做標(biāo)準(zhǔn)化。

      2 模型和算法

      2.1 分類(lèi)模型和特征處理模型

      圖5 為基于靜態(tài)特征融合的惡意軟件分類(lèi)方法的分類(lèi)模型,分為模型的訓(xùn)練階段和測(cè)試階段。訓(xùn)練階段訓(xùn)練的分類(lèi)器是LightGBM,LightGBM會(huì)對(duì)輸入的特征進(jìn)行預(yù)處理后再進(jìn)行訓(xùn)練。

      圖5 分類(lèi)模型Fig.5 Classification model

      圖6 為特征提取和處理流程,分別從原文件和Lst文件中提取四類(lèi)特征,再選擇不同類(lèi)型的特征融合,最后進(jìn)行標(biāo)準(zhǔn)化,為減小誤差測(cè)試集的標(biāo)準(zhǔn)化使用訓(xùn)練集的均值和標(biāo)準(zhǔn)差參數(shù)。

      圖6 特征提取和處理流程Fig.6 Feature extraction and processing flow

      惡意樣本的每一種類(lèi)型的特征使用樣本的ID(樣本的SHA256值)標(biāo)識(shí)。選擇特征融合和標(biāo)準(zhǔn)化的偽代碼如下:

      2.2 LightGBM

      LightGBM[20]和XGBoost[21]都是對(duì)梯度提升決策樹(shù)(Gradient Boosting Decision Tree)的高效實(shí)現(xiàn)。Light-GBM 引入Histogram 算法對(duì)特征進(jìn)行離散化降低內(nèi)存使用、GOSS 算法減少訓(xùn)練的樣本數(shù)、EFB 算法減少特征維數(shù),并具有支持GPU 并行學(xué)習(xí)的優(yōu)點(diǎn)。在處理大量樣本和高維特征時(shí),計(jì)算速度和內(nèi)存消耗明顯優(yōu)于XGBoost。XGBoost和GBDT算法的基分類(lèi)器使用分類(lèi)與回歸樹(shù)(Classification And Regression Tree)中的回歸樹(shù),在分類(lèi)問(wèn)題中它輸出的是樣本屬于每一類(lèi)的概率,其生長(zhǎng)策略是如圖7 的按層生長(zhǎng)(level-wise)策略,而LightGBM 采用更為高效的如圖8 的按葉子生長(zhǎng)(leaf-wise)策略,減少了很多沒(méi)有必要的分裂開(kāi)銷(xiāo)。

      圖7 按層生長(zhǎng)策略Fig.7 Level-wise learning

      圖8 按葉子生長(zhǎng)策略Fig.8 Leaf-wise learning

      直方圖(Histogram)算法是一種把連續(xù)浮點(diǎn)型特征值離散化的算法,如把區(qū)間[0,0.3)之間的值離散化為0,[0.3,0.8)之間的值離散化為1。然后就可以統(tǒng)計(jì)區(qū)間內(nèi)的樣本個(gè)數(shù)和樣本的梯度之和,再根據(jù)直方圖尋找特征的最佳分裂點(diǎn),減少訓(xùn)練時(shí)間。

      單邊梯度采樣(Gradient-based One Side Sampling),是一種訓(xùn)練集采樣方法,啟用后每次迭代之前,對(duì)所有樣本采樣,計(jì)算每個(gè)樣本的梯度絕對(duì)值并排序,設(shè)定一個(gè)比例采樣梯度前a%大的樣本組成集合A,為了使數(shù)據(jù)均衡,從剩余的小梯度樣本中隨機(jī)提取b%的樣本組成集合B,然后使用集合A?B進(jìn)行訓(xùn)練,對(duì)于小梯度樣本在計(jì)算增益的時(shí)候賦予其(1-a)/b的權(quán)重?;貧w樹(shù)的分裂基于信息增益,而信息增益使用分裂后的方差增益衡量[20],方差增益公式是:

      其中,j是使用的分裂特征,d是樣本特征的分裂點(diǎn),n是A?B的樣本數(shù),xi是樣本,Al是分裂的左子節(jié)點(diǎn)的大梯度樣本,Bl是分裂的左子節(jié)點(diǎn)的小梯度樣本,Ar和Br為分裂的右子節(jié)點(diǎn)的大、小梯度樣本,gi是樣本梯度,是分裂的左、右節(jié)點(diǎn)樣本數(shù)。

      因此可以設(shè)置a和b的值調(diào)整對(duì)訓(xùn)練集大、小梯度樣本抽樣的比例,在保證模型精度的情況下使得每次計(jì)算方差增益的時(shí)候減少計(jì)算次數(shù),從而減少訓(xùn)練時(shí)間。

      互斥特征捆綁(Exclusive Feature Bundling),本文所提取的特征存在互斥特征,即多個(gè)特征之間存在只有一個(gè)特征為非0的情況。如特征A的取值是[0,5),特征B 的取值是[0,20)且A 和B 互斥,則將B 的值加5 使其范圍落到[5,25),然后合并特征A和特征B形成特征C,C的范圍是[0,30),當(dāng)C取值為10時(shí)等價(jià)于B取值為5。

      本文對(duì)LightGBM 進(jìn)行訓(xùn)練時(shí),會(huì)提前設(shè)定a和b的值,然后LightGBM 會(huì)對(duì)圖6 模型輸出的特征進(jìn)行處理。首先啟用GOSS 算法,計(jì)算并提取梯度前a%大的樣本作為本次訓(xùn)練的樣本,并從剩余樣本提取b%比例的小梯度樣本加入訓(xùn)練樣本,這一步主要是減少訓(xùn)練的樣本數(shù)。然后使用EFB 算法合并互斥的特征減少特征的維數(shù),這一步能夠有效減少構(gòu)建直方圖特征的維度。最后使用Histogram算法將連續(xù)的浮點(diǎn)數(shù)特征在多個(gè)區(qū)間離散化,特征離散化的好處是可以減少對(duì)特征分裂點(diǎn)的尋找時(shí)間,使得尋找特征分裂點(diǎn)的開(kāi)銷(xiāo)從原來(lái)的需要遍歷所有特征值減少為只需要遍歷離散值。

      3 實(shí)驗(yàn)

      3.1 實(shí)驗(yàn)環(huán)境

      本文的實(shí)驗(yàn)是在CPU 主頻為2.6 GHz 的Intel i5-3230M,顯卡為顯存2 GB的NVIDIA GeForce 710M,內(nèi)存為8 GB的Ubuntu 18.04.3 LTS系統(tǒng)上實(shí)現(xiàn)的。

      3.2 實(shí)驗(yàn)數(shù)據(jù)

      實(shí)驗(yàn)的數(shù)據(jù)集來(lái)源為Virustotal 學(xué)者數(shù)據(jù)集。為2019 年1 月至2019 年5 月收集的32 位Windows 平臺(tái)下的EXE惡意軟件樣本,一共35 552個(gè),采用卡巴斯基命名規(guī)則為樣本標(biāo)記。篩選出9類(lèi)惡意軟件家族的15 887個(gè)樣本,分別是廣告(Adware)、后門(mén)(Backdoor)、風(fēng)險(xiǎn)工具(Risktool)、木馬(Trojan)、病毒(Virus)、蠕蟲(chóng)(Worm)。其中木馬又可以分為四個(gè)子類(lèi),分別是Trojan-Dropper、Trojan-PSW、Trojan-Ransom、Trojan-Spy。表3所示為每一種上述惡意軟件的數(shù)量分布。訓(xùn)練集和測(cè)試集的比例為7∶3,劃分時(shí)設(shè)置stratify 參數(shù),使訓(xùn)練集和測(cè)試集中的各個(gè)家族之間數(shù)量的比例保持不變。

      表3 惡意軟件分布Table 3 Distribution of malware

      3.3 評(píng)價(jià)指標(biāo)

      采取宏平均精確率(Macro-avg(Precision))、宏平均召回率(Macro-avg(Recall))、宏平均F1-scoreMacroavg(F1-score)、準(zhǔn)確率Accuracy作為評(píng)價(jià)指標(biāo)。

      其中:

      TPn(True Positive)代表正確預(yù)測(cè)的正樣例數(shù);FPn(False Positive)代表將負(fù)樣例錯(cuò)分為正樣例數(shù);FNn(False Negative)代表將正樣例錯(cuò)分為負(fù)樣例數(shù)。

      3.4 實(shí)驗(yàn)結(jié)果

      本文一共選取四類(lèi)特征,分別是原始樣本轉(zhuǎn)化為灰度圖和反編譯的Lst 文件轉(zhuǎn)化為灰度圖的像素點(diǎn)特征、提取的結(jié)構(gòu)特征、從Lst文件中提取的特征。xx_xx_File和xx_xx_Lst 分別表示原文件和Lst 文件的某個(gè)尺寸的灰度圖,Stru_fea 表示結(jié)構(gòu)特征,Lst_fea 表示從Lst 文件提取的特征。首先對(duì)這幾個(gè)特征使用不啟用GOSS 的LightGBM 進(jìn)行分類(lèi),選出灰度圖中效果最好的兩種尺寸的圖像,再?gòu)乃念?lèi)特征中選兩種或者三種特征融合分類(lèi),最后查看所有特征融合的分類(lèi)效果。表4是單一特征下的分類(lèi)結(jié)果,可以看出原文件64×64 尺寸下的F1-score值和準(zhǔn)確率高于其他尺寸的值,Lst文件48×48尺寸下的F1-score值和準(zhǔn)確率高于其他尺寸的值,分類(lèi)效果最好的是結(jié)構(gòu)特征,F(xiàn)1-score達(dá)到了89.43%,準(zhǔn)確率達(dá)到了96.58%。在單一特征下對(duì)比了Opcoden-gram特征、Gist特征、灰階共生矩陣(Glcm)特征[10],結(jié)果顯示Opcoden-gram 特征的F1-score 在62%左右,準(zhǔn)確率在77%左右,且本文使用的灰度圖像素特征分類(lèi)的F1-score(除64_64_File外)和準(zhǔn)確率優(yōu)于Gist特征和Glcm特征。表5可以看出融合原文件灰度圖特征的精確率較高,而融合了Lst 灰度圖特征的召回率較高,效果最好的是結(jié)構(gòu)特征和Lst特征的融合,F(xiàn)1-Score達(dá)到90.16%,準(zhǔn)確率達(dá)到96.92%。從表6可以看出Lst灰度圖融合結(jié)構(gòu)特征和Lst特征取得了最好的效果,F(xiàn)1-Score達(dá)到90.45%,準(zhǔn)確率達(dá)到97%。表7對(duì)比了啟用GOSS采樣的LightGBM算法,并設(shè)置a值為0.3,b值為0.19,發(fā)現(xiàn)在F1-score損失0.03%的情況下節(jié)省了29%的訓(xùn)練時(shí)間。

      表4 單一特征下的分類(lèi)結(jié)果Table 4 Classification results under single feature

      表5 兩類(lèi)特征下的分類(lèi)結(jié)果Table 5 Classification results under two types of features

      表6 三類(lèi)或四類(lèi)特征下的分類(lèi)結(jié)果Table 6 Classification results under three or four types of features

      表7 啟用GOSS的結(jié)果(n_estimators=500)Table 7 Result of enabling GOSS(n_estimators=500)

      3.5 分析與比較

      本文通過(guò)對(duì)四類(lèi)特征進(jìn)行融合分類(lèi)實(shí)驗(yàn),在Lst 灰度圖融合結(jié)構(gòu)特征和Lst 特征下取得了最好的效果,啟用GOSS采樣技術(shù)減少了29%的訓(xùn)練時(shí)間。圖9所示為分類(lèi)的精確率矩陣,可知每一類(lèi)的分類(lèi)精確率都超過(guò)了93.5%,宏平均精確率達(dá)到了96.85%。圖10所示為分類(lèi)的召回率矩陣,宏平均召回率達(dá)到了86.29%。Trojan-PSW的召回率只有50%,初步確定是由于樣本數(shù)量不均衡和這類(lèi)樣本的數(shù)目太少使模型產(chǎn)生了欠擬合。

      圖9 48_48_Lst+Lst_fea+Stru_fea精確率矩陣Fig.9 Precision matrix of 48_48_Lst+Lst_fea+Stru_fea

      圖10 48_48_Lst+Lst_fea+Stru_fea召回率矩陣Fig.10 Recall matrix of 48_48_Lst+Lst_fea+Stru_fea

      本文比較了GOSS(LightGBM)和另外兩種Boosting算法(XGBoost、GBDT)以及兩種深度學(xué)習(xí)算法(CNN、GRU)。表8結(jié)果顯示GOSS(LightGBM)和XGBoost在F1-score 和準(zhǔn)確率取得了最好效果,F(xiàn)1-score 分別為90.42%和89.41%,且在對(duì)比算法中GOSS(LightGBM)所用訓(xùn)練時(shí)間最短,XGBoost 訓(xùn)練時(shí)間是GOSS(Light-GBM)的4 倍且占用內(nèi)存高于GOSS(LightGBM),而GBDT 訓(xùn)練時(shí)間是其11 倍。在深度學(xué)習(xí)中分類(lèi)效果最好的是GRU,F(xiàn)1-score達(dá)到85.45%,準(zhǔn)確率達(dá)到95.12%,但是訓(xùn)練時(shí)間超過(guò)了5 個(gè)小時(shí)。本文還對(duì)比了其他機(jī)器學(xué)習(xí)算法(RF、KNN、LR、SVM、MLP),相較于其他機(jī)器學(xué)習(xí)算法GOSS(LightGBM)的訓(xùn)練時(shí)間和內(nèi)存消耗不占優(yōu),但是表9顯示GOSS(LightGBM)除了精確率比RF 低0.35%外其他指標(biāo)均占優(yōu)。最后對(duì)本文的數(shù)據(jù)集提取了文獻(xiàn)[9]和文獻(xiàn)[11]所用的特征,使用Lst 文件代替Asm 文件,并使用LightGBM 分類(lèi),表10 結(jié)果顯示本文特征分類(lèi)效果優(yōu)于文獻(xiàn)[9]和文獻(xiàn)[11]使用的特征,且提取特征的維數(shù)低于另外兩種方法提取的特征維數(shù)。

      表8 GOSS(LightGBM)算法和其他Boosting算法和深度學(xué)習(xí)算法對(duì)比(n_estimators=500,epochs=100)Table 8 Comparison of GOSS(LightGBM)algorithm and other Boosting algorithms and deep learning algorithms(n_estimators=500,epochs=100)

      表9 GOSS(LightGBM)和其他分類(lèi)算法結(jié)果對(duì)比Table 9 Comparison of GOSS(LightGBM)and other classification algorithms

      表10 LightGBM在不同融合特征下的分類(lèi)結(jié)果Table 10 Classification results of LightGBM under different fusion features

      4 結(jié)束語(yǔ)

      本文提取了惡意軟件和其反編譯的Lst文件轉(zhuǎn)化成灰度圖的像素點(diǎn)特征,通過(guò)插值算法將圖片縮小,保留了全局特征的同時(shí)實(shí)現(xiàn)了像素特征的降維,并提取了原文件的結(jié)構(gòu)特征和Lst文件特征并對(duì)特征進(jìn)行融合。分類(lèi)器選擇了LightGBM,通過(guò)啟用GOSS采樣算法在F1-score 損失0.03%的情況下節(jié)省了29%的訓(xùn)練時(shí)間。實(shí)驗(yàn)證明本文提取的融合特征比融合Opcode 2-gram 或3-gram 的特征分類(lèi)的F1-score 和準(zhǔn)確率更高。Light-GBM 比RF、KNN、LR、SVM、MLP 的F1-score 和準(zhǔn)確率更高,比XGBoost、GBDT、GRU、CNN 的F1-score 和準(zhǔn)確率更高,且訓(xùn)練時(shí)間更短。

      可以看出Trojan-PSW 類(lèi)不能有效的召回,初步確定是由于樣本數(shù)量不足所致。下一步準(zhǔn)備從其他數(shù)據(jù)集擴(kuò)充Trojan-PSW數(shù)量,增加該樣本特征的數(shù)量,進(jìn)一步檢驗(yàn)?zāi)P偷挠行裕瑫r(shí)采用其他算法進(jìn)一步對(duì)本文所提取特征進(jìn)行處理,如使用TF-IDF 或信息增益指標(biāo)對(duì)特征進(jìn)行降維,保證模型分類(lèi)效果的前提下進(jìn)一步加快訓(xùn)練速度。

      本文所提取的特征不涉及n-gram 特征,特征提取和處理較n-gram 更加節(jié)省時(shí)間,可以部署到安全引擎前端,快速地對(duì)未知樣本進(jìn)行初步檢測(cè)。

      猜你喜歡
      字節(jié)灰度準(zhǔn)確率
      采用改進(jìn)導(dǎo)重法的拓?fù)浣Y(jié)構(gòu)灰度單元過(guò)濾技術(shù)
      No.8 字節(jié)跳動(dòng)將推出獨(dú)立出口電商APP
      基于灰度拉伸的圖像水位識(shí)別方法研究
      乳腺超聲檢查診斷乳腺腫瘤的特異度及準(zhǔn)確率分析
      健康之家(2021年19期)2021-05-23 11:17:39
      不同序列磁共振成像診斷脊柱損傷的臨床準(zhǔn)確率比較探討
      2015—2017 年寧夏各天氣預(yù)報(bào)參考產(chǎn)品質(zhì)量檢驗(yàn)分析
      No.10 “字節(jié)跳動(dòng)手機(jī)”要來(lái)了?
      高速公路車(chē)牌識(shí)別標(biāo)識(shí)站準(zhǔn)確率驗(yàn)證法
      簡(jiǎn)談MC7字節(jié)碼
      基于最大加權(quán)投影求解的彩色圖像灰度化對(duì)比度保留算法
      太谷县| 安岳县| 大关县| 双城市| 台东市| 土默特左旗| 太保市| 重庆市| 轮台县| 茶陵县| 墨竹工卡县| 龙泉市| 伊吾县| 连城县| 贵定县| 雷州市| 潍坊市| 阳信县| 金沙县| 大邑县| 达尔| 岑溪市| 广饶县| 东城区| 邹平县| 喀什市| 万安县| 新野县| 友谊县| 察哈| 东乌| 宕昌县| 邵武市| 隆安县| 肥东县| 大冶市| 万源市| 凤城市| 时尚| 太仓市| 隆化县|