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

?

結(jié)合注意力與雙線性網(wǎng)絡(luò)的Android惡意軟件檢測

2023-12-04 11:13秦海雪
關(guān)鍵詞:字節(jié)注意力分類

秦海雪,王 勇

(上海電力大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,上海 201306)

0 引 言

近年來Android惡意軟件的數(shù)量和類型都在快速增長[1],早期研究中所使用簡單的靜態(tài)和動態(tài)特征分析方法已經(jīng)不能滿足當(dāng)前惡意軟件快速檢測的需求。最近,一些研究者開始將字節(jié)碼圖像應(yīng)用在Android惡意軟件檢測上面[2-9]。該方法的優(yōu)點(diǎn)是代碼覆蓋率比較全面,根據(jù)惡意軟件家族中代碼結(jié)構(gòu)的相似性,可有效檢測出大量的惡意軟件及其變體。不過,目前大多數(shù)基于字節(jié)碼圖像Android惡意軟件檢測方法使用模型都是卷積神經(jīng)網(wǎng)絡(luò)(CNN),該模型在檢測字節(jié)碼圖像的過程中不但會受到噪音數(shù)據(jù)的影響,對于是否能進(jìn)一步識別不同類型惡意軟件還未得到實(shí)驗(yàn)驗(yàn)證。

針對上述方法所存在的問題。本文提出了一種結(jié)合注意力機(jī)制與雙線性網(wǎng)絡(luò)的Android惡意軟件檢測方法。該方法同樣基于字節(jié)碼圖像,不同的是本文將注意力機(jī)制與雙線性網(wǎng)絡(luò)相結(jié)合作為的Android惡意軟件檢測模型,目的就是結(jié)合注意力機(jī)制與雙線性網(wǎng)絡(luò)的優(yōu)點(diǎn),在減小字節(jié)碼圖像噪音數(shù)據(jù)影響的同時(shí)也提高了模型對惡意軟件分類的準(zhǔn)確率。此外,本文不僅使用消融實(shí)驗(yàn)驗(yàn)證了模型設(shè)計(jì)的有效性,還通過二分類與多分類對比實(shí)驗(yàn)驗(yàn)證了本文模型能夠在檢測出惡意軟件的基礎(chǔ)上進(jìn)一步區(qū)分出惡意軟件的具體類型。

1 相關(guān)工作

1.1 Android字節(jié)碼圖像

Android字節(jié)碼圖像就是使用逆向工具讀取APK文件內(nèi)部文件的原始數(shù)據(jù)并據(jù)此轉(zhuǎn)化而成的圖像。其中APK文件內(nèi)部的classes.dex文件由于包含編譯后的所有源代碼[10],常被用來制作Android字節(jié)碼圖像。

使用Android字節(jié)碼圖像檢測惡意軟件具有代碼覆蓋率全面,特征處理簡單等優(yōu)點(diǎn)。不過,由字節(jié)碼文件所生成的圖像不同于自然圖像,其圖像之間的差異完全由文件中的Dalvik字節(jié)碼所決定,不同類型的Android應(yīng)用可能只有幾行代碼的差別,其對應(yīng)字節(jié)碼圖像之間的差異也會非常小。

此外,如圖1所示,Android字節(jié)碼圖像存在不同的數(shù)據(jù)區(qū)域,同時(shí)也會包含較多的噪音數(shù)據(jù),所以使用傳統(tǒng)的單線CNN無法在訓(xùn)練過程中精確定位在關(guān)鍵像素區(qū)域上,從而對檢測精度造成影響。

圖1 DEX文件與RGB字節(jié)碼圖像對應(yīng)關(guān)系

1.2 雙線性卷積神經(jīng)網(wǎng)絡(luò)

雙線性卷積神經(jīng)網(wǎng)絡(luò)(B-CNN)[11]是一種用于細(xì)粒度圖像識別的體系結(jié)構(gòu),其結(jié)構(gòu)如圖2所示。

該網(wǎng)絡(luò)由兩個(gè)特征提取器(CNN)所組成,其輸出在圖像的每個(gè)位置使用外部乘積相乘,并合并以獲得圖像描述符。這種體系結(jié)構(gòu)可以以一種平移不變的方式對局部的兩兩特征進(jìn)行交互,并通過外積操作獲取特征圖通道之間的線性關(guān)系,這特別適用于圖像的細(xì)粒度分類。雙線性網(wǎng)絡(luò)模型B通??杀硎緸?/p>

