王 聰 張仁斌 李 鋼
(合肥工業(yè)大學(xué)計算機(jī)與信息學(xué)院 安徽 合肥 230009)
基于關(guān)聯(lián)特征的貝葉斯Android惡意程序檢測技術(shù)
王 聰 張仁斌 李 鋼
(合肥工業(yè)大學(xué)計算機(jī)與信息學(xué)院 安徽 合肥 230009)
Android應(yīng)用惡意性和它所申請的權(quán)限關(guān)系密切,針對目前惡意程序檢測技術(shù)檢出率不高,存在誤報,缺乏對未知惡意程序檢測等不足,為實(shí)現(xiàn)對Android平臺惡意程序進(jìn)行有效檢測,提出了一種基于關(guān)聯(lián)權(quán)限特征的靜態(tài)檢測方法。首先對獲取的應(yīng)用權(quán)限特征進(jìn)行預(yù)處理,通過頻繁模式挖掘算法構(gòu)造關(guān)聯(lián)特征集,然后采用冗余關(guān)聯(lián)特征剔除算法對冗余關(guān)聯(lián)特征進(jìn)行精簡,最后通過計算互信息來進(jìn)行特征篩選,獲得最具分類能力的獨(dú)立特征空間,利用貝葉斯分類算法進(jìn)行惡意程序的檢測。實(shí)驗(yàn)結(jié)果證明,在貝葉斯分類之前對特征進(jìn)行處理具有較強(qiáng)的有效性和可靠性,能夠使Android惡意程序檢出率穩(wěn)定在92.1%,誤報率為8.3%,檢測準(zhǔn)確率為93.7%。
貝葉斯分類 安卓 惡意檢測 關(guān)聯(lián)特征 特征選擇
面對Android平臺上層出不窮的惡意應(yīng)用,為了有效改善智能終端缺少有效安全檢測平臺的現(xiàn)狀,國內(nèi)外研究人員進(jìn)行了一系列的工作。現(xiàn)階段Android平臺惡意軟件的主流分析技術(shù)包括靜態(tài)分析[1]和動態(tài)分析[2]兩個方面。Enck等[3]提出了Kirin 工具,該工具會對可能進(jìn)行惡意行為的權(quán)限組合作出提示。然而,Enck的工作沒有對權(quán)限組合與程序的惡意性之間的關(guān)系進(jìn)行實(shí)驗(yàn)驗(yàn)證,Kirin工具所預(yù)設(shè)權(quán)限組合的可靠性存在問題。Zhou等[4]提出了一種Android惡意代碼檢測方法DroidRanger,對惡意家族相關(guān)的敏感權(quán)限進(jìn)行統(tǒng)計,從而識別惡意應(yīng)用。但是由于缺少統(tǒng)一的權(quán)限過濾規(guī)則和大量樣本的實(shí)驗(yàn)驗(yàn)證,該方法也存在其局限性。檢測工具Androguard[5]采用基于特征碼方法,因?yàn)樘卣鞔a涉及到特征庫的更新問題,不能及時地識別未知惡意程序。張玉清等[6]對Android系統(tǒng)安全作了綜述,從系統(tǒng)和應(yīng)用兩個層次進(jìn)行闡述,特別對基于權(quán)限機(jī)制的改進(jìn)在安全加固方面的應(yīng)用作了說明。Google在Android4.2系統(tǒng)之后加入了應(yīng)用驗(yàn)證服務(wù)(Application Verification Service),對惡意軟件進(jìn)行掃描來防御潛在威脅,Jiang[7]對其進(jìn)行了全面測試,檢測率只有15.32%。蔡澤廷[8]提出了一種基于機(jī)器學(xué)習(xí)的Android惡意軟件檢測模型,訓(xùn)練靜態(tài)指紋匹配庫和動態(tài)行為簽名庫,能在一定程度上檢測未知惡意程序,但是訓(xùn)練數(shù)據(jù)量太少,精度不高。張思琪[9]提出了一種基于改進(jìn)貝葉斯分類的Android惡意軟件檢測方法,利用移動設(shè)備應(yīng)用程序獲取的多種行為特征值,應(yīng)用機(jī)器學(xué)習(xí)技術(shù)檢測Android惡意軟件。該方法只選取短信、GPS等六種行為特征集合,惡意行為的涉及范圍小。諸姣等[10]通過從應(yīng)用市場獲取的應(yīng)用數(shù)據(jù),采用信息檢索和語義分析等技術(shù)對應(yīng)用程序功能與權(quán)限的語義關(guān)系進(jìn)行了描述,并建立了關(guān)系模型。秦中元等[11]提出一種利用危險權(quán)限對比,根據(jù)提取消息摘要的md5進(jìn)行匹配的檢測方法,該方法沒有對過度申請的特征進(jìn)行去干擾,并且沒有特征處理,檢測不夠精確。
除此,還有一些動態(tài)的檢測方法。Shabtai[12]實(shí)現(xiàn)了一個基于主機(jī)的Android惡意程序檢測系統(tǒng),通過動態(tài)監(jiān)控設(shè)備運(yùn)行的特征及事件,比如CPU使用、運(yùn)行的進(jìn)程數(shù)量、電量等,運(yùn)用機(jī)器學(xué)習(xí)算法進(jìn)行分類,但是由于缺乏真實(shí)的惡意軟件,檢測能力不易評估。Enck等[13]實(shí)現(xiàn)了一種自動監(jiān)控的方法,通過在Linux底層中插入代碼,利用發(fā)送和存儲的數(shù)據(jù)信息情況自動監(jiān)控應(yīng)用程序,但是該方法對系統(tǒng)的資源消耗嚴(yán)重,會導(dǎo)致系統(tǒng)運(yùn)行不穩(wěn)定甚至崩潰。徐冰泉等[14]提出了GrantDIoid,一種支持Android權(quán)限即時授予的方法。 通過攔截應(yīng)用對所有權(quán)限的使用,采用一套惡意程序權(quán)限使用特征對正常使用進(jìn)行過濾,當(dāng)存在威脅權(quán)限請求時,提醒用戶對該權(quán)限進(jìn)行實(shí)時授權(quán)。
權(quán)限機(jī)制是Android安全機(jī)制的核心,應(yīng)用程序的權(quán)限與系統(tǒng)提供的API之間存在對應(yīng)關(guān)系。Felt等[15]提出了一個STOWAWAY工具,并使用其對940個Android應(yīng)用進(jìn)行分析統(tǒng)計,發(fā)現(xiàn)30%以上的應(yīng)用存在權(quán)限過度申請但未使用的情況。Au等[16]提出了PScout工具,該工具完成了Android系統(tǒng)API與權(quán)限的映射關(guān)系集合,可以利用該映射集判斷應(yīng)用是否存在權(quán)限過度申請。而針對多應(yīng)用多權(quán)限間接提權(quán)攻擊的檢測技術(shù),也有些研究人員進(jìn)行了一些探索。文獻(xiàn)[17]將Android系統(tǒng)應(yīng)用層權(quán)限擴(kuò)展導(dǎo)致的攻擊分為混淆代理人攻擊(Confused Deputy Attack)和共謀攻擊(Collusion Attack)。文獻(xiàn)[18]提出了一種用戶實(shí)時授權(quán)的安全框架,使授權(quán)粒度得到了細(xì)化,但是無法對權(quán)限提升導(dǎo)致的共謀攻擊進(jìn)行檢測。
為了解決當(dāng)前基于權(quán)限的檢測方案中權(quán)限存在過度申請,以及特征獨(dú)立性處理的不完善等問題,本文使用基于關(guān)聯(lián)權(quán)限特征的靜態(tài)分析方法。最后,設(shè)計了多組實(shí)驗(yàn)進(jìn)行對比,相比之前基于權(quán)限的靜態(tài)方法[1]以及基于動態(tài)的檢測技術(shù)[2],本方法在檢測精度和處理方法上都有明顯優(yōu)勢。
1.1 整體框架
Android系統(tǒng)采用了權(quán)限分離的機(jī)制,通過賦予不同的權(quán)限來對應(yīng)用程序的行為進(jìn)行控制。基于關(guān)聯(lián)權(quán)限特征的貝葉斯檢測方案,充分利用了貝葉斯分類對特征獨(dú)立性的要求。傳統(tǒng)的機(jī)器學(xué)習(xí)分類方法忽略了Android惡意程序的惡意性與權(quán)限組合之間的關(guān)系,認(rèn)為各個特征的分類能力是一樣的,由此進(jìn)行機(jī)器學(xué)習(xí)產(chǎn)生的訓(xùn)練集會產(chǎn)生誤判。
這種進(jìn)行關(guān)聯(lián)特征挖掘從而進(jìn)行關(guān)聯(lián)去冗余的特征處理方法,通過挖掘?qū)㈥P(guān)聯(lián)的特征組合進(jìn)行綁定,真正實(shí)現(xiàn)了特征之間的獨(dú)立性,同時滿足了貝葉斯分類的要求。該方案包含三個部分,特征提取、特征選擇、機(jī)器學(xué)習(xí)和分類,整個檢測框架圖1所示。

