陳鐵明 楊益敏 陳 波
(浙江工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 杭州 310023) (tmchen@zjut.edu.cn)
?
Maldetect:基于Dalvik指令抽象的Android惡意代碼檢測(cè)系統(tǒng)
陳鐵明 楊益敏 陳 波
(浙江工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 杭州 310023) (tmchen@zjut.edu.cn)
提出了一個(gè)Android惡意代碼的靜態(tài)檢測(cè)系統(tǒng)Maldetect,首先采用逆向工程將DEX文件轉(zhuǎn)化為Dalvik指令并對(duì)其進(jìn)行簡(jiǎn)化抽象,再將抽象后的指令序列進(jìn)行N-Gram編碼作為樣本訓(xùn)練,最后利用機(jī)器學(xué)習(xí)算法創(chuàng)建分類檢測(cè)模型,并通過(guò)對(duì)分類算法與N-Gram序列的組合分析,提出了基于3-Gram和隨機(jī)森林的優(yōu)選檢測(cè)方法.通過(guò)4 000個(gè)Android惡意應(yīng)用樣本與專業(yè)反毒軟件進(jìn)行的檢測(cè)對(duì)比實(shí)驗(yàn),表明Maldetect可更有效地進(jìn)行Android惡意代碼檢測(cè)與分類,且獲得較高的檢測(cè)率.
惡意代碼;安卓;Dalvik指令;N-Gram;機(jī)器學(xué)習(xí)
隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展,移動(dòng)智能終端越來(lái)越普及,移動(dòng)應(yīng)用的種類與數(shù)量都呈現(xiàn)高速增長(zhǎng),智能手機(jī)已經(jīng)成為網(wǎng)民最常用的上網(wǎng)工具.來(lái)自Gartner統(tǒng)計(jì)數(shù)據(jù)顯示,2015年第4季度全球智能手機(jī)的銷售量為4億多臺(tái),其中Android系統(tǒng)占據(jù)了80.7%[1].截止2016年2月1日,僅Android官方應(yīng)用市場(chǎng)Google Play上的應(yīng)用數(shù)量就接近200萬(wàn)[2].同時(shí),Android應(yīng)用安全也面臨著兩大威脅:應(yīng)用漏洞和惡意應(yīng)用.Android應(yīng)用開發(fā)者往往缺少代碼審計(jì)的能力和代碼安全規(guī)范檢查的習(xí)慣,容易在軟件生命周期的各個(gè)階段中產(chǎn)生安全漏洞,一旦被攻擊者所利用會(huì)對(duì)軟件的完整性、機(jī)密性和可用性造成損害[3].Android惡意應(yīng)用通常是在一些熱門的Android應(yīng)用中插入一段攻擊代碼,并在安全管理較差的第三方應(yīng)用商店進(jìn)行發(fā)布與傳播[4].根據(jù)阿里聚安全發(fā)布的2015移動(dòng)安全病毒年報(bào),18%的Android 設(shè)備感染過(guò)病毒,95%的熱門移動(dòng)應(yīng)用存在仿冒應(yīng)用,惡意應(yīng)用類型呈現(xiàn)越來(lái)越多的趨勢(shì)[5].常見手機(jī)惡意應(yīng)用的惡意行為包括惡意扣費(fèi)、信息竊取、短信劫持等,可嚴(yán)重?fù)p害手機(jī)用戶的利益,危害不容忽視.
主流的Android惡意代碼檢測(cè)方法主要有基于特征代碼和基于行為的檢測(cè).基于特征代碼的檢測(cè)方法通過(guò)檢測(cè)文件是否擁有已知惡意軟件的特征代碼來(lái)判斷其是否為惡意軟件,具有快速、準(zhǔn)確率高等特點(diǎn),但無(wú)法檢測(cè)未知的惡意代碼,且通常需要維護(hù)病毒特征數(shù)據(jù)庫(kù).國(guó)外著名的Android惡意代碼檢測(cè)工具Androguard[6]就是基于特征代碼實(shí)現(xiàn)的.
基于行為的檢測(cè)方法則通過(guò)程序的行為與已知惡意行為模式進(jìn)行匹配,判斷目標(biāo)文件是否包含惡意代碼.誤報(bào)率雖然并不理想,但可實(shí)現(xiàn)對(duì)未知惡意代碼或病毒的檢測(cè),可彌補(bǔ)基于特征代碼檢測(cè)的不足.基于行為的分析又可進(jìn)一步分為動(dòng)態(tài)和靜態(tài)2種分析方法[7].動(dòng)態(tài)分析方法是指利用“沙盒或虛擬機(jī)”來(lái)模擬運(yùn)行程序,通過(guò)攔截或監(jiān)控的方式分析程序運(yùn)行時(shí)的行為特征,一定程度上可繞過(guò)代碼混淆等代碼保護(hù)機(jī)制,但是計(jì)算資源和時(shí)間消耗較大,且代碼覆蓋率低.相對(duì)于重量級(jí)的動(dòng)態(tài)分析,靜態(tài)分析則相對(duì)屬于輕量級(jí)的方法,通常是通過(guò)逆向工程抽取程序的特征,分析函數(shù)調(diào)用、程序指令等序列,具有快速高效、代碼覆蓋率高等特點(diǎn).
目前,大部分的靜態(tài)分析方法主要從Android-Manifes.xml文件、lib庫(kù)文件(.so文件)、Java源文件(通過(guò)反編譯APK文件獲得)等進(jìn)行特征的提取與分析,而針對(duì)Dalvik指令序列的特征研究相對(duì)較少,而本文則基于Dalvik指令序列的抽象模型再結(jié)合機(jī)器學(xué)習(xí)方法進(jìn)行研究.本文的主要貢獻(xiàn)為:
1) 簡(jiǎn)化Dalvik指令集,用指令符號(hào)抽象一類指令的操作碼,并提出了一種基于N-Gram序列的特征模型;
2) 針對(duì)抽象的Dalvik指令符號(hào)的N-Gram序列特征,結(jié)合機(jī)器學(xué)習(xí)分類算法,有效實(shí)現(xiàn)了Android惡意代碼的檢測(cè)與分類,與常見反病毒軟件相比較,獲得較高的檢測(cè)率.
針對(duì)PC平臺(tái)的惡意代碼檢測(cè)技術(shù)已相對(duì)成熟,其中利用N-Gram提取特征的方法也獲得了較好的應(yīng)用效果.例如,文獻(xiàn)[8]提出利用OpCode N-Gram代替ByteCode N-Gram,有更高的精度,并對(duì)x86平臺(tái)下的匯編指令進(jìn)行了實(shí)驗(yàn)的驗(yàn)證.文獻(xiàn)[9]使用了一種OpCode序列頻率的表達(dá)式來(lái)檢測(cè)和分類惡意代碼,并結(jié)合了數(shù)據(jù)挖掘等方法,也有較高的檢測(cè)率.
Android代碼靜態(tài)分析方法基本都從Android-Manifes.xml文件、lib庫(kù)文件(.so文件)、反編譯得到的Java源文件中進(jìn)行特征的提取與分析.例如,文獻(xiàn)[10]通過(guò)反編譯APK得到Java源代碼,再?gòu)腏ava源碼提取調(diào)用方法名作為特征,并結(jié)合N-Gram等方法進(jìn)行惡意軟件分類,但該方法沒(méi)有對(duì)混淆過(guò)的Java源代碼進(jìn)行處理;文獻(xiàn)[11]設(shè)計(jì)了一種輕量級(jí)的Android惡意代碼檢測(cè)方法,將申請(qǐng)的權(quán)限、可疑的API函數(shù)調(diào)用和網(wǎng)絡(luò)地址等作為靜態(tài)分析的特征,通過(guò)5 560個(gè)惡意樣本和123 453個(gè)正常樣本的實(shí)驗(yàn)分析,表明有較高的準(zhǔn)確率,但是該方法特征的提取依賴于反匯編后的Java源碼,混淆過(guò)的Java源碼會(huì)導(dǎo)致該方法失效;文獻(xiàn)[12]提出了一種適合惡意代碼分析的簡(jiǎn)化Dalvik中間語(yǔ)言(SDIL),并結(jié)合MOSS算法進(jìn)行了實(shí)驗(yàn)測(cè)試,驗(yàn)證了分析方法的有效性,但該方法在代碼分析、特征提取時(shí)還需加入大量的人工操作,且提取的特征數(shù)量與涵蓋的惡意代碼種類較少.
綜上所述,為了提高檢測(cè)性能,本文首先研究Android的Dalvik指令抽象與簡(jiǎn)化,提取Dalvik指令的操作碼,再借鑒OpCode N-Gram方法提取抽象指令符的序列特征,最后實(shí)現(xiàn)針對(duì)Android的一種快速有效的惡意代碼靜態(tài)檢測(cè)方法.
2.1 系統(tǒng)模型
本文提出了一種Android惡意代碼靜態(tài)檢測(cè)系統(tǒng).該系統(tǒng)可以快速有效地檢測(cè)Android應(yīng)用程序,識(shí)別惡意應(yīng)用且能夠給出惡意家族的類別信息.
整個(gè)系統(tǒng)分為2部分:1)惡意代碼檢測(cè)模型和惡意家族分類模型的訓(xùn)練,如圖1所示;2)惡意代碼檢測(cè)模型和惡意家族分類模型的測(cè)試,如圖2所示:
Fig. 1 The detection and classification model.圖1 惡意代碼的檢測(cè)與分類模型訓(xùn)練
Fig. 2 The process of predicting malware.圖2 惡意代碼的檢測(cè)與分類過(guò)程
首先,需要確定訓(xùn)練惡意代碼檢測(cè)模型的訓(xùn)練集.訓(xùn)練集分為2個(gè)子集:1)惡意APK樣本集合;2)非惡意樣本APK集合.APK文件格式通常都包含一個(gè)classes.dex文件,該DEX(Dalvik executable format)文件封裝了可被Dalvik虛擬機(jī)執(zhí)行的Dalvik字節(jié)碼.利用工具Apktool[13]反匯編APK文件,就能得到一個(gè)包含smali源碼的文件目錄,smali目錄結(jié)構(gòu)對(duì)應(yīng)著Java源碼的src目錄.smali是對(duì)Dalvik字節(jié)碼的一種解釋,所有語(yǔ)句都遵循一套標(biāo)準(zhǔn)的語(yǔ)法規(guī)范.從smali文件中提取出Dalvik操作碼并進(jìn)行抽象簡(jiǎn)化為指令符號(hào),再針對(duì)抽象的Dalvik指令符號(hào)的N-Gram序列特征進(jìn)行統(tǒng)計(jì)與歸一化處理,最后采用機(jī)器學(xué)習(xí)的分類算法建立惡意代碼檢測(cè)模型.同理,按照惡意家族的類型劃分多個(gè)訓(xùn)練子集,按照上述類似的處理過(guò)程,可建立一個(gè)惡意家族分類模型.
利用模型檢測(cè)與分類時(shí),將待測(cè)APK文件先進(jìn)行預(yù)處理步驟,提取出Dalvik指令特征并作同樣的抽象簡(jiǎn)化與N-Gram序列化處理,再通過(guò)惡意代碼檢測(cè)模型的檢測(cè),就可判斷出是否為惡意代碼,如果不是就直接給出檢測(cè)結(jié)果,如果是則需要進(jìn)一步通過(guò)惡意家族分類模型來(lái)獲得該惡意代碼家族類型.
2.2 Dalvik指令特征與N-Gram
根據(jù)文獻(xiàn)[14]表明官方Dalvik指令有230條,分別包括方法調(diào)用指令、數(shù)據(jù)操作指令、返回指令等十幾種類型.文獻(xiàn)[12]提出了一種適合惡意代碼分析的簡(jiǎn)化Dalvik中間語(yǔ)言(SDIL),對(duì)218種指令簡(jiǎn)化成了13種,并分別統(tǒng)計(jì)了指令的頻率.基于Dalvik指令集與上述工作,本文另行設(shè)計(jì)了一種指令符號(hào)方案:在指令集中提取出能夠正確反映程序語(yǔ)義的指令和操作碼,對(duì)功能相近的指令進(jìn)行歸類,并將該類的指令集合抽象為指令符號(hào).與原有的Dalvik的指令集相比,更加簡(jiǎn)化精要,且便于后續(xù)的分析與特征提取.表1中給出了最終的設(shè)計(jì)方案,在Dalvik指令集中提取出的107種代表性指令并分成10大功能相近的類,并且每類指令抽象為一個(gè)特定的指令符號(hào),后續(xù)N-Gram編碼將直接使用這種指令符號(hào)代替完整的Dalvik指令.
N-Gram算法經(jīng)常用于自然語(yǔ)言處理領(lǐng)域,但是它也經(jīng)常用來(lái)處理惡意代碼的分析.對(duì)Dalvik指令符號(hào)進(jìn)行N-Gram編碼,同樣可以用于分析Android的惡意代碼.N-Gram算法假設(shè)第m個(gè)詞的出現(xiàn)只是與前面的m-1個(gè)詞相關(guān),現(xiàn)假設(shè)有Dalvik指令符號(hào)序列為{M,R,G,I,T,P,V},3-Gram編碼后提取的特征為[{M,R,G},{R,G,I},{G,I,T},{I,T,P},{T,P,V}].表2中給出了當(dāng)3-Gram編碼時(shí)一個(gè)APK應(yīng)用中包含的1 000種不同N-Gram特征的頻率統(tǒng)計(jì).
Table 1 Symbolic Instruction Set Definition
Table 2 Illustration for the Frequency Statistics of 3-Gram Features
2.3 機(jī)器學(xué)習(xí)方法及評(píng)估標(biāo)準(zhǔn)
分類算法是一種典型的機(jī)器學(xué)習(xí)方法.文獻(xiàn)[15]介紹了最常見的衡量分類算法性能的評(píng)估參數(shù).度量分類算法的有效性最基本的4個(gè)指標(biāo)是:1)真陽(yáng)性(true positive,TP),表示正確分類為惡意軟件的惡意樣本個(gè)數(shù);2)假陽(yáng)性(false positive,F(xiàn)P),表示錯(cuò)誤分類為惡意軟件的良性樣本個(gè)數(shù);3)真陰性(true negative,TN),表示正確分類為良性軟件的良性樣本個(gè)數(shù);4)假陰性(false negative,F(xiàn)N),表示錯(cuò)誤分類為良性軟件的惡意樣本個(gè)數(shù).由這4個(gè)指標(biāo)可以構(gòu)成如表3所示的混淆矩陣,用于分析分類算法的優(yōu)劣性.
Table 3 Confusion Matrix
由上述的基本指標(biāo)可以構(gòu)成下面的一些常用指標(biāo):
真陽(yáng)性率(TPR)亦即檢測(cè)率(detection rate),有時(shí)也稱為召回率(recall rate);假陽(yáng)性率(FPR)亦即誤報(bào)率(false alarm rate);正確率Precision指在真正的惡意樣本在分類為惡意樣本的比例;分類精度Accuracy是所有正確分類的樣本與所有樣本之比;F-Measure指準(zhǔn)確率與召回率的調(diào)和平均值.ROC曲線(接收者運(yùn)行特征)是一種顯示分類算法的TPR和FPR之間折中的圖形化方法.AUC(area under the curve)是ROC曲線下方的面積,如果完全準(zhǔn)確的模型,面積為1.
3.1 實(shí)驗(yàn)數(shù)據(jù)與實(shí)驗(yàn)環(huán)境
測(cè)試所采用的惡意樣本來(lái)源于德國(guó)哥廷根大學(xué)Drebin項(xiàng)目的惡意樣本數(shù)據(jù)庫(kù)[16],正常的樣本通過(guò)安卓官方的Google Play應(yīng)用商店[17]隨機(jī)下載獲得.文獻(xiàn)[18]指出在Google Play應(yīng)用商店中52 208個(gè)安卓應(yīng)用中只有2個(gè)為惡意的,所以基本可以認(rèn)為Google Play應(yīng)用商店中的安卓應(yīng)用均為非惡意應(yīng)用.
本文利用機(jī)器學(xué)習(xí)工具Weka(Waikato envir-onment for knowledge analysis)對(duì)實(shí)驗(yàn)數(shù)據(jù)得到的特征用機(jī)器學(xué)習(xí)算法訓(xùn)練分類模型.Weka是一款免費(fèi)的基于JAVA環(huán)境下開源的機(jī)器學(xué)習(xí)軟件,集成了大量的機(jī)器學(xué)習(xí)算法,且具有高效準(zhǔn)確的特點(diǎn),所以本文使用它作為機(jī)器學(xué)習(xí)的工具.
3.2 分類算法與N-Gram序列的優(yōu)選
本節(jié)先采用270個(gè)惡意樣本和330正常樣本作為實(shí)驗(yàn)樣本集,根據(jù)2-Gram,3-Gram,4-Gram編碼分別提取了不同長(zhǎng)度的Dalvik指令符號(hào)序列,然后再分別使用4種分類算法包括隨機(jī)森林算法(Random Forest)、支持向量機(jī)算法(SVM)、K-最近鄰算法(KNN)、樸素貝葉斯算法(Naive Bayes)對(duì)3種編碼的序列采用10折交叉驗(yàn)證進(jìn)行測(cè)試,結(jié)果如表4~6所示.
Table 4 The Detection Results Based on 2-Gram Sequences
Table 5 The Detection Results Based on 3-Gram Sequences
Table 6 The Detection Results Based on 4-Gram Sequences
選用AUC,TPR,F(xiàn)PR,Precision,Recall,F(xiàn)-Measure等指標(biāo)作為實(shí)驗(yàn)的評(píng)估標(biāo)準(zhǔn).其中,AUC是最重要的標(biāo)準(zhǔn),它可以正確地反映TPR和FPR之間的關(guān)系,AUC值越高代表檢測(cè)的綜合表現(xiàn)越優(yōu).FPR也是一項(xiàng)重要的指標(biāo),F(xiàn)PR值越低代表誤報(bào)率越低.在表4中,隨機(jī)森林算法的AUC值最高,F(xiàn)PR值最低,而TPR值略不如KNN算法.在表5中,隨機(jī)森林算法的各項(xiàng)指標(biāo)都表項(xiàng)最優(yōu).在表6中,隨機(jī)森林算法的AUC值最高,KNN算法的FPR值最理想,但是隨機(jī)森林算法的FPR值與KNN算法的FPR值差距很小.綜合分析,在2-Gram,3-Gram,4-Gram指令符號(hào)序列中,隨機(jī)森林算法的表項(xiàng)是最優(yōu)的.
以隨機(jī)森林算法為基礎(chǔ)進(jìn)一步尋找最優(yōu)的N-Gram序列.綜合比較表4~6,不難發(fā)現(xiàn),隨機(jī)森林算法AUC值按從優(yōu)到劣的順序?yàn)椋?-Gram,3-Gram,2-Gram;隨機(jī)森林算法FPR值按從優(yōu)到劣的順序?yàn)椋?-Gram,4-Gram,2-Gram;2-Gram序列表現(xiàn)都是最劣的,可以不再考慮.4-Gram序列的隨機(jī)森林算法AUC值比3-Gram序列的隨機(jī)森林算法AUC值僅高出了2%,而4-Gram序列的隨機(jī)森林算法FPR值比3-Gram序列的隨機(jī)森林算法FPR值卻高出了30%.綜合分析,3-Gram序列的隨機(jī)森林算法是一種較優(yōu)的方法.
接下來(lái),分析樣本數(shù)量對(duì)準(zhǔn)確性的影響.除了上述實(shí)驗(yàn)的600個(gè)樣本作為小樣本集合,再增加一個(gè)1 100個(gè)樣本作為大樣本集合作為對(duì)比實(shí)驗(yàn),按3-Gram的隨機(jī)森林算法,采用10折交叉驗(yàn)證對(duì)它們進(jìn)行測(cè)試.實(shí)驗(yàn)結(jié)果如表7和圖3所示,不難看出,大樣本集的所有評(píng)估指標(biāo)都要優(yōu)于小樣本集,這表明樣本數(shù)量大小對(duì)檢測(cè)效果有一定的影響,訓(xùn)練樣本數(shù)量越大則綜合表現(xiàn)越優(yōu).
Table 7 The Results with Different Size of Samples
Fig. 3 ROC curves with different size of samples.圖3 不同樣本數(shù)量的ROC曲線對(duì)比圖
3.3 MaldetectVS專業(yè)反病毒軟件
根據(jù)3.2節(jié)的實(shí)驗(yàn)結(jié)果,以實(shí)驗(yàn)效果較優(yōu)的3-Gram序列的隨機(jī)森林算法作為基礎(chǔ),通過(guò)計(jì)算信息增益來(lái)選取200個(gè)區(qū)分度最高的特征作為特征選擇方法,我們實(shí)現(xiàn)了一個(gè)Android惡意代碼檢測(cè)系統(tǒng)Maldetect.本節(jié)實(shí)驗(yàn)我們分別在2 000個(gè)樣本和4 000個(gè)樣本的2個(gè)數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),并按照60%數(shù)據(jù)作為Maldetect的訓(xùn)練樣本庫(kù),40%數(shù)據(jù)作為測(cè)試樣本庫(kù).作為實(shí)驗(yàn)對(duì)照,我們也將測(cè)試樣本發(fā)送到ThreatBook多引擎文件檢測(cè)服務(wù)[19]然后得到了9款常見的反病毒軟件(Avira,Dr.Web,AVG,Kaspersky,ESET,GDATA,Rising,MSE,Avast)的檢測(cè)結(jié)果,最后統(tǒng)計(jì)出各系統(tǒng)的檢測(cè)率與誤報(bào)率.
根據(jù)表8顯示的本次實(shí)驗(yàn)結(jié)果,我們發(fā)現(xiàn)大部分的反病毒軟件的檢測(cè)率都超過(guò)了90%,但是也存在一些檢測(cè)率甚至低于50%的反病毒軟件,可能這些反病毒軟件并不適用于安卓平臺(tái)的檢測(cè).在2 000個(gè)樣本數(shù)據(jù)集上,Maldetect以95.3%的檢測(cè)率在10款反病毒軟件中排第3;在4 000個(gè)樣本數(shù)據(jù)集,Maldetect以98.6 %的檢測(cè)率在10款反病毒軟件中排第2.這表明隨著樣本訓(xùn)練樣本數(shù)量增加,Maldetect的精確度呈上升趨勢(shì).另外,實(shí)驗(yàn)所用的惡意樣本已經(jīng)公開了一段時(shí)間,大多數(shù)反病毒軟件的特征庫(kù)已經(jīng)加入了這些惡意樣本的特征,在檢測(cè)未公開的惡意樣本時(shí),Maldetect的機(jī)器學(xué)習(xí)方式則更加能體現(xiàn)優(yōu)勢(shì).
專業(yè)的反病毒軟件的誤報(bào)率基本在0%~1%之間,Maldetect的誤報(bào)率比它們要稍微高一點(diǎn).另外,表9也表明隨著訓(xùn)練樣本數(shù)量的增加,Maldetect的誤報(bào)率呈較明顯的下降趨勢(shì).
Table 8 Detection Rates of Maldetect and Antivirus Scanners
Table 9 False Positive Rates of Maldetect and Antivirus Scanners
3.4 惡意家族分類實(shí)驗(yàn)
除了檢測(cè)惡意代碼,另一個(gè)重要方面,我們需要分類惡意家族并進(jìn)行性能評(píng)估.本節(jié)實(shí)驗(yàn)我們精選樣本數(shù)量最多、最常見的9個(gè)惡意家族共計(jì)900個(gè)樣本作為實(shí)驗(yàn)樣本,其中60%數(shù)據(jù)作為訓(xùn)練集,40%數(shù)據(jù)作為測(cè)試集.用Maldetect進(jìn)行實(shí)驗(yàn)測(cè)試,結(jié)果如表10所示.從表10可知,9類惡意家族的AUC值都不低于0.97,F(xiàn)PR值都不高于0.037,該方法對(duì)惡意家族分類有較好的效果,也完全適用于惡意家族的分類.
Table 10 The Results on Classification of Malware Family Using Maldetect
本文提出了一種Android靜態(tài)檢測(cè)方法,采用逆向工程將DEX文件轉(zhuǎn)化為Dalvik指令并對(duì)其進(jìn)行簡(jiǎn)化抽象,再將抽象后的指令序列進(jìn)行N-Gram編碼作為樣本訓(xùn)練,通過(guò)機(jī)器學(xué)習(xí)的分類算法來(lái)創(chuàng)建分類檢測(cè)模型.在實(shí)驗(yàn)環(huán)節(jié),對(duì)不同分類算法與N-Gram序列分別進(jìn)行了比較,提出了基于3-Gram和隨機(jī)森林的優(yōu)選檢測(cè)方法.最后,采用2 000個(gè)樣本與4 000個(gè)樣本2組樣本集,與專業(yè)的反毒軟件進(jìn)行對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明該方法可有效地進(jìn)行Android惡意代碼檢測(cè)與分類,且獲得較高的檢測(cè)率.下一步工作將研究在提高訓(xùn)練樣本數(shù)量的情況下,用聚類的方法選擇出典型樣本,去除噪聲數(shù)據(jù),進(jìn)一步提高準(zhǔn)確率、降低誤報(bào)率.
[1]Egham. Gartner Says Worldwide Smartphone Sales Grew 9.7 Percent in Fourth Quarter of 2015[EB/OL]. (2016-02-18) [2016-04-01]. http://www.gartner.com/newsroom/id/3215217
[2]AppBrain. Android Statistics: Google Play Stats[EB/OL]. (2016-02-01) [2016-03-01]. http://www.appbrain.com/stats
[3]Zhang Yuqing, Fang Zhejun, Wang Kai, et al. Survey of Android vulnerability detection[J]. Journal of Computer Research and Development, 2015, 52(10): 2167-2177 (in Chinese)(張玉清, 方喆君, 王凱, 等. Android安全漏洞挖掘技術(shù)綜述[J]. 計(jì)算機(jī)研究與發(fā)展, 2015, 52(10): 2167-2177)
[4]Zhang Yuqing, Wang Kai, Yang Huan, et al. Survey of Android OS security[J]. Journal of Computer Research and Development, 2014, 51(7): 1385-1396 (in Chinese)(張玉清, 王凱, 楊歡, 等. Android安全綜述[J]. 計(jì)算機(jī)研究與發(fā)展, 2014, 51(7): 1385-1396)
[5]Alibaba. 2015 Security Report[EB/OL]. 2016[2016-03-01]. http://jaq.alibaba.com (in Chinese)(阿里巴巴. 2015年安全報(bào)告[EB/OL]. 2016[2016-03-01]. http://jaq.alibaba.com)
[6]Androguard Team. Androguard[EB/OL]. [2016-03-01]. http://code.google.com/p/androguard
[7]Qing Sihan. Research progress on Android security[J]. Journal of Software, 2016, 27(1): 45-71 (in Chinese)(卿斯?jié)h. Android安全研究進(jìn)展[J]. 軟件學(xué)報(bào), 2016, 27(1): 45-71)
[8]Shabtai A, Moskovitch R, Feher C, et al. Detecting unknown malicious code by applying classification techniques on opcode patterns[J]. Security Informatics, 2012, 1(1): 1-22
[9]Santos I, Brezo F, Ugarte-Pedrero X, et al. Opcode sequences as representation of executables for data-mining-based unknown malware detection[J]. Information Sciences, 2013, 231(9): 64-82
[10]Dhaya R, Poongodi M. Source code analysis for software vulnerabilities in Android based mobile devices[J]. International Journal of Computer Applications, 2014, 93(17): 10-14
[11]Arp D, Spreitzenbarth M, Hubner M, et al. DREBIN: Effective and explainable detection of Android malware in your pocket[C] //Proc of the 21st Annual Network and Distributed System Security Symposium. San Diego, California: Internet Society, 2014
[12]Dong Hang, He Nengqiang, Hu Ge, et al. Malware detection method of Android application based on simplification instructions[J]. Journal of China Universities of Posts & Telecommunications, 2014, 21(Suppl 1): 94-100
[13]GitHub. Apktool: A tool for reverse engineering Android apk files[EB/OL]. [2016-03-01]. https://github.com/iBotPeaches/Apktool
[14]Paller G. Dalvik opcodes[EB/OL]. [2016-03-01]. http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html
[15]HAN J. Data Mining[M]. San Francisco: Morgan Kaufmann, 2011
[16]Arp D, Spreitzenbarth M, Hubner M, et al. The Drebin Dataset[EB/OL]. [2016-03-01]. https://www.sec.cs.tu-bs.de/~danarp/drebin/index.html
[17]Google Inc. GooglePlay [EB/OL]. [2016-03-01]. https://play.google.com
[18]Grace M, Zhou Y, Zhang Q, et al. RiskRanker: Scalable and accurate zero-day Android malware detection[C] //Proc of the 10th Int Conf on Mobile Systems, Applications, and Services. New York: ACM, 2012: 281-294
[19]ThreatBook Inc. VirusBook [EB/OL]. [2016-03-01]. https://x.threatbook.cn/
Chen Tieming, born in 1978. PhD. Professor in the Zhejiang University of Technology. His main research interests include network and information security.
Yang Yimin, born in 1985. Master candidate in the Zhejiang University of Technology. His main research interests include network and information security.
Chen Bo, born in 1971. Associate professor in the Zhejiang University of Technology. His main research interests include network and information security.
Maldetect: An Android Malware Detection System Based on Abstraction of Dalvik Instructions
Chen Tieming, Yang Yimin, and Chen Bo
(CollegeofComputerScienceandTechnology,ZhejiangUniversityofTechnology,Hangzhou, 310023)
A novel static Android malware detection system Maldetect is proposed in this paper. At first, the Dalvik instructions decompiled from Android DEX files are simplified and abstracted into simpler symbolic sequences. N-Gram is then employed to extract the features from the simplified Dalvik instruction sequences, and the detection and classification model is finally built using machine learning algorithms. By comparing different classification algorithms and N-Gram sequences, 3-Gram sequences with the random forest algorithm is identified as an optimal solution for the malware detection and classification. The performance of our method is compared against the professional anti-virus tools using 4 000 malware samples, and the results show that Maldetect is more effective for Android malware detection with high detection accuracy.
malware; Android; Dalvik instruction; N-Gram; machine learning
2016-05-18;
2016-08-12
國(guó)家自然科學(xué)基金項(xiàng)目(U1509214);浙江省自然科學(xué)基金項(xiàng)目(LY16F020035)
TP309
This work was supported by the National Natural Science Foundation of China (U1509214) and the Natural Science Foundation of Zhejiang Province of China (LY16F020035).