(1)

B-CNN在圖像的細(xì)粒度分類領(lǐng)域具有巨大的優(yōu)勢,但還不足以完全解決字節(jié)碼圖像識別中存在的問題,尤其是字節(jié)碼圖像中噪音數(shù)據(jù)對檢測精度的影響。本文所提出的結(jié)合注意力的雙線性網(wǎng)絡(luò)受B-CNN所啟發(fā),將空間注意力機(jī)制加入B-CNN的一條分支中。通過提取特征圖中的關(guān)鍵像素位置信息來提升檢測的準(zhǔn)確率。

1.3 空間注意力機(jī)制

空間注意力機(jī)制模塊來自woo等提出的CBAM(卷積塊注意力模型)[12],如圖3所示。該模型有兩個(gè)順序子模塊:通道注意力模塊和空間注意力模塊。其中通道注意力模塊關(guān)注的是特征圖中的“行為”信息,而空間注意力模塊主要關(guān)注特征圖中的“位置”信息。最后通過將外積將通道信息與空間信息相結(jié)合來提取特征。

由于空間注意力模塊主要關(guān)注的是圖像中的“位置”信息,這對于定位字節(jié)碼圖像中的關(guān)鍵數(shù)據(jù)區(qū)域十分有幫助??臻g注意力模塊通過對卷積層輸出的特征圖進(jìn)行全局平均池化和全局最大池化操作來聚合特征圖中的空間信息的,從而更加精準(zhǔn)識別Android字節(jié)碼圖像。

2 結(jié)合注意力與雙線性網(wǎng)絡(luò)的檢測方法

2.1 系統(tǒng)架構(gòu)

本文檢測方法的系統(tǒng)架構(gòu)如圖4所示,首先使用Android逆向工具androguard[13]將APK樣本解壓縮,同時(shí)提取APK包中的classes.dex文件。然后通過androguard的反匯編功能讀取DEX文件中的原始字節(jié)碼,將其轉(zhuǎn)換為RGB圖像矩陣,并使用圖像工具Pillow將圖像矩陣保存為128×128的RGB字節(jié)碼圖像,生成Android字節(jié)碼圖像數(shù)據(jù)集。最后,將生成的字節(jié)碼圖像數(shù)據(jù)集輸入到本文提出的模型中進(jìn)行分類。如果輸入的數(shù)據(jù)集為包含良性軟件與惡意軟件的二分類檢測數(shù)據(jù)集,該模型將會從數(shù)據(jù)集中檢測出惡意軟件。如果輸入的數(shù)據(jù)集為包含不同類型惡意軟件的多分類識別數(shù)據(jù)集,該模型將會輸出數(shù)據(jù)集中惡意軟件的具體類型。圖4展示本文方法的整體架構(gòu)。

2.2 字節(jié)碼圖像生成

一張彩色RGB圖像是由紅綠藍(lán)3種顏色通道所組成,每個(gè)通道共有256種色級,3個(gè)通道組合在一起就形成了彩色圖像[14]。所以,如果將classes.dex文件按照字節(jié)讀取,一個(gè)字節(jié)含有8 bit,則每讀取3個(gè)字節(jié)就可以形成一個(gè)彩色的像素點(diǎn)。通過這種規(guī)則,我們先提取classes.dex文件的原始字節(jié)碼生成一個(gè)8位向量矩陣,然后按照一次讀取3個(gè)字節(jié)的方式逐個(gè)生成RGB像素,如果最后字節(jié)碼不滿3個(gè)字節(jié)則用0來補(bǔ)充。通過這種方式,就能夠?qū)PK包中的classes.dex文件轉(zhuǎn)化為RGB圖像。

根據(jù)上述字節(jié)碼圖像的生成原理,本文首先使用逆向工具androguard解壓并提取APK文件中的classes.dex文件,同時(shí)從中讀取原始的二進(jìn)制字節(jié)碼。然后,根據(jù)所提取到文件的字節(jié)大小來計(jì)算圖像的高度和寬度,最后將這些原始字節(jié)碼放在一個(gè)向量空間中,使用Pillow將字節(jié)碼轉(zhuǎn)換為128×128的RGB彩色圖像。轉(zhuǎn)化后的字節(jié)碼RGB圖像如圖5所示。

