陳澤峰 方 勇 劉 亮 左 政 李抒霞
1(四川大學(xué)信息安全研究所 成都 610065)2 (四川大學(xué)網(wǎng)絡(luò)空間學(xué)院 成都 610065)
近年來隨著移動(dòng)設(shè)備的普及,Android系統(tǒng)市場(chǎng)占有率排名第一[1].與此同時(shí),惡意應(yīng)用程序數(shù)量持續(xù)增長(zhǎng),黑產(chǎn)已經(jīng)利用移動(dòng)病毒為多種業(yè)務(wù)服務(wù)[2].
當(dāng)前針對(duì)Android惡意軟件的檢測(cè)方法分為靜態(tài)分析檢測(cè)和動(dòng)態(tài)分析檢測(cè)[3].結(jié)合機(jī)器學(xué)習(xí)技術(shù)和數(shù)據(jù)挖掘算法檢測(cè)惡意軟件被證明是可行且卓有成效的[4-5].基于動(dòng)態(tài)執(zhí)行特征的惡意軟件檢測(cè)方法,通過在沙箱中(應(yīng)用程序可以安全監(jiān)控的環(huán)境)運(yùn)行應(yīng)用程序提取運(yùn)行時(shí)特征,其中存在2個(gè)主要問題:首先是需要的時(shí)間,分析每個(gè)應(yīng)用需要10~15 min(取決于沙箱中觸發(fā)的模擬事件數(shù)量),然而google play每個(gè)月超過6萬個(gè)新增應(yīng)用,使用這種檢測(cè)方法無疑需要大量的開銷;其次是代碼覆蓋率低,只能在分配的時(shí)間內(nèi)發(fā)生,而且,最新的惡意軟件可以通過在檢測(cè)到當(dāng)前執(zhí)行環(huán)境是沙箱時(shí)隱藏惡意行為或結(jié)束進(jìn)程.當(dāng)前的惡意軟件檢測(cè)方法很大程度上依賴于研究者的認(rèn)知來選定最終有效特征,并傳遞給機(jī)器學(xué)習(xí)模型作出預(yù)測(cè).
基于以上研究,本文提出一種基于多個(gè)級(jí)別的不同分類器實(shí)現(xiàn)對(duì)未知樣本快速和精確的檢測(cè)方法.從apk文件中提取的多種類型的特征(例如權(quán)限、API調(diào)用),隨著未知樣本的增加,提取權(quán)限特征所需的時(shí)間比提取n-gram編碼的操作碼序列特征所需的時(shí)間大幅減少,盡管操作碼序列更能反映應(yīng)用的真實(shí)行為.并且單獨(dú)對(duì)每個(gè)特征使用機(jī)器學(xué)習(xí)要比將其作為一個(gè)整體具有更好的檢測(cè)效果.本文提出的方法僅當(dāng)級(jí)別1分類器的置信度低于某一閾值時(shí),才執(zhí)行級(jí)別2的檢測(cè).實(shí)驗(yàn)表明級(jí)別2的訪問頻率只有10.4%.
Zhang等人[6]提出了DroidSIFT檢測(cè)系統(tǒng),通過構(gòu)建上下文API依賴圖,提供惡意軟件可能行為的抽象視圖,并采用圖相似性和機(jī)器學(xué)習(xí)來檢測(cè)惡意應(yīng)用程序.王聰?shù)热薣7]提出了基于權(quán)限關(guān)聯(lián)特征的Android惡意軟件靜態(tài)檢測(cè)技術(shù),通過對(duì)提取的權(quán)限進(jìn)行預(yù)處理,然后使用數(shù)據(jù)挖掘算法構(gòu)造權(quán)限關(guān)聯(lián)特征集.在最終形成的特征庫中去除掉惡意軟件中共存的頻繁項(xiàng)集,使用貝葉斯分類器可以達(dá)到92.1%的準(zhǔn)確率.Saracino等人[8]提出了一種基于宿主的惡意軟件檢測(cè)系統(tǒng),該系統(tǒng)分為4個(gè)層次:內(nèi)核層、應(yīng)用層、用戶層和軟件包.通過動(dòng)態(tài)分析提取系統(tǒng)調(diào)用、敏感API調(diào)用和和SMS之類的特征,同時(shí)通過靜態(tài)分析提取權(quán)限、元數(shù)據(jù)和市場(chǎng)渠道等特征,并使用機(jī)器學(xué)習(xí)技術(shù)檢測(cè)惡意軟件.孫偉等人[9]提出一種重打包惡意軟件靜態(tài)檢測(cè)方法,使用質(zhì)心算法對(duì)應(yīng)用之間的相似性進(jìn)行檢測(cè),并使用數(shù)據(jù)挖掘算法進(jìn)行惡意代碼檢測(cè),并得出良好的檢測(cè)效果.Yang等人[10]提出一種基于良性樣本特征的惡意軟件檢測(cè)模型,首先使用Android 接口獲取已安裝軟件的權(quán)限,去除冗余信息后量化為特征向量,最終反向生成惡意軟件的特征向量,具有較高的檢測(cè)率.Sato[11]提出了一種基于清單文件提供的信息(申請(qǐng)的權(quán)限和權(quán)限數(shù)量、應(yīng)用程序名稱、組件類別和優(yōu)先級(jí))來檢測(cè)應(yīng)用程序是否包含惡意行為,作者對(duì)365個(gè)樣本的數(shù)據(jù)集進(jìn)行了分類,得到了90%的檢測(cè)率.Aafer等人[12]提出了一種DroidAPIMiner的分類模型,使用應(yīng)用程序源代碼中的API調(diào)用來確定應(yīng)用程序是良性或惡意的.作者通過分析大量的惡意軟件,從惡意軟件中提取惡意代碼序列.使用KNN分類器得到了99%的檢測(cè)率.Arp等人[13]提出了名為Drebin的分類器,通過提取清單文件中申請(qǐng)的權(quán)限和申請(qǐng)權(quán)限相關(guān)的硬件(例如GPS、攝像頭、麥克風(fēng)),并使用SVM機(jī)器學(xué)習(xí)算法作為分類器,檢測(cè)率達(dá)到了94%,每一次檢測(cè)平均所需時(shí)間為10 s.Yerima等人[14]通過靜態(tài)分析提取應(yīng)用的權(quán)限特征,組件信息和API調(diào)用序列,并結(jié)合集成學(xué)習(xí)檢測(cè)惡意軟件,在2 925個(gè)惡意軟件和3 938個(gè)良性軟件的數(shù)據(jù)集上驗(yàn)證了方法的有效性.
通過分析apk文件,提取多個(gè)獨(dú)立的特征集用于靜態(tài)分析.權(quán)限特征用于級(jí)別1,操作碼特征用于級(jí)別2.
Android是一種特權(quán)分離的系統(tǒng)[15],對(duì)所有進(jìn)程采用強(qiáng)制訪問控制,這意味著除非明確授予特定權(quán)限,否則無法使用設(shè)備資源或組件.每個(gè)應(yīng)用程序在Android系統(tǒng)中都有唯一的身份,其中包含用戶ID和組ID.每個(gè)應(yīng)用程序必須在清單文件中聲明權(quán)限才能使用相應(yīng)的API,申請(qǐng)的權(quán)限可以在清單文件中找到.同樣地,通過分析代碼中使用的API調(diào)用,提取出應(yīng)用程序運(yùn)行時(shí)所需的權(quán)限,這可以檢測(cè)應(yīng)用程序申請(qǐng)的權(quán)限和運(yùn)行時(shí)權(quán)限的差異性,惡意應(yīng)用能夠通過漏洞進(jìn)行root提權(quán),可以達(dá)到讀取通信錄等隱私數(shù)據(jù).使用PsCount[16]工具建立API調(diào)用和所需權(quán)限的詳細(xì)映射.通過分析表明,多個(gè)權(quán)限組合可以在一定程度上反映惡意軟件的行為.例如,READ_PHONE_STATE權(quán)限可以獲取電話信息(IMEI),然后使用網(wǎng)絡(luò)權(quán)限訪問網(wǎng)絡(luò),將手機(jī)信息通過網(wǎng)絡(luò)發(fā)送出去.申請(qǐng)權(quán)限特征集只考慮35個(gè)權(quán)限使用情況,特征值用二進(jìn)制表示,如果應(yīng)用包含某一個(gè)權(quán)限,對(duì)應(yīng)的特征值為1,否則,對(duì)應(yīng)的特征值為0.
目前n-gram編碼常用于自然語言的自動(dòng)分類.研究表明,使用n-gram生成的特征序列在惡意代碼檢測(cè)中也有不錯(cuò)的效果[17].通常Android應(yīng)用程序包含清單文件、資源文件和可執(zhí)行文件dex.使用apktool反匯編apk文件生成的每個(gè)smali文件表示一個(gè)獨(dú)立的類,其中的每個(gè)方法都遵循一套標(biāo)準(zhǔn)的語法規(guī)范,每條指令由單個(gè)操作碼和多個(gè)操作數(shù)組成.在特定n下,定義操作碼特征向量〈V,N〉,V表示在所有smali文件中以類中的方法為單元,丟棄每條指令的操作數(shù),保留指令的操作碼,運(yùn)用n-gram編碼提取的操作碼序列,N表示某一個(gè)操作碼序列V的個(gè)數(shù).根據(jù)n-gram編碼提取操作碼序列的流程如圖1所示:
圖1 n-gram操作碼序列特征提取圖
從dalvik字節(jié)碼可以獲得5個(gè)主要的操作碼組:
1) move 指令集(0x01~0x1C);
2) 分支指令集 (0x27~0x3D);
3) getter 和setter 指令集 (0x44~0x6D);
4) 方法調(diào)用指令集(0x6E~0x78);
5) 邏輯和算術(shù)運(yùn)算指令集 (0x7B~0xE2).
隨著n的增長(zhǎng),操作碼序列最終趨于穩(wěn)定.原因有2個(gè):1)某些方法中的指令數(shù)小于n,因此無法從這些方法中運(yùn)用n-gram編碼提取長(zhǎng)度為n的操作碼序列;2)較大的n可能產(chǎn)生較少數(shù)量的n-gram操作碼序列,例如,具有8個(gè)指令的方法有7個(gè)2-gram操作碼、6個(gè)3-gram操作碼、5個(gè)4-gram操作碼等.因此,方法的n-gram操作碼序列數(shù)量與n呈反比.盡管運(yùn)用n-gram編碼提取的操作碼序列的數(shù)量沒有趨于指數(shù)增長(zhǎng),但是過多的操作碼序列數(shù)量仍然會(huì)導(dǎo)致進(jìn)一步處理過程中的巨大開銷,解決方法將在系統(tǒng)設(shè)計(jì)中提到.
本文提出的方法其目的是平衡精準(zhǔn)度和系統(tǒng)開銷,提供基于多級(jí)分類器的惡意軟件檢測(cè)方法,僅在級(jí)別1無法提供可靠的分類效果時(shí)才會(huì)考慮功能更強(qiáng)大的級(jí)別2,系統(tǒng)框架設(shè)計(jì)如圖2所示.
圖2 多級(jí)分類器檢測(cè)模型圖
選定的單一特征對(duì)于所有類型的攻擊描述不夠精準(zhǔn),通過對(duì)多個(gè)獨(dú)立性特征的分析可以獲得良好的分類效果.本文方法包含2個(gè)部分:權(quán)限分類模塊和操作碼分類模塊.整個(gè)檢測(cè)框架如圖2所示.給定算法分類器集合L={C1,C2,…,Cn},將可以快速分類的C放在框架中的級(jí)別1.在框架的第1層,生成未知樣本的申請(qǐng)權(quán)限特征向量和運(yùn)行時(shí)權(quán)限特征向量,基于2種特征向量使用C分類器,檢測(cè)出惡意樣本的概率分別為Pr和Pu.由于一些權(quán)限同時(shí)出現(xiàn)在申請(qǐng)權(quán)限和運(yùn)行時(shí)權(quán)限中,為了能夠更好地利用申請(qǐng)權(quán)限和運(yùn)行時(shí)權(quán)限,提高級(jí)別1的分類精度,定義惡意軟件檢測(cè)率Pc如下:
為了量化概率在類之間傳播的程度,使用文獻(xiàn)[18]中定義的旁瓣比,比率定義為
當(dāng)一個(gè)類的預(yù)測(cè)概率高時(shí),K接近于1,反之,則接近于0.如果K>ε,其中ε是通過實(shí)驗(yàn)分析得到的閾值,則根據(jù)級(jí)別1的檢測(cè)結(jié)果作為惡意軟件正確分類的概率,此時(shí)樣本被正確分類的概率較高.如果K<ε,將考慮使用功能更強(qiáng)大的級(jí)別2來檢測(cè)未知樣本.而級(jí)別2提取基于n-gram編碼的操作碼序列,并使用集成學(xué)習(xí)得出結(jié)果所需的時(shí)間遠(yuǎn)高于基于權(quán)限得出結(jié)果所需的時(shí)間.因此,控制使用級(jí)別2的次數(shù)應(yīng)該是有限的.
Apriori算法使用一種逐層搜索的迭代方法,通過迭代生成頻繁項(xiàng)集并最終發(fā)現(xiàn)強(qiáng)關(guān)聯(lián)規(guī)則,其中產(chǎn)生頻繁項(xiàng)集的過程是由連接步和剪枝步組成[19].基于Apripri算法挖掘頻繁項(xiàng)集,并在數(shù)據(jù)挖掘過程中加入家族的概念,挖掘出惡意家族的典型序列而不是所有惡意軟件的典型序列,進(jìn)行Android未知軟件的惡意行為檢測(cè).基本思路是,對(duì)惡意家族的運(yùn)行時(shí)權(quán)限進(jìn)行提取,刪除所有惡意軟件很少使用的運(yùn)行時(shí)權(quán)限,形成事務(wù)數(shù)據(jù)庫,然后使用Apriori算法得出惡意家族的極大頻繁權(quán)限項(xiàng)集.以此構(gòu)建惡意家族運(yùn)行時(shí)權(quán)限特征庫.
算法的描述如下:
1) 提取惡意家族中所有惡意樣本都必需的運(yùn)行時(shí)權(quán)限,加入惡意家族的極大頻繁項(xiàng)集中.
2) 刪除所有樣本都出現(xiàn)的運(yùn)行時(shí)權(quán)限.
3) 刪除所有樣本很少使用的運(yùn)行時(shí)權(quán)限.
4) 使用Apriori算法計(jì)算極大頻繁項(xiàng)集.
5) 在得到惡意家族的運(yùn)行時(shí)權(quán)限特征庫后,刪除每個(gè)惡意家族中都會(huì)出現(xiàn)的權(quán)限特征.
算法的偽代碼如下:
輸入:
Di←{惡意家族的運(yùn)行時(shí)權(quán)限事務(wù)數(shù)據(jù)庫};
min_sup←{ 最小支持度閾值};
輸出:
事務(wù)數(shù)據(jù)庫的極大頻繁權(quán)限項(xiàng)集;
Lm←{ 惡意家族的事務(wù)數(shù)據(jù)庫};
Lm←Library_gen(D,min_sup).*生成惡意家族的權(quán)限特征庫*
方法:
for (i=1;i<=49;i++){
Lappend=select_common_per(Di);*提取所有樣本都必需的運(yùn)行時(shí)權(quán)限項(xiàng)集*
Di=delete_common_per(Di);*刪除所有樣本都必需的運(yùn)行時(shí)權(quán)限*
Di=delete_little(Di);*刪除所有樣本極少使用的運(yùn)行時(shí)權(quán)限*
Lk=Library_gen(D,min_sup);*生成k項(xiàng)集*
添加Lappend到Lk項(xiàng)集;
添加Lk項(xiàng)集到特征庫;
}
procedureLibrary_gen(D,min_sup); {
…
…
end procedure
由于運(yùn)用n-gram編碼提取的操作碼序列數(shù)量過多,很難在原始數(shù)據(jù)上直接運(yùn)用機(jī)器學(xué)習(xí)算法.解決方案是使用信息增益計(jì)算每個(gè)特征的排名,過濾掉排名靠后的不太重要的特征.
熵在信息論中是隨機(jī)變量不確定性的度量.變量X的熵定義如下:
H(X)=-∑p(xi)lbp(xi),
并且定義在確定Y的條件下X的條件熵,其中p(xi)是變量X某一取值的概率,p(xi|yi)是在觀察到Y(jié)值下X的條件概率.
H(X|Y)=-∑p(yi)∑p(xi|yi)lbp(xi|yi).
X的條件熵定義為待分類的集合的熵和選定某個(gè)特征的條件熵之差稱為信息增益(Quinlan,1993),定義如下:
Gain(X|Y)=H(X)-H(X|Y).
根據(jù)信息增益,如果IG(X|Y)>IG(X|Z),則特征Y相對(duì)特征Z而言,將被視為集合X更好的特征.通過信息增益對(duì)n-gram編碼提取的操作碼序列進(jìn)行排名,并選擇較高排名的特征.
為了計(jì)算信息增益,使用WEKA中的信息增益的實(shí)現(xiàn).但是該程序無法處理大量的操作碼序列輸入,并且經(jīng)常遇到內(nèi)存不足的問題.由于信息增益算法單獨(dú)計(jì)算每個(gè)特征的得分,將數(shù)據(jù)集分割成較小的幾個(gè)塊,分別計(jì)算塊中的每個(gè)特征的信息增益,最終將結(jié)果結(jié)合在一起.
本文使用的實(shí)驗(yàn)樣本有2 520個(gè),其中49個(gè)惡意家族樣本由文獻(xiàn)[20]提供,良性樣本均來自Google官方下載并且經(jīng)過VirusTotal分析,具有較高的可信度.使用apktool得到反匯編代碼,PsCount獲取API調(diào)用和所需權(quán)限的映射.從清單文件中提取申請(qǐng)權(quán)限,反匯編代碼提取n-gram編碼的操作碼序列.所有的實(shí)驗(yàn)都是在Windows機(jī)器上執(zhí)行的,在實(shí)驗(yàn)中,使用10倍交叉驗(yàn)證技術(shù)來測(cè)量分類器性能,從正確率、召回率、分類精度(ACC)、AUC(ROC曲線面積)等評(píng)價(jià)指標(biāo)進(jìn)行對(duì)比.
在實(shí)驗(yàn)的第1部分,對(duì)特征集使用不同類型的分類器:樸素貝葉斯、J48、KNN.在第2級(jí),使用一個(gè)強(qiáng)大的分類器(如Adaboost和隨機(jī)森林)進(jìn)行更可靠的分類.表1顯示了對(duì)于未知樣本只使用級(jí)別1的檢測(cè)結(jié)果.可以看出,J48,KNN和邏輯回歸給出了較好的分類效果,證明本文提出的申請(qǐng)權(quán)限和運(yùn)行時(shí)權(quán)限相結(jié)合,并利用機(jī)器學(xué)習(xí)的檢測(cè)方法是可行的.特別地,在使用級(jí)別1對(duì)Droid Kung Fu2,Droid Kung Fu3家族的惡意樣本檢測(cè)率能夠達(dá)到90%,盡管Droid Kung Fu惡意家族通過native代碼獲取更高權(quán)限.
表1 級(jí)別1使用不同分類器檢測(cè)結(jié)果對(duì)比 %
由于閾值用來平衡正確率和級(jí)別2訪問頻率,閾值取值過大會(huì)降低惡意軟件的漏報(bào),閾值取值過小會(huì)增大級(jí)別2的訪問頻率,增加系統(tǒng)開銷.經(jīng)過多次實(shí)驗(yàn),閾值=0.75時(shí),利用多級(jí)分類器檢測(cè)系統(tǒng)的檢測(cè)結(jié)果可以觀察到,結(jié)合J48和隨機(jī)森林算法給出了良好的性能,級(jí)別2的訪問頻率接近10%.同時(shí)提高了整體的正確率和AUC面積.
在計(jì)算n=5的操作碼序列的信息增益實(shí)驗(yàn)中,發(fā)現(xiàn)大多數(shù)操作碼序列只會(huì)在良性樣本中出現(xiàn).這表明僅僅出現(xiàn)在良性樣本中的操作碼序列對(duì)于惡意軟件檢測(cè)非常重要.進(jìn)一步可以發(fā)現(xiàn),3個(gè)4-gram編碼的操作碼序列(“08546e0c”,“08546e0a”,“3808546e”)和3個(gè)5-gram編碼的操作碼序列(“0c08546e0c”,“08546e0854”,“08546e0c08”)是3-gram編碼的操作碼序列“08546e”的擴(kuò)展,這種擴(kuò)展只會(huì)發(fā)生在良性樣本中,預(yù)測(cè)在未來的研究中不同長(zhǎng)度的操作碼序列將會(huì)用于機(jī)器學(xué)習(xí)分類.
表2 多級(jí)模型的檢測(cè)結(jié)果 %
考慮級(jí)別1和級(jí)別2使用的分類器時(shí),計(jì)算了在各種分類模型中檢測(cè)樣本的建模和預(yù)測(cè)總時(shí)間,在級(jí)別1,選擇簡(jiǎn)單分類器,同時(shí)在級(jí)別2使用集成學(xué)習(xí)檢測(cè)模型,從而得到精準(zhǔn)度更高的分類.表3給出了n=5時(shí),單獨(dú)使用級(jí)別1和級(jí)別2得出檢測(cè)結(jié)果需要的時(shí)間.如果級(jí)別2訪問次數(shù)減少,同時(shí)精準(zhǔn)度不受很大影響,相對(duì)于多個(gè)特征同時(shí)作為機(jī)器學(xué)習(xí)的輸入,可以提高分類模型的檢測(cè)效率.
表3 單獨(dú)使用級(jí)別1和級(jí)別2的檢測(cè)時(shí)間
本文提出了一種多維特征協(xié)作的輕量級(jí)Android惡意軟件檢測(cè)方法,使用多個(gè)級(jí)別的不同分類器實(shí)現(xiàn)對(duì)未知樣本的快速和精確的檢測(cè).文中使用到了應(yīng)用的申請(qǐng)權(quán)限、運(yùn)行時(shí)權(quán)限、操作碼序列多個(gè)特征用作機(jī)器學(xué)習(xí)的訓(xùn)練模型和檢測(cè)模型.級(jí)別1對(duì)于單獨(dú)使用申請(qǐng)權(quán)限和運(yùn)行時(shí)權(quán)限相結(jié)合的方法檢測(cè)未知樣本的效果有所提高,級(jí)別2使用n-gram編碼的操作碼序列作為機(jī)器學(xué)習(xí)的特征集,在級(jí)別1無法提供可靠的檢測(cè)時(shí),使用更能反映應(yīng)用運(yùn)行時(shí)行為的操作碼序列并結(jié)合集成學(xué)習(xí)獲得了較高的檢測(cè)率.與以往靜態(tài)檢測(cè)使用API調(diào)用、組件間調(diào)用、權(quán)限等其他應(yīng)用屬性特征組合使用機(jī)器學(xué)習(xí)不同,通過只提取操作碼和使用信息增益算法過濾掉不太重要的特征,進(jìn)一步減小開銷,如非必要,將不會(huì)使用到級(jí)別2.以高精度和低成本建立分類檢測(cè)系統(tǒng),平衡成本與精確度的沖突.后續(xù)的工作將會(huì)繼續(xù)完善和設(shè)計(jì)基于多維特征的Android惡意軟件檢測(cè)系統(tǒng),并且在此基礎(chǔ)上能夠分類未知樣本所屬的惡意家族.
[1]Alibaba. 2016 Security report[EB/OL]. (2017-03-09). [2017-12-15]. https://jaq.alibaba.com
[2]Concert/CC. China’s Internet Network Security Report[R]. Beijiing: Post & Telecom Press, 2016: 130-150
[3]朱佳偉, 喻梁文, 關(guān)志, 等. Android權(quán)限機(jī)制安全研究綜述[J]. 計(jì)算機(jī)應(yīng)用研究, 2015, 32(10): 2881-2885
[4]Amos B, Turner H, White J. Applying machine learning classifiers to dynamic Android malware detection at scale[C] //Proc of the 9th Int Wireless Communications and Mobile Computing Conf (IWCMC). Piscataway, NJ: IEEE, 2013: 1666-1671
[5]Yang T, Qian K, Li L, et al. Static mining and dynamic taint for mobile security threats analysis[C] //Proc of IEEE Int Conf on Smart Cloud (SmartCloud). Piscataway, NJ: IEEE, 2016: 234-240
[6]Zhang M, Duan Y, Yin H, et al. Semantics-aware Android malware classification using weighted contextual api dependency graphs[C] //Proc of the 2014 ACM SIGSAC Conf on Computer and Communications Security. New York: ACM, 2014: 1105-1116
[7]王聰, 張仁斌, 李鋼. 基于關(guān)聯(lián)特征的貝葉斯Android惡意程序檢測(cè)技術(shù)[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2017, 34(1): 286-292
[8]Saracino A, Sgandurra D, Dini G, et al. Madam: Effective and efficient behavior-based Android malware detection and prevention[J]. IEEE Trans on Dependable and Secure Computing, 2016, (99): 1-1
[9]孫偉, 孫雅杰, 夏孟友. 一種靜態(tài)Android重打包惡意應(yīng)用檢測(cè)方法[J]. 信息安全研究, 2017, 3(8): 692-700
[10]Yang T, Qian K, Li L, et al. Static mining and dynamic taint for mobile security threats analysis[C]//Proc of IEEE Int Conf on Smart Cloud (SmartCloud). Piscataway, NJ: IEEE, 2016: 234-240
[11]Sato. 基于良性樣本的Android系統(tǒng)惡意軟件檢測(cè)[J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2016, 37(5): 1191-1195
[12]Aafer Y, Du W, Yin H. Droidapiminer: Mining API-level features for robust malware detection in Android[C] //Proc of Int Conf on Security and Privacy in Communication Systems. Berlin: Springer, 2013: 86-103
[13]Arp D, Spreitzenbarth M, Hubner M, et al. DREBIN: Effective and explainable detection of Android malware in your pocket[C] //Proc of the Annual Symp on Network and Distributed System Security. Chicago: NDSS. 2014
[14]Yerima S Y, Sezer S, Muttik I. High accuracy Android malware detection using ensemble learning[J]. IET Information Security, 2015, 9(6): 313-320
[15]Martinelli F, Mori P, Saracino A. Enhancing Android permission through usage control: A byod use-case[C] //Proc of the 31st Annual ACM Symposium on Applied Computing. New York: ACM, 2016: 2049-2056
[16]Au K W Y, Zhou Y F, Huang Z, et al. Pscout: Analyzing the Android permission specification[C] //Proc of the 2012 ACM Conf on Computer and Communications Security. New York: ACM, 2012: 217-228
[17]陳鐵明, 楊益敏, 陳波. Maldetect: 基于Dalvik指令抽象的Android惡意代碼檢測(cè)系統(tǒng)[J]. 計(jì)算機(jī)研究與發(fā)展, 2016, 53(10): 2299-2306
[18]Mithun N C, Rashid N U, Rahman S M M. Detection and classification of vehicles from video using multiple time-
spatial images[J]. IEEE Trans on Intelligent Transportation Systems, 2012, 13(3): 1215-1225
[19]Han Jiawei, Kamber M, Pei Jian. 數(shù)據(jù)挖掘: 概念與技術(shù)[M]. 北京: 機(jī)械工業(yè)出版社, 2012: 181-185
[20]Zhou Y, Jiang X. Dissecting Android malware: Characterization and evolution[C] //Proc of 2012 IEEE Symp on Security and Privacy (SP). Piscataway, NJ: IEEE, 2012: 95-109