王 聰 張仁斌 李 鋼
(合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院 安徽 合肥 230009)
基于關(guān)聯(lián)特征的貝葉斯Android惡意程序檢測(cè)技術(shù)
王 聰 張仁斌 李 鋼
(合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院 安徽 合肥 230009)
Android應(yīng)用惡意性和它所申請(qǐng)的權(quán)限關(guān)系密切,針對(duì)目前惡意程序檢測(cè)技術(shù)檢出率不高,存在誤報(bào),缺乏對(duì)未知惡意程序檢測(cè)等不足,為實(shí)現(xiàn)對(duì)Android平臺(tái)惡意程序進(jìn)行有效檢測(cè),提出了一種基于關(guān)聯(lián)權(quán)限特征的靜態(tài)檢測(cè)方法。首先對(duì)獲取的應(yīng)用權(quán)限特征進(jìn)行預(yù)處理,通過頻繁模式挖掘算法構(gòu)造關(guān)聯(lián)特征集,然后采用冗余關(guān)聯(lián)特征剔除算法對(duì)冗余關(guān)聯(lián)特征進(jìn)行精簡(jiǎn),最后通過計(jì)算互信息來進(jìn)行特征篩選,獲得最具分類能力的獨(dú)立特征空間,利用貝葉斯分類算法進(jìn)行惡意程序的檢測(cè)。實(shí)驗(yàn)結(jié)果證明,在貝葉斯分類之前對(duì)特征進(jìn)行處理具有較強(qiáng)的有效性和可靠性,能夠使Android惡意程序檢出率穩(wěn)定在92.1%,誤報(bào)率為8.3%,檢測(cè)準(zhǔn)確率為93.7%。
貝葉斯分類 安卓 惡意檢測(cè) 關(guān)聯(lián)特征 特征選擇
面對(duì)Android平臺(tái)上層出不窮的惡意應(yīng)用,為了有效改善智能終端缺少有效安全檢測(cè)平臺(tái)的現(xiàn)狀,國(guó)內(nèi)外研究人員進(jìn)行了一系列的工作。現(xiàn)階段Android平臺(tái)惡意軟件的主流分析技術(shù)包括靜態(tài)分析[1]和動(dòng)態(tài)分析[2]兩個(gè)方面。Enck等[3]提出了Kirin 工具,該工具會(huì)對(duì)可能進(jìn)行惡意行為的權(quán)限組合作出提示。然而,Enck的工作沒有對(duì)權(quán)限組合與程序的惡意性之間的關(guān)系進(jìn)行實(shí)驗(yàn)驗(yàn)證,Kirin工具所預(yù)設(shè)權(quán)限組合的可靠性存在問題。Zhou等[4]提出了一種Android惡意代碼檢測(cè)方法DroidRanger,對(duì)惡意家族相關(guān)的敏感權(quán)限進(jìn)行統(tǒng)計(jì),從而識(shí)別惡意應(yīng)用。但是由于缺少統(tǒng)一的權(quán)限過濾規(guī)則和大量樣本的實(shí)驗(yàn)驗(yàn)證,該方法也存在其局限性。檢測(cè)工具Androguard[5]采用基于特征碼方法,因?yàn)樘卣鞔a涉及到特征庫(kù)的更新問題,不能及時(shí)地識(shí)別未知惡意程序。張玉清等[6]對(duì)Android系統(tǒng)安全作了綜述,從系統(tǒng)和應(yīng)用兩個(gè)層次進(jìn)行闡述,特別對(duì)基于權(quán)限機(jī)制的改進(jìn)在安全加固方面的應(yīng)用作了說明。Google在Android4.2系統(tǒng)之后加入了應(yīng)用驗(yàn)證服務(wù)(Application Verification Service),對(duì)惡意軟件進(jìn)行掃描來防御潛在威脅,Jiang[7]對(duì)其進(jìn)行了全面測(cè)試,檢測(cè)率只有15.32%。蔡澤廷[8]提出了一種基于機(jī)器學(xué)習(xí)的Android惡意軟件檢測(cè)模型,訓(xùn)練靜態(tài)指紋匹配庫(kù)和動(dòng)態(tài)行為簽名庫(kù),能在一定程度上檢測(cè)未知惡意程序,但是訓(xùn)練數(shù)據(jù)量太少,精度不高。張思琪[9]提出了一種基于改進(jìn)貝葉斯分類的Android惡意軟件檢測(cè)方法,利用移動(dòng)設(shè)備應(yīng)用程序獲取的多種行為特征值,應(yīng)用機(jī)器學(xué)習(xí)技術(shù)檢測(cè)Android惡意軟件。該方法只選取短信、GPS等六種行為特征集合,惡意行為的涉及范圍小。諸姣等[10]通過從應(yīng)用市場(chǎng)獲取的應(yīng)用數(shù)據(jù),采用信息檢索和語義分析等技術(shù)對(duì)應(yīng)用程序功能與權(quán)限的語義關(guān)系進(jìn)行了描述,并建立了關(guān)系模型。秦中元等[11]提出一種利用危險(xiǎn)權(quán)限對(duì)比,根據(jù)提取消息摘要的md5進(jìn)行匹配的檢測(cè)方法,該方法沒有對(duì)過度申請(qǐng)的特征進(jìn)行去干擾,并且沒有特征處理,檢測(cè)不夠精確。
除此,還有一些動(dòng)態(tài)的檢測(cè)方法。Shabtai[12]實(shí)現(xiàn)了一個(gè)基于主機(jī)的Android惡意程序檢測(cè)系統(tǒng),通過動(dòng)態(tài)監(jiān)控設(shè)備運(yùn)行的特征及事件,比如CPU使用、運(yùn)行的進(jìn)程數(shù)量、電量等,運(yùn)用機(jī)器學(xué)習(xí)算法進(jìn)行分類,但是由于缺乏真實(shí)的惡意軟件,檢測(cè)能力不易評(píng)估。Enck等[13]實(shí)現(xiàn)了一種自動(dòng)監(jiān)控的方法,通過在Linux底層中插入代碼,利用發(fā)送和存儲(chǔ)的數(shù)據(jù)信息情況自動(dòng)監(jiān)控應(yīng)用程序,但是該方法對(duì)系統(tǒng)的資源消耗嚴(yán)重,會(huì)導(dǎo)致系統(tǒng)運(yùn)行不穩(wěn)定甚至崩潰。徐冰泉等[14]提出了GrantDIoid,一種支持Android權(quán)限即時(shí)授予的方法。 通過攔截應(yīng)用對(duì)所有權(quán)限的使用,采用一套惡意程序權(quán)限使用特征對(duì)正常使用進(jìn)行過濾,當(dāng)存在威脅權(quán)限請(qǐng)求時(shí),提醒用戶對(duì)該權(quán)限進(jìn)行實(shí)時(shí)授權(quán)。
權(quán)限機(jī)制是Android安全機(jī)制的核心,應(yīng)用程序的權(quán)限與系統(tǒng)提供的API之間存在對(duì)應(yīng)關(guān)系。Felt等[15]提出了一個(gè)STOWAWAY工具,并使用其對(duì)940個(gè)Android應(yīng)用進(jìn)行分析統(tǒng)計(jì),發(fā)現(xiàn)30%以上的應(yīng)用存在權(quán)限過度申請(qǐng)但未使用的情況。Au等[16]提出了PScout工具,該工具完成了Android系統(tǒng)API與權(quán)限的映射關(guān)系集合,可以利用該映射集判斷應(yīng)用是否存在權(quán)限過度申請(qǐng)。而針對(duì)多應(yīng)用多權(quán)限間接提權(quán)攻擊的檢測(cè)技術(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í)時(shí)授權(quán)的安全框架,使授權(quán)粒度得到了細(xì)化,但是無法對(duì)權(quán)限提升導(dǎo)致的共謀攻擊進(jìn)行檢測(cè)。
為了解決當(dāng)前基于權(quán)限的檢測(cè)方案中權(quán)限存在過度申請(qǐng),以及特征獨(dú)立性處理的不完善等問題,本文使用基于關(guān)聯(lián)權(quán)限特征的靜態(tài)分析方法。最后,設(shè)計(jì)了多組實(shí)驗(yàn)進(jìn)行對(duì)比,相比之前基于權(quán)限的靜態(tài)方法[1]以及基于動(dòng)態(tài)的檢測(cè)技術(shù)[2],本方法在檢測(cè)精度和處理方法上都有明顯優(yōu)勢(shì)。
1.1 整體框架
Android系統(tǒng)采用了權(quán)限分離的機(jī)制,通過賦予不同的權(quán)限來對(duì)應(yīng)用程序的行為進(jìn)行控制?;陉P(guān)聯(lián)權(quán)限特征的貝葉斯檢測(cè)方案,充分利用了貝葉斯分類對(duì)特征獨(dú)立性的要求。傳統(tǒng)的機(jī)器學(xué)習(xí)分類方法忽略了Android惡意程序的惡意性與權(quán)限組合之間的關(guān)系,認(rèn)為各個(gè)特征的分類能力是一樣的,由此進(jìn)行機(jī)器學(xué)習(xí)產(chǎn)生的訓(xùn)練集會(huì)產(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ú)立性,同時(shí)滿足了貝葉斯分類的要求。該方案包含三個(gè)部分,特征提取、特征選擇、機(jī)器學(xué)習(xí)和分類,整個(gè)檢測(cè)框架圖1所示。
圖1 基于關(guān)聯(lián)特征及貝葉斯惡意程序檢測(cè)框架
1.2 特征獲取及預(yù)處理
為了確保安全性和可靠性,Android應(yīng)用程序在進(jìn)行權(quán)限申請(qǐng)時(shí)應(yīng)該滿足最小特權(quán)原則,但大部分應(yīng)用都存在權(quán)限過度申請(qǐng)的現(xiàn)象,給用戶帶來安全隱患,也給本文的特征選擇造成了干擾。
針對(duì)該問題,本文采取了一種通過對(duì)Android應(yīng)用安裝文件APK進(jìn)行分析和修改,建立API權(quán)限映射表,使其滿足最小特權(quán)原則的方法。通過設(shè)置一個(gè)權(quán)限匹配閾值,判斷該應(yīng)用程序是否存在權(quán)限過度聲明。也就是首先通過解壓APK文件提取出程序所調(diào)用的所有系統(tǒng)API,并在預(yù)先準(zhǔn)備好的API權(quán)限映射表中查找該API對(duì)用的系統(tǒng)權(quán)限,得到應(yīng)用程序真正使用到的最少權(quán)限表。然后統(tǒng)計(jì)該權(quán)限列表的權(quán)限數(shù)量,計(jì)算其占該應(yīng)用程序所申請(qǐng)權(quán)限得比例。如果比例值小于等于閾值,則保留獲取的全部權(quán)限信息;如果比例值大于閾值,則只保留匹配成功的權(quán)限信息,從而達(dá)到了對(duì)過度申請(qǐng)的權(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)用申請(qǐng)的權(quán)限之間的關(guān)聯(lián)性,構(gòu)建權(quán)限關(guān)系特征庫(kù)。為了解決對(duì)高頻率事件的有效性挖掘,減少對(duì)數(shù)據(jù)庫(kù)的掃描次數(shù)和候選數(shù)據(jù)集的數(shù)量,在經(jīng)典的Apriori算法基礎(chǔ)上提出一個(gè)改進(jìn)的Apriori算法。基本思路是,用迭代的方法產(chǎn)生頻繁集,產(chǎn)生可以滿足最小置信度規(guī)則的規(guī)則集和輸出。 在這里用到的Apriori算法是建立在Android權(quán)限這一相關(guān)概念的基礎(chǔ)之上的。Apriori算法就是為了挖掘權(quán)限頻繁項(xiàng)集,挖掘Android應(yīng)用申請(qǐng)的權(quán)限之間的關(guān)聯(lián)性,以構(gòu)建權(quán)限關(guān)聯(lián)特征庫(kù)。
本文對(duì)隨機(jī)選擇的1000個(gè)惡意樣本所申請(qǐng)的權(quán)限進(jìn)行提取,形成權(quán)限特征數(shù)據(jù)庫(kù),并刪除其他無關(guān)數(shù)據(jù)。然后,刪除掉大部分惡意程序很少使用的權(quán)限特征。最后利用Apriori算法來對(duì)這個(gè)權(quán)限特征數(shù)據(jù)庫(kù)進(jìn)行處理,以產(chǎn)生極大頻繁權(quán)限特征項(xiàng)集。
Apriori算法有兩個(gè)主要性質(zhì):連接和剪枝,也是產(chǎn)生頻繁項(xiàng)集的兩個(gè)步驟。該算法最后輸出為極大頻繁權(quán)限項(xiàng)集數(shù)據(jù)庫(kù),整個(gè)流程如下:
(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)集的子集。所以,如果一個(gè)候選k-項(xiàng)集的(k-1)-子集不在Lk-1中,那么該候選項(xiàng)集也不是頻繁的,可從Ck中刪除,通過此種方式,可以迅速建立頻繁項(xiàng)集。 1.3.2 去冗余 觀察一些惡意樣本申請(qǐng)的權(quán)限特征,發(fā)現(xiàn)存在較強(qiáng)的關(guān)聯(lián)性,在惡意樣本中幾乎同時(shí)出現(xiàn),如果認(rèn)為它們對(duì)分類能力的貢獻(xiàn)是同等的,把它們作為獨(dú)立的權(quán)限特征來處理,顯然會(huì)對(duì)分類形成誤判。所以為了提高權(quán)限特征在分類中的有效性,需要去除在前面獲得的權(quán)限特征集合中的冗余特征。整個(gè)方法步驟如圖3所示。 圖3 去冗余算法 1.4 貝葉斯分類模型處理過程 本文中的貝葉斯分類器由學(xué)習(xí)和檢測(cè)兩個(gè)階段組成。學(xué)習(xí)階段用到的訓(xùn)練集包括已知的惡意程序樣本和非惡意的Android程序,所有這些統(tǒng)稱為樣本集。所有的權(quán)限特征都是來自于這些樣本,經(jīng)過前面的特征提取,關(guān)聯(lián)特征挖掘和特征去冗余,特征集的空間大大減小。訓(xùn)練函數(shù)也會(huì)計(jì)算每個(gè)應(yīng)用分別屬于正常和惡意類別的先驗(yàn)概率。貝葉斯分類的基本思路是利用訓(xùn)練樣本得到先驗(yàn)概率,然后進(jìn)行學(xué)習(xí)訓(xùn)練通過后驗(yàn)概率,最后把樣本歸類于惡意或正常中概率最大的那個(gè)類別。 1.4.1 特征選擇 從應(yīng)用軟件安裝文件APK文件獲取權(quán)限特征,設(shè)為ti,每一個(gè)權(quán)限特征都用一個(gè)隨機(jī)變量Ti來表示: (1) 為了篩選最有分類能力的權(quán)限特征,必須確保選擇出關(guān)聯(lián)性最強(qiáng)的那些權(quán)限特征,通過采用計(jì)算特征之間互信息MI(MutualInformation)的方法來對(duì)特征進(jìn)行排序。在這里,假設(shè)C為一個(gè)隨機(jī)變量,它代表的是Android程序的類別,惡意或正常。 C∈{malicious,benign} (2) (3) 在計(jì)算完每個(gè)特征的互信息之后,特征集中每個(gè)特征就會(huì)按照互信息值的大小從大到小進(jìn)行排序,最大限度地表示出了特征變量和類別之間的測(cè)度。那些互信息值較大的特征將被采用,以改善分類器的分類性能。 1.4.2 貝葉斯分類 P(C=c|T=t) (4) 式中P(Ti=ti|C=c)和P(C=cj)都是在訓(xùn)練集選定后計(jì)算的先驗(yàn)概率,n是分類中用到的特征數(shù)目,c0和c1分別代表分類類別正常程序和惡意程序。 (5) 1.4.3 評(píng)價(jià)標(biāo)準(zhǔn) 為了衡量一個(gè)分類器的準(zhǔn)確性,在本文的實(shí)驗(yàn)中,用TPR(True Positive Rate)代表命中率,表示被分類出來惡意樣本與總的惡意樣本數(shù)量之比。FPR(False Positive Rate)代表誤報(bào)率,表示正常樣本被誤檢為惡意樣本與總正常樣本數(shù)量之比。ACCURACY代表準(zhǔn)確率,ERROR代表錯(cuò)誤率。于是有以下定義: 定義1 命中率,即: (6) 定義2 誤報(bào)率,即: (7) 定義3 正確率,即: (8) 定義4 錯(cuò)誤率,即: (9) 在上面公式中,TP表示惡意樣本被正確分類的數(shù)量,TN表示正常樣本被正確分類的數(shù)量,F(xiàn)N表示惡意樣本被錯(cuò)誤分類為正常樣本的數(shù)量,F(xiàn)P表示正常樣本被錯(cuò)誤分類為惡意樣本的數(shù)量。 從VirusShare[19]和Google Play、Android正規(guī)應(yīng)用市場(chǎng)等獲得了2 000個(gè)樣本,1 000個(gè)惡意樣本和1 000個(gè)正常樣本。然后提取樣本中的權(quán)限特征,依次對(duì)其進(jìn)行預(yù)處理,關(guān)聯(lián)特征挖掘,去冗余和利用互信息進(jìn)行特征篩選。那1 000個(gè)正常樣本由十分廣泛的Android應(yīng)用組成,包括娛樂、工具、體育、健康、新聞、音樂等類別。將每個(gè)樣本申請(qǐng)的權(quán)限與Android系統(tǒng)中全部的134種權(quán)限[20]進(jìn)行對(duì)比,其實(shí)有多種權(quán)限,在惡意樣本或正常樣本都沒有用到。 針對(duì)上述問題的研究,本文一共設(shè)計(jì)了三組實(shí)驗(yàn),分別針對(duì)預(yù)處理的必要性、關(guān)聯(lián)特征挖掘及去冗余的必要性、以及基于互信息的特征篩選進(jìn)行驗(yàn)證。正常樣本和惡意樣本各選擇1 000個(gè),分別選取其中的800樣本作為訓(xùn)練集,一共是1 600個(gè),其余400個(gè)作為測(cè)試樣本。 在此實(shí)驗(yàn)中,正常樣本和惡意樣本各選擇1 000個(gè),采用分層10折交叉方法進(jìn)行驗(yàn)證,也就是選取1 600個(gè)樣本作為訓(xùn)練集,選取剩下400個(gè)樣本作為測(cè)試集。迭代10次,每次隨機(jī)選取測(cè)試集計(jì)算分類器的TPR、FPR、ACCURACY、ERROR,取平均值。同時(shí)利用Androguard[5]工具對(duì)相同的樣本進(jìn)行檢測(cè),對(duì)比結(jié)果如圖4所示。 圖4 基于原始權(quán)限特征的分類結(jié)果對(duì)比 本實(shí)驗(yàn)是針對(duì)提取出的特征利用貝葉斯直接進(jìn)行訓(xùn)練分類的結(jié)果,雖然效果離預(yù)期的還有一定距離,但是在特征處理之前對(duì)權(quán)限特征做了預(yù)處理,使得提取的特征具有較強(qiáng)的可靠性和有效性,所以依然比Androguard等檢測(cè)工具的準(zhǔn)確率和命中率高,且誤報(bào)率下降。特別是比目前直接根據(jù)權(quán)限進(jìn)行分類的方法的檢測(cè)精度要高,證明對(duì)特征的預(yù)處理是十分必要且有效的。 (2) 前面提到每一個(gè)惡意樣本惡意行為的出現(xiàn),是多個(gè)權(quán)限特征組合作用的結(jié)果,因此有些權(quán)限的出現(xiàn)必然伴隨著另外一個(gè)或幾個(gè)權(quán)限的出現(xiàn),就是關(guān)聯(lián)特征,這種特征之間的關(guān)聯(lián)性與貝葉斯分類要求的特征獨(dú)立性假設(shè)相矛盾。 在分類研究領(lǐng)域,對(duì)特征空間擴(kuò)展的研究[21]中,提到可以用n-gram方法,就是在一系列字符串、特征中,由n個(gè)連續(xù)項(xiàng)目所組成的序列來擴(kuò)展特征空間。例如對(duì)于字符串“ANDBKLSFGTUIESRXI”,做n=3的n-gram,產(chǎn)生結(jié)果為“AND”、“NDB”、“DBK”、…、“SRX”、“RXI”的n-gram。使用n-gram存在的一個(gè)問題就是特征項(xiàng)數(shù)量問題,當(dāng)采用n元n-gram模型,意味著Mn個(gè)特征項(xiàng),這里M代表特征數(shù)量。隨著n的增大,采用該特征模型的計(jì)算量和復(fù)雜度會(huì)大大增加。在此通過對(duì)關(guān)聯(lián)特征進(jìn)行統(tǒng)計(jì),然后對(duì)前n種不同長(zhǎng)度的特征空間進(jìn)行統(tǒng)計(jì),發(fā)現(xiàn)n=3的特征空間組數(shù)比較多,因此按照n=3對(duì)經(jīng)過預(yù)處理的權(quán)限特征向量進(jìn)行分割,就強(qiáng)制性地形成了一些“偽”關(guān)聯(lián)特征,并且每一個(gè)串都自動(dòng)形成了一個(gè)去冗余的獨(dú)立特征了。 分別針對(duì)n=2和n=3進(jìn)行了驗(yàn)證實(shí)驗(yàn),結(jié)果如圖5所示。本實(shí)驗(yàn)基于n-gram模型,進(jìn)行了特征空間的一個(gè)擴(kuò)展,擴(kuò)展的結(jié)果和統(tǒng)計(jì)能在一定程度上能反映關(guān)聯(lián)特征的組合規(guī)律和數(shù)量。貝葉斯分類雖然要求特征之間相互獨(dú)立,但是大量研究表明貝葉斯分類器的分類性能依然可以通過一些方法提高。其中一種是構(gòu)建新的樣本特征集,期待在新的特征空間中特征彼此之間存在較好的獨(dú)立性。從圖5可以看出,本實(shí)驗(yàn)剛好利用這一點(diǎn),驗(yàn)證了n-gram模型對(duì)特征擴(kuò)展的有效性。實(shí)驗(yàn)也對(duì)不同n值進(jìn)行了對(duì)比,表明大量關(guān)聯(lián)特征是以3個(gè)權(quán)限組合的形式存在的,為后面的特征篩選提供了依據(jù)。 圖5 基于n-gram模型的檢測(cè)結(jié)果 (3) 以上實(shí)驗(yàn)雖然針對(duì)特征進(jìn)行了一定的處理,比如根據(jù)出現(xiàn)的頻繁程度排序、特征擴(kuò)展等,但是依然沒有真正地對(duì)冗余關(guān)聯(lián)特征進(jìn)行剔除。特別沒有對(duì)互信息這一與類別有重大關(guān)系的影響因素進(jìn)行考慮。因此在上面實(shí)驗(yàn)基礎(chǔ)上,計(jì)算獨(dú)立特征空間的各特征互信息,并根據(jù)互信息排序,挑選若干與類別關(guān)系大的特征進(jìn)行樣本訓(xùn)練,然后進(jìn)行樣本測(cè)試。 本實(shí)驗(yàn)分別選取了互信息排名在前5、前10、前15、前20、前25、后5的的特征空間進(jìn)行驗(yàn)證,結(jié)果如圖6所示。從圖中曲線可以看出,選取互信息最高和最低的特征實(shí)驗(yàn)結(jié)果差別較大,而在利用的特征在15個(gè)以上時(shí),結(jié)果則非常接近,這也表示15至20個(gè)互信息排名靠前的特征足以滿足精確檢測(cè)的需要。利用互信息排名最高的5個(gè)特征的正確率達(dá)到85%以上,最后穩(wěn)定在94%左右。而排名最低的5個(gè)特征的正確率則在68%左右。表明互信息對(duì)分類器的影響要大于特征數(shù)量的影響。 圖6 基于關(guān)聯(lián)特征貝葉斯分類結(jié)果 本文在引言部分,提到了近年惡意檢測(cè)相關(guān)的一些工作,主要有Enck等提出的基于權(quán)限組合的Kirin工具[3];基于特征碼的開源檢測(cè)工具Androguard[5];Google的惡意程序防御服務(wù)Application Verification Service,Jiang對(duì)其進(jìn)行了詳細(xì)測(cè)試[7];還有張思琪的改進(jìn)貝葉斯方法[9],都具備一定的惡意程序檢測(cè)能力。Zhou等發(fā)起了Android Malware Genome Project,包含流行的1 260個(gè)Android惡意樣本,Kirin、Androguard、Application Verification Service均對(duì)這個(gè)惡意樣本庫(kù)[22]進(jìn)行過實(shí)驗(yàn)驗(yàn)證,利用本文方法再次對(duì)此樣本進(jìn)行測(cè)試,對(duì)比結(jié)果如表1所示。 表1 本文方法與Kirin、Androguard等檢測(cè)結(jié)果對(duì)比 Kirin工具基于9條權(quán)限規(guī)則對(duì)1260個(gè)樣本進(jìn)行檢測(cè),檢測(cè)出36個(gè)惡意程序,誤報(bào)率7.7%。利用最新Androguard版本對(duì)相同的樣本測(cè)試,檢測(cè)出863個(gè)惡意程序,由于特征庫(kù)不能及時(shí)更新,新版本的分析功能也不能提高檢測(cè)率。Google的Application Verification Service只是采用程序SHA1(Secure Hash Algorithm)值進(jìn)行識(shí)別,檢測(cè)率不高。改進(jìn)貝葉斯沒有針對(duì)原始特征進(jìn)行預(yù)處理,并且沒有細(xì)粒度的特征篩選,也沒有獲得較高的檢測(cè)率。很明顯,利用本文方法對(duì)應(yīng)用程序的權(quán)限特征進(jìn)行處理,獲取最適合貝葉斯訓(xùn)練的特征空間,最后挑選分類能力最強(qiáng)的特征進(jìn)行檢測(cè),檢測(cè)率高,誤報(bào)率低,說明本文方法在特征處理上的優(yōu)越性,以及在檢測(cè)精度上的有效性。 機(jī)器學(xué)習(xí)中,還有支持向量機(jī)(SVM),K最近鄰(KNN),J48等優(yōu)秀的分類算法,他們對(duì)分類的特征有著不同的要求,在此特地選取互信息排名在前15、前20、前25的特征進(jìn)行貝葉斯分類,并且選取出現(xiàn)頻率排在前15、前20、前25的特征分別用SVM、KNN、J48三種分類算法對(duì)相同的特征集進(jìn)行驗(yàn)證,結(jié)果對(duì)比如表2所示。從對(duì)照表格可以看出,在分類之前對(duì)特征進(jìn)行篩選處理,再利用貝葉斯分類的正確率和命中率都接近94%。而其他三種算法,都利用出現(xiàn)頻率較高的特征直接進(jìn)行訓(xùn)練,檢測(cè)正確率和命中率都要低于貝葉斯分類器,其中KNN算法的結(jié)果較SVM和J48要好,這與樣本數(shù)量較大有關(guān)。 表2 不同機(jī)器學(xué)習(xí)算法惡意檢測(cè)結(jié)果的精度對(duì)比 通過兩組實(shí)驗(yàn)對(duì)比,分別是本文方法與近幾年流行的檢測(cè)方法或工具的結(jié)果對(duì)比,以及基于貝葉斯分類與其他機(jī)器學(xué)習(xí)方法的對(duì)比。結(jié)果表明,實(shí)際測(cè)試結(jié)果與理論分析結(jié)果一致,表明本文方法的有效性和可靠性,尤其適用于未知惡意程序的檢測(cè)。 本文提出了一種基于關(guān)聯(lián)權(quán)限特征的貝葉斯惡意程序檢測(cè)方案,解決了目前惡意程序檢測(cè)技術(shù)檢出率不高、誤報(bào)、不能對(duì)未知惡意程序進(jìn)行檢測(cè)等問題。方案對(duì)Android應(yīng)用惡意行為和權(quán)限之間的關(guān)系進(jìn)行分析,建立權(quán)限特征和惡意行為模式的關(guān)聯(lián)。特別是實(shí)現(xiàn)了對(duì)特征之間隱含關(guān)聯(lián)性的挖掘,并且選取了對(duì)分類貢獻(xiàn)大的獨(dú)立性特征,最后通過貝葉斯分類模型對(duì)這些特征進(jìn)行處理,取得了良好的分類效果。不僅檢測(cè)正確率和命中率都高于其他分類器,特征處理也十分有效,而且能對(duì)未知惡意程序進(jìn)行有效的檢測(cè)。 對(duì)Android平臺(tái)惡意程序的識(shí)別中取得了一定的效果,但是還存在可以進(jìn)一步完善之處:1)收集更大數(shù)量、更具代表性的惡意樣本,使得機(jī)器學(xué)習(xí)獲得的特征可以及時(shí)的更新,在最短的時(shí)間內(nèi)發(fā)現(xiàn)惡意軟件,減少安全隱患;2)本文只考慮了單應(yīng)用的惡意檢測(cè),還需要對(duì)多應(yīng)用間通過間接權(quán)限提升導(dǎo)致的共謀攻擊進(jìn)行研究,從靜態(tài)和動(dòng)態(tài)兩方面來檢測(cè)此類惡意行為;3)本文中用到的算法,比如頻繁模式挖掘算法,分類算法等的效率如何提升,也需要進(jìn)一步研究,以完善此類基于關(guān)聯(lián)特征的靜態(tài)檢測(cè)方法。這些都是有待進(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ì)算機(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惡意軟件檢測(cè)模型研究[D]. 青島:青島理工大學(xué), 2013. [9] 張思琪. 基于改進(jìn)貝葉斯分類的Android惡意軟件檢測(cè)[J]. 無線電通信技術(shù), 2014, 40(6): 73-76. [10] 諸姣, 李宏偉, 彭鑫, 等. 安卓應(yīng)用系統(tǒng)的功能與權(quán)限相關(guān)性研究[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2014, 31(10):27-33. [11] 秦中元, 徐毓青, 梁彪, 等. 一種Android平臺(tái)惡意軟件靜態(tài)檢測(cè)方法[J]. 東南大學(xué)學(xué)報(bào)(自然科學(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] 徐冰泉, 張?jiān)? 楊珉. GrantDroid:一種支持Android權(quán)限即時(shí)授予的方法[J]. 計(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。國(guó)家自然科學(xué)基金項(xiàng)目(61273237)。王聰,碩士生,主研領(lǐng)域:計(jì)算機(jī)網(wǎng)絡(luò)安全。張仁斌,副教授。李鋼,教授。 TP3 A 10.3969/j.issn.1000-386x.2017.01.0522 實(shí)驗(yàn)結(jié)果與分析
3 結(jié) 語