本文之所以選擇將圖像大小保存為128×128,是因?yàn)樵贒aoudi等[4]的文獻(xiàn)中對字節(jié)碼圖像尺寸與檢測精度關(guān)系進(jìn)行了詳細(xì)的測試,得出的結(jié)論是該圖像大小是能夠保持其最高檢測精度的最小尺寸,更大的圖像將會導(dǎo)致更長的訓(xùn)練時(shí)間,而更小的圖像將會使檢測精度受損。

下面的算法1是生成RGB圖像的生成算法:

算法1:DEX文件RGB圖像生成算法

輸入:APK文件

輸出:RGB圖像

bytestream ← 0

for DexFile in APK do

bytestream←bytestream+DexFile.toByteStream()

end

l ← bytestream.length()

sq ← sqrt2

while bytestream.length() != 3sq do

bytestream ← bytestream + "x00"http://補(bǔ)0

end

//用字節(jié)流生成一個(gè)長寬為sqrt的矩陣

img←generateRGBImage(bytestream,sqrt)

img.resize_to_size(height=128,width=128)

img.save()

2.3 結(jié)合注意力與雙線性網(wǎng)絡(luò)的檢測模型

2.3.1 模型描述

B-CNN模型可以通過兩條卷積神經(jīng)網(wǎng)絡(luò)的外積來捕獲特征圖通道中成對的相關(guān)性,從而對圖像進(jìn)行更為精細(xì)的分類。但是僅使用該模型仍無法解決字節(jié)碼圖像中噪音數(shù)據(jù)對檢測準(zhǔn)確率的影響。為了解決該問題,本文提出了結(jié)合注意力與雙線性網(wǎng)絡(luò)的檢測模型,該模型結(jié)構(gòu)如圖6所示。

圖6 結(jié)合注意力機(jī)制的雙線性網(wǎng)絡(luò)模型

該模型中包含有兩個(gè)分支,每個(gè)分支中都有一個(gè)特征提取模塊。與B-CNN不同的是,本文在分支A的特征提取模塊后面加入了注意力機(jī)制模塊。該模型充分利用了兩條分支中的特征信息,其中包含注意力機(jī)制模塊的分支A關(guān)注的字節(jié)碼圖像的“位置”信息,而另一條分支B將會通過特征提取模塊提取字節(jié)碼圖像的“行為”信息,同時(shí)這兩條分支還會通過外積捕獲兩條分支特征中成對的相關(guān)性,提升字節(jié)碼圖像分類的效果。

在圖6中,結(jié)合注意力的雙線性網(wǎng)絡(luò)模型整體上可以由一個(gè)四元模型所組成,可表示為

B=(fA,fB,P,C)

(2)

其中:fA和fB分別表示的是注意力分支A與分支B的特征函數(shù),而P和C分別代表池化函數(shù)和分類函數(shù)。其中特征提取函數(shù)f(·)為一個(gè)特征映射,可表示為

(3)

式中:I表示的是輸入圖像,L為區(qū)域位置,它表示I和L可以表示一個(gè)輸出大小為c×D的特征。而每一個(gè)位置的特征輸出可以由一個(gè)雙線性操作表示為

Bilinear(l,I,fA,fB)=fA(l,I)TfB(l,I)

(4)

為了能夠獲取到一個(gè)完整的圖像描述,池化函數(shù)P將收集字節(jié)碼圖像中所有位置的特征,并將圖像中所有的雙線性特征累加起來,這個(gè)過程可以表示為

P(I)=∑l∈LBilinear(l,I,fA,fB)

(5)

如果特征函數(shù)fA和fB分別提取尺寸為c×M和c×N的特征,則P(I) 的尺寸為M×N。將P(I) 重塑為尺寸MN×1得到的雙線性向量是一個(gè)通用的圖像描述,可以與分類函數(shù)C一起使用。然后,將雙線性特征正則化后通過以下公式改善性能

(6)

(7)

最后,通過分類函數(shù)Softmax對經(jīng)過處理的特征進(jìn)行預(yù)測分類。

2.3.2 注意力機(jī)制模塊