圖1 基于關(guān)聯(lián)特征及貝葉斯惡意程序檢測框架
1.2 特征獲取及預(yù)處理
為了確保安全性和可靠性,Android應(yīng)用程序在進(jìn)行權(quán)限申請時應(yīng)該滿足最小特權(quán)原則,但大部分應(yīng)用都存在權(quán)限過度申請的現(xiàn)象,給用戶帶來安全隱患,也給本文的特征選擇造成了干擾。
針對該問題,本文采取了一種通過對Android應(yīng)用安裝文件APK進(jìn)行分析和修改,建立API權(quán)限映射表,使其滿足最小特權(quán)原則的方法。通過設(shè)置一個權(quán)限匹配閾值,判斷該應(yīng)用程序是否存在權(quán)限過度聲明。也就是首先通過解壓APK文件提取出程序所調(diào)用的所有系統(tǒng)API,并在預(yù)先準(zhǔn)備好的API權(quán)限映射表中查找該API對用的系統(tǒng)權(quán)限,得到應(yīng)用程序真正使用到的最少權(quán)限表。然后統(tǒng)計該權(quán)限列表的權(quán)限數(shù)量,計算其占該應(yīng)用程序所申請權(quán)限得比例。如果比例值小于等于閾值,則保留獲取的全部權(quán)限信息;如果比例值大于閾值,則只保留匹配成功的權(quán)限信息,從而達(dá)到了對過度申請的權(quán)限剔除的目的。文件預(yù)處理過程如圖2所示,其中設(shè)定閾值為3/4。

