• 
    

    
    

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

      基于代碼圖像合成的Android惡意軟件家族分類方法

      2022-06-21 06:54:00李默蘆天亮謝子恒
      計(jì)算機(jī)應(yīng)用 2022年5期
      關(guān)鍵詞:代碼灰度家族

      李默,蘆天亮,謝子恒

      (中國(guó)人民公安大學(xué) 信息網(wǎng)絡(luò)安全學(xué)院,北京 100038)(?通信作者電子郵箱lutianliang@ppsuc.edu.cn)

      基于代碼圖像合成的Android惡意軟件家族分類方法

      李默,蘆天亮*,謝子恒

      (中國(guó)人民公安大學(xué) 信息網(wǎng)絡(luò)安全學(xué)院,北京 100038)(?通信作者電子郵箱lutianliang@ppsuc.edu.cn)

      代碼圖像化技術(shù)被提出后在Android惡意軟件研究領(lǐng)域迅速普及。針對(duì)使用單個(gè)DEX文件轉(zhuǎn)換而成的代碼圖像表征能力不足的問(wèn)題,提出了一種基于代碼圖像合成的Android惡意軟件家族分類方法。首先,將安裝包中的DEX、XML與反編譯生成的JAR文件進(jìn)行灰度圖像化處理,并使用Bilinear插值算法來(lái)放縮處理不同尺寸的灰度圖像,然后將三張灰度圖合成為一張三維RGB圖像用于訓(xùn)練與分類。在分類模型上,將軟閾值去噪模塊與基于Split-Attention的ResNeSt相結(jié)合提出了STResNeSt。該模型具備較強(qiáng)的抗噪能力,更能關(guān)注代碼圖像的重要特征。針對(duì)訓(xùn)練過(guò)程中的數(shù)據(jù)長(zhǎng)尾分布問(wèn)題,在數(shù)據(jù)增強(qiáng)的基礎(chǔ)上引入了類別平衡損失函數(shù)(CB Loss),從而為樣本不平衡造成的過(guò)擬合現(xiàn)象提供了解決方案。在Drebin數(shù)據(jù)集上,合成代碼圖像的準(zhǔn)確率領(lǐng)先DEX灰度圖像2.93個(gè)百分點(diǎn),STResNeSt與殘差神經(jīng)網(wǎng)絡(luò)(ResNet)相比準(zhǔn)確率提升了1.1個(gè)百分點(diǎn),且數(shù)據(jù)增強(qiáng)結(jié)合CB Loss的方案將F1值最高提升了2.4個(gè)百分點(diǎn)。實(shí)驗(yàn)結(jié)果表明,所提方法的平均分類準(zhǔn)確率達(dá)到了98.97%,能有效分類Android惡意軟件家族。

      Android惡意軟件家族;代碼圖像;遷移學(xué)習(xí);卷積神經(jīng)網(wǎng)絡(luò);通道注意力

      0 引言

      Android系統(tǒng)自出現(xiàn)以來(lái)憑借其開(kāi)源性受到越來(lái)越多的用戶與開(kāi)發(fā)者的歡迎,所占市場(chǎng)份額逐年增長(zhǎng);但開(kāi)放性的特點(diǎn)使它一度成為97%惡意軟件攻擊的首選目標(biāo)[1]。在惡意軟件數(shù)量不斷增長(zhǎng)的過(guò)程中,代碼混淆、軟件加殼等技術(shù)的應(yīng)用也讓惡意軟件的抗檢測(cè)能力不斷增強(qiáng),其越來(lái)越快的更新與迭代更是讓安全廠商們應(yīng)接不暇。為應(yīng)對(duì)以上威脅,針對(duì)惡意軟件家族的分類與檢測(cè)技術(shù)逐漸成為主流。將不同的惡意樣本根據(jù)行為劃分至相應(yīng)家族,對(duì)惡意家族中典型樣本進(jìn)行分析,可以極大減少工作量;研究惡意家族相關(guān)迭代版本也有助于研究人員發(fā)現(xiàn)惡意軟件攻擊規(guī)律,以增強(qiáng)安全軟件的查殺能力。

      近年來(lái),卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)快速發(fā)展,并在圖像識(shí)別和目標(biāo)檢測(cè)領(lǐng)域廣泛應(yīng)用。He等[2]提出了著名的殘差網(wǎng)絡(luò),有效抑制了深層網(wǎng)絡(luò)的梯度消失。之后,Hu等[3]又提出了通道注意力機(jī)制,對(duì)通道間的相互依賴關(guān)系進(jìn)行了建模,近期的研究[4-6]已證實(shí)通道注意力在改善深度CNN中存在巨大的潛力。隨著CNN結(jié)構(gòu)越來(lái)越復(fù)雜、參數(shù)量越來(lái)越龐大,對(duì)算力也提出了更為苛刻的要求,而遷移學(xué)習(xí)的應(yīng)用在很大程度上緩解了此問(wèn)題。在大規(guī)模數(shù)據(jù)集上預(yù)訓(xùn)練好的模型已經(jīng)習(xí)得了大量的泛化特征,將這部分特征參數(shù)遷移到新模型中不僅節(jié)省了訓(xùn)練時(shí)間,也提升了模型的最終訓(xùn)練效果。

      代碼圖像廣泛應(yīng)用前,惡意代碼靜態(tài)分析方法需研究人員手工提取特征[7-10],費(fèi)時(shí)費(fèi)力,而CNN的普及則為代碼圖像化技術(shù)的發(fā)展提供了契機(jī)。代碼圖像化指將代碼以二進(jìn)制形式轉(zhuǎn)換為像素點(diǎn)并構(gòu)成圖像,利用CNN自動(dòng)學(xué)習(xí)圖像深層抽象特征的能力,既可免去手工提取特征,在保持高識(shí)別率的同時(shí)也極大簡(jiǎn)化了檢測(cè)流程。

      在Android惡意代碼圖像化識(shí)別領(lǐng)域,目前主流的方法[11-14]均將安裝包中的DEX(Classes.dex)文件轉(zhuǎn)換為灰度圖或RGB(Red-Green-Blue)格式彩圖,但以上方法的缺點(diǎn)在于單個(gè)DEX文件所提供的信息量有限,不足以概括惡意軟件的行為特征。除此之外,Android惡意代碼圖像化識(shí)別面臨的挑戰(zhàn)還包括以下三點(diǎn):1)代碼圖像尺寸處理過(guò)程中容易丟失特征信息;2)代碼圖像不同于生活圖像,存在其獨(dú)特紋理且含有明顯的噪聲特征,對(duì)代碼圖像識(shí)別與分類需要特定的網(wǎng)絡(luò)模型;3)代碼圖像數(shù)據(jù)集中普遍存在長(zhǎng)尾分布現(xiàn)象,多數(shù)樣本集中在前幾類家族中,樣本較少的家族難以得到較好的分類效果。

      針對(duì)以上問(wèn)題,本文提出了一種基于代碼圖像合成的Android惡意軟件家族分類方法,方法流程如圖1所示。本文方法的主要工作如下:

      1)為解決DEX代碼圖像特征不足的問(wèn)題,將DEX、XML(AndroidManifest.xml)與JAR(Classes.jar)文件合成為三維RGB圖作為特征圖像,合成的代碼圖像融合了多類特征信息,可從更多維分析惡意軟件。

      2)使用插值放縮法處理不同比例大小的圖像,相較于截取填充法,插值放縮能夠在不損失圖像信息的情況下更大程度保留圖像特征。在此基礎(chǔ)上,針對(duì)不同插值算法在代碼圖像上的表現(xiàn)進(jìn)行了對(duì)比與分析,最終使用Bilinear算法進(jìn)行代碼圖像的放縮處理。

      3)分類模型上將軟閾值去噪模塊(Soft Thresholding Block, ST Block)[15]與基于Split-Attention的ResNeSt[6]相結(jié)合,提出了STResNeSt(ST Block+ResNeSt),并使用在ImageNet上訓(xùn)練好的模型參數(shù)進(jìn)行遷移訓(xùn)練。ST Block增強(qiáng)了模型的抗噪能力,與Split-Attention共同作用,有效增強(qiáng)了模型在代碼圖像上的特征提取能力。

      4)使用了圖像增強(qiáng)方案對(duì)Drebin數(shù)據(jù)集進(jìn)行擴(kuò)增,同時(shí)在模型訓(xùn)練過(guò)程中引入類別平衡損失函數(shù)(Class-Balanced Loss, CB-Loss)[16]。CB Loss能夠根據(jù)不同家族的有效樣本數(shù)在訓(xùn)練中為每個(gè)家族賦予相應(yīng)的權(quán)重,是處理數(shù)據(jù)不平衡問(wèn)題的有效方案。

      圖1 惡意軟件分類流程Fig. 1 Flow chart of malware classification

      1 相關(guān)工作

      在代碼圖像化廣泛應(yīng)用之前,對(duì)惡意軟件的靜態(tài)分析通常需要研究人員手工提取特征。Santos等[7]提取操作碼序列作為特征,并統(tǒng)計(jì)每個(gè)序列出現(xiàn)的頻率,最后在支持向量機(jī)構(gòu)造的分類器上實(shí)現(xiàn)了95.90%的準(zhǔn)確率。Wang等[8]從APK(Android Application Package)的應(yīng)用配置文件XML中提取出權(quán)限信息,對(duì)不同權(quán)限進(jìn)行風(fēng)險(xiǎn)排序,并分析了多個(gè)權(quán)限組合引發(fā)的風(fēng)險(xiǎn),最后使用支持向量機(jī)、決策樹(shù)與隨機(jī)森林根據(jù)權(quán)限集合對(duì)惡意軟件進(jìn)行分析。此外,Grini等[9]使用軟計(jì)算方法,結(jié)合多類機(jī)器學(xué)習(xí)模型對(duì)500個(gè)家族的近10億個(gè)樣本進(jìn)行分類,最終取得了89%的準(zhǔn)確率。相較于以上方法,Qiu等[10]針對(duì)零日家族的識(shí)別使用了更為豐富的特征,提取出了API(Application Programming Interface)、權(quán)限以及網(wǎng)絡(luò)地址等敏感信息對(duì)惡意軟件進(jìn)行分析。

      Nataraj等[17]首次提出了代碼圖像化的概念,原理是將惡意代碼以二進(jìn)制形式轉(zhuǎn)換為灰度圖像,代碼文件的每1個(gè)字節(jié)恰好對(duì)應(yīng)灰度圖像中一個(gè)0~255的像素值,之后采用GiST(Generalized Search Tree)算法對(duì)灰度圖像進(jìn)行紋理特征提取,并輸入支持向量機(jī)進(jìn)行分類。使用圖像化處理惡意代碼不僅保持了高準(zhǔn)確率,同時(shí)極大減少了手工提取和篩選各類特征的開(kāi)銷,所以該方法一經(jīng)提出便引起了轟動(dòng),隨后代碼圖像化也應(yīng)用到了Android惡意軟件檢測(cè)上。除了GiST算法,張晨斌等[11]還對(duì)DEX文件圖像使用了包括Tamura在內(nèi)的3種特征提取算法,通過(guò)4種算法提取出的紋理特征集合,最后構(gòu)造了5種分類模型對(duì)惡意代碼進(jìn)行檢測(cè)與分類。

      文獻(xiàn)[11]研究的問(wèn)題在于,在圖像訓(xùn)練前仍需提取圖像的紋理特征,卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用則極大改善了這一問(wèn)題。文獻(xiàn)[18]中將惡意代碼文件二進(jìn)制轉(zhuǎn)換為灰度圖后輸入卷積神經(jīng)網(wǎng)絡(luò)中進(jìn)行訓(xùn)練,卷積神經(jīng)網(wǎng)絡(luò)能夠自動(dòng)學(xué)習(xí)惡意軟件的抽象特征,利用網(wǎng)絡(luò)的自動(dòng)表征能力,代碼圖像可直接輸入網(wǎng)絡(luò)進(jìn)行訓(xùn)練。

      文獻(xiàn)[19]中使用Windows惡意代碼文件的二進(jìn)制數(shù)據(jù)、ASCII(American Standard Code for Information Interchange)字符和文件結(jié)構(gòu)信息構(gòu)建代碼圖像,輸入帶有SPP(Spatial Pyramid Pooling)結(jié)構(gòu)的網(wǎng)絡(luò)中進(jìn)行訓(xùn)練。使用SPP結(jié)構(gòu)的網(wǎng)絡(luò)雖然解除了對(duì)輸入圖像大小的限制,但是該方法的局限在于圖像尺寸的不統(tǒng)一,導(dǎo)致訓(xùn)練模型批尺寸只能設(shè)為1,這將導(dǎo)致訓(xùn)練時(shí)長(zhǎng)成倍增長(zhǎng)。

      文獻(xiàn)[12-13]中都將DEX文件映射為三通道的RGB彩色圖像,與傳統(tǒng)的單通道灰度圖相比,該方法中使用的三通道RGB圖像理論提供了3倍的信息量,能夠充分發(fā)揮神經(jīng)網(wǎng)絡(luò)多通道的卷積運(yùn)算優(yōu)勢(shì),分類效果優(yōu)于灰度圖;但該方法只是將灰度圖像進(jìn)行簡(jiǎn)單的三維折疊,并沒(méi)有考慮到通道間的關(guān)聯(lián)關(guān)系,且單個(gè)DEX文件所能提供的信息量有限,并不足以概括惡意代碼的行為特征。

      2 代碼圖像合成

      2.1 特征文件提取

      特征提取部分選擇了APK中的DEX、XML和反編譯生成的JAR文件作為特征文件用于合成三維RGB代碼圖像。

      在APK文件的內(nèi)部結(jié)構(gòu)中,XML與DEX是在Android惡意軟件分析中最重要的兩個(gè)文件。XML文件存放了軟件包名、權(quán)限聲明以及各個(gè)組件的注冊(cè)信息,是用來(lái)整體描述Android應(yīng)用的配置文件。DEX文件是存放Dalvik字節(jié)碼的文件,能在Dalvik虛擬機(jī)中運(yùn)行,此文件由構(gòu)成各Java類的源碼編譯而成,本質(zhì)上是所有應(yīng)用程序的邏輯,是程序中信息含量最高的一個(gè)文件。將DEX文件轉(zhuǎn)換為代碼圖像也是目前Android惡意代碼圖像化分析中最常用的一種方法。

      DEX文件包含了程序所有的Java代碼,但這些代碼都被編譯成Dalvik字節(jié)碼用于在Dalvik虛擬機(jī)上運(yùn)行,其中一些結(jié)構(gòu)信息在判斷代碼特征時(shí)屬于冗余部分。將DEX文件反編譯成JAR文件,并對(duì)文件中的連續(xù)可見(jiàn)字符(ASCII范圍:32~126)進(jìn)行提取。JAR文件中的可見(jiàn)字符包含了具體的代碼信息,相較于原始JAR文件,能更準(zhǔn)確地體現(xiàn)惡意代碼特征。

      2.2 圖像比例與圖像縮放

      灰度圖也稱為灰階圖,將黑色與白色間的對(duì)數(shù)關(guān)系分成不同的等級(jí),稱之為灰度。RGB色彩標(biāo)準(zhǔn)則是目前應(yīng)用最廣泛的一種顏色標(biāo)準(zhǔn),一張RGB彩色圖片是由不同程度的紅、綠、藍(lán)顏色通過(guò)疊加構(gòu)成,目前大部分卷積神經(jīng)網(wǎng)絡(luò)的三通道輸入設(shè)計(jì)正是受到RGB標(biāo)準(zhǔn)的影響?;叶葓D的灰階范圍為0~255,恰好對(duì)應(yīng)了二進(jìn)制中8 bit的表示范圍,也就是1 B。將特征文件以二進(jìn)制方式讀取,將每8 bit轉(zhuǎn)換為一個(gè)灰度像素值,以此生成代碼圖像。而RGB圖片中一個(gè)像素點(diǎn)的通道數(shù)為灰度圖的3倍,可使用三張形狀相同的灰度圖疊加而成。

      在將文件轉(zhuǎn)換成圖像的過(guò)程中,因卷積網(wǎng)絡(luò)對(duì)輸入圖片的大小有固定限制,故不可避免地要考慮圖像尺寸參數(shù)。以Drebin[20]中的BaseBridge家族為例,提取出DEX文件后,最大的DEX文件為5 839 KB,而最小的僅有5 KB,文件大小不同導(dǎo)致無(wú)法確定統(tǒng)一的圖像尺寸,故需解決兩個(gè)問(wèn)題:圖像轉(zhuǎn)換比例與圖像縮放。

      2.2.1 圖像轉(zhuǎn)換比例

      文獻(xiàn)[11]中在處理圖像比例問(wèn)題時(shí),嘗試固定圖像寬度,并將較小文件使用0填充至固定長(zhǎng)度。在本文情況下,如將寬度固定為ResNeSt規(guī)定的224像素,兩個(gè)大小分別為5 839 KB和5 KB的DEX文件轉(zhuǎn)換成圖片后長(zhǎng)度分別為26 692像素和23像素,使用0填充后,后者的有效信息量?jī)H為0.08%,所以當(dāng)數(shù)據(jù)集內(nèi)樣本大小差距過(guò)大時(shí)該方法并不適用。

      針對(duì)以上問(wèn)題的解決方案之一是根據(jù)不同的文件大小設(shè)定不同的寬度轉(zhuǎn)換標(biāo)準(zhǔn)。為使代碼圖像尺寸符合網(wǎng)絡(luò)規(guī)定的1∶1長(zhǎng)寬比,可直接對(duì)文件大小值進(jìn)行開(kāi)方,對(duì)開(kāi)方結(jié)果向下取整求得寬度值:。

      以上方法的問(wèn)題在于,對(duì)每個(gè)文件設(shè)定完全不同的轉(zhuǎn)換比例會(huì)導(dǎo)致轉(zhuǎn)換出的代碼圖像結(jié)構(gòu)各異,不利于同類大小文件的特征對(duì)比。因此,本文選擇對(duì)同一大小區(qū)間的文件設(shè)定相同的寬度值,經(jīng)過(guò)計(jì)算后本文使用了表1中的轉(zhuǎn)換比例,計(jì)算方法如下。

      首先根據(jù)Drebin數(shù)據(jù)集中樣本大小的分布情況劃分出不同大小區(qū)間,如表1中的第一列所示。為使一個(gè)區(qū)間內(nèi)的圖像更趨近于網(wǎng)絡(luò)要求的長(zhǎng)寬比,取區(qū)間內(nèi)的中位數(shù)并對(duì)其進(jìn)行開(kāi)方。以1 MB(Megabytes)~2 MB為例,區(qū)間中位數(shù)為1.5 MB,即1 536 000 B,開(kāi)方取整后得到1 239,之后取離1 239較近的1 280(常見(jiàn)分辨率尺寸值)作為1 MB~2 MB區(qū)間的圖像寬度值。故此區(qū)間內(nèi)的代碼圖像寬度固定為1 280像素,長(zhǎng)度則根據(jù)文件大小不同略有差異,但圖像總體比例與模型要求的比例趨近,避免了后續(xù)縮放過(guò)程中對(duì)圖像造成的大規(guī)模結(jié)構(gòu)性改變。

      表1 代碼圖像轉(zhuǎn)換比例Tab. 1 Ratio of code image conversation

      2.2.2 圖像縮放

      根據(jù)表1的比例生成圖像后,需要將圖像插值縮放至模型網(wǎng)絡(luò)規(guī)定的輸入尺寸。常見(jiàn)的插值算法有Nearest、Bilinear、Bicubic和Lanczos與Box等。

      圖2 插值坐標(biāo)Fig. 2 Coordinates for interpolations

      在Bilinear算法[21]中,通過(guò)計(jì)算距離最近的4個(gè)點(diǎn)的灰度值得到,計(jì)算過(guò)程包括兩次線性插值運(yùn)算。首先在軸方向上使用式(1)~(2)計(jì)算和的灰度值:

      Lanczos和Box都采用了窗口采樣的形式,并使用了以下兩類基函數(shù)[23]:

      由式(6)可見(jiàn),Box因窗口值較小,上采樣時(shí)與Nearest類似,對(duì)于插值點(diǎn)的計(jì)算只會(huì)使用若干采樣點(diǎn)中的一個(gè),效果較差。但Nearest的問(wèn)題在于,下采樣過(guò)程中圖像縮小到一定程度時(shí)將對(duì)不相鄰的點(diǎn)進(jìn)行采樣,導(dǎo)致輸入像素的丟失,而B(niǎo)ox則是對(duì)窗口內(nèi)所有點(diǎn)進(jìn)行下采樣,確保了所有輸入的像素都能貢獻(xiàn)其相應(yīng)的權(quán)重。

      實(shí)驗(yàn)中將對(duì)以上介紹的5種插值算法進(jìn)行對(duì)比與分析,從中選出最適合代碼圖像的插值算法后,將三張灰度圖縮放至尺寸,并按紅、綠、藍(lán)的維度順序合成為RGB代碼圖像。合成代碼圖像的圖像紋理在不同家族中表現(xiàn)出了明顯的差異,如圖3中所示,圖中的紅、綠、藍(lán)分別呈現(xiàn)出了XML、JAR與DEX二進(jìn)制文件的紋理。

      圖3 不同家族樣本的合成代碼圖像Fig. 3 Integrated code images of samples from different families

      3 分類模型

      代碼圖像由原文件直接生成,為處理此過(guò)程中產(chǎn)生的圖像噪聲,增強(qiáng)模型的特征選擇能力,本文將Split-Attention注意力機(jī)制與去噪算法相結(jié)合提出了STResNeSt;同時(shí)在模型訓(xùn)練的過(guò)程中引入了CB Loss,以應(yīng)對(duì)數(shù)據(jù)不平衡性導(dǎo)致的過(guò)擬合現(xiàn)象。

      3.1 基于Split-Attention的ResNeSt

      ResNeSt是以殘差神經(jīng)網(wǎng)絡(luò)(Residual Neural Network, ResNet)為骨干網(wǎng)絡(luò),在SENet[3]和ResNeXt[4]網(wǎng)絡(luò)的基礎(chǔ)上發(fā)展而來(lái)。ResNeXt在ResNet的殘差結(jié)構(gòu)中提出了分組卷積的概念,通過(guò)基組(Cardinality)控制分組的數(shù)量,在不增加參數(shù)復(fù)雜度的前提下提高了準(zhǔn)確率。SENet則引入了通道注意力機(jī)制,在訓(xùn)練過(guò)程中為每個(gè)特征通道賦予相應(yīng)權(quán)重,并依照不同通道的權(quán)重提升有用的特征。ResNeSt在分組卷積通道注意力的基礎(chǔ)上設(shè)計(jì)了ResNeSt Block,該模塊允許特征圖獲取不同基組間的權(quán)重特征,用于增強(qiáng)特征的信息關(guān)聯(lián)能力,提升分類效果。圖4(a)展示了ResNeSt Block結(jié)構(gòu),圖4(b)展示了ResNeSt Block中核心模塊Split-Attention Block的結(jié)構(gòu)。

      圖4 ResNeSt Block與Split-Attention Block結(jié)構(gòu)

      Tab. 4 Structures of ResNeSt Block and Split-Attention Block

      如圖4所示,為解決ResNet網(wǎng)絡(luò)感受野過(guò)小和缺乏跨通道間信息交互能力的問(wèn)題,ResNeSt將輸入的特征圖劃分為個(gè)基組,并對(duì)每個(gè)基組繼續(xù)進(jìn)行切片(Split),將一個(gè)基組內(nèi)的Splits數(shù)量記為,故最初的輸入被切分為個(gè)Split。對(duì)這些Split施加卷積映射變換后,每個(gè)Split的輸出表示為,其中。之后對(duì)一個(gè)基組內(nèi)的所有Split進(jìn)行元素相加便可獲得基組的分組卷積結(jié)果,計(jì)算式如下:

      之后通過(guò)通道軟注意力機(jī)制實(shí)現(xiàn)對(duì)基組的加權(quán)融合。首先計(jì)算特征圖經(jīng)過(guò)激活函數(shù)Softmax后所得權(quán)重,當(dāng)時(shí),通過(guò)以下計(jì)算式計(jì)算:

      3.2 軟閾值去噪模塊ST Block

      考慮到代碼圖像的來(lái)源為整個(gè)代碼文件,由此生成的圖像必然存在與特征無(wú)關(guān)的噪聲。以往的手工去噪工作繁瑣且低效。大量的研究[24-26]已證實(shí),將去噪分類器或算法加入分類模型中便可賦予模型主動(dòng)抗噪能力。

      文獻(xiàn)[15]中將軟閾值算法融入殘差網(wǎng)絡(luò),提出了面向強(qiáng)噪聲的深度殘差收縮網(wǎng)絡(luò)(Deep Residual Shrinkage Network, DRSN)。受此啟發(fā),本文將軟閾值去噪模塊嵌入ResNeSt Block的一核卷積層之后,提出了STResNeSt。將融合了Split Attention與ST Block的基礎(chǔ)模塊命名為STResNeSt Block,其結(jié)構(gòu)如圖5所示。

      圖5 STResNeSt Block結(jié)構(gòu)
      Tab. 5 Structure of STResNeSt Block

      軟閾值函數(shù)常用于噪聲過(guò)濾,能夠把有效信息轉(zhuǎn)換成為正特征或負(fù)特征,將無(wú)效信息過(guò)濾為零特征,計(jì)算式如下:

      3.3 類別平衡處理

      本文實(shí)驗(yàn)中使用的Drebin數(shù)據(jù)集呈典型的長(zhǎng)尾分布,存在較大的樣本不均衡性,不少研究[27-28]通過(guò)增加重復(fù)樣本、生成近似樣本等重采樣技術(shù)在一定程度上緩解此問(wèn)題,因此本文也對(duì)Drebin數(shù)據(jù)集采取了同樣的過(guò)采樣方案(詳見(jiàn)4.1節(jié))。但隨著過(guò)采樣樣本數(shù)的遞增,此類樣本對(duì)模型帶來(lái)的收益將迅速遞減,針對(duì)此問(wèn)題,本文引用了文獻(xiàn)[16]中的重加權(quán)方案:在模型訓(xùn)練中加入類別平衡損失函數(shù)CB Loss,根據(jù)不同類別樣本的有效樣本數(shù)對(duì)損失函數(shù)進(jìn)行重新加權(quán)。

      有效樣本數(shù)(effective number of samples)的定義為樣本的期望體積(expected volume),即樣本能夠覆蓋的特征空間體積。以經(jīng)過(guò)數(shù)據(jù)增強(qiáng)后的Drebin為例,對(duì)于原型樣本較少的惡意家族類別,大部分樣本都是在原型樣本的基礎(chǔ)上使用過(guò)采樣等數(shù)據(jù)增強(qiáng)的方式得到,樣本中存在較大的特征重疊可能性,故有效樣本數(shù)較少。而原型樣本較多的家族重疊樣本少,故存在更多的有效樣本數(shù)。

      Softmax交叉信息熵(Cross-Entropy, CE)損失函數(shù)適用于本文的惡意家族多分類問(wèn)題,其計(jì)算式如下:

      4 實(shí)驗(yàn)與結(jié)果分析

      4.1 實(shí)驗(yàn)環(huán)境、數(shù)據(jù)與評(píng)價(jià)標(biāo)準(zhǔn)

      實(shí)驗(yàn)服務(wù)器的配置如下:Ubuntu 16.04操作系統(tǒng),32 GB運(yùn)行內(nèi)存,CPU為Intel i9-10920X,使用NVIDIA 3090顯卡搭配Cuda 11.1,深度學(xué)習(xí)框架選擇PyTorch 1.6。實(shí)驗(yàn)中模型使用以ResNet-50為骨干網(wǎng)絡(luò)的STResNeSt-50,對(duì)參數(shù)進(jìn)行以下設(shè)置:學(xué)習(xí)率設(shè)為1E, Batch Size設(shè)為16,采用Adam作為優(yōu)化器,使用CB Softmax Loss損失函數(shù),CB Loss中的參數(shù)設(shè)為0.99。實(shí)驗(yàn)中對(duì)每個(gè)家族采用按比例抽取的方式分為80%的訓(xùn)練集與20%的測(cè)試集,實(shí)驗(yàn)結(jié)果取五折交叉驗(yàn)證后的平均值。

      本文數(shù)據(jù)來(lái)自公開(kāi)數(shù)據(jù)集Drebin,此數(shù)據(jù)集包括了178個(gè)家族在內(nèi)的5 560個(gè)惡意樣本??紤]到多數(shù)家族樣本數(shù)較少,如數(shù)據(jù)集中有46個(gè)家族僅包含1個(gè)樣本,故本文選取了樣本數(shù)排名前10的家族,共計(jì)4 020個(gè)帶家族標(biāo)簽的惡意樣本??紤]到這些樣本存在嚴(yán)重的不平衡性,不同家族間樣本數(shù)比最大可達(dá)1∶10,因此本文采取了表2中的數(shù)據(jù)增強(qiáng)方法對(duì)樣本進(jìn)行擴(kuò)增,新樣本通過(guò)對(duì)原始樣本的隨機(jī)旋轉(zhuǎn)、平移、裁減等一系列結(jié)構(gòu)性操作得到。為保證實(shí)驗(yàn)結(jié)果的準(zhǔn)確性,擴(kuò)增的樣本僅被添加進(jìn)訓(xùn)練集中,測(cè)試集仍由原始樣本構(gòu)成。再結(jié)合使用3.3節(jié)中的類別平衡損失函數(shù),盡最大可能減少樣本不平衡引發(fā)的過(guò)擬合現(xiàn)象。數(shù)據(jù)增強(qiáng)前后的數(shù)據(jù)情況如表3所示。

      表2 數(shù)據(jù)增強(qiáng)參數(shù)值Tab. 2 Parameter values of data augmentation

      表3 實(shí)驗(yàn)數(shù)據(jù)集Tab. 3 Experimental dataset

      4.2 遷移學(xué)習(xí)

      本文模型除ST Block以外的部分始均使用了ResNeSt-50在ImageNet已訓(xùn)練好的參數(shù),ST Block參數(shù)為隨機(jī)標(biāo)準(zhǔn)化參數(shù)。將未訓(xùn)練過(guò)的STResNeSt-50與遷移學(xué)習(xí)后的STResNeSt-50進(jìn)行了對(duì)比,圖6為兩個(gè)網(wǎng)絡(luò)在30個(gè)epoch上的訓(xùn)練準(zhǔn)確率、訓(xùn)練損失值、測(cè)試準(zhǔn)確率與測(cè)試F1值對(duì)比。

      實(shí)驗(yàn)結(jié)果表明,在惡意代碼圖像識(shí)別上使用經(jīng)過(guò)ImageNet訓(xùn)練后的網(wǎng)絡(luò)有以下優(yōu)勢(shì):

      1)網(wǎng)絡(luò)收斂快。在預(yù)測(cè)準(zhǔn)確率上的表現(xiàn)為:遷移學(xué)習(xí)后的網(wǎng)絡(luò)在第一個(gè)epoch后就達(dá)到了接近95%,而未經(jīng)訓(xùn)練的網(wǎng)絡(luò)只有80%,更快的收斂能夠極大縮短訓(xùn)練時(shí)長(zhǎng)。

      2)提升了預(yù)測(cè)效果。遷移學(xué)習(xí)后的網(wǎng)絡(luò)相較未經(jīng)訓(xùn)練的網(wǎng)絡(luò)在準(zhǔn)確率上提升了約1.2個(gè)百分點(diǎn),在F1值上也有近1.8個(gè)百分點(diǎn)的提升。

      3)改善了穩(wěn)定性。圖6中的虛線代表為未經(jīng)訓(xùn)練的網(wǎng)絡(luò),不難發(fā)現(xiàn)其震蕩幅度較大,而代表遷移學(xué)習(xí)網(wǎng)絡(luò)的實(shí)線則更加平穩(wěn)。

      由此可見(jiàn),雖然ImageNet多用于對(duì)象識(shí)別與目標(biāo)檢測(cè)的訓(xùn)練與評(píng)估,其數(shù)據(jù)庫(kù)中的圖像特征與代碼圖像存在區(qū)別,但是當(dāng)一個(gè)網(wǎng)絡(luò)經(jīng)過(guò)ImageNet訓(xùn)練后,已經(jīng)具備了一定的對(duì)圖形信息的理解能力,即使應(yīng)用在惡意代碼圖像識(shí)別中,這部分能力依然能夠得到保留。

      圖6 遷移學(xué)習(xí)前后的網(wǎng)絡(luò)對(duì)比Fig. 6 Comparison of networks before and after transfer learning

      4.3 插值算法

      為了檢驗(yàn)不同插值算法對(duì)惡意代碼圖像分類精度的影響,本文對(duì)不同算法的性能進(jìn)行了實(shí)驗(yàn)對(duì)比,結(jié)果如表4所示,其中還給出了使用不同算法進(jìn)行插值縮放的耗時(shí)。

      首先關(guān)注不同算法在時(shí)間效率上的差距。其中,Nearest因僅對(duì)最鄰近的一個(gè)點(diǎn)插值采樣,故計(jì)算速度最快,僅耗費(fèi)了1.64 s。Bilinear和Bicubic分別為4點(diǎn)采樣與16點(diǎn)采樣,故時(shí)間效率呈遞減狀。Box與Lanczos為窗口采樣,因Box窗口值較小,故在時(shí)間效率上領(lǐng)先于窗口較值大的Lanczos。

      在精度上,Nearest的對(duì)最鄰近采樣策略導(dǎo)致其采樣樣本不足,精度上低于實(shí)驗(yàn)中其他算法;Box的采樣窗口小,與Nearest相比僅在下采樣時(shí)具備優(yōu)勢(shì),導(dǎo)致精度也較低;Lanczos算法在上采樣時(shí)具備優(yōu)勢(shì),但實(shí)驗(yàn)數(shù)據(jù)集內(nèi)的DEX與JAR文件普遍較大,導(dǎo)致多數(shù)插值情況為下采樣插值,故準(zhǔn)確率低于Bilinear與Bicubic。

      表4 不同插值算法的性能對(duì)比Tab. 4 Performance comparison of different interpolation algorithms

      接下來(lái)將Bilinear與Bicubic進(jìn)行對(duì)比,Bicubic采樣點(diǎn)為Bilinear的4倍,但在實(shí)驗(yàn)中并沒(méi)有呈現(xiàn)出應(yīng)有的優(yōu)勢(shì),原因可能在于插值后生成的圖像尺寸小、清晰度低,并不能發(fā)揮Bicubic算法的優(yōu)勢(shì)。為驗(yàn)證以上猜想,將圖像放大至再對(duì)二者進(jìn)行對(duì)比??紤]到STResNeSt結(jié)構(gòu)參數(shù)是在基礎(chǔ)上設(shè)計(jì),輸入更大尺寸圖像需要重新修改模型結(jié)構(gòu),也增加了訓(xùn)練時(shí)長(zhǎng),因此在輕型網(wǎng)絡(luò)EfficientNet-B4[29]上進(jìn)行驗(yàn)證。表4中的實(shí)驗(yàn)結(jié)果表明,在的代碼圖像上,Bicubic相較Bilinear算法提高了1.13個(gè)百分點(diǎn)的準(zhǔn)確率和1.27個(gè)百分點(diǎn)的F1值,表明Bicubic算法在更大尺寸圖像上具有優(yōu)勢(shì)。但在本文方法中仍將選擇與模型適配度高的Bilinear算法進(jìn)行插值縮放。

      4.4 數(shù)據(jù)增強(qiáng)與類別平衡損失函數(shù)

      為驗(yàn)證樣本不平衡對(duì)分類精度造成的影響,本文首先將原始數(shù)據(jù)與經(jīng)過(guò)數(shù)據(jù)增強(qiáng)的數(shù)據(jù)進(jìn)行對(duì)比。表5中數(shù)據(jù)顯示,數(shù)據(jù)增強(qiáng)后的數(shù)據(jù)在分類精度上無(wú)顯著提升,原因在于在數(shù)據(jù)增強(qiáng)過(guò)程中雖然樣本數(shù)增加,但有效樣本數(shù)并無(wú)明顯上升;同時(shí),旋轉(zhuǎn)、平移等結(jié)構(gòu)變化的過(guò)程也可能使樣本損失部分特征。

      表5 不同樣本均衡方法的性能對(duì)比Tab. 5 Performance comparison of different sample balancing methods

      之后將訓(xùn)練中的損失函數(shù)替為CB Loss,但依然使用原始數(shù)據(jù)集。可見(jiàn)經(jīng)過(guò)CB Loss訓(xùn)練后的模型在F1值上有了0.19個(gè)百分點(diǎn)的小幅提升,表明在損失函數(shù)中為不同類別賦予不同的權(quán)重能夠緩解數(shù)據(jù)不平衡造成的影響。即便如此,較少的樣本量依然限制了模型的效果。而將數(shù)據(jù)增強(qiáng)與CB Loss相結(jié)合后,可以看到其F1值達(dá)到了98.81%,在原數(shù)據(jù)的基礎(chǔ)上實(shí)現(xiàn)了0.66個(gè)百分點(diǎn)的領(lǐng)先。

      圖7為不同家族的F1值在使用數(shù)據(jù)增強(qiáng)與CB Loss前后的不同表現(xiàn),其中左側(cè)的豎軸為F1值,右側(cè)的豎軸為該家族樣本在原始數(shù)據(jù)中的數(shù)量。從圖7中能夠看出,不同家族的F1值經(jīng)過(guò)樣本不均衡處理后都有了或多或少的提升。值得注意的是,樣本數(shù)原本較少的家族如Geinimi、Iconosys等漲幅更為明顯,Geinimi家族的F1值達(dá)到了約2.4個(gè)百分點(diǎn)的漲幅。

      實(shí)驗(yàn)結(jié)果表明,數(shù)據(jù)增強(qiáng)能夠增加樣本多樣性,降低模型對(duì)某些屬性的依賴。類別均衡損失函數(shù)又能根據(jù)有效樣本數(shù)為不同類別賦予相應(yīng)的權(quán)重,有效降低了樣本不均衡導(dǎo)致的負(fù)面影響。

      圖7 不同家族的F1值Fig. 7 F1 scores of different families

      4.5 分類模型

      表6給出了基于ResNet改進(jìn)的各類殘差結(jié)構(gòu)網(wǎng)絡(luò)在惡意代碼合成圖像中的性能對(duì)比。

      表6 不同殘差網(wǎng)絡(luò)的性能對(duì)比Tab. 6 Performance comparison of different residual networks

      不難發(fā)現(xiàn),雖然不同殘差神經(jīng)網(wǎng)絡(luò)表現(xiàn)不一,但在代碼圖像合成方法上都取得了較好的效果,均達(dá)到了97%以上的準(zhǔn)確率與F1值。

      對(duì)比實(shí)驗(yàn)中ResNet準(zhǔn)確率最低,因?yàn)槠渥鳛楸?中所有網(wǎng)絡(luò)的骨干網(wǎng)絡(luò),只采用了基本的殘差結(jié)構(gòu)。ResNeXt使用了Inception[30]中的網(wǎng)絡(luò)結(jié)構(gòu),在ResNet中進(jìn)行分組卷積,故效果優(yōu)于ResNet。SENet則是通過(guò)引入了通道注意力提升網(wǎng)絡(luò)的特征識(shí)別能力,在50結(jié)構(gòu)上準(zhǔn)確率上領(lǐng)先ResNet約0.31個(gè)百分點(diǎn)。SKNet[5]與ResNeSt結(jié)構(gòu)類似,都在ResNeXt和SENet的基礎(chǔ)上設(shè)計(jì)而來(lái),均采用了多分支結(jié)構(gòu)與注意力思想,但得益于ResNeSt中的Split Attention模塊化的設(shè)計(jì),ResNeSt在控制了參數(shù)量的情況下依然提升了準(zhǔn)確率。STResNeSt與ResNeSt相比增加了軟閾值去噪模塊,針對(duì)代碼圖像中的噪聲進(jìn)行處理,增強(qiáng)了模型的特征選擇能力,在惡意軟件家族的分類準(zhǔn)確率達(dá)到了98.97%,相較于ResNet實(shí)現(xiàn)了1.1個(gè)百分點(diǎn)的領(lǐng)先。

      本文中還將50層結(jié)構(gòu)與101層結(jié)構(gòu)進(jìn)行了對(duì)比。雖然101結(jié)構(gòu)使用了更多的基礎(chǔ)模塊,但在代碼圖像上并沒(méi)有展現(xiàn)出相較50結(jié)構(gòu)的優(yōu)勢(shì),原因在于代碼圖像與自然場(chǎng)景圖像存在差異,代碼圖像的特征僅利用局部的梯度、邊緣等信息就可判斷,故101結(jié)構(gòu)中的高層語(yǔ)義信息難以發(fā)揮其作用。

      4.6 代碼圖像

      從JAR文件中篩選可見(jiàn)字符串是代碼圖像合成前的步驟之一。將字符串篩選前后的JAR文件進(jìn)行對(duì)比,將兩個(gè)文件分別轉(zhuǎn)換為RGB圖,輸入模型中進(jìn)行訓(xùn)練。由表7可見(jiàn),篩選后的JAR文件相較原始的JAR文件在準(zhǔn)確率上提升了約1.04個(gè)百分點(diǎn)。

      表7 不同代碼圖像生成方法的性能對(duì)比Tab.7 Performance comparison of different code image generation methods

      接下來(lái)測(cè)試XML與DEX文件生成的代碼圖像。表7中的DEX圖像生成方法分為DEX(灰度圖)和DEX兩種:前者為文獻(xiàn)[11]中的方法,即將整個(gè)文件直接轉(zhuǎn)換為一維灰度圖;后者對(duì)DEX文件進(jìn)行簡(jiǎn)單三維折疊后生成RGB圖像,此方法被文獻(xiàn)[12]與文獻(xiàn)[13]采用。

      將合成代碼圖像與上述代碼圖像進(jìn)行對(duì)比,結(jié)果如表7所示,相較于XML和可見(jiàn)JAR文件的RGB圖像,合成后的RGB惡意代碼圖像在準(zhǔn)確率上分別提升了2.05個(gè)百分點(diǎn)和2.96個(gè)百分點(diǎn),在與DEX(灰度圖)、DEX的對(duì)比上也分別保持了2.93個(gè)百分點(diǎn)和1.88個(gè)百分點(diǎn)的優(yōu)勢(shì),同時(shí)在F1值上的表現(xiàn)也最為出色。由此可見(jiàn),合成的代碼圖像融合了多類文件的特征信息,提升了分類效果。

      5 結(jié)語(yǔ)

      為優(yōu)化安卓惡意代碼圖像的分類效果,本文提出了代碼圖像的合成方法,并研究了代碼圖像生成中的圖像比例與插值縮放問(wèn)題,分類模型上將軟閾值算法與Split-Attention相結(jié)合提出了STResNeSt,最后使用了數(shù)據(jù)增強(qiáng)與CB Loss處理數(shù)據(jù)不平衡。實(shí)驗(yàn)結(jié)果表明:1)合成后的代碼圖像為模型提供了更為豐富的代碼特征,得到了更優(yōu)秀的分類效果;2)Bilinear插值算法在代碼圖像上的精度表現(xiàn)優(yōu)于同類算法,同時(shí)保持了較低的算法復(fù)雜度;3)引入了去噪模塊的STResNeSt具備更強(qiáng)的特征選擇能力,其分類精度高于同類殘差結(jié)構(gòu)網(wǎng)絡(luò);4)數(shù)據(jù)增強(qiáng)技術(shù)與CB Loss相結(jié)合有效減輕了不平衡數(shù)據(jù)給模型訓(xùn)練帶來(lái)的負(fù)面影響,顯著提高了小樣本家族的分類精度。

      本文對(duì)惡意代碼圖像化識(shí)別的思路進(jìn)行了新的探索,但仍然存在一些不足之處,優(yōu)化模型、降低復(fù)雜度以及在更多的樣本中驗(yàn)證并改進(jìn)本文方法是未來(lái)需要完善的工作。

      [1] LI M B, WANG W, WANG P, et al. LibD: scalable and precise third-party library detection in Android markets [C]// Proceedings of the 2017 IEEE/ACM 39th International Conference on Software Engineering. Piscataway: IEEE, 2017: 335-346.

      [2] HE K M, ZHANG X Y, REN S Q, et al. Deep residual learning for image recognition [C]// Proceedings of the 2016 IEEE Conference on Computer Vision and Pattern Recognition. Piscataway: IEEE,2016: 770-778.

      [3] HU J, SHEN L, SUN G. Squeeze-and-excitation networks [C]// Proceedings of the 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Piscataway: IEEE, 2018: 7132-7141.

      [4] XIE S N, GIRSHICK R, DOLLáR P, et al. Aggregated residual transformations for deep neural networks [C]// Proceedings of the 2017 IEEE Conference on Computer Vision and Pattern Recognition. Piscataway: IEEE, 2017: 5987-5995.

      [5] LI X, WANG W H, HU X L, et al. Selective kernel networks [C]// Proceedings of the 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Piscataway: IEEE, 2019: 510-519.

      [6] ZHANG H, WU C R, ZHANG Z Y, et al. ResNeSt: split-attention networks [EB/OL]. [2021-03-02]. https://arxiv.org/pdf/2004. 08955.pdf.

      [7] SANTOS I, BREZO F, NIEVES J, et al. Idea: opcode-sequence-based malware detection [C]// Proceedings of the 2010 International Symposium on Engineering Secure Software and Systems, LNCS 5965. Berlin: Springer, 2010:35-43.

      [8] WANG W, WANG X, FENG D W, et al. Exploring permission-induced risk in Android applications for malicious application detection [J]. IEEE Transactions on Information Forensics and Security, 2014, 9(11): 1869-1882.

      [9] GRINI L S, SHALAGINOV A, FRANKE K. Study of soft computing methods for large-scale multinomial malware types and families detection [M]// ZADEH L A, YAGER R R, SHAHBAZOVA S N, et al. Recent Developments and the New Direction in Soft-Computing Foundations and Applications, STUDFUZZ 361. Cham: Springer, 2018: 337-350.

      [10] QIU J Y, ZHANG J, LUO W, et al. A3CM:automatic capability annotation for Android malware [J]. IEEE Access, 2019,7: 147156-147168.

      [11] 張晨斌,張?jiān)拼海崡?,?基于灰度圖紋理指紋的惡意軟件分類[J].計(jì)算機(jī)科學(xué),2018,45(6A):383-386.(ZHANG C B, ZHANG Y C, ZHENG Y, et al. Malware classification based on texture fingerprint of gray-scale images [J]. Computer Science, 2018, 45(6A): 383-386.)

      [12] HUANG T T H D, KAO H Y. R2-D2: color-inspired Convolutional Neural Network (CNN)-based Android malware detections [C]// Proceedings of the 2018 IEEE International Conference on Big Data. Piscataway: IEEE, 2018: 2633-2642.

      [13] VASAN D, ALAZAB M, WASSAN S, et al. IMCFN: image-based malware classification using fine-tuned convolutional neural network architecture [J]. Computer Networks, 2020, 171: Article No.107138.

      [14] 高楊晨,方勇,劉亮,等.基于卷積神經(jīng)網(wǎng)絡(luò)的Android惡意軟件檢測(cè)技術(shù)研究[J].四川大學(xué)學(xué)報(bào)(自然科學(xué)版),2020,57(4):673-680.(GAO Y C,F(xiàn)ANG Y, LIU L, et al. Android malware detection technology based on deep convolutional neural network [J]. Journal of Sichuan University (Natural Science Edition), 2020, 57(4): 673-680.)

      [15] ZHAO M H, ZHONG S S, FU X Y, et al. Deep residual shrinkage networks for fault diagnosis [J]. IEEE Transactions on Industrial Informatics, 2020, 16(7): 4681-4690.

      [16] CUI Y, JIA M L, LIN T Y, et al. Class-balanced loss based on effective number of samples [C]// Proceedings of the 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Piscataway: IEEE, 2019: 9260-9269.

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

      [18] CUI Z H, XUE F, CAI X J, et al. Detection of malicious code variants based on deep learning [J]. IEEE Transactions on Industrial Informatics, 2018, 14(7): 3187-3196.

      [19] 孫博文,張鵬,成茗宇,等.基于代碼圖像增強(qiáng)的惡意代碼檢測(cè)方法[J].清華大學(xué)學(xué)報(bào)(自然科學(xué)版),2020,60(5):386-392.(SUN B W, ZHANG P,CHENG M Y, et al. Malware detection method based on enhanced code images [J]. Journal of Tsinghua University (Science and Technology), 2020, 60(5): 386-392.)

      [20] ARP D, SPREITZENBARTH M, HüBNER M, et al. Drebin: efficient and explainable detection of Android malware in your pocket [C]// Proceedings of the 2014 Annual Network and Distributed System Security Symposium. Reston: Internet Society, 2014: 1-12.

      [21] PRESS W H, TEUKOLSKY S A, VETTERLING W T, et al. Numerical Recipes: the Art of Scientific Computing [M]. 3rd ed. New York: Cambridge University Press, 2007: 123-128.

      [22] KEYS R. Cubic convolution interpolation for digital image processing [J]. IEEE Transactions on Acoustics, Speech, and Signal Processing, 1981, 29(6): 1153-1160.

      [23] TURKOWSKI K. Filters for common resampling tasks [M]// GRASSNER A S. Graphics Gems. Waltham: Academic Press, 1990: 147-165.

      [24] LAWRENCE N D, SCH?LKOPF B. Estimating a kernel fisher discriminant in the presence of label noise [C]// Proceedings of the 2001 18th International Conference on Machine Learning. San Francisco: Morgan Kaufmann Publishers Inc., 2001: 306-313.

      [25] XIA S Y, WANG G Y, CHEN Z Z, et al. Complete random forest based class noise filtering learning for improving the generalizability of classifiers [J]. IEEE Transactions on Knowledge and Data Engineering, 2019, 31(11): 2063-2078.

      [26] WU P X, ZHENG S Z, GOSWAMI M, et al. A topological filter for learning with label noise [EB/OL]. [2021-03-02]. https://arxiv.org/pdf/2012.04835.pdf.

      [27] HE H B, BAI Y, GARCIA E A, et al. ADASYN: adaptive synthetic sampling approach for imbalanced learning [C]// Proceedings of the 2008 IEEE International Joint Conference on Neural Networks (IEEE World Congress on Computational Intelligence). Piscataway: IEEE, 2008: 1322-1328.

      [28] ZOU Y, YU Z D, VIJAYA KUMAR B V K, et al. Unsupervised domain adaptation for semantic segmentation via class-balanced self-training [C]// Proceedings of the 2018 European Conference on Computer Vision, LNCS 11207. Cham: Springer, 2018:297-313.

      [29] TAN M X, LE Q. EfficientNet: rethinking model scaling for convolutional neural networks [C]// Proceedings of the 2019 36th International Conference on Machine Learning. New York: JMLR.org,2019: 6105-6114.

      [30] SZEGEDY C, VANHOUCKE V, IOFFE S, et al. Rethinking the inception architecture for computer vision [C]// Proceedings of the 2016 IEEE Conference on Computer Vision and Pattern Recognition. Piscataway: IEEE, 2016: 2818-2826.

      Android malware family classification method based on code image integration

      LI Mo, LU Tianliang*, XIE Ziheng

      (School of Information and Cyber Security,People’s Public Security University of China,Beijing100038,China)

      Code visualization technology is rapidly popularized in the field of Android malware research once it was proposed. Aiming at the problem of insufficient representation ability of code image converted from single DEX (classes.dex)file, a new Android malware family classification method based on code image integration was proposed. Firstly, the DEX, XML (androidManifest.xml) and decompiled JAR (classes.jar) files in the Android application package were converted to three gray-scale images, and the Bilinear interpolation algorithm was used for the scaling of gray images in different sizes. Then, the three gray-scale images were integrated into a three-dimensional Red-Green-Blue (RGB) image for training and classification. In terms of classification model, the Soft Threshold (ST) Block+ResNeSt(STResNeSt) was proposed by combining the soft threshold denoising block with Split-Attention based ResNeSt. The proposed model has the strong anti-noise ability and is able to pay more attention to the important features of code image. To handle the long-tail distribution of data in the training process, Class Balance Loss (CB Loss) was introduced after data augmentation,which provided a feasible solution to the over-fitting caused by the imbalance of samples. On the Drebin dataset, the accuracy of integrated code image is 2.93 percentage points higher than that of DEX gray-scale image, the accuracy of STResNeSt is improved by 1.1 percentage points compared with the Residual Neural Network (ResNet), the scheme of data augmentation combined with CB Loss improves the F1 score by up to 2.4 percentage points. Experimental results show that, the average classification accuracy of the proposed method reaches 98.97%, which can effectively classify the Android malware family.

      Android malware family; code image; transfer learning; Convolution Neural Network (CNN); channel attention

      TP309.5

      A

      1001-9081(2022)05-1490-10

      10.11772/j.issn.1001-9081.2021030486

      2021?03?31;

      2021?06?23;

      2021?06?25。

      2021年公共安全行為科學(xué)實(shí)驗(yàn)室開(kāi)放課題(2020SYS06)。

      李默(1995—),男,江西贛州人,碩士研究生,主要研究方向:惡意代碼檢測(cè)、機(jī)器學(xué)習(xí); 蘆天亮(1985—),男,河北保定人,副教授,博士,CCF會(huì)員,主要研究方向:網(wǎng)絡(luò)空間安全、惡意代碼檢測(cè); 謝子恒(1999—),男,浙江寧波人,主要研究方向:網(wǎng)絡(luò)攻防、惡意代碼檢測(cè)。

      This work is partially supported by 2021 Open Project of Public Security Behavioral Science Lab (2020SYS06).

      LI Mo, born in 1995, M. S. candidate. His research interests include malware detection, machine learning.

      LU Tianliang, born in 1985, Ph. D., associate professor. His main research interests include cyber security, malware detection.

      XIE Ziheng, born in 1999. His research interests include cyber-attack and defense, malware detection.

      猜你喜歡
      代碼灰度家族
      采用改進(jìn)導(dǎo)重法的拓?fù)浣Y(jié)構(gòu)灰度單元過(guò)濾技術(shù)
      基于灰度拉伸的圖像水位識(shí)別方法研究
      HK家族崛起
      《小偷家族》
      電影(2019年3期)2019-04-04 11:57:18
      創(chuàng)世代碼
      創(chuàng)世代碼
      創(chuàng)世代碼
      創(chuàng)世代碼
      皿字家族
      家族中的十大至尊寶
      阜新市| 宝应县| 永清县| 阿克陶县| 含山县| 荆州市| 翁源县| 双柏县| 香格里拉县| 伊春市| 宜黄县| 晋江市| 泗水县| 普定县| 沐川县| 英德市| 雷州市| 波密县| 甘谷县| 永仁县| 云安县| 大丰市| 周至县| 黄陵县| 石棉县| 尚义县| 日喀则市| 平湖市| 温宿县| 鹤山市| 长白| 潍坊市| 巴里| 龙口市| 海淀区| 汨罗市| 镇江市| 定远县| 石棉县| 定日县| 定兴县|