本文在B-CNN的一個(gè)分支中加入了空間注意力機(jī)制模塊[12],目的是利用特征間的空間關(guān)系生成空間注意圖,抑制不重要的像素特征,同時(shí)將注意力集中在更加重要的像素上面,從而使雙線性網(wǎng)絡(luò)的一條分支可以通過訓(xùn)練定位到字節(jié)碼圖像的關(guān)鍵像素區(qū)域。具體來說,該空間注意力機(jī)制模塊主要由一個(gè)最大池化、平均池化層、一個(gè)連接層以及一個(gè)卷積層所組成,如圖7所示。

圖7 空間注意力機(jī)制模塊

Ms(F)=σ(f5×5([AvgPool(F);MaxPool(F)]))=

(8)

式中:σ表示的是Sigmoid函數(shù),f5×5表示卷積核尺寸為5×5的卷積運(yùn)算。

盡管從式(8)中所得出的空間注意力特征圖Ms(F)已經(jīng)包含了后續(xù)計(jì)算所需的全部信息,但是該特征圖還無法直接參與模型后續(xù)的計(jì)算。因?yàn)樵撎卣鲌D形狀為通道數(shù)為1,已經(jīng)不同于分支B中的特征圖的通道數(shù)C,而后續(xù)的外積操作則要求兩個(gè)分支特征圖的通道數(shù)C必須保持一致。所以,在這里我們會用輸入注意力機(jī)制模塊的特征圖F與Ms(F)相乘,得到一個(gè)與特征圖F形狀保持一致空間注意力特征圖Fat,計(jì)算如式(9)

Fat=F×Ms(F)T

(9)

接下來,由式(9)所得到的空間注意力特征圖Fat將會參與后續(xù)進(jìn)一步的計(jì)算。

2.3.3 特征提取器模塊

特征提取模塊同時(shí)存在于兩條分支中,該模塊的主要作用是從字節(jié)碼圖像中提取特征并生成特征圖以作為整個(gè)模型后續(xù)的計(jì)算。本文參考了Sun等[6]的網(wǎng)絡(luò)模型結(jié)構(gòu),使用了一組卷積神經(jīng)網(wǎng)絡(luò)(CNN)作為雙線性網(wǎng)絡(luò)兩條分支的特征提取器。值得注意的是,盡管本文所用CNN的結(jié)構(gòu)Sun等[6]的模型結(jié)構(gòu)相同,但由于他們的模型參數(shù)是為了處理一維字節(jié)碼圖像而設(shè)置的,所以本文調(diào)整了其卷積核的尺寸,經(jīng)過反復(fù)調(diào)整最終確定了使用兩個(gè)大小為5×5的卷積核和一個(gè)大小為3×3的卷積核效果最好。其特征提取模塊CNN的模型結(jié)構(gòu)如圖8所示。

該特征提取模塊包含兩個(gè)卷積層以及兩個(gè)最大池化層,從字節(jié)碼圖像中提取的特征經(jīng)過該模塊后將會輸出一個(gè)特征圖F。在包含注意力機(jī)制模塊的分支A中,生成的特征圖F將會經(jīng)過注意力機(jī)制模塊并生成一個(gè)空間注意力特征圖Fat。而在分支B中,其特征提取器將會直接生成一個(gè)特征圖F,與空間注意力特征圖Fat共同參與后續(xù)的運(yùn)算。

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

本實(shí)驗(yàn)使用兩種類型的分類實(shí)驗(yàn)對本文模型方法進(jìn)行評估,分別為:①惡意軟件二分類檢測實(shí)驗(yàn),該實(shí)驗(yàn)從軟件總樣本中檢測出惡意軟件樣本;②惡意軟件多分類識別實(shí)驗(yàn),從惡意軟件樣本中識別出惡意軟件的具體類型。數(shù)據(jù)集的劃分和實(shí)驗(yàn)評估也都將按照這兩種類型的分類實(shí)驗(yàn)進(jìn)行。

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