圖2 文件預(yù)處理
1.3 關(guān)聯(lián)特征挖掘及去冗余
1.3.1 Apriori算法挖掘關(guān)聯(lián)特征
采用挖掘關(guān)聯(lián)規(guī)則的Apriori算法來挖掘同類型應(yīng)用申請的權(quán)限之間的關(guān)聯(lián)性,構(gòu)建權(quán)限關(guān)系特征庫。為了解決對高頻率事件的有效性挖掘,減少對數(shù)據(jù)庫的掃描次數(shù)和候選數(shù)據(jù)集的數(shù)量,在經(jīng)典的Apriori算法基礎(chǔ)上提出一個改進(jìn)的Apriori算法。基本思路是,用迭代的方法產(chǎn)生頻繁集,產(chǎn)生可以滿足最小置信度規(guī)則的規(guī)則集和輸出。 在這里用到的Apriori算法是建立在Android權(quán)限這一相關(guān)概念的基礎(chǔ)之上的。Apriori算法就是為了挖掘權(quán)限頻繁項(xiàng)集,挖掘Android應(yīng)用申請的權(quán)限之間的關(guān)聯(lián)性,以構(gòu)建權(quán)限關(guān)聯(lián)特征庫。
本文對隨機(jī)選擇的1000個惡意樣本所申請的權(quán)限進(jìn)行提取,形成權(quán)限特征數(shù)據(jù)庫,并刪除其他無關(guān)數(shù)據(jù)。然后,刪除掉大部分惡意程序很少使用的權(quán)限特征。最后利用Apriori算法來對這個權(quán)限特征數(shù)據(jù)庫進(jìn)行處理,以產(chǎn)生極大頻繁權(quán)限特征項(xiàng)集。
Apriori算法有兩個主要性質(zhì):連接和剪枝,也是產(chǎn)生頻繁項(xiàng)集的兩個步驟。該算法最后輸出為極大頻繁權(quán)限項(xiàng)集數(shù)據(jù)庫,整個流程如下:
(1)Lappend=ext_post_append(Dpi),提取所有惡意樣本都聲明過的權(quán)限項(xiàng)集;
(2)Dmi=del_post(Dpi),刪除所有惡意樣本都包含的權(quán)限項(xiàng)集;
(3)Di=del_pre(Dmi),刪除所有惡意樣本很少使用的權(quán)限項(xiàng)集;
(4)Lk=max_permission(Di,min_support),Lk=append(Lappend),將所有惡意樣本的權(quán)限項(xiàng)集合并到極大項(xiàng)集;
(5) 連接:設(shè)l1和l2是Lk-1中的項(xiàng)集,通過Lk-1與自身連接產(chǎn)生k-項(xiàng)集的集合,候選集的集合為Ck。那么執(zhí)行Lk-1連接,且Lk-1是可連接的,若(l1[1]=l2[1])∧(l1[2]=l2[2])∧…∧(l1[k-2]=l2[k-2])∧(l1[k-1] (6) 剪枝:Ck是Lk的超集,也即Ck的成員可以是不頻繁集,但頻繁k-項(xiàng)集一定是Ck的子集。Ck可能較大,根據(jù)Apriori的性質(zhì):若(k-1)-項(xiàng)集不是頻繁的,那么它就一定不是k-項(xiàng)集的子集。所以,如果一個候選k-項(xiàng)集的(k-1)-子集不在Lk-1中,那么該候選項(xiàng)集也不是頻繁的,可從Ck中刪除,通過此種方式,可以迅速建立頻繁項(xiàng)集。 1.3.2 去冗余 觀察一些惡意樣本申請的權(quán)限特征,發(fā)現(xiàn)存在較強(qiáng)的關(guān)聯(lián)性,在惡意樣本中幾乎同時出現(xiàn),如果認(rèn)為它們對分類能力的貢獻(xiàn)是同等的,把它們作為獨(dú)立的權(quán)限特征來處理,顯然會對分類形成誤判。所以為了提高權(quán)限特征在分類中的有效性,需要去除在前面獲得的權(quán)限特征集合中的冗余特征。整個方法步驟如圖3所示。 圖3 去冗余算法 1.4 貝葉斯分類模型處理過程 本文中的貝葉斯分類器由學(xué)習(xí)和檢測兩個階段組成。學(xué)習(xí)階段用到的訓(xùn)練集包括已知的惡意程序樣本和非惡意的Android程序,所有這些統(tǒng)稱為樣本集。所有的權(quán)限特征都是來自于這些樣本,經(jīng)過前面的特征提取,關(guān)聯(lián)特征挖掘和特征去冗余,特征集的空間大大減小。訓(xùn)練函數(shù)也會計算每個應(yīng)用分別屬于正常和惡意類別的先驗(yàn)概率。貝葉斯分類的基本思路是利用訓(xùn)練樣本得到先驗(yàn)概率,然后進(jìn)行學(xué)習(xí)訓(xùn)練通過后驗(yàn)概率,最后把樣本歸類于惡意或正常中概率最大的那個類別。 1.4.1 特征選擇 從應(yīng)用軟件安裝文件APK文件獲取權(quán)限特征,設(shè)為ti,每一個權(quán)限特征都用一個隨機(jī)變量Ti來表示: (1) 為了篩選最有分類能力的權(quán)限特征,必須確保選擇出關(guān)聯(lián)性最強(qiáng)的那些權(quán)限特征,通過采用計算特征之間互信息MI(MutualInformation)的方法來對特征進(jìn)行排序。在這里,假設(shè)C為一個隨機(jī)變量,它代表的是Android程序的類別,惡意或正常。 C∈{malicious,benign} (2) (3) 在計算完每個特征的互信息之后,特征集中每個特征就會按照互信息值的大小從大到小進(jìn)行排序,最大限度地表示出了特征變量和類別之間的測度。那些互信息值較大的特征將被采用,以改善分類器的分類性能。 1.4.2 貝葉斯分類 P(C=c|T=t) (4) 式中P(Ti=ti|C=c)和P(C=cj)都是在訓(xùn)練集選定后計算的先驗(yàn)概率,n是分類中用到的特征數(shù)目,c0和c1分別代表分類類別正常程序和惡意程序。 (5) 1.4.3 評價標(biāo)準(zhǔn) 為了衡量一個分類器的準(zhǔn)確性,在本文的實(shí)驗(yàn)中,用TPR(True Positive Rate)代表命中率,表示被分類出來惡意樣本與總的惡意樣本數(shù)量之比。FPR(False Positive Rate)代表誤報率,表示正常樣本被誤檢為惡意樣本與總正常樣本數(shù)量之比。ACCURACY代表準(zhǔn)確率,ERROR代表錯誤率。于是有以下定義: 定義1 命中率,即: (6) 定義2 誤報率,即: (7) 定義3 正確率,即: (8) 定義4 錯誤率,即: (9) 在上面公式中,TP表示惡意樣本被正確分類的數(shù)量,TN表示正常樣本被正確分類的數(shù)量,F(xiàn)N表示惡意樣本被錯誤分類為正常樣本的數(shù)量,F(xiàn)P表示正常樣本被錯誤分類為惡意樣本的數(shù)量。 從VirusShare[19]和Google Play、Android正規(guī)應(yīng)用市場等獲得了2 000個樣本,1 000個惡意樣本和1 000個正常樣本。然后提取樣本中的權(quán)限特征,依次對其進(jìn)行預(yù)處理,關(guān)聯(lián)特征挖掘,去冗余和利用互信息進(jìn)行特征篩選。那1 000個正常樣本由十分廣泛的Android應(yīng)用組成,包括娛樂、工具、體育、健康、新聞、音樂等類別。將每個樣本申請的權(quán)限與Android系統(tǒng)中全部的134種權(quán)限[20]進(jìn)行對比,其實(shí)有多種權(quán)限,在惡意樣本或正常樣本都沒有用到。 針對上述問題的研究,本文一共設(shè)計了三組實(shí)驗(yàn),分別針對預(yù)處理的必要性、關(guān)聯(lián)特征挖掘及去冗余的必要性、以及基于互信息的特征篩選進(jìn)行驗(yàn)證。正常樣本和惡意樣本各選擇1 000個,分別選取其中的800樣本作為訓(xùn)練集,一共是1 600個,其余400個作為測試樣本。 在此實(shí)驗(yàn)中,正常樣本和惡意樣本各選擇1 000個,采用分層10折交叉方法進(jìn)行驗(yàn)證,也就是選取1 600個樣本作為訓(xùn)練集,選取剩下400個樣本作為測試集。迭代10次,每次隨機(jī)選取測試集計算分類器的TPR、FPR、ACCURACY、ERROR,取平均值。同時利用Androguard[5]工具對相同的樣本進(jìn)行檢測,對比結(jié)果如圖4所示。 圖4 基于原始權(quán)限特征的分類結(jié)果對比 本實(shí)驗(yàn)是針對提取出的特征利用貝葉斯直接進(jìn)行訓(xùn)練分類的結(jié)果,雖然效果離預(yù)期的還有一定距離,但是在特征處理之前對權(quán)限特征做了預(yù)處理,使得提取的特征具有較強(qiáng)的可靠性和有效性,所以依然比Androguard等檢測工具的準(zhǔn)確率和命中率高,且誤報率下降。特別是比目前直接根據(jù)權(quán)限進(jìn)行分類的方法的檢測精度要高,證明對特征的預(yù)處理是十分必要且有效的。 (2) 前面提到每一個惡意樣本惡意行為的出現(xiàn),是多個權(quán)限特征組合作用的結(jié)果,因此有些權(quán)限的出現(xiàn)必然伴隨著另外一個或幾個權(quán)限的出現(xiàn),就是關(guān)聯(lián)特征,這種特征之間的關(guān)聯(lián)性與貝葉斯分類要求的特征獨(dú)立性假設(shè)相矛盾。 在分類研究領(lǐng)域,對特征空間擴(kuò)展的研究[21]中,提到可以用n-gram方法,就是在一系列字符串、特征中,由n個連續(xù)項(xiàng)目所組成的序列來擴(kuò)展特征空間。例如對于字符串“ANDBKLSFGTUIESRXI”,做n=3的n-gram,產(chǎn)生結(jié)果為“AND”、“NDB”、“DBK”、…、“SRX”、“RXI”的n-gram。使用n-gram存在的一個問題就是特征項(xiàng)數(shù)量問題,當(dāng)采用n元n-gram模型,意味著Mn個特征項(xiàng),這里M代表特征數(shù)量。隨著n的增大,采用該特征模型的計算量和復(fù)雜度會大大增加。在此通過對關(guān)聯(lián)特征進(jìn)行統(tǒng)計,然后對前n種不同長度的特征空間進(jìn)行統(tǒng)計,發(fā)現(xiàn)n=3的特征空間組數(shù)比較多,因此按照n=3對經(jīng)過預(yù)處理的權(quán)限特征向量進(jìn)行分割,就強(qiáng)制性地形成了一些“偽”關(guān)聯(lián)特征,并且每一個串都自動形成了一個去冗余的獨(dú)立特征了。 分別針對n=2和n=3進(jìn)行了驗(yàn)證實(shí)驗(yàn),結(jié)果如圖5所示。本實(shí)驗(yàn)基于n-gram模型,進(jìn)行了特征空間的一個擴(kuò)展,擴(kuò)展的結(jié)果和統(tǒng)計能在一定程度上能反映關(guān)聯(lián)特征的組合規(guī)律和數(shù)量。貝葉斯分類雖然要求特征之間相互獨(dú)立,但是大量研究表明貝葉斯分類器的分類性能依然可以通過一些方法提高。其中一種是構(gòu)建新的樣本特征集,期待在新的特征空間中特征彼此之間存在較好的獨(dú)立性。從圖5可以看出,本實(shí)驗(yàn)剛好利用這一點(diǎn),驗(yàn)證了n-gram模型對特征擴(kuò)展的有效性。實(shí)驗(yàn)也對不同n值進(jìn)行了對比,表明大量關(guān)聯(lián)特征是以3個權(quán)限組合的形式存在的,為后面的特征篩選提供了依據(jù)。 圖5 基于n-gram模型的檢測結(jié)果 (3) 以上實(shí)驗(yàn)雖然針對特征進(jìn)行了一定的處理,比如根據(jù)出現(xiàn)的頻繁程度排序、特征擴(kuò)展等,但是依然沒有真正地對冗余關(guān)聯(lián)特征進(jìn)行剔除。特別沒有對互信息這一與類別有重大關(guān)系的影響因素進(jìn)行考慮。因此在上面實(shí)驗(yàn)基礎(chǔ)上,計算獨(dú)立特征空間的各特征互信息,并根據(jù)互信息排序,挑選若干與類別關(guān)系大的特征進(jìn)行樣本訓(xùn)練,然后進(jìn)行樣本測試。 本實(shí)驗(yàn)分別選取了互信息排名在前5、前10、前15、前20、前25、后5的的特征空間進(jìn)行驗(yàn)證,結(jié)果如圖6所示。從圖中曲線可以看出,選取互信息最高和最低的特征實(shí)驗(yàn)結(jié)果差別較大,而在利用的特征在15個以上時,結(jié)果則非常接近,這也表示15至20個互信息排名靠前的特征足以滿足精確檢測的需要。利用互信息排名最高的5個特征的正確率達(dá)到85%以上,最后穩(wěn)定在94%左右。而排名最低的5個特征的正確率則在68%左右。表明互信息對分類器的影響要大于特征數(shù)量的影響。 圖6 基于關(guān)聯(lián)特征貝葉斯分類結(jié)果 本文在引言部分,提到了近年惡意檢測相關(guān)的一些工作,主要有Enck等提出的基于權(quán)限組合的Kirin工具[3];基于特征碼的開源檢測工具Androguard[5];Google的惡意程序防御服務(wù)Application Verification Service,Jiang對其進(jìn)行了詳細(xì)測試[7];還有張思琪的改進(jìn)貝葉斯方法[9],都具備一定的惡意程序檢測能力。Zhou等發(fā)起了Android Malware Genome Project,包含流行的1 260個Android惡意樣本,Kirin、Androguard、Application Verification Service均對這個惡意樣本庫[22]進(jìn)行過實(shí)驗(yàn)驗(yàn)證,利用本文方法再次對此樣本進(jìn)行測試,對比結(jié)果如表1所示。 表1 本文方法與Kirin、Androguard等檢測結(jié)果對比 Kirin工具基于9條權(quán)限規(guī)則對1260個樣本進(jìn)行檢測,檢測出36個惡意程序,誤報率7.7%。利用最新Androguard版本對相同的樣本測試,檢測出863個惡意程序,由于特征庫不能及時更新,新版本的分析功能也不能提高檢測率。Google的Application Verification Service只是采用程序SHA1(Secure Hash Algorithm)值進(jìn)行識別,檢測率不高。改進(jìn)貝葉斯沒有針對原始特征進(jìn)行預(yù)處理,并且沒有細(xì)粒度的特征篩選,也沒有獲得較高的檢測率。很明顯,利用本文方法對應(yīng)用程序的權(quán)限特征進(jìn)行處理,獲取最適合貝葉斯訓(xùn)練的特征空間,最后挑選分類能力最強(qiáng)的特征進(jìn)行檢測,檢測率高,誤報率低,說明本文方法在特征處理上的優(yōu)越性,以及在檢測精度上的有效性。 機(jī)器學(xué)習(xí)中,還有支持向量機(jī)(SVM),K最近鄰(KNN),J48等優(yōu)秀的分類算法,他們對分類的特征有著不同的要求,在此特地選取互信息排名在前15、前20、前25的特征進(jìn)行貝葉斯分類,并且選取出現(xiàn)頻率排在前15、前20、前25的特征分別用SVM、KNN、J48三種分類算法對相同的特征集進(jìn)行驗(yàn)證,結(jié)果對比如表2所示。從對照表格可以看出,在分類之前對特征進(jìn)行篩選處理,再利用貝葉斯分類的正確率和命中率都接近94%。而其他三種算法,都利用出現(xiàn)頻率較高的特征直接進(jìn)行訓(xùn)練,檢測正確率和命中率都要低于貝葉斯分類器,其中KNN算法的結(jié)果較SVM和J48要好,這與樣本數(shù)量較大有關(guān)。 表2 不同機(jī)器學(xué)習(xí)算法惡意檢測結(jié)果的精度對比 通過兩組實(shí)驗(yàn)對比,分別是本文方法與近幾年流行的檢測方法或工具的結(jié)果對比,以及基于貝葉斯分類與其他機(jī)器學(xué)習(xí)方法的對比。結(jié)果表明,實(shí)際測試結(jié)果與理論分析結(jié)果一致,表明本文方法的有效性和可靠性,尤其適用于未知惡意程序的檢測。 本文提出了一種基于關(guān)聯(lián)權(quán)限特征的貝葉斯惡意程序檢測方案,解決了目前惡意程序檢測技術(shù)檢出率不高、誤報、不能對未知惡意程序進(jìn)行檢測等問題。方案對Android應(yīng)用惡意行為和權(quán)限之間的關(guān)系進(jìn)行分析,建立權(quán)限特征和惡意行為模式的關(guān)聯(lián)。特別是實(shí)現(xiàn)了對特征之間隱含關(guān)聯(lián)性的挖掘,并且選取了對分類貢獻(xiàn)大的獨(dú)立性特征,最后通過貝葉斯分類模型對這些特征進(jìn)行處理,取得了良好的分類效果。不僅檢測正確率和命中率都高于其他分類器,特征處理也十分有效,而且能對未知惡意程序進(jìn)行有效的檢測。 對Android平臺惡意程序的識別中取得了一定的效果,但是還存在可以進(jìn)一步完善之處:1)收集更大數(shù)量、更具代表性的惡意樣本,使得機(jī)器學(xué)習(xí)獲得的特征可以及時的更新,在最短的時間內(nèi)發(fā)現(xiàn)惡意軟件,減少安全隱患;2)本文只考慮了單應(yīng)用的惡意檢測,還需要對多應(yīng)用間通過間接權(quán)限提升導(dǎo)致的共謀攻擊進(jìn)行研究,從靜態(tài)和動態(tài)兩方面來檢測此類惡意行為;3)本文中用到的算法,比如頻繁模式挖掘算法,分類算法等的效率如何提升,也需要進(jìn)一步研究,以完善此類基于關(guān)聯(lián)特征的靜態(tài)檢測方法。這些都是有待進(jìn)一步研究的工作。 [1] Feng Y, Anand S, Dillig I, et al. Apposcopy: semantics-based detection of Android malware through static analysis[C]//Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering. ACM, 2014: 576-587. [2] Petsas T, Voyatzis G, Athanasopoulos E, et al. Rage against the virtual machine: hindering dynamic analysis of Android malware[C]//Proceedings of the Seventh European Workshop on System Security. ACM, 2014: 1-6. [3] Enck W, Ongtang M, McDaniel P. On lightweight mobile phone application certification[C]//Proceedings of the 16th ACM Conference on Computer and Communications Security. ACM, 2009: 235-245. [4] Zhou Y, Wang Z, Zhou W, et al. Hey, you, get off of my market: detecting malicious apps in official and alternative Android markets[C]//Proceedings of the 19th Annual Network and Distributed System Security Symposium, 2012: 5-8. [5] Androguard[DB/OL]. http://code.google.com/p/androguard/. [6] 張玉清, 王凱, 楊歡, 等. Android安全綜述[J]. 計算機(jī)研究與發(fā)展, 2015, 51(7): 1385-1396. [7] Jiang X. An evaluation of the application (“App”) verification service in Android 4.2[R].Raleigh, North Carolina, USA: North Carolina State University, 2012. [8] 蔡澤廷. 基于機(jī)器學(xué)習(xí)的Android惡意軟件檢測模型研究[D]. 青島:青島理工大學(xué), 2013. [9] 張思琪. 基于改進(jìn)貝葉斯分類的Android惡意軟件檢測[J]. 無線電通信技術(shù), 2014, 40(6): 73-76. [10] 諸姣, 李宏偉, 彭鑫, 等. 安卓應(yīng)用系統(tǒng)的功能與權(quán)限相關(guān)性研究[J]. 計算機(jī)應(yīng)用與軟件, 2014, 31(10):27-33. [11] 秦中元, 徐毓青, 梁彪, 等. 一種Android平臺惡意軟件靜態(tài)檢測方法[J]. 東南大學(xué)學(xué)報(自然科學(xué)版), 2013, 43(6):1162-1167. [12] Shabtai A. Malware detection on mobile devices[C]//2010 Eleventh International Conference on Mobile Data Management. IEEE, 2010: 289-290. [13] Enck W, Gilbert P, Han S, et al. TaintDroid: an information-flow tracking system for realtime privacy monitoring on smartphones[J]. ACM Transactions on Computer Systems (TOCS), 2014, 32(2): 393-407. [14] 徐冰泉, 張源, 楊珉. GrantDroid:一種支持Android權(quán)限即時授予的方法[J]. 計算機(jī)應(yīng)用與軟件, 2014, 31(8): 232-236,284. [15] Felt A P, Chin E, Hanna S, et al. Android permissions demystified[C]//Proceedings of the 18th ACM Conference on Computer and Communications Security. ACM, 2011: 627-638. [16] Au K W Y, Zhou Y F, Huang Z, et al. PScout: analyzing the Android permission specification[C]//Proceedings of the 2012 ACM Conference on Computer and Communications Security. ACM, 2012: 217-228. [17] Enck W. Defending users against smartphone apps: techniques and future directions[C]//7th International Conference on Information Systems Security. Springer, 2011: 49-70. [18] Nauman M, Khan S, Zhang X. Apex: extending Android permission model and enforcement with user-defined runtime constraints[C]//Proceedings of the 5th ACM Symposium on Information, Computer and Communications Security. New York, NY, USA: ACM, 2010:328-332. [19] VirusShare. Because sharing is caring[DB/OL]. [2013-10-21]. http://virusshare.com/torrents.4n6. [20] Manifest.permission[EB/OL]. http://api.apkbus.com/reference/android/Manifest.permission.html. [21] Yano Y, Hashiyama T, Ichino J, et al. Behavior extraction from tweets using character N-gram models[C]//Fuzzy Systems (FUZZ-IEEE), 2014 IEEE International Conference on. IEEE, 2014: 1273-1280. [22] Zhou Y, Jiang X. Dissecting Android malware: characterization and evolution[C]//Security and Privacy (SP), 2012 IEEE Symposium on. IEEE, 2012: 95-109. BAYESIAN ANDROID MALWARE DETECTION TECHNOLOGY BASED ON THE FEATURES OF ASSOCIATION Wang Cong Zhang Renbin Li Gang (SchoolofComputerandInformation,HefeiUniversityofTechnology,Hefei230009,Anhui,China) There is a close relationship between the Android malware and the application’s permissions, in view of the detection rate is not high of current detection technology, the existence of false positives, and lack of detection of unknown malicious. A static detection method based on the characteristics of associated permissions is proposed to realize the effective detection of Android malware. First of all, the characteristics of the application permissions are preprocessed, and the permissions association dataset is constructed by the frequent pattern mining algorithm, then the redundancy feature selection algorithm is designed to simplify the redundancy, finally the feature selection is carried out by Mutual information, independent feature spaces with the most ability to classify. The experimental results show that dealing with features has a better validity and reliability before Bayesian classification, the detection rate can be stable in 92.1%, the false positive rate is 8.3%, the detection accuracy rate is 93.7%. Bayesian classification Android Malware detection Associate features Feature selection 2015-12-16。國家自然科學(xué)基金項(xiàng)目(61273237)。王聰,碩士生,主研領(lǐng)域:計算機(jī)網(wǎng)絡(luò)安全。張仁斌,副教授。李鋼,教授。 TP3 A 10.3969/j.issn.1000-386x.2017.01.052


2 實(shí)驗(yàn)結(jié)果與分析






3 結(jié) 語