許歷隆 翟江濤 林鵬 崔永富
2020年第三季度,360安全大腦共截獲移動(dòng)端新增惡意應(yīng)用樣本約118.7萬(wàn)個(gè),平均每天截獲新增手機(jī)惡意應(yīng)用樣本約1.3萬(wàn)個(gè)[1].智能終端感染惡意應(yīng)用快速增長(zhǎng)的趨勢(shì)給移動(dòng)智能終端的用戶隱私、財(cái)產(chǎn)安全等方面帶來(lái)巨大危害.因此,移動(dòng)終端惡意應(yīng)用檢測(cè)和分類成為網(wǎng)絡(luò)安全研究的熱點(diǎn)問(wèn)題.
惡意應(yīng)用的分類檢測(cè)除了需給出待測(cè)樣本是否具有惡意性之外,對(duì)其所屬家族的判定同樣具有重要意義.惡意應(yīng)用的家族分類往往能夠揭示惡意應(yīng)用的惡意行為類別與執(zhí)行目的[2],這也為惡意應(yīng)用的危險(xiǎn)程度等信息提供了重要的參考.另外,惡意應(yīng)用家族分類的檢測(cè)有利于快速跟蹤惡意應(yīng)用家族發(fā)展,以便對(duì)網(wǎng)絡(luò)空間安全形勢(shì)進(jìn)行快速評(píng)估.因此,實(shí)現(xiàn)惡意家族的超多分類亦十分必要.
早期學(xué)者采用基于簽名匹配的方式識(shí)別Android惡意軟件.通過(guò)收集惡意應(yīng)用簽名構(gòu)建數(shù)據(jù)庫(kù),將待檢測(cè)的樣本與數(shù)據(jù)庫(kù)里的簽名進(jìn)行匹配,從而判斷應(yīng)用是否具有惡意性[3-5].但是這類方法需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行實(shí)時(shí)的更新和補(bǔ)充,否則無(wú)法識(shí)別新出現(xiàn)的惡意應(yīng)用.而且,開發(fā)者可通過(guò)簡(jiǎn)單修改應(yīng)用代碼在不影響語(yǔ)義的情況下逃避檢測(cè),因此該方法具有較大的局限性.隨著機(jī)器學(xué)習(xí)的興起,通過(guò)采用機(jī)器學(xué)習(xí)識(shí)別惡意應(yīng)用的方案得到了廣泛的研究.目前研究者主要通過(guò)提取惡意軟件中的相關(guān)特征,訓(xùn)練機(jī)器學(xué)習(xí)分類器,并用滿足訓(xùn)練條件的分類器對(duì)惡意樣本進(jìn)行識(shí)別.根據(jù)特征的不同,通??煞譃殪o態(tài)分析和動(dòng)態(tài)分析.
靜態(tài)分析是利用反編譯工具,提取APK文件中權(quán)限[6]、API調(diào)用[7]、網(wǎng)絡(luò)地址[8]、關(guān)鍵代碼字段[9]等特征.由于APK文件基本是固定的,因而從APK中提取的特征不容易發(fā)生改變.靜態(tài)分析方法的優(yōu)勢(shì)在于數(shù)據(jù)易采集、檢測(cè)效率高,但是其存在信息維度較少且難以解決代碼混淆的問(wèn)題.
動(dòng)態(tài)分析是指捕獲軟件在運(yùn)行中產(chǎn)生的行為特征分析并訓(xùn)練分類模型,如系統(tǒng)調(diào)用序列[10]、內(nèi)存利用率[11]等.近些年,在動(dòng)態(tài)特征中網(wǎng)絡(luò)流量特征引起了學(xué)者們廣泛關(guān)注.惡意應(yīng)用往往通過(guò)獲取移動(dòng)終端的權(quán)限監(jiān)視用戶的瀏覽與輸入信息,并通過(guò)網(wǎng)絡(luò)將隱私信息泄露給攻擊者.2012 年,Sarma 等[12]對(duì)超過(guò) 15 萬(wàn)個(gè)應(yīng)用程序進(jìn)行了研究,發(fā)現(xiàn) 93%的惡意程序需要網(wǎng)絡(luò)訪問(wèn).同年,Zhou等[13]指出,其收集的Android惡意樣本里,93%的軟件通過(guò)網(wǎng)絡(luò)與攻擊者的 C&C 服務(wù)器連接接收指令.因此,流量交互是惡意應(yīng)用產(chǎn)生惡意行為的重要一環(huán),而通過(guò)分析流量特征檢測(cè)惡意應(yīng)用是可行方案.
Lashkari等[14]從真實(shí)網(wǎng)絡(luò)環(huán)境中捕獲網(wǎng)絡(luò)流量,公開一個(gè)新的數(shù)據(jù)集CICAndMal2017.在此基礎(chǔ)上,該團(tuán)隊(duì)提取80個(gè)流級(jí)流量特征并采用信息增益(IG)和基于相關(guān)特征選擇(CFS)算法選取9類特征組成最佳特征集,通過(guò)隨機(jī)林(RF)、K近鄰(KNN)和決策樹(DT)算法訓(xùn)練模型實(shí)現(xiàn)惡意應(yīng)用的快速檢測(cè)和分類,但是所提方法精度不高.Noorbehbahani等[15]在文獻(xiàn)[14]工作的基礎(chǔ)上評(píng)估7種分類器對(duì)勒索軟件下的10類惡意家族的分類性能,其中隨機(jī)森林分類器取得了最高的分類結(jié)果,10分類精度達(dá)85%.Taheri等[16]提出兩層框架的惡意應(yīng)用檢測(cè)算法.第1層框架SBC中,從APK文件中提取出8 115種權(quán)限與意圖特征訓(xùn)練隨機(jī)森林分類器并實(shí)現(xiàn)惡意應(yīng)用的2分類.然后將識(shí)別出的惡意應(yīng)用樣本傳進(jìn)第2層框架DMC中.在第2層檢測(cè)框架中,提取并結(jié)合API特征和流級(jí)流量特征訓(xùn)練隨機(jī)森林分類器實(shí)現(xiàn)惡意應(yīng)用類型多分類和惡意應(yīng)用家族的超多分類.該方法在惡意應(yīng)用2分類上取得了95.3%的精度,惡意應(yīng)用多分類上達(dá)到了83.3%的精度,但是在惡意家族的分類上并不能取得理想精度.Abuthawabeh等[17]認(rèn)為相比流級(jí)特征,提取會(huì)話級(jí)特征可以充分捕獲到通信雙方流量數(shù)據(jù)交互的行為,并且有利于避免惡意軟件使用端口隨機(jī)化技術(shù)帶來(lái)的干擾.于是提取了會(huì)話級(jí)流量特征,集成學(xué)習(xí)技術(shù)投票出最優(yōu)特征并用以訓(xùn)練極端隨機(jī)樹和隨機(jī)森林分類器,提高了惡意應(yīng)用類型多分類和惡意家族超多分類的精度,最高分別達(dá)到80.2%和67.21%.Chen等[18]使用隨機(jī)森林、K近鄰和決策樹3個(gè)分類器實(shí)現(xiàn)2個(gè)分類任務(wù):惡意-良性應(yīng)用的2分類、惡意應(yīng)用類型的3分類(選取的惡意應(yīng)用類型為廣告軟件、勒索軟件和恐嚇軟件).實(shí)驗(yàn)結(jié)果表明,隨機(jī)森林分類器取得的分類效果最好.但是研究人員并沒(méi)用使用完整的數(shù)據(jù)集并且缺少惡意家族分類,使得其方法泛化能力較弱.Arora等[19]通過(guò)IG和卡方檢驗(yàn)算法對(duì)Android惡意應(yīng)用的網(wǎng)絡(luò)流量特征進(jìn)行優(yōu)先排序,然后最小化網(wǎng)絡(luò)流量特征,提高檢測(cè)精度,減少訓(xùn)練和測(cè)試階段的時(shí)間.通過(guò)實(shí)驗(yàn)發(fā)現(xiàn)22個(gè)特征中有9個(gè)特征可以滿足更高的檢測(cè)精度.同樣,它可以減少50%模型訓(xùn)練時(shí)間和30%測(cè)試階段的時(shí)間.
以上通過(guò)人工提取流量特征的傳統(tǒng)機(jī)器學(xué)習(xí)方法需要大量專家經(jīng)驗(yàn),特征選取的種類和數(shù)目直接影響惡意應(yīng)用檢測(cè)的準(zhǔn)確率.且在不同的分類任務(wù)中,往往需要研究人員有針對(duì)地提取不同特征來(lái)提高模型分類性能,這使得這類方法具有低泛化性與高復(fù)雜性.
為了克服上述困難,基于深度學(xué)習(xí)自動(dòng)學(xué)習(xí)樣本特征的方法得到了廣泛關(guān)注.文獻(xiàn)[20]提出一種基于深度學(xué)習(xí)的端到端的惡意流量分類方法:首先將流量數(shù)據(jù)映射成灰度圖像樣本,然后利用樣本訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)模型,最終實(shí)現(xiàn)惡意流量的檢測(cè).文獻(xiàn)[21]設(shè)計(jì)了一個(gè)基于深度學(xué)習(xí)方法檢測(cè)惡意軟件的DeepMAL模型,通過(guò)從原始網(wǎng)絡(luò)流和原始數(shù)據(jù)包中自動(dòng)提取字節(jié)流特征,自主訓(xùn)練模型,實(shí)現(xiàn)對(duì)惡意應(yīng)用的4分類檢測(cè).實(shí)驗(yàn)結(jié)果表明,與傳統(tǒng)機(jī)器學(xué)習(xí)方法相比,DeepMAL有效解決了傳統(tǒng)方法依賴先驗(yàn)知識(shí)設(shè)計(jì)特征的問(wèn)題,并能以更低的虛警率達(dá)到更高的檢測(cè)精度.文獻(xiàn)[22]提出一個(gè)雙層的檢測(cè)模型來(lái)實(shí)現(xiàn)惡意應(yīng)用的多場(chǎng)景分類.第1層通過(guò)提取權(quán)限、組件信息、意圖3種靜態(tài)特征并基于全連接神經(jīng)網(wǎng)絡(luò)將應(yīng)用分為良性和惡意應(yīng)用,并將檢測(cè)出的惡意應(yīng)用樣本傳入第2層檢測(cè)系統(tǒng);第2層通過(guò)將原始流量數(shù)據(jù)轉(zhuǎn)換成灰度圖像,利用CNN與卷積自編碼器(Convolutional Auto-Encoders,CAE)級(jí)聯(lián)方法CACNN從灰度圖像中自動(dòng)提取特征并實(shí)現(xiàn)惡意應(yīng)用類型的多分類和惡意家族的超多分類.該方法在惡意-良性應(yīng)用2分類、惡意應(yīng)用類型多分類2個(gè)場(chǎng)景中分別取得99%與98%的精度,但是在惡意家族超多分類中,精度只有73%.基于深度學(xué)習(xí)的方法有效地解決了特征選取問(wèn)題并且在檢測(cè)精度上有所提高,但是針對(duì)惡意家族超多分類,上述深度學(xué)習(xí)的方法和傳統(tǒng)機(jī)器學(xué)習(xí)方法往往都不能取得較高的分類精度.
在惡意應(yīng)用大類下進(jìn)行家族的多分類,由于子類樣本之間區(qū)別更加細(xì)微,這使得模型需要更強(qiáng)的特征提取能力.人工提取特征較為依賴專家知識(shí),而利用深度學(xué)習(xí)模型自動(dòng)學(xué)習(xí)提取樣本特征,有時(shí)并不能捕獲樣本中細(xì)粒度的特征.同時(shí),惡意家族超多分類需要更多的特征種類和特征數(shù)目,其產(chǎn)生的冗余特征大大增加了傳統(tǒng)機(jī)器學(xué)習(xí)與深度學(xué)習(xí)模型的分類難度.基于此,本文提出一種改進(jìn)的殘差收縮網(wǎng)絡(luò)方法,所提方法利用神經(jīng)網(wǎng)絡(luò)從原始流數(shù)據(jù)中學(xué)習(xí)特征表達(dá),避免特征的人工設(shè)計(jì)帶來(lái)的復(fù)雜性以及低泛化性.通過(guò)注意力機(jī)制與殘差收縮網(wǎng)絡(luò),提取區(qū)分相似樣本的細(xì)粒度特征,自適應(yīng)濾除樣本的噪聲與冗余特征,進(jìn)一步提升分類精度與在不同場(chǎng)景中的泛化性.本文貢獻(xiàn)如下:
1)引入深度殘差收縮網(wǎng)絡(luò)和注意力機(jī)制,提出了一種新的端到端的樣本檢測(cè)方法;
2)所提模型通過(guò)抓取惡意家族樣本中的細(xì)粒度特征并濾除冗余特征,顯著提升了惡意家族超多分類的精度;
3)所提方法可以同時(shí)高精度識(shí)別出具有惡意行為的應(yīng)用、惡意應(yīng)用的類型、惡意家族種類,在不同的分類場(chǎng)景中具有較強(qiáng)的泛化能力.
本文首先對(duì)原始流量數(shù)據(jù)集進(jìn)行預(yù)處理,將流量數(shù)據(jù)映射成神經(jīng)網(wǎng)絡(luò)模型的輸入.引入基于注意力機(jī)制改進(jìn)的殘差收縮網(wǎng)絡(luò)模型,捕獲樣本細(xì)粒度特征,增加重要特征權(quán)重,自適應(yīng)濾除每個(gè)流量樣本中的噪聲與冗余特征,進(jìn)而提取有效特征并抑制對(duì)分類無(wú)用的特征.最后高精度地實(shí)現(xiàn)惡意-良性應(yīng)用2分類、惡意應(yīng)用類型多分類以及惡意家族超多分類.本文方法總體框圖如圖1所示.
圖1 本文方法總體框圖Fig.1 Overall architecture of the proposed detection of malicious applications
在訓(xùn)練模型之前,必須將流量數(shù)據(jù)PCAP文件進(jìn)行預(yù)處理,將它轉(zhuǎn)化為模型可輸入數(shù)據(jù).本文的數(shù)據(jù)集處理包括流量切分、流量清洗以及生成灰度圖像集等一系列操作流程.
1)加載并過(guò)濾PCAP文件:在網(wǎng)絡(luò)流量檢測(cè)階段,HTTP協(xié)議是移動(dòng)網(wǎng)絡(luò)應(yīng)用程序中首選的協(xié)議,而TCP和UDP是傳輸層最常見的協(xié)議,因此將TCP、UDP和HTTP作為關(guān)注的目標(biāo).通過(guò)Wireshark軟件從原始流量文件中加載并過(guò)濾出含有相關(guān)協(xié)議的PCAP文件,以備下一步處理.
2)流量切分:使用USTC-TK2016[23]工具對(duì)已經(jīng)過(guò)濾的PCAP文件進(jìn)行切割,按照5元組(目的IP、源IP、目的端口、源端口和傳輸協(xié)議)進(jìn)行分流.本文采取的流量單位是會(huì)話,即雙向流數(shù)據(jù).
3)流量清洗:清除沒(méi)有應(yīng)用層的會(huì)話和內(nèi)容完全相同的會(huì)話.
4)統(tǒng)一長(zhǎng)度:由于神經(jīng)網(wǎng)絡(luò)的輸入要求統(tǒng)一的數(shù)據(jù)維度,因此需要對(duì)不同長(zhǎng)度的會(huì)話文件進(jìn)行統(tǒng)一長(zhǎng)度.對(duì)會(huì)話數(shù)據(jù)進(jìn)行裁剪,將所有會(huì)話數(shù)據(jù)修剪為1 521 B的文件以保證數(shù)據(jù)中至少包含一個(gè)數(shù)據(jù)包.截?cái)喑^(guò)1 521 B的PCAP文件,在字節(jié)數(shù)不滿足1 521 B的文件后補(bǔ)上16進(jìn)制的0.
5)劃分樣本:將統(tǒng)一長(zhǎng)度后的PCAP文件按照9∶1 比例劃分成訓(xùn)練集與測(cè)試集.
6)生成包字節(jié)矩陣:以二進(jìn)制讀取每個(gè)固定長(zhǎng)度的pcap會(huì)話文件,并將每8位二進(jìn)制轉(zhuǎn)換成十進(jìn)制數(shù),從而使得每個(gè)會(huì)話文件生成長(zhǎng)度為1 521 B的十進(jìn)制數(shù)組.接著將每個(gè)1 521 B的數(shù)組整形成39×39的包字節(jié)矩陣.
7)歸一化處理:對(duì)矩陣數(shù)據(jù)歸一化,消除數(shù)據(jù)量綱的影響,提升模型的收斂速度.
最后,將歸一化后的包字節(jié)矩陣轉(zhuǎn)換成灰度圖像,并制成IDX3格式的灰度圖像集.對(duì)標(biāo)簽進(jìn)行獨(dú)熱編碼處理,生成與灰度圖像集對(duì)應(yīng)的IDX1格式的編碼集.預(yù)處理流程如圖2所示.
圖2 流量預(yù)處理流程Fig.2 Flow chart of the network traffic preprocessing
王偉[24]通過(guò)分析流量可視化結(jié)果,發(fā)現(xiàn)不同種類流量之間的圖片的區(qū)分度較為明顯,認(rèn)為使用圖片分類的方法應(yīng)該可以取得較好的效果.圖3、圖4為從本文數(shù)據(jù)集中抽取的部分流量樣本的可視化結(jié)果.圖3為隨機(jī)抽取的良性軟件流量樣本,圖4為隨機(jī)抽取的惡意軟件流量樣本.惡意軟件流量樣本分為4類,分別為廣告軟件、勒索軟件、恐嚇軟件和短信惡意應(yīng)用,并且從每一類惡意軟件流量中隨機(jī)抽取了4個(gè)惡意家族的流量樣本.可以看出惡意流量與良性流量在肉眼上是可以區(qū)分的,而在同一惡意應(yīng)用類型下,部分不同惡意家族的流量樣本差異較小,紋理特征較為相似.因而模型需要提取樣本間更加細(xì)粒度的特征來(lái)對(duì)惡意家族種類進(jìn)行準(zhǔn)確區(qū)分.
圖3 良性軟件流量樣本可視化結(jié)果Fig.3 Visualization results of benign software traffic samples
圖4 惡意軟件流量樣本可視化結(jié)果Fig.4 Visualization results of malware traffic samples
本文模型框圖如圖5所示,使用卷積和注意力機(jī)制模塊對(duì)輸入的流量特征進(jìn)行有效提取,提取的特征通過(guò)批歸一化層(Batch Normalization,BN)后進(jìn)一步通過(guò)3個(gè)殘差收縮模塊,自適應(yīng)對(duì)每張?zhí)卣鲌D進(jìn)行噪聲的濾除并進(jìn)一步提取有效特征,然后通過(guò)全局平均池化(Global Average Pooling,GAP)對(duì)提取出的抽象高維特征降維,大量縮小訓(xùn)練參數(shù),避免過(guò)擬合,最后通過(guò)全連接層輸出分類結(jié)果.
圖5 改進(jìn)的深度殘差收縮網(wǎng)絡(luò)模型框圖Fig.5 Block diagram of improved deep residual shrinkage network
1.2.1 殘差收縮模塊
深度殘差收縮網(wǎng)絡(luò)(Deep Residual Shrinkage Network,DRSN)是深度殘差網(wǎng)絡(luò)(Deep Residual Network,ResNet)的一種改進(jìn)網(wǎng)絡(luò)[25].引入該網(wǎng)絡(luò)旨在加強(qiáng)深度神經(jīng)網(wǎng)絡(luò)從含噪聲樣本中提取有用特征的能力,剔除冗余特征,提升神經(jīng)網(wǎng)絡(luò)模型的分類準(zhǔn)確率,并且通過(guò)殘差網(wǎng)絡(luò)的恒等映射,使反向傳播更為方便,降低神經(jīng)網(wǎng)絡(luò)訓(xùn)練的難度并防止梯度爆炸.
軟閾值化也是許多降噪算法的關(guān)鍵步驟,其將絕對(duì)值小于某個(gè)閾值的特征刪除掉,將絕對(duì)值大于該閾值的特征朝著零的方向進(jìn)行收縮.它可以通過(guò)以下公式來(lái)實(shí)現(xiàn):
(1)
軟閾值化的輸出對(duì)于輸入的導(dǎo)數(shù)為
(2)
由式(2)可知,軟閾值化的導(dǎo)數(shù)要么是1,要么是0.這個(gè)性質(zhì)和ReLU激活函數(shù)是相同的.因此,軟閾值化也能夠減小深度學(xué)習(xí)算法遭遇梯度彌散和梯度爆炸的風(fēng)險(xiǎn).深度殘差收縮網(wǎng)絡(luò)中嵌入的軟閾值化模塊是實(shí)現(xiàn)噪聲數(shù)據(jù)剔除的關(guān)鍵部分.
圖6為殘差收縮模塊(Residual Shrinkage Block,RSB).與普通殘差模塊不同,殘差收縮模塊嵌入了一個(gè)子網(wǎng)絡(luò)來(lái)自適應(yīng)生成閾值.在這個(gè)子網(wǎng)絡(luò)中,首先對(duì)輸入特征圖的所有特征,求它們的絕對(duì)值,然后經(jīng)過(guò)全局平均值池化,獲得一個(gè)特征,記為A.在另一條路徑中,全局平均池化之后的特征圖,被輸入到一個(gè)小型的全連接網(wǎng)絡(luò).這個(gè)全連接網(wǎng)絡(luò)以Sigmoid函數(shù)作為最后一層,將輸出歸一化到0和1之間,獲得一個(gè)系數(shù),記為α.最終的閾值可以表示為α×A.因此,閾值就是一個(gè)0和1之間的數(shù)字×特征圖的絕對(duì)值的平均.這種方式,不僅保證了閾值為正,而且不會(huì)太大.而且,不同的樣本就有了不同的閾值.因此,在一定程度上,可以理解成一種特殊的注意力機(jī)制:注意到與當(dāng)前任務(wù)無(wú)關(guān)的特征,通過(guò)軟閾值化,將它們置為零;或者說(shuō),注意到與當(dāng)前任務(wù)有關(guān)的特征,將它們保留下來(lái).最后,堆疊一定數(shù)量的基本模塊以及卷積層、批標(biāo)準(zhǔn)化、激活函數(shù)、全局平均池化以及全連接輸出層等,就得到完整的深度殘差收縮網(wǎng)絡(luò).
圖6 殘差收縮模塊RSBFig.6 Residual shrinkage block
1.2.2 注意力機(jī)制
深度學(xué)習(xí)中的注意力機(jī)制借鑒了人類的注意力思維方式,被廣泛地應(yīng)用在自然語(yǔ)言處理、圖像分類及語(yǔ)音識(shí)別等各種不同類型的深度學(xué)習(xí)任務(wù)中,并取得了顯著的成果.本文采用通道注意力機(jī)制與空間注意力機(jī)制串聯(lián)的方式[26]構(gòu)建軟注意力模塊(Channel and Spatial Attention Block,CSAB).軟注意力模塊框圖如圖7所示.輸入特征先經(jīng)過(guò)通道注意力機(jī)制,W×H×C的維度特征經(jīng)過(guò)基于寬和高的全局平均池化和全局最大池化分別降維成2個(gè)1×1×C的特征向量.然后經(jīng)過(guò)共享的多層感知機(jī)MLP,并相加通過(guò)Sigmoid函數(shù)轉(zhuǎn)換成1×1×C的權(quán)重特征向量,最后通過(guò)與輸入特征相乘,結(jié)果即通道注意力機(jī)制模塊的輸出特征MC.特征獲取總體變換公式如下:
圖7 軟注意力模塊CSABFig.7 Channel and spatial attention block
MC(X)=σ(MLP(MaxPool(X))+
MLP(AvgPool(X))),
(3)
式中,σ為非線性激活函數(shù)Sigmoid,MLP為多層感知機(jī),MaxPool為最大池化,AvgPool為平均池化.
將通道注意力機(jī)制的輸出特征作為空間注意力模塊的輸入特征,分別在通道維度對(duì)其進(jìn)行基于通道的全局平均池化和全局最大池化.將形成的特征圖Concat后通過(guò)卷積層并經(jīng)過(guò)Sigmoid變換,最后生成空間注意力模塊特征MS.總體變換公式如下:
MS(X)=σ(f[AvgPool(MC(X));
MaxPool(MC(X))]),
(4)
式中,MS為最終得到的注意力矩陣,f為卷積降維操作,σ為非線性變換.
本文所采用的實(shí)驗(yàn)環(huán)境,Windows10,系統(tǒng)處理器:Intel(R) Core(TM) i7-9700K CPU @ 3.60 GHz,RAM:16 GB,系統(tǒng)類型:64位操作系統(tǒng),基于x64的處理器,顯卡:Nvidia GeForce RTX 2070.使用Keras深度學(xué)習(xí)庫(kù),Tensorflow作為后端,利用GPU進(jìn)行深度學(xué)習(xí)訓(xùn)練.同時(shí),其他的第三方軟件還有:Wireshark 、Python、Pycharm、Anaconda等.
為了公正地判斷本實(shí)驗(yàn)方法的有效性,本文采用準(zhǔn)確率(Accuracy,其量值記為A)、召回率(Recall,其量值記為R)、精確率(Precision,其量值記為P)、F1值(量值記為F1)作為本方法的評(píng)價(jià)指標(biāo),公式如下:
(5)
(6)
(7)
(8)
式中,TP(True Positive)是將正類預(yù)測(cè)為正類的數(shù)目,FP(False Positive)是將負(fù)類預(yù)測(cè)作為正類的數(shù)目,TN(True Negative)表示將負(fù)類預(yù)測(cè)為負(fù)類的數(shù)目,FN(False Negative)表示將正類預(yù)測(cè)成為負(fù)類的數(shù)目.
為了評(píng)估所提模型,本文使用了來(lái)自CICAndMal2017[14]數(shù)據(jù)集的5 065個(gè)良性應(yīng)用程序和4 354個(gè)惡意應(yīng)用樣本.這些良性應(yīng)用根據(jù)其受歡迎程度收集自2015—2017年發(fā)布的Google play market,并根據(jù)VirusTotal的檢測(cè)結(jié)果進(jìn)行識(shí)別,只有被VirusTotal確定為良性的應(yīng)用程序才包括在良性應(yīng)用程序集中.最終,其中5 065個(gè)被保留為良性應(yīng)用程序,4 354個(gè)被保留為惡意應(yīng)用應(yīng)用程序.
所有的惡意應(yīng)用有4類,它們是廣告軟件(Adware)、勒索軟件(Ransomware)、恐嚇軟件(Scareware)和短信惡意應(yīng)用(SMS Malware).并且每個(gè)類別有不同的惡意家族,例如廣告軟件下有Dowgin、Ewind、Feiwo、Gooligan等10個(gè)家族,勒索軟件下有Charger、Koler、Pletor、Ransombo等10個(gè)惡意家族,恐嚇軟件和短信惡意應(yīng)用下分別有11個(gè)惡意家族.4類惡意應(yīng)用共有42個(gè)惡意家族.
經(jīng)過(guò)預(yù)處理后,良性樣本與惡性樣本數(shù)量分別為369 211、437 555.本文對(duì)安卓惡意應(yīng)用實(shí)現(xiàn)3個(gè)場(chǎng)景的分類.在2分類場(chǎng)景中,提取了原始數(shù)據(jù)集中所有的良性樣本和惡意樣本.在4分類和超多分類場(chǎng)景中,本文則提取數(shù)據(jù)集中所有的惡意樣本,并分別劃分成4類和42類.預(yù)處理后,不同分類場(chǎng)景的樣本數(shù)目如表1所示.
表1 數(shù)據(jù)集預(yù)處理后不同分類場(chǎng)景的樣本數(shù)目
為驗(yàn)證本文方法的有效性,將本文方法用多個(gè)指標(biāo)與文獻(xiàn)[14,16-17]基于人工提取流量特征的傳統(tǒng)機(jī)器學(xué)習(xí)方法與文獻(xiàn)[22]和CNN基于流量特征的深度學(xué)習(xí)方法對(duì)比.
本文方法在3個(gè)分類場(chǎng)景中分類準(zhǔn)確率(A)和損失函數(shù)(L)曲線如圖8—10所示.在良性流量與惡意流量的2分類場(chǎng)景中,本文方法在訓(xùn)練樣本中準(zhǔn)確率達(dá)99.61%,在測(cè)試樣本中達(dá)到99.40%.在惡意應(yīng)用種類的4分類場(chǎng)景中,訓(xùn)練集與測(cè)試集樣本準(zhǔn)確率分別為99.94%與99.95%.在更復(fù)雜的惡意家族42分類場(chǎng)景中,訓(xùn)練集與測(cè)試集樣本準(zhǔn)確率分別為99.31%與97.33%.3個(gè)分類場(chǎng)景中損失函數(shù)曲線在迭代20輪后逐漸收斂,準(zhǔn)確率曲線也在迭代10輪后達(dá)到最大.本文方法在3個(gè)分類場(chǎng)景中準(zhǔn)確率都能達(dá)到比較理想的水平,并且模型收斂迅速,在幾輪迭代后模型便能達(dá)到較高的分類水平.
圖8 2分類下的訓(xùn)練集和測(cè)試集的準(zhǔn)確率與損失函數(shù)曲線Fig.8 Accuracy and loss curves of train and test under 2-classification
圖9 4分類下的訓(xùn)練集和測(cè)試集的準(zhǔn)確率與損失函數(shù)曲線Fig.9 Accuracy and loss curves of train and test under 4-classification
圖10 42分類下的訓(xùn)練集和測(cè)試集的準(zhǔn)確率與損失函數(shù)曲線Fig.10 Accuracy and loss curves of train and test under 42-classification
圖11—13分別為與其他文獻(xiàn)中方法進(jìn)行對(duì)比的結(jié)果,進(jìn)行比較的指標(biāo)分別為Precision(P)、Recall(R)、F1值(F1).文獻(xiàn)[14]采用網(wǎng)絡(luò)流級(jí)特征結(jié)合傳統(tǒng)機(jī)器學(xué)習(xí)分類器實(shí)現(xiàn)3個(gè)場(chǎng)景的分類,文獻(xiàn)[16]提取了網(wǎng)絡(luò)流量特征和API特征,文獻(xiàn)[17]提取了會(huì)話級(jí)特征.以上3種方法,分別手工提取了流量樣本的不同特征并結(jié)合傳統(tǒng)分類器實(shí)現(xiàn)安卓惡意應(yīng)用檢測(cè)與分類.文獻(xiàn)[22]通過(guò)深度學(xué)習(xí)CACNN模型結(jié)合流量特征實(shí)現(xiàn)3種分類任務(wù),取得的準(zhǔn)確率分別為99.19%、97.3%、71.48%.另外,為驗(yàn)證本文方法是否比現(xiàn)有典型的卷積神經(jīng)網(wǎng)絡(luò)具有更出色的分類性能,搭建了CNN模型并測(cè)試.表2為本文方法較其他5種方法的對(duì)比結(jié)果.
表2 惡意應(yīng)用分類結(jié)果對(duì)比
圖11 精確率對(duì)比Fig.11 Comparison of detection precision
綜合3項(xiàng)指標(biāo)可以看出,本文方法優(yōu)于參與比較的5種方法.在2分類與4分類任務(wù)中,本文方法能取得高于99%的分類準(zhǔn)確率.在惡意家族的42超多分類任務(wù)中,本文方法精度、召回率、F1值分別高達(dá)96.04%、94.31%、95.17%,分類效果遠(yuǎn)高于目前現(xiàn)有方法.由于屬于同一大類下的惡意家族樣本特征較為相似并且種類較多,對(duì)其實(shí)現(xiàn)分類具有較高難度.因此其他方法在超多分類的準(zhǔn)確率一直不能達(dá)到理想的水平.而本文方法可以聚焦樣本間細(xì)粒度特征,提高對(duì)分類產(chǎn)生重要作用特征的權(quán)重,自適應(yīng)濾除冗余特征,有效地提高超多分類任務(wù)的分類效果.相比現(xiàn)有方法,本文方法在惡意應(yīng)用的3個(gè)分類場(chǎng)景中都具有優(yōu)良的分類能力,因此,本文所提方法具有一定的泛化性.
圖12 召回率對(duì)比Fig.12 Comparison of recall
圖13 F1值對(duì)比Fig.13 Comparison of F1
本文提出了一種基于改進(jìn)殘差收縮網(wǎng)絡(luò)的安卓惡意應(yīng)用檢測(cè)方法.所提方法通過(guò)預(yù)處理將流量數(shù)據(jù)映射成神經(jīng)網(wǎng)絡(luò)的輸入,避免了人工提取特征的復(fù)雜性和繁瑣性,實(shí)現(xiàn)端到端的自我學(xué)習(xí).同時(shí)在網(wǎng)絡(luò)架構(gòu)的設(shè)計(jì)中,引入了注意力機(jī)制捕獲樣本間細(xì)粒度特征,又通過(guò)引入深度殘差收縮網(wǎng)絡(luò),自適應(yīng)濾除樣本中大量冗余特征,減少大樣本多分類任務(wù)給模型帶來(lái)的分類難度,有效實(shí)現(xiàn)了安卓惡意-良性應(yīng)用的2分類、安卓惡意應(yīng)用類型的4分類以及惡意家族的42超多分類.3個(gè)場(chǎng)景下的準(zhǔn)確率分別高達(dá)99.40%、99.95%和97.33%,與現(xiàn)有方法相比,具有較高的分類性能與泛化能力,并且在惡意家族超多分類任務(wù)中有較大的優(yōu)勢(shì).下一步,將針對(duì)流量交互中探測(cè)器對(duì)數(shù)據(jù)包捕獲存在丟失而導(dǎo)致檢測(cè)精度降低的問(wèn)題,研究相應(yīng)的檢測(cè)方法.