本次實(shí)驗(yàn)的Android惡意軟件數(shù)據(jù)來自加拿大網(wǎng)絡(luò)安全研究所[15]的數(shù)據(jù)集CICMalDroid2020。該惡意軟件數(shù)據(jù)集中包含了廣告軟件(Adware)、銀行惡意軟件(Ban-king)、短信惡意軟件(SMS)、風(fēng)險(xiǎn)軟件(Riskware)4個(gè)惡意軟件類型。Android良性軟件由360應(yīng)用市場和豌豆莢應(yīng)用商店收集而來。對該數(shù)據(jù)進(jìn)行了整理和刪除后,選取了5893個(gè)惡意軟件樣本和5055個(gè)良性軟件樣本進(jìn)行實(shí)驗(yàn)。數(shù)據(jù)集的描述見表1。該數(shù)據(jù)集中二分類檢測數(shù)據(jù)集與多分類識別數(shù)據(jù)集將分別用于相對應(yīng)的檢測與識別實(shí)驗(yàn)中。

表1 數(shù)據(jù)集描述

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

本實(shí)驗(yàn)的實(shí)驗(yàn)環(huán)境是基于Python版本3.8.5、Anaconda集成環(huán)境。本實(shí)驗(yàn)所有模型都使用Tensorflow版本2.6和Keras版本2.25實(shí)現(xiàn)。所有實(shí)驗(yàn)是在CPU為AMD Ryzen 7 5800H with Radeon Graphics 3.20 GHz,GPU為3060的Windows系統(tǒng)上進(jìn)行的。

3.3 評估指標(biāo)

3.3.1 二分類檢測實(shí)驗(yàn)評估指標(biāo)

Android惡意軟件與良性軟件的二分類檢測實(shí)驗(yàn)中本文將會使用準(zhǔn)確率(Accuracy)、精確度(Precision)、召回率(Recall)和F1-Score作為評估模型性能的指標(biāo),其定義如下。

準(zhǔn)確率(Accuracy):被測試樣本中被正確預(yù)測的比例

(10)

精確度(Precision):衡量預(yù)測為正例的樣本中真正為正例的比例

(11)

召回率(Recall):評估是否把樣本中所有的真正例全部找出來

(12)

F1-Score:精度和檢出率的平衡點(diǎn)

(13)

3.3.2 多分類識別實(shí)驗(yàn)評估指標(biāo)

Android惡意軟件多分類識別實(shí)驗(yàn)將會使用表2中的多分類混淆矩陣來對分類結(jié)果進(jìn)行具體的評估[11]。

表2 多分類混淆矩陣

除了混淆矩陣以外,本文還使用加權(quán)平均(Weighted-average)方法對多分類進(jìn)行評估,該方法中準(zhǔn)確率與二分類的計(jì)算方式相同,其它3個(gè)指標(biāo)略有不同。該方法給不同類別賦予了不同權(quán)重(權(quán)重根據(jù)該類別的真實(shí)分布比例確定),每個(gè)類別乘權(quán)重后再進(jìn)行相加,該方法考慮了類別不平衡情況。

設(shè)n代表的是多分類的樣本總數(shù),i為第i個(gè)類別的下標(biāo),則ni表示第i個(gè)分類的樣本數(shù)量。由此可以得到第i類的權(quán)重為Wi=ni/n。然后將多分類樣本中的每個(gè)類別i看作二分類中的正例,其它類別看作反列,這樣就可以按照二分類的計(jì)算方式由式(11)、式(12)、式(13)計(jì)算出每一個(gè)分類i的精確度、召回率和F1-Score分別為Pi、Ri和Fi。進(jìn)而,我們就能夠得出多分類中的Weighted-Precision、Weighted-Recall和Weighted-F1-Score。其定義如下。

加權(quán)精確度(Weighted-Precision):表示多分類中每個(gè)類別精確度的加權(quán)平均值

(14)

加權(quán)召回率(Weighted-Recall):表示多分類中每個(gè)類別召回率的加權(quán)平均值

(15)

加權(quán)(Weighted-F1-Score):表示多分類中每個(gè)類別F1-Score的加權(quán)平均值

(16)

3.4 消融實(shí)驗(yàn)

