王 棟,楊 珂,玄佳興,韓雨桐,趙麗花,王旭仁
(1.國網(wǎng)電子商務(wù)有限公司(國網(wǎng)雄安金融科技集團(tuán)有限公司),北京 100053;2.國家電網(wǎng)有限公司區(qū)塊鏈技術(shù)實(shí)驗(yàn)室,北京 100053;3.中國科學(xué)院信息工程研究所,北京 100093;4.首都師范大學(xué)信息工程學(xué)院,北京 100048)
近年來,惡意代碼的數(shù)量高速增長,據(jù)著名殺毒軟件測試機(jī)構(gòu)AV-TEST(AntiVirus-TEST)在線統(tǒng)計(jì)數(shù)據(jù)顯示,截止到2020年上半年,全球發(fā)現(xiàn)的惡意軟件總量高達(dá)10.65億,近10年一直保持著16%以上的增長速度。惡意代碼的數(shù)量和種類不斷增多,隱蔽能力越來越強(qiáng),破壞程度越來越大。
隨著互聯(lián)網(wǎng)的發(fā)展,惡意代碼呈現(xiàn)海量化與多態(tài)化的趨勢,這使得惡意代碼家族分類也面臨著更大的挑戰(zhàn):惡意代碼特征難以有效提取,采用簽名的方法無法應(yīng)對(duì)新產(chǎn)生的惡意代碼變種,靜態(tài)分析方法容易受到混淆手段的影響,動(dòng)態(tài)分析方法又難以獲得全面的樣本行為。因此,惡意代碼的分類成為了一個(gè)亟待研究的問題。惡意代碼的分類存在2種情況:一是將代碼或者樣本分類為良性代碼或者惡意代碼的二分類問題;另一種是將惡意代碼分類到不同家族的分類問題。本文討論第2種分類問題。
應(yīng)用機(jī)器學(xué)習(xí)對(duì)惡意代碼進(jìn)行自動(dòng)化分析,首先要能自動(dòng)化地提取惡意代碼特征。2011年,Nataraj等[1]首次提出將惡意代碼轉(zhuǎn)化為可視化圖像,然后進(jìn)行惡意代碼分析的方法。其基本思想是將每8位二進(jìn)制數(shù)轉(zhuǎn)化為0~255的值,作為一個(gè)像素點(diǎn)值,這樣可把惡意代碼轉(zhuǎn)化為一幅灰度圖。屬于同一個(gè)家族的惡意代碼圖像之間具有很強(qiáng)的視覺相似性。Nataraj等采用通用搜索算法對(duì)二進(jìn)制圖像進(jìn)行紋理特征提取,并使用K近鄰KNN(K Nearest Neighbor)算法進(jìn)行分類。這種將惡意代碼轉(zhuǎn)換為圖像的特征提取方法無需手工提取特征碼,也不需要對(duì)惡意代碼進(jìn)行脫殼分析、逆向分析和動(dòng)態(tài)分析。Kancherla等[2]利用Gabor濾波器提取惡意代碼圖像的全局特征和小波特征,然后再進(jìn)行分類研究。Ni 等[3]基于Simhash算法把惡意代碼基于控制流程圖的opcode特征轉(zhuǎn)化為圖像,使用圖像分類的方法進(jìn)行處理。張景蓮等[4]從病毒反編譯文件中提取惡意代碼局部特征Opcode N-gram和灰度圖紋理,并將顏色直方圖作為惡意代碼的全局特征,采用隨機(jī)森林對(duì)惡意代碼進(jìn)行分類,效果顯著。孫博文等[5]使用惡意代碼ASCII字符信息和可移植可執(zhí)行文件PE (Portable Execute)結(jié)構(gòu)信息對(duì)傳統(tǒng)惡意代碼灰度化圖像方法進(jìn)行改進(jìn),生成彩色圖像,最后借鑒圖像處理領(lǐng)域的VGG16(Visual Geometry Group)神經(jīng)網(wǎng)絡(luò)模型對(duì)惡意代碼圖像進(jìn)行訓(xùn)練。
對(duì)惡意代碼特征進(jìn)行分類的方法主要有支持向量機(jī)、K近鄰算法、決策樹和隨機(jī)森林等常見的機(jī)器學(xué)習(xí)算法。近年來深度學(xué)習(xí)廣泛應(yīng)用在惡意代碼圖像或者惡意代碼語義分析上。Pendlebury等[6]提出TESSERACT系統(tǒng),使用3種分類器(SVM、隨機(jī)森林和深度學(xué)習(xí)模型)對(duì)安卓惡意軟件隨時(shí)間和空間發(fā)展造成的偏差進(jìn)行對(duì)比,提出時(shí)間感知性能指標(biāo)。Homayoun等[7]使用長短時(shí)記憶LSTM(Long Short-Term Memory)網(wǎng)絡(luò)和深度神經(jīng)網(wǎng)絡(luò) DNN (Deep Neural Network)對(duì)勒索軟件和良性軟件進(jìn)行二分類,以便進(jìn)一步對(duì)勒索軟件進(jìn)行家族多分類。Saxe等[8]提取惡意軟件運(yùn)行時(shí)的4個(gè)特征,使用深度神經(jīng)網(wǎng)絡(luò)對(duì)惡意代碼進(jìn)行二分類。更進(jìn)一步,由于惡意代碼種類繁多,且人工評(píng)估的成本高、效率低,樣本集往往沒有標(biāo)簽或給出的標(biāo)簽較少。在半監(jiān)督學(xué)習(xí)中,生成對(duì)抗網(wǎng)絡(luò)GAN(Generative Adversarial Network)表現(xiàn)出了很大的潛力,即使在標(biāo)簽數(shù)據(jù)很少的情況下,分類器也能取得良好的檢測效果。Al-Dujaili等[9]使用對(duì)抗學(xué)習(xí)提升深度學(xué)習(xí)模型在惡意代碼上的檢測效果;Kim等[10]將生成對(duì)抗網(wǎng)絡(luò)在惡意代碼家族分類上的應(yīng)用限制于二分類任務(wù),沒有涉及到半監(jiān)督學(xué)習(xí)。Salimans等[11]使用半監(jiān)督生成對(duì)抗網(wǎng)絡(luò)SGAN(Semi-supervised Generative Adversarial Network)提升深度學(xué)習(xí)模型分類準(zhǔn)確率。上述工作取得了很多突破和進(jìn)展,但是在工作整合和惡意代碼分類的準(zhǔn)確率上仍有提升空間。
本文在上述研究的基礎(chǔ)上,綜合使用GAN與惡意代碼圖像預(yù)處理相結(jié)合的方法,以解決惡意代碼特征提取困難、樣本標(biāo)簽缺乏等因素導(dǎo)致分類效果不好的問題。利用圖像特征提取方法將惡意代碼轉(zhuǎn)換為灰度圖;利用縮放算法和Gamma 校正法將圖像標(biāo)準(zhǔn)化。為提高惡意代碼家族分類的準(zhǔn)確率,將半監(jiān)督生成對(duì)抗網(wǎng)絡(luò)與深度卷積網(wǎng)絡(luò)相結(jié)合,構(gòu)建半監(jiān)督深度卷積生成對(duì)抗網(wǎng)絡(luò)SGAN-CNN(Semi-supervised Generative Adversarial Network based on CNN)分類模型,對(duì)惡意代碼家族進(jìn)行分類。
要對(duì)惡意代碼進(jìn)行家族分類,首先需要進(jìn)行惡意代碼特征提取。特征將直接影響分類的效果和準(zhǔn)確率。根據(jù)惡意代碼特征提取過程中是否需要運(yùn)行惡意代碼,可將惡意代碼特征分為靜態(tài)特征和動(dòng)態(tài)特征。
靜態(tài)特征提取方法主要有簽名的方法、基于N-gram的方法和基于控制流圖的特征提取方法。簽名的方法在惡意代碼發(fā)生變體(例如使用代碼混淆、花指令等手段)時(shí),惡意代碼簽名會(huì)發(fā)生變化,從而使沒有及時(shí)更新的簽名失效。N-gram是文本挖掘模型,N是指滑動(dòng)窗口大小,使用N-gram方法可以提取二進(jìn)制代碼的語義特征和文本頻率特征,例如PE文件的頭部、代碼段的特征和API調(diào)用等。但是,在惡意代碼使用加密、代碼重用時(shí),N-gram方法面臨挑戰(zhàn)?;诳刂屏鲌D的特征提取方法是分析惡意代碼的函數(shù)、功能模塊以及代碼塊之間的調(diào)用順序和執(zhí)行邏輯。惡意代碼使用自修改、代碼重用和加殼等手段使得惡意代碼可讀性很差或者根本不可讀,增加了控制流圖分析的難度。
動(dòng)態(tài)特征提取方法主要是將惡意代碼運(yùn)行在沙箱等虛擬環(huán)境中,記錄惡意代碼運(yùn)行時(shí)的行為序列和環(huán)境參數(shù)的變化。由于越來越多的惡意代碼具備對(duì)抗沙箱能力,即檢測運(yùn)行環(huán)境從而繞過監(jiān)控的能力,這給惡意代碼的動(dòng)態(tài)分析帶來很大的挑戰(zhàn)。
本文充分利用惡意代碼家族圖像的相似性,結(jié)合半監(jiān)督深度卷積生成對(duì)抗網(wǎng)絡(luò)SGAN-CNN,有效避免了惡意代碼特征提取的問題和樣本標(biāo)簽不充分的問題。
對(duì)惡意代碼進(jìn)行預(yù)處理的方式多種多樣,其中一種是將惡意代碼轉(zhuǎn)化為可視化圖像,該預(yù)處理方式耗時(shí)短。Cui等[12]使用類似雙線性插值算法的三線性插值算法進(jìn)行圖像采樣和標(biāo)準(zhǔn)化。但是,雙線性插值縮放在規(guī)范化圖像時(shí)有大量的信息損失。本文在不依賴反匯編的情況下,將惡意代碼的每8個(gè)比特轉(zhuǎn)化為目標(biāo)圖像的一個(gè)像素,從而將惡意代碼轉(zhuǎn)化為一維灰度圖像。如果將惡意代碼轉(zhuǎn)化為二維或者高維圖像,原圖像中空間上分離的點(diǎn)會(huì)被重排到二維圖像的一列或者相鄰列上,后續(xù)的深度學(xué)習(xí)模型會(huì)傳遞這種空間局部相關(guān)性(例如池化處理),所以本文不進(jìn)行維度變換。本文使用改進(jìn)的惡意代碼圖像縮放算法IMIR(Improved Malware Image Rescaling)[13]進(jìn)行圖像縮放,因?yàn)樘幚淼氖且痪S圖像,因此在水平方向上使用滑動(dòng)窗口的方法對(duì)圖像進(jìn)行采樣,將惡意代碼圖像縮小到4 096像素。IMIR將采樣點(diǎn)的范圍從最近的若干個(gè)點(diǎn)提升至整個(gè)滑動(dòng)窗口內(nèi)的點(diǎn),從而保留窗口內(nèi)所有圖像信息。
GAN是一種重要的對(duì)抗學(xué)習(xí)模型,主要用于深度學(xué)習(xí)下的數(shù)據(jù)增強(qiáng)[14]、風(fēng)格遷移[15]和超分辨率[16]等任務(wù)。GAN包含1個(gè)判別器D和1個(gè)生成器G,二者進(jìn)行對(duì)抗訓(xùn)練:生成器G盡可能生成與原始數(shù)據(jù)分布相近的數(shù)據(jù)集,使判別器D無法將其與原始數(shù)據(jù)區(qū)分;而判別器D則盡可能提升自身區(qū)分原始數(shù)據(jù)與合成數(shù)據(jù)的能力。經(jīng)過一段時(shí)間的對(duì)抗訓(xùn)練后,生成器G能夠生成接近原始數(shù)據(jù)分布的樣本,用于解決由于訓(xùn)練樣本不足導(dǎo)致的分類過擬合問題。
半監(jiān)督生成對(duì)抗網(wǎng)絡(luò)SGAN是生成對(duì)抗網(wǎng)絡(luò)在多分類問題下的一種變體。單純的生成對(duì)抗網(wǎng)絡(luò)只處理二分類問題,無法直接進(jìn)行多分類建模。半監(jiān)督生成對(duì)抗網(wǎng)絡(luò)SGAN-CNN使用CNN替代判別器,輸出層使用Softmax進(jìn)行多分類,實(shí)現(xiàn)分類器的作用。多分類任務(wù)下,分類器的輸入為有標(biāo)簽樣本、無標(biāo)簽樣本和生成樣本。有標(biāo)簽樣本攜帶有多分類信息,而半監(jiān)督生成對(duì)抗網(wǎng)絡(luò)的監(jiān)督單元可以直接對(duì)多分類問題建模,無監(jiān)督單元可以學(xué)習(xí)無標(biāo)簽樣本的信息,并利用對(duì)抗訓(xùn)練提升分類器對(duì)潛在樣本的分類能力。根據(jù)文獻(xiàn)[11],對(duì)于任意的標(biāo)準(zhǔn)K分類器,將生成器G生成的樣本添加至數(shù)據(jù)集中,視為一個(gè)新類別,即第“K+1”個(gè)類別。損失函數(shù)和訓(xùn)練目標(biāo)函數(shù)定義分別如式(1)~式(4)所示:
L=Lsupervised+Lunsupervised
(1)
Lsupervised=-Ex~labeledlnPD(y|x,y (2) Lunsupervised=-[Ex~reallnPD(y Ez~N(0,1)lnPD(y=K+1|G(z))] (3) (4) 其中,z是隨機(jī)噪聲向量,符合均勻分布。PD(y|x,y 為了解決惡意代碼標(biāo)簽不足的問題,本文構(gòu)建一種半監(jiān)督深度卷積生成對(duì)抗網(wǎng)絡(luò)模型SGAN-CNN。將SGAN-CNN無監(jiān)督學(xué)習(xí)中判別器D再拆分為兩個(gè)子功能模塊:判別器D和分類器C。將高效的一維卷積神經(jīng)網(wǎng)絡(luò)作為判別器D和分類器C共享的特征提取器,從而增強(qiáng)分類器的分類效果。 SGAN-CNN模型工作原理如圖1所示。圖1中C是分類器,D是判別器,G是生成器。惡意代碼樣本首先經(jīng)過圖像特征提取和縮放,再通過深度卷積網(wǎng)絡(luò)訓(xùn)練惡意樣本分類器C。在訓(xùn)練分類器時(shí),為了補(bǔ)償標(biāo)簽不足的問題,通過對(duì)深度卷積網(wǎng)絡(luò)進(jìn)行誤差修正,提高分類器的效果。 Figure 1 Malicious sample classification process based on SGAN-CNN圖1 基于SGAN-CNN的惡意代碼分類流程 生成器G根據(jù)隨機(jī)噪聲z產(chǎn)生逼近真實(shí)數(shù)據(jù)分布的生成樣本G(z)。將有標(biāo)簽的真實(shí)樣本輸入到分類器C進(jìn)行惡意代碼家族識(shí)別。有標(biāo)簽和無標(biāo)簽的真實(shí)樣本與生成樣本G(z)均輸入到判別器D,判別器D區(qū)分其為生成樣本或真實(shí)樣本,需要挖掘無標(biāo)簽數(shù)據(jù)中深層本質(zhì)特征,然后通過損失函數(shù)反饋,最終實(shí)現(xiàn)提高分類器C識(shí)別性能的目的。 生成器G的結(jié)構(gòu)參照經(jīng)典生成對(duì)抗網(wǎng)絡(luò) DCGAN(Deep Convolutional GAN)[17]設(shè)計(jì),如圖2所示。由于惡意代碼圖像只有1個(gè)通道而非3個(gè)通道,本文將初始通道數(shù)由1 024改為 512;由于卷積方式是一維的,因此對(duì)應(yīng)的卷積核也從 5*5 改為 25,對(duì)應(yīng)步長改為 4。噪聲z可以為正態(tài)分布或均勻分布,本文采用的是均勻分布。經(jīng)過1個(gè)全連接層、4個(gè)轉(zhuǎn)置卷積層的處理后,將維度為100的隨機(jī)分布z映射為一個(gè)惡意代碼圖像,用以在對(duì)抗訓(xùn)練中欺騙判別器。 Figure 2 Construction of SGAN-CNN generator G圖2 SGAN-CNN生成器G的構(gòu)造 SGAN-CNN的監(jiān)督學(xué)習(xí)完成主要的分類任務(wù),無監(jiān)督學(xué)習(xí)完成生成對(duì)抗任務(wù)。即將判別器判斷為真實(shí)的樣本分別歸為不同的惡意代碼家族,將判別器判斷為生成器生成的樣本歸為“K +1”標(biāo)簽。這樣,將原有判別器D拆分為判別器D和分類器C兩部分。判別器D和分類器C只在最后的輸出層分別輸出,可以視為兩個(gè)子任務(wù)。 Figure 3 Optimization diagram of SGAN-CNN discriminator圖3 SGAN-CNN判別器優(yōu)化示意圖 本文根據(jù)VGG模型[18]設(shè)計(jì)惡意代碼判別器,如圖3所示,SGAN-CNN判別器包含5組伴隨最大池化層的卷積層,3個(gè)使用dropout的全連接層,均使用ReLU作為激活函數(shù)以緩解梯度消失[19]問題,并提升訓(xùn)練速度;1個(gè)不使用dropout的全連接層;分類器C使用Softmax作為激活函數(shù),而判別器D使用Sigmoid作為激活函數(shù)??梢钥闯?,圖3中模型訓(xùn)練的第1層到 Dense 256 層作為判別器D和分類器C的共享特征提取器F,即圖3中的虛框部分。判別器D通過反向傳播對(duì)共享特征提取器F進(jìn)行誤差修正,從而提升分類器C的效果。相應(yīng)地,損失函數(shù)與目標(biāo)函數(shù)變化如式(5)~式(7)所示: L=Lsupervised+Lunsupervised (5) Lsupervised=-E(x,y)~labeledlnPC(y|F(x)) (6) Lunsupervised=-[Ex~reallnPD(F(x))+ Ez~N(0,1)ln(1-PD[F(G(z))])] (7) (8) 分類器C只處理有標(biāo)簽的真實(shí)樣本,因此F和C構(gòu)成了1個(gè)卷積神經(jīng)網(wǎng)絡(luò)分類模型,由于輸入的數(shù)據(jù)是一維的,又稱為一維卷積神經(jīng)網(wǎng)絡(luò)分類模型,記為1D-CNN(one-Dimensional Convolutional Neural Network)。所有的真實(shí)樣本和生成樣本都經(jīng)過判別器D處理,經(jīng)過Dense 1全連接層和Sigmoid激活函數(shù)后,判斷是真實(shí)樣本(無論是否有標(biāo)簽)還是生成樣本。因此,使用判別器D可將真實(shí)樣本和生成樣本區(qū)分開來。來自不同家族的真實(shí)樣本(無論是否有標(biāo)簽)被合并為一類,而生成樣本也為一類,他們之間的規(guī)模差異得到了平衡。 Microsoft Malware Classification Challenge[20]是微軟于2015年在數(shù)據(jù)競賽平臺(tái)Kaggle公開的惡意代碼數(shù)據(jù)集。該數(shù)據(jù)集共有10 868個(gè)樣本,分為9個(gè)家族,所以類別數(shù)目K=9,如表1所示。 Table 1 Microsoft malware classification dataset表1 Microsoft Malware Classification數(shù)據(jù)集 實(shí)驗(yàn)評(píng)價(jià)選用了準(zhǔn)確率A(Accuracy)、精確率P(Precision)、召回率R(Recall)和錯(cuò)誤率Error這4個(gè)指標(biāo)。具體來說,假設(shè)在被檢測方法判斷為家族a的樣本中,實(shí)際不屬于家族a的樣本數(shù)量為FP,實(shí)際屬于家族a的樣本數(shù)量為TP;在被檢測方法判斷不屬于家族a的樣本中,實(shí)際不屬于家族a的樣本數(shù)量為TN,實(shí)際屬于家族a的樣本數(shù)量為FN。準(zhǔn)確率、精確率、召回率和錯(cuò)誤率的定義分別如式(9)~式(12)所示: (9) (10) (11) Error=1-A (12) 此外本文使用5折交叉驗(yàn)證方法來驗(yàn)證數(shù)據(jù)集劃分的效果。 本文使用 Adam 優(yōu)化器訓(xùn)練SGAN-CNN生成器G、分類器C和判別器D的深度學(xué)習(xí)網(wǎng)絡(luò),Adam能更快地到達(dá)全局近似最優(yōu)解,更有利于調(diào)整模型參數(shù)。具體參數(shù)如表2所示。根據(jù)2.2節(jié)的描述,SGAN-CNN輸入的樣本維度是4096×8;半監(jiān)督訓(xùn)練模型G使用圖3 的方法和Adam優(yōu)化器進(jìn)行訓(xùn)練,每次迭代生成8 965個(gè)樣本,共進(jìn)行200次迭代。 Table 2 Model training parameters表2 模型訓(xùn)練參數(shù) 表3所示為不同模型在不同標(biāo)記率情況下分類的準(zhǔn)確率,標(biāo)簽率代表對(duì)樣本數(shù)據(jù)的標(biāo)記比率。在此引入兩種半監(jiān)督深度學(xué)習(xí)模型作為對(duì)比基線:一種是偽標(biāo)簽正則化[21],這是半監(jiān)督學(xué)習(xí)中經(jīng)典的偽標(biāo)簽方法在深度學(xué)習(xí)上的擴(kuò)展;另一種是 Γ-Model[22]模型。 Table 3 Comparison of classification accuracy of different models under different tag rates 表3 不同模型在不同標(biāo)簽率下的分類準(zhǔn)確率對(duì)比 從表3可以看出,隨著標(biāo)簽率的提高,所有模型對(duì)惡意代碼家族分類的效果也隨之提升。SGAN-CNN模型在標(biāo)簽率為80%時(shí),分類準(zhǔn)確率最高達(dá)到98.81%;在標(biāo)簽率為20%時(shí),分類準(zhǔn)確率最低為98.01%。在不同標(biāo)簽率下,1D-CNN和偽標(biāo)簽正則化的效果相對(duì)其他模型最差,說明生成對(duì)抗網(wǎng)絡(luò)對(duì)惡意代碼家族分類是有促進(jìn)效果的。SGAN與Γ-Model 各有優(yōu)勢,而相比于SGAN和Γ-Model,SGAN-CNN準(zhǔn)確率更高。這說明對(duì)于惡意代碼,當(dāng)兩項(xiàng)子任務(wù)在數(shù)據(jù)規(guī)模、標(biāo)簽分布和任務(wù)難度等方面不夠匹配時(shí),SGAN-CNN模型效果更好。 表3的實(shí)驗(yàn)結(jié)果是針對(duì)全部惡意代碼進(jìn)行家族分類的總體準(zhǔn)確率。如果將各個(gè)惡意代碼家族分類效果分別討論,則樣本數(shù)量越少的家族,有可能分類效果越不理想。從表1可以看出,Simda的樣本數(shù)量相對(duì)于其他惡意代碼樣本數(shù)量,至少相差89%以上。相比數(shù)量較多的惡意代碼家族,標(biāo)簽缺乏對(duì)小規(guī)模家族樣本的影響會(huì)更加明顯。為此本文進(jìn)行5折交叉驗(yàn)證實(shí)驗(yàn),并分析了實(shí)驗(yàn)中各家族分類的準(zhǔn)確率與召回率,從而判斷提出的SGAN-CNN模型在小樣本惡意代碼家族分類上是否有效。 如圖4所示,圖4a的樣本標(biāo)簽率為100%,模擬標(biāo)簽正常的情況;圖4b和圖4c的樣本標(biāo)簽率為20%,模擬標(biāo)簽缺乏的分類情況。從圖4中可以看出,樣本標(biāo)簽缺乏使得監(jiān)督分類模型1D-CNN對(duì)大部分惡意代碼分類能力都產(chǎn)生了負(fù)面影響,且樣本數(shù)量較少的Simda惡意代碼家族分類準(zhǔn)確率下降明顯。使用SGAN-CNN進(jìn)行半監(jiān)督學(xué)習(xí),在提高整體分類效果的同時(shí)也修復(fù)了這種下降趨勢。尤其是Simda惡意代碼家族分類的準(zhǔn)確率,在標(biāo)簽率僅為20%的情況下,分類準(zhǔn)確率相對(duì)于分類模型1D-CNN提高約20%,接近1D-CNN模型在標(biāo)簽率100%情況下的分類準(zhǔn)確率。圖4中橫坐標(biāo)0~8對(duì)應(yīng)9個(gè)家族,9對(duì)應(yīng)所有家族平均值。 Figure 4 Histogram of detection accuracy and recall of malicious code families圖4 惡意代碼家族檢測準(zhǔn)確率與召回率直方圖 實(shí)驗(yàn)中選取9個(gè)惡意代碼家族的樣本進(jìn)行測試,驗(yàn)證了本文提出的基于深度學(xué)習(xí)的半監(jiān)督對(duì)抗生成網(wǎng)絡(luò)SGAN-CNN在惡意代碼家族分類中的有效性,也驗(yàn)證了SGAN-CNN在小樣本惡意代碼家族分類分析中的有效性。 本文提出了惡意代碼圖像特征提取和規(guī)范化方法,使用一維圖像而不是二維圖像表示惡意代碼特征,避免因?yàn)閳D像折疊帶來的惡意代碼圖像特征中像素點(diǎn)之間不存在的局部相關(guān)性。設(shè)計(jì)了基于一維卷積神經(jīng)網(wǎng)絡(luò)的惡意代碼分類器,提出了基于深度學(xué)習(xí)的半監(jiān)督對(duì)抗生成網(wǎng)絡(luò)SGAN-CNN模型。實(shí)驗(yàn)結(jié)果表明,SGAN-CNN可以在減少模型構(gòu)建與使用的時(shí)間代價(jià)、提高分類準(zhǔn)確率、增強(qiáng)時(shí)效性的同時(shí),補(bǔ)償樣本標(biāo)簽缺乏、樣本數(shù)量稀少導(dǎo)致的分類準(zhǔn)確率下降,降低整體分類錯(cuò)誤率,并重點(diǎn)提升包含小規(guī)模家族樣本的分類效果,實(shí)現(xiàn)了分類準(zhǔn)、覆蓋廣的惡意代碼家族分類目標(biāo)。3 半監(jiān)督深度卷積生成對(duì)抗網(wǎng)絡(luò)模型SGAN-CNN
3.1 SGAN-CNN模型
3.2 SGAN-CNN生成器構(gòu)造
3.3 SGAN-CNN判別器構(gòu)造
4 實(shí)驗(yàn)與分析
4.1 實(shí)驗(yàn)數(shù)據(jù)集
4.2 評(píng)價(jià)指標(biāo)
4.3 實(shí)驗(yàn)參數(shù)設(shè)置
4.4 基于SGAN-CNN的惡意代碼家族分類實(shí)驗(yàn)
4.5 基于SGAN-CNN的小規(guī)模惡意家族樣本分類實(shí)驗(yàn)
5 結(jié)束語