張偉 徐洋 張思聰 徐貴勇
(貴州師范大學(xué) 貴州省信息與計(jì)算科學(xué)重點(diǎn)實(shí)驗(yàn)室 貴州省貴陽(yáng)市 550001)
近年來(lái),隨著萬(wàn)物互聯(lián)互通的快速發(fā)展以及Android 智能產(chǎn)品為代表的終端產(chǎn)品的推廣,影響我們生活和學(xué)習(xí)的各類移動(dòng)軟件不斷涌現(xiàn),給我們帶來(lái)了諸多便捷[1]。目前Google 發(fā)明的Android 系統(tǒng)憑借其簡(jiǎn)單效率高、高擴(kuò)展性等優(yōu)點(diǎn),現(xiàn)已占據(jù)了市場(chǎng)的主導(dǎo)地位。隨著近幾年安卓相關(guān)移動(dòng)產(chǎn)品用戶數(shù)量的不斷上升,但惡意軟件給人們?cè)斐傻闹T如經(jīng)濟(jì)損失、隱私泄露等后果也會(huì)越來(lái)越常見(jiàn)。因此,從安卓信息安全的角度來(lái)說(shuō),惡意軟件檢測(cè)技術(shù)的研究與提高是很有意義的。
卿斯?jié)h[2]等人從安卓面臨的大多數(shù)威脅、機(jī)器學(xué)習(xí)的手段、惡意安卓軟件檢測(cè)等多個(gè)維度,對(duì)安卓軟件新出的研究進(jìn)展進(jìn)行了分析與整理。Blasing[2]等人通過(guò)沙箱對(duì)Android 惡意軟件進(jìn)行分析,模擬模擬程序同用戶間的交互,利用自動(dòng)化測(cè)試獲取并記錄程序的系統(tǒng)調(diào)用,但由于實(shí)驗(yàn)無(wú)法覆蓋所有程序執(zhí)行的路徑,檢測(cè)結(jié)果并不能保證十分準(zhǔn)確。
安卓軟件動(dòng)態(tài)檢測(cè)技術(shù)缺點(diǎn)主要是檢測(cè)效率較低,需要消耗較多的資源,而且無(wú)法保證所有的程序執(zhí)行路徑都能覆蓋到。而傳統(tǒng)靜態(tài)檢測(cè)技術(shù),雖然不需要運(yùn)行程序,檢測(cè)效率相對(duì)較高,而且對(duì)于己知的惡意軟件有較好的檢測(cè)率,但在面對(duì)不斷出現(xiàn)的新的惡意軟件時(shí)不可避免的出現(xiàn)檢測(cè)率降低的問(wèn)題。如何提高檢測(cè)方法對(duì)于新出現(xiàn)的惡意軟件的檢測(cè)準(zhǔn)確率,提高檢測(cè)模型的泛化能力,是當(dāng)前研宄中面臨的首要問(wèn)題[5]。隨著深度學(xué)習(xí)的方法不斷完善,應(yīng)用到靜態(tài)分析領(lǐng)域中對(duì)于安卓惡意軟件檢測(cè)已然成為一種趨勢(shì)。
本文提出了基于GRU 模型的深度學(xué)習(xí)方法進(jìn)行Android 惡意軟件檢測(cè)。
循環(huán)神經(jīng)網(wǎng)絡(luò)[3]主要用來(lái)處理考慮時(shí)間先后問(wèn)題,即上文與下文具有相互依賴關(guān)系的問(wèn)題,相對(duì)于支持向量機(jī)模型而言,循環(huán)神經(jīng)網(wǎng)絡(luò)具有更強(qiáng)的處理問(wèn)題能力,在面對(duì)現(xiàn)實(shí)中大規(guī)模的數(shù)據(jù)計(jì)算,循環(huán)神經(jīng)網(wǎng)絡(luò)具有更強(qiáng)大的擬合能力。但是隨著距離的逐步增大,RNN 學(xué)習(xí)到連接較遠(yuǎn)信息的能力就會(huì)降低,梯度的爆炸、梯度的消失問(wèn)題就越容易出現(xiàn)。為了解決這兩個(gè)問(wèn)題,提出門(mén)控機(jī)制,LSTM[4]是最先被提出的RNN 門(mén)控算法,因?yàn)長(zhǎng)STM 擁有3 個(gè)門(mén)控機(jī)制,對(duì)于自身的內(nèi)部狀態(tài)成立了自我循環(huán),相對(duì)于循環(huán)神經(jīng)網(wǎng)絡(luò)的遞歸計(jì)算而言,有了解決梯度問(wèn)題的手段。GRU 的工作原理與LSTM 相同,只是比LSTM 少一個(gè)門(mén)控機(jī)制,其網(wǎng)絡(luò)中只有更新門(mén)與復(fù)位門(mén),GRU 將LSTM 中的輸入門(mén)與遺忘門(mén)的結(jié)構(gòu)化簡(jiǎn),只用一個(gè)更新門(mén)代替。
表1:GRU 模型測(cè)試結(jié)果
表2:測(cè)試結(jié)果對(duì)比
圖1:準(zhǔn)確率對(duì)比圖
深度卷積神經(jīng)網(wǎng)絡(luò)[5]是最近幾年被高度使用的具有高效識(shí)別能力的卷積神經(jīng)網(wǎng)絡(luò),在卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上發(fā)展而來(lái)的,其自適應(yīng)能力與學(xué)習(xí)能力也很高,并且DCNN 還可以共享局部權(quán)值,可以降低網(wǎng)絡(luò)的復(fù)雜度,被廣泛應(yīng)用于人臉特征識(shí)別、語(yǔ)音處理、圖像分類等方面。
Android 惡意軟件檢測(cè)通常被當(dāng)做二分類問(wèn)題,RNN 可以很好的表達(dá)出下上文的代碼調(diào)用關(guān)系,常用在時(shí)序方面問(wèn)題的解決,并且GRU[6]作為RNN 的改進(jìn)模型具有更為簡(jiǎn)單的內(nèi)部構(gòu)造,參數(shù)也變得更少,這樣可以使得內(nèi)部的計(jì)算更為簡(jiǎn)單,提高檢測(cè)效率。本文依據(jù)GRU 模型可以處理上下文具有長(zhǎng)期依賴關(guān)系問(wèn)題的能力,提出了GRU 模型進(jìn)行Android 惡意軟件分析與檢測(cè)。
GRU 神經(jīng)網(wǎng)絡(luò)模型通過(guò)卷積進(jìn)行文本特征的提取,利用池化層把積特征整合,然后將特征放入GRU 神經(jīng)網(wǎng)絡(luò)中進(jìn)行訓(xùn)練,再把訓(xùn)練特征輸入全連接層中。
本文選用ADAM 優(yōu)化器[7],其特點(diǎn)內(nèi)存較小而且計(jì)算效率高,適合大數(shù)據(jù)集計(jì)算情形。具體算法如下:
其中,mt表示一階動(dòng)量項(xiàng),vt表示二階動(dòng)量項(xiàng)。
實(shí)驗(yàn)用到的損失函數(shù)為交叉熵?fù)p失函數(shù),它可以提供無(wú)偏估計(jì),是使用最為廣泛的一個(gè)代理?yè)p失,其表達(dá)式為:
其中y∈(0,1)其中本文用到的分類器是Softmax 分類,其表達(dá)公式為:
其中n=1,…,m,把含有任一實(shí)數(shù)的m 維的x 向量,壓縮到m維的y 實(shí)向量中,讓所有元素值都在(0,1)這個(gè)區(qū)間,且元素之和為1。
本次實(shí)驗(yàn)環(huán)境是在Ubuntu 操作系統(tǒng),內(nèi)存32GB,處理器為Intel? Core ? i7-9700K CPU@3.6GHz*8 實(shí)現(xiàn)的。實(shí)驗(yàn)采用的框架為Keras,后端TensorFlow,采用的語(yǔ)言Python。數(shù)據(jù)集采用drebin 的數(shù)據(jù)集,共129013 個(gè)樣本,惡意樣本有5560 個(gè),其他都是正常樣本。選取樣本中70%作為訓(xùn)練集,30%作為驗(yàn)證集來(lái)檢驗(yàn)?zāi)P蛯?duì)惡意軟件的識(shí)別情況。
本次實(shí)驗(yàn)采用drebin 數(shù)據(jù)集,樣本通過(guò)哈希函數(shù)映射為256 位的哈希值,然后分類成不同的惡意軟件家族,通過(guò)對(duì)樣本的哈希值的檢驗(yàn),判斷出是正常樣本還是惡意樣本。
用來(lái)評(píng)估惡意軟件檢測(cè)模型的指標(biāo)為:精確率:表示真正例的個(gè)數(shù)占實(shí)際檢測(cè)到正例個(gè)數(shù)的多少,其計(jì)算公式為:
準(zhǔn)確率:表示被正確預(yù)測(cè)出來(lái)的真正例和真負(fù)例樣本占總樣本的多少:
召回率:表示正例樣本中占正確預(yù)測(cè)的多少:
F1 值,是對(duì)召回率與精確率的一個(gè)調(diào)和評(píng)價(jià),其計(jì)算公式為:
以上公式中變量的含義表示如下:
TP:正確判斷正樣本所占的比重;
TN:正確判斷負(fù)樣本所占的比重;
FN:錯(cuò)誤的將正樣本判斷成負(fù)樣本;
FP:錯(cuò)誤的將負(fù)樣本判斷成正樣本。
為了檢驗(yàn)?zāi)P偷膶?shí)用性,根據(jù)準(zhǔn)確率(ACC),召回率(R),精準(zhǔn)率(P),F(xiàn)1 值指標(biāo),實(shí)驗(yàn)隨機(jī)地選擇當(dāng)中的三次測(cè)試結(jié)果,
如表1 所示。
為了驗(yàn)證GRU 模型與單一的DCNN 模型,LSTM 模型,SVM模型在惡意軟件檢測(cè)能力的差異,使用統(tǒng)一數(shù)據(jù)集完成對(duì)各個(gè)模型的測(cè)試,并完成這四個(gè)模型的測(cè)試結(jié)果的對(duì)比,結(jié)果如圖1 所示。
從圖1 中可以看出,GRU 模型在準(zhǔn)確率上明顯高于其他三個(gè)模型,準(zhǔn)確率維持在99%以上,其次是LSTM 模型,準(zhǔn)確率低于98.5%,SVM 模型準(zhǔn)確率在98.3%以下,準(zhǔn)確率最低的是DCNN模型,在98.0%以下。
各模型的訓(xùn)練時(shí)間對(duì)比,結(jié)果顯示,GRU 模型用的時(shí)間比其他三個(gè)模型要少,DCNN 需要3200s,SVM 需要5143s,LSTM 需要3562s,GRU 需要3150s.
從四組模型中,每組隨機(jī)選出一組結(jié)果,比較他們的P,ACC,R,F1指標(biāo)。從實(shí)驗(yàn)的指標(biāo)可以得出,GRU 模型所實(shí)現(xiàn)的結(jié)果是最好。結(jié)果如表2 所示。
本文針對(duì)Android 惡意軟件檢測(cè)提出的GRU 檢測(cè)模型,采用Tensorflow 為后端的框架。通過(guò)drebin 數(shù)據(jù)集進(jìn)行的對(duì)比實(shí)驗(yàn)證明,GRU 模型訓(xùn)練時(shí)間相對(duì)較少,準(zhǔn)確率,召回率等指標(biāo)較高。GRU模型的效果要強(qiáng)于傳統(tǒng)的SVM 模型,也比LSTM 和DCNN 模型達(dá)到的結(jié)果要好。本文只是針對(duì)drebin 數(shù)據(jù)集的測(cè)試,針對(duì)Android惡意軟件測(cè)試,后期研究把算法運(yùn)用到Windows 惡意代碼檢測(cè)中的適用性。