消融實(shí)驗(yàn)的主要目的是使用控制變量的方法驗(yàn)證本文模型改進(jìn)所帶來的提升效果。結(jié)合注意力的雙線性網(wǎng)絡(luò)的主要?jiǎng)?chuàng)新之處是在B-CNN的單分支中加入了空間注意力機(jī)制模塊,而為了準(zhǔn)確驗(yàn)證這一改進(jìn)的提升效果,本文使用以下5種模型作為對比:①CNN(單線網(wǎng)絡(luò)),該模型結(jié)構(gòu)與本文模型中特征提取器模塊中的CNN結(jié)構(gòu)相同。②CNN+注意力,該模型僅在CNN模型中加入一個(gè)注意力機(jī)制,與本文模型中的分支A結(jié)構(gòu)相同。③B-CNN,該模型中未加入注意力機(jī)制模塊。④B-CNN+單線注意力,該模型也就是本文所提出的結(jié)合注意力的雙線性網(wǎng)絡(luò)模型。⑤B-CNN+雙線注意力,該模型同時(shí)在B-CNN的兩條分支中加入注意力機(jī)制模塊。

使用這5種模型分別進(jìn)行二分類檢測實(shí)驗(yàn)和多分類識別實(shí)驗(yàn)并綜合分析模型的性能。

3.4.1 二分類檢測

5種不同模型實(shí)驗(yàn)的結(jié)果見表3。

表3 5種不同模型二分類檢測實(shí)驗(yàn)結(jié)果

從表3的實(shí)驗(yàn)結(jié)果可以看出,與CNN相比,加入注意力機(jī)制模塊的CNN+注意力模型在4個(gè)評估指標(biāo)上均有0.1%~0.0.4%的提升,而B-CNN與CNN相比所得到的結(jié)果幾乎相同,并沒有體現(xiàn)出優(yōu)勢。當(dāng)B-CNN中加入注意力機(jī)制模塊后,其在4個(gè)評估指標(biāo)上又有了0.2%~0.8%的提升,不過在B-CNN的兩條分支中加入注意力機(jī)制模塊并沒有比只在一條分支中加入注意力機(jī)制具有更好的結(jié)果,兩個(gè)模型在準(zhǔn)確率和F1-Score上表現(xiàn)相同,其它兩個(gè)評估指標(biāo)各有優(yōu)劣。

從以上結(jié)果對比不難發(fā)現(xiàn),模型中注意力機(jī)制的加入將會成為二分類檢測效果提升的關(guān)鍵,而僅僅使用B-CNN并不能對二分類檢測實(shí)驗(yàn)效果產(chǎn)生明顯的提升。這說明了注意力機(jī)制的加入會讓模型更加關(guān)注字節(jié)碼圖像中的關(guān)鍵數(shù)據(jù)區(qū)域,從而獲得更多的有效信息,提升Android字節(jié)碼圖像檢測的效果。

3.4.2 多分類識別

多分類識別實(shí)驗(yàn)的目的是驗(yàn)證該模型是否能夠在檢測出Android惡意軟件的基礎(chǔ)上進(jìn)一步識別出惡意軟件的具體類型,從而實(shí)現(xiàn)字節(jié)碼圖像的細(xì)粒度識別。使用加權(quán)平均(Weighted-average)評估方法對5種不同網(wǎng)絡(luò)模型的多分類結(jié)果見表4。

表4 5種模型的多分類識別實(shí)驗(yàn)結(jié)果

從表4的多分類識別實(shí)驗(yàn)結(jié)果上來看,CNN與B-CNN加入注意力機(jī)制后都有較為明顯的提升,這說明注意力機(jī)制在字節(jié)碼圖像多分類識別中同樣具有提升作用。而與二分類實(shí)驗(yàn)不同的是,B-CNN本身相較于CNN在4個(gè)評估指標(biāo)上也具有一定的提升,這驗(yàn)證了B-CNN的雙線性特征的提取和交互在圖像多分類中具有優(yōu)勢,在圖像多分類中具有優(yōu)勢。值得注意的是,B-CNN+單注意力模型的效果要明顯優(yōu)于B-CNN+雙線注意力模型的效果,這一結(jié)果則進(jìn)一步的驗(yàn)證了本文的理論,在B-CNN中使用兩個(gè)不同的分支將會聚合兩個(gè)分支中不同的特征信息,使兩個(gè)分支中的特征產(chǎn)生更多交互,這對于內(nèi)部差異更小的惡意軟件家族多分類將更加有效。

為了能直觀展現(xiàn)模型在多分類實(shí)驗(yàn)中對每個(gè)類型分類的準(zhǔn)確率,本文將多分類混淆矩陣可視化,5種類型的模型多分類混淆矩陣可視化如圖9所示。

圖9 多分類混淆矩陣

該矩陣每一列表示Android惡意軟件類型的預(yù)測值,而每一行則表示Android惡意軟件類型的真實(shí)值。圖中每一格都顯示出了預(yù)測為該類型的惡意軟件數(shù)量與真實(shí)數(shù)量的比值,對角線上給出了正確的分類結(jié)果。也就是說,混淆矩陣對角線上值越大,表示多分類的準(zhǔn)確率越高。從圖9中我們可以看出,與表4的結(jié)果相對應(yīng),當(dāng)CNN模型中加入注意力機(jī)制模塊后,Adware、Banking和Riskware這3種類型分類的準(zhǔn)確率均有提升,其中Banking提升最大為5%。B-CNN對比CNN在除Riskware外的3個(gè)類型中也均有提升。從該結(jié)果中我們還能發(fā)現(xiàn),5種模型對SMS類型的惡意軟件分類的準(zhǔn)確性最差,對Riskware類型分類的準(zhǔn)確率最好,但B-CNN+單線注意力在這兩個(gè)類型上表現(xiàn)出的準(zhǔn)確率差距最小,其綜合性能最好。

從以上二分類與多分類實(shí)驗(yàn)結(jié)果綜合來看,注意力機(jī)制模塊的加入能夠同時(shí)提升字節(jié)碼圖像二分類與多分類的效果,而B-CNN模型的使用則主要能為字節(jié)碼圖像的多分類識別效果帶來提升。同時(shí)該實(shí)驗(yàn)還證實(shí)了將注意力機(jī)制模塊加入B-CNN的一條分支中所得到的效果要好于同時(shí)加入兩個(gè)分支。所以本文使用B-CNN+單線注意力作為本文所提出的模型。

3.5 與其它方法的對比

本文同時(shí)實(shí)現(xiàn)了幾種近幾年同類型的Android惡意軟件檢測方法或模型,這些方法均是使用本文數(shù)據(jù)集并在同一實(shí)驗(yàn)環(huán)境下比較的。其中Xiao等[3]的檢測方法由于同樣使用RGB字節(jié)碼圖像,與本文類似,所以僅使用該模型進(jìn)行比對。其余3種方法所用字節(jié)碼圖像類型與本文不同。我們按照這些文獻(xiàn)中所論述的方法以及所公開的代碼將本文數(shù)據(jù)集樣本轉(zhuǎn)化為了這些方法所對應(yīng)的字節(jié)碼圖像。這些方法也將與本文方法進(jìn)行二分類與多分類比較實(shí)驗(yàn)。

3.5.1 二分類檢測實(shí)驗(yàn)

二分類檢測結(jié)果中與其它方法的比較見表5。從表5可以看出,本文方法在二分類檢測實(shí)驗(yàn)中4個(gè)評估指標(biāo)都超過了98%,準(zhǔn)確率比這些所對比的方法提升要好于這些所對比的同類型方法。這說明與其它方法相比,本文所用模型中的注意力機(jī)制能夠更加關(guān)注字節(jié)碼圖像中的關(guān)鍵像素區(qū)域,從而更加精確的檢測出Android惡意軟件的字節(jié)碼圖像。在總體性能上要優(yōu)于這些所對比的方法。

表5 二分類檢測實(shí)驗(yàn)與現(xiàn)有方法結(jié)果的比較

3.5.2 多分類識別實(shí)驗(yàn)

二分類檢測結(jié)果中與其它方法的比較見表6。

表6 多分類識別實(shí)驗(yàn)與現(xiàn)有方法結(jié)果的比較

從表6中多分類識別結(jié)果來看,與二分類檢測實(shí)驗(yàn)中呈現(xiàn)的結(jié)果不同,這些所對比的方法在4個(gè)評估指標(biāo)上得出的結(jié)果相差較大,其中本文的方法表現(xiàn)最好,4個(gè)評估指標(biāo)均達(dá)到了0.959。DexRay[4]的效果最差,準(zhǔn)確率只有0.843,其余3個(gè)評估指標(biāo)均不超過0.9。與本文使用同樣RGB圖像的Xiao等[3]的結(jié)果僅次于本文。另外兩種使用融合圖像的檢測方法盡管在4個(gè)評估指標(biāo)上超過了0.9,但仍與本文方法的結(jié)果存在差距。從多分類識別的結(jié)果來看,本文對比其它方法具有較為明顯的提升,其中準(zhǔn)確率最少比Sun等[5]的方法多提升2.8%,最多比DexRay[4]的方法提升11.63%。以上結(jié)果都說明了本文方法由于結(jié)合了B-CNN與注意力機(jī)制的優(yōu)點(diǎn),在Android惡意軟件的多分類識別中要優(yōu)于同類型的方法和模型。

而從二分類與多分類實(shí)驗(yàn)綜合來看,本文的方法不僅在Android惡意軟件二分類檢測方面具有優(yōu)勢,更能有效提升惡意軟件多分類識別的效果。

3.6 訓(xùn)練時(shí)間評估

本文模型在二分類檢測與多分類識別實(shí)驗(yàn)中的訓(xùn)練參數(shù)與訓(xùn)練時(shí)間見表7和表8。表中訓(xùn)練參數(shù)表示模型一輪訓(xùn)練的數(shù)據(jù)量,而訓(xùn)練時(shí)間則表示訓(xùn)練一輪所耗費(fèi)的時(shí)長。

表7 二分類檢測中訓(xùn)練參數(shù)與時(shí)間

由表7和表8訓(xùn)練參數(shù)與時(shí)間中可以看出,由于本文模型復(fù)雜度和計(jì)算量上有所提高,所以該模型在訓(xùn)練參數(shù)與每輪的訓(xùn)練時(shí)間上要略大于僅使用CNN和B-CNN。其中二分類檢測中使用本文模型訓(xùn)練一輪需要花費(fèi)8 s,與B-CNN相當(dāng),多于CNN的5 s。二分類中本文模型訓(xùn)練一輪需要花費(fèi)5 s,分別多于單線網(wǎng)絡(luò)和雙線性CNN的3 s和4 s。顯然該模型是用更長的訓(xùn)練時(shí)間換取了檢測準(zhǔn)確率等指標(biāo)的提升。

4 結(jié)束語

本文提出了一種結(jié)合注意力和雙線性網(wǎng)絡(luò)的Android惡意軟件檢測方法,該方法通過在雙線性網(wǎng)絡(luò)模型的一個(gè)分支中加入注意力機(jī)制模塊,成功將字節(jié)碼圖像的位置信息和行為信息相結(jié)合,實(shí)現(xiàn)了更為準(zhǔn)確的Android字節(jié)碼圖像的分類。實(shí)驗(yàn)結(jié)果表明,該方法不但能夠準(zhǔn)確檢測惡意軟件和良性軟件,還能進(jìn)一步對惡意軟件進(jìn)行多分類并識別出惡意軟件的具體類型。本研究依然存在不足,如多分類實(shí)驗(yàn)中惡意軟件類型較少,模型訓(xùn)練時(shí)間較長等。下一步工作將會嘗試收集更多類型的惡意軟件,同時(shí)優(yōu)化模型實(shí)現(xiàn)性能更好的檢測。

猜你喜歡
字節(jié)注意力分類
讓注意力“飛”回來
No.8 字節(jié)跳動將推出獨(dú)立出口電商APP
分類算一算
No.10 “字節(jié)跳動手機(jī)”要來了?
分類討論求坐標(biāo)
數(shù)據(jù)分析中的分類討論
教你一招:數(shù)的分類
簡談MC7字節(jié)碼
“揚(yáng)眼”APP:讓注意力“變現(xiàn)”
A Beautiful Way Of Looking At Things
西充县| 葵青区| 五家渠市| 霍山县| 广州市| 平果县| 乌拉特前旗| 梅河口市| 通州区| 昭通市| 丽水市| 信阳市| 沁源县| 万年县| 台北县| 宜黄县| 剑阁县| 榕江县| 同德县| 洛川县| 凤山市| 呈贡县| 社旗县| 分宜县| 山阴县| 尖扎县| 北碚区| 永仁县| 贵溪市| 巴楚县| 靖边县| 安远县| 巨鹿县| 增城市| 根河市| 雷州市| 榆社县| 建瓯市| 平乐县| 沙雅县| 旅游|