張怡婷 張 揚(yáng) 張 濤 楊 明 羅軍舟
(1南京郵電大學(xué)計(jì)算機(jī)學(xué)院, 南京 210023)(2東南大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院, 南京 210096)(3國(guó)網(wǎng)智能電網(wǎng)研究院信息通信研究所, 南京 210009)
基于樸素貝葉斯的Android軟件惡意行為智能識(shí)別
張怡婷1,2張 揚(yáng)2張 濤3楊 明2羅軍舟2
(1南京郵電大學(xué)計(jì)算機(jī)學(xué)院, 南京 210023)(2東南大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院, 南京 210096)(3國(guó)網(wǎng)智能電網(wǎng)研究院信息通信研究所, 南京 210009)
針對(duì)Android系統(tǒng)提供的基于應(yīng)用權(quán)限授權(quán)的安全管理機(jī)制粒度較粗,并且一旦用戶對(duì)應(yīng)用軟件授權(quán)即無(wú)法更改或追蹤權(quán)限使用的問題,提出了一種基于樸素貝葉斯的Android軟件惡意行為識(shí)別方法.該方法綜合考慮軟件運(yùn)行時(shí)的用戶操作場(chǎng)景和用戶行為習(xí)慣以及軟件權(quán)限等特性,抽取軟件是否為系統(tǒng)應(yīng)用、權(quán)限使用時(shí)是否有用戶操作、軟件是否申請(qǐng)了過多的權(quán)限、是否存在敏感權(quán)限組合、權(quán)限的使用是否存在突發(fā)性等作為分類屬性,并通過對(duì)Android安全框架的擴(kuò)展,實(shí)現(xiàn)了對(duì)惡意行為的實(shí)時(shí)分析和處理.實(shí)驗(yàn)結(jié)果表明,所設(shè)計(jì)和實(shí)現(xiàn)的Android軟件惡意行為智能識(shí)別技術(shù)具有較高的識(shí)別率和較低的誤報(bào)率,并且對(duì)系統(tǒng)性能的影響較小,可以有效增強(qiáng)Android系統(tǒng)的安全性.
Android安全;隱私泄露;權(quán)限使用;惡意行為識(shí)別
隨著移動(dòng)通信技術(shù)和智能終端的迅速發(fā)展和普及,人們更多地使用手機(jī)而非傳統(tǒng)PC機(jī)來(lái)訪問各種網(wǎng)絡(luò)服務(wù).作為占據(jù)市場(chǎng)領(lǐng)導(dǎo)地位的Android智能手機(jī)[1],在提供通信、個(gè)人事務(wù)處理以及娛樂等應(yīng)用服務(wù)的同時(shí),也由于其開放性和自由性面臨著巨大的安全挑戰(zhàn).自2010年8月卡巴斯基病毒實(shí)驗(yàn)室報(bào)告發(fā)現(xiàn)Android操作系統(tǒng)上的首個(gè)木馬程序Trojan-SMS.AndroidOS.FakePlayer.a以來(lái),針對(duì)Android平臺(tái)的惡意軟件呈爆發(fā)性增長(zhǎng)趨勢(shì).據(jù)網(wǎng)秦公司報(bào)告[2],2014年第一季度查殺到的手機(jī)惡意軟件數(shù)共計(jì)41 199,同比增長(zhǎng)63.9%;感染智能手機(jī)共計(jì)1 784萬(wàn)部,同比增長(zhǎng)71.5%.
因此,如何識(shí)別Android軟件惡意行為已成為學(xué)術(shù)界和工業(yè)界關(guān)注的熱點(diǎn).然而,現(xiàn)有智能終端上的軟件行為分析源自傳統(tǒng)PC機(jī)上的惡意軟件識(shí)別技術(shù),缺乏針對(duì)智能終端用戶操作場(chǎng)景、用戶行為習(xí)慣,以及軟件屬性、權(quán)限之類的Android系統(tǒng)獨(dú)有特性的綜合考慮.
針對(duì)以上問題,本文抽取多種高區(qū)分度軟件的基本屬性、運(yùn)行環(huán)境和行為特征,應(yīng)用樸素貝葉斯分類器設(shè)計(jì)了一種Android軟件惡意行為識(shí)別技術(shù),并通過對(duì)Android安全框架的擴(kuò)展,實(shí)現(xiàn)了對(duì)惡意行為的實(shí)時(shí)分析和處理,實(shí)驗(yàn)結(jié)果證明了該技術(shù)的有效性.
Android系統(tǒng)是一種基于Linux權(quán)限分離的操作系統(tǒng),它充分利用Linux已有的權(quán)限管理機(jī)制,通過為每一個(gè)應(yīng)用分配不同的UID和GID,使不同的應(yīng)用之間、應(yīng)用和系統(tǒng)之間相互隔離.Android系統(tǒng)還在此基礎(chǔ)上進(jìn)行了擴(kuò)展,提供了軟件權(quán)限(permission)機(jī)制,對(duì)軟件可以執(zhí)行的某些具體操作進(jìn)行權(quán)限細(xì)分和訪問控制,以限制軟件對(duì)系統(tǒng)或者其他軟件的操控能力.
在軟件開發(fā)時(shí),軟件所需要用到的每條權(quán)限都必須以一條字符串的形式在軟件的AndroidManifest.xml文件中顯式地申請(qǐng).在AndroidManifest.xml文件中,權(quán)限分為2類:系統(tǒng)內(nèi)置權(quán)限(users-permission標(biāo)簽)和用戶自定義權(quán)限(permission標(biāo)簽).Android系統(tǒng)在應(yīng)用程序框架層中引入了130多個(gè)內(nèi)置權(quán)限,包括撥打電話的權(quán)限、使用網(wǎng)絡(luò)的權(quán)限、讀取SMS短消息的權(quán)限等.從表1可以看出,CALL-PHONE,SEND-SMS,INTERNET 等3種權(quán)限涉及用戶費(fèi)用,另外還有7種權(quán)限涉及到用戶的隱私信息.通過竊取這些信息,再結(jié)合上述3種付費(fèi)權(quán)限,惡意程序能夠很容易對(duì)用戶的隱私造成危害.因此,本文將研究如何實(shí)時(shí)監(jiān)控這10種權(quán)限的使用情況.
表1 敏感權(quán)限列表
在軟件安裝時(shí),軟件所需要的權(quán)限以列表的形式呈現(xiàn)給用戶,由用戶選擇是否給予軟件授權(quán).軟件對(duì)應(yīng)的GIDS是由應(yīng)用程序框架在軟件安裝過程中生成,如果申請(qǐng)的某permission獲得用戶的授權(quán),并且/etc/permissions/目錄下的xml文件中存在(permission, gid)映射,那么該軟件的GIDS中將包含這個(gè)gid.
在軟件運(yùn)行時(shí),由于Android系統(tǒng)使用基于Dalvik虛擬機(jī)的沙箱機(jī)制,所有的應(yīng)用程序都會(huì)先被解壓縮到沙箱中執(zhí)行.在該過程中,系統(tǒng)會(huì)對(duì)應(yīng)用軟件的權(quán)限進(jìn)行檢查:大部分權(quán)限,例如READ-SMS,WRITE-SMS,SEND-SMS等,都在應(yīng)用程序框架的PackageManager.checkPermission函數(shù)中進(jìn)行檢查,依據(jù)是該權(quán)限是否在軟件的AndroidManifest.xml文件中被聲明;而另一些權(quán)限,例如INTERNET,BLUETOOTH等,是在操作系統(tǒng)內(nèi)核中進(jìn)行檢測(cè),依據(jù)是該應(yīng)用軟件對(duì)應(yīng)的UID是否加入了該權(quán)限對(duì)應(yīng)的gid,即軟件的GIDS中是否包含該gid.
由上述分析可知,Android系統(tǒng)對(duì)應(yīng)用軟件權(quán)限控制的核心是permission,但是一旦用戶選擇安裝軟件,即賦予了該軟件所申請(qǐng)的各類權(quán)限.那么,在目前的Android系統(tǒng)框架下,用戶無(wú)法對(duì)權(quán)限進(jìn)行更改,或者監(jiān)控權(quán)限的使用情況.如何避免軟件惡意使用這些權(quán)限,這也正是本文所要解決的問題.
現(xiàn)有的Android惡意軟件檢測(cè)技術(shù)主要分為靜態(tài)特征檢測(cè)和動(dòng)態(tài)行為分析.
靜態(tài)特征檢測(cè)是識(shí)別惡意軟件最常用、最直接的方法,根據(jù)分析對(duì)象的不同,主要分為二進(jìn)制程序掃描和源代碼掃描.靜態(tài)特征碼檢測(cè)在識(shí)別已知惡意軟件時(shí)非常高效準(zhǔn)確,但在檢測(cè)未知的惡意軟件或已知惡意軟件的變種時(shí),則顯得無(wú)能為力.并且,隨著近些年Android系統(tǒng)中惡意軟件數(shù)量呈指數(shù)級(jí)增長(zhǎng),病毒庫(kù)也變得越來(lái)越龐大,靜態(tài)特征碼檢測(cè)的效率難以得到保證.此外,受制于智能終端上的物理資源和電池續(xù)航能力,靜態(tài)特征碼檢測(cè)會(huì)給用戶的正常使用帶來(lái)較大的影響.為了簡(jiǎn)化靜態(tài)特征檢測(cè)的復(fù)雜度,Enck等[3]提出了Kirin系統(tǒng),通過分析Android軟件申請(qǐng)的權(quán)限來(lái)判定軟件是否存在惡意行為.Barrera等[4]采用SOM算法研究Android權(quán)限機(jī)制,通過對(duì)1 100個(gè)Android軟件的權(quán)限進(jìn)行分析,證明了不同類別軟件在申請(qǐng)權(quán)限時(shí)存在很大的差異.由此可見,Android軟件權(quán)限可以作為檢測(cè)惡意性的特征屬性.但是現(xiàn)有基于Android權(quán)限的惡意軟件靜態(tài)檢測(cè)技術(shù),僅憑借經(jīng)驗(yàn)提取了一些惡意權(quán)限的組合,其完整性與可靠性較弱.
動(dòng)態(tài)行為分析是對(duì)軟件運(yùn)行時(shí)的行為表現(xiàn)進(jìn)行特征抽取與建模,然后通過模式識(shí)別算法判斷這一系列的行為是否是惡意行為的技術(shù).該方法不依賴于特征庫(kù),能夠識(shí)別出未知的惡意軟件.動(dòng)態(tài)行為分析對(duì)特征屬性的抽取與建模有很強(qiáng)的依賴性,目前的研究工作主要集中在行為監(jiān)控、特征提取與特征模式匹配等方面.
1) 行為監(jiān)控.Enck等[5]設(shè)計(jì)實(shí)現(xiàn)了TaintDroid系統(tǒng)以標(biāo)記內(nèi)存數(shù)據(jù)的流向,通過修改Dalvik虛擬機(jī)將傳統(tǒng)的信息流追蹤技術(shù)應(yīng)用于Android系統(tǒng)中,在軟件運(yùn)行時(shí)對(duì)系統(tǒng)中敏感信息的傳播進(jìn)行監(jiān)控,從而達(dá)到安全防范的目的.然而TaintDroid因采用傳統(tǒng)的動(dòng)態(tài)污點(diǎn)傳播技術(shù),使得運(yùn)行時(shí)的程序性能開銷明顯提升,這對(duì)于實(shí)時(shí)性要求非常高的移動(dòng)平臺(tái)缺乏實(shí)用性.Zhang等[6]實(shí)現(xiàn)了軟件動(dòng)態(tài)分析平臺(tái)VetDroid,可以分析出應(yīng)用的權(quán)限使用行為,包括如何使用申請(qǐng)的權(quán)限訪問系統(tǒng)資源,以及這些資源如何被進(jìn)一步使用.但該工作僅提供了一種輔助分析的平臺(tái)工具,本身無(wú)法實(shí)現(xiàn)惡意行為的分析和攔截.
2) 特征提取.Miettinen等[7]提出了智能手機(jī)異常檢測(cè)中需要監(jiān)控的一些系統(tǒng)信息,包括操作系統(tǒng)事件響應(yīng)、操作系統(tǒng)資源使用率等一系列量化指標(biāo),并在此基礎(chǔ)上提出了一個(gè)入侵檢測(cè)理論模型.Schmidt等[8]從Linux內(nèi)核角度分析了Android系統(tǒng)的安全性,并利用網(wǎng)絡(luò)流量、系統(tǒng)調(diào)用以及文件系統(tǒng)日志來(lái)檢測(cè)系統(tǒng)異常.但是這些工作本質(zhì)上是系統(tǒng)異常的檢測(cè),無(wú)法具體分析出導(dǎo)致軟件異常的原因,也沒有考慮用戶相關(guān)的特征,例如用戶習(xí)慣、是否有用戶在進(jìn)行操作等.
3) 特征模式匹配.Rieck等[9]提出使用支持向量機(jī)對(duì)惡意軟件行為進(jìn)行有監(jiān)督的學(xué)習(xí),首先對(duì)大量惡意軟件樣本行為進(jìn)行映射,然后利用支持向量機(jī)對(duì)行為進(jìn)行劃分.該算法需要有大量的惡意軟件樣本做依托,而且對(duì)智能終端性能要求較高.Bose等[10]提出了一種在智能終端上基于聚類的智能算法,通過分析短信或彩信的日志文件,學(xué)習(xí)軟件使用短信或彩信的行為,從而檢測(cè)惡意軟件.類似地,Xie等[11]提出pBMDS系統(tǒng),通過攔截智能終端上用戶的輸入,從而建立HMM模型來(lái)檢測(cè)智能終端上的病毒.這2種方法對(duì)智能終端病毒的檢測(cè)僅局限于短信和彩信的惡意發(fā)送,并沒有對(duì)其他諸如打電話、網(wǎng)絡(luò)或者敏感權(quán)限的惡意調(diào)用進(jìn)行檢測(cè)與攔截.Shabtai等[12]在Android系統(tǒng)中使用了標(biāo)準(zhǔn)的機(jī)器學(xué)習(xí)算法,包括K均值、邏輯回歸、決策樹、貝葉斯網(wǎng)絡(luò)和樸素貝葉斯,分別對(duì)惡意軟件進(jìn)行識(shí)別.從實(shí)驗(yàn)結(jié)果看,決策樹和樸素貝葉斯算法均能達(dá)到很高的準(zhǔn)確率.
綜上所述,動(dòng)態(tài)行為分析是Android惡意軟件識(shí)別的重要技術(shù)手段,但現(xiàn)有研究工作缺乏對(duì)軟件運(yùn)行時(shí)用戶相關(guān)特征和軟件屬性、權(quán)限等特性的綜合考慮,并且無(wú)法實(shí)現(xiàn)對(duì)惡意行為的實(shí)時(shí)分析和攔截.因此,本文將引入用戶操作場(chǎng)景和軟件屬性、權(quán)限相關(guān)的屬性特征,應(yīng)用機(jī)器學(xué)習(xí)算法進(jìn)行惡意行為的識(shí)別,并通過對(duì)Android安全框架的擴(kuò)展實(shí)現(xiàn)對(duì)這些行為的實(shí)時(shí)分析和攔截.
3.1 特征屬性的選擇
為了識(shí)別Android軟件使用特定敏感權(quán)限時(shí)是否屬于惡意行為,本文從軟件本身和軟件所處的運(yùn)行環(huán)境2個(gè)層面選擇5個(gè)布爾量值的屬性特征.
1) 軟件是否系統(tǒng)應(yīng)用.系統(tǒng)應(yīng)用是指智能終端在安裝Android系統(tǒng)時(shí)自帶的軟件,例如短信應(yīng)用、撥號(hào)應(yīng)用、通訊錄、固件管理器、郵件服務(wù)等,通常這些軟件不會(huì)惡意收集用戶信息或者惡意耗費(fèi)用戶話費(fèi).因此,敏感權(quán)限的使用者是否是系統(tǒng)應(yīng)用可以作為被抽象出來(lái)的一個(gè)特征.
2) 權(quán)限使用時(shí)是否有用戶操作.通常用戶不希望在不知情的情況下,軟件在后臺(tái)對(duì)智能終端進(jìn)行操作,尤其是涉及敏感數(shù)據(jù)的操作.所以,權(quán)限使用時(shí)是否有用戶操作可抽象出來(lái)作為惡意行為識(shí)別的一個(gè)特征.
3) 在安裝軟件時(shí)是否申請(qǐng)了大量權(quán)限.惡意軟件為了能夠?qū)χ悄芙K端系統(tǒng)更大程度地控制,通常申請(qǐng)的權(quán)限遠(yuǎn)大于真實(shí)功能所需要的權(quán)限.針對(duì)軟件申請(qǐng)權(quán)限數(shù)量的統(tǒng)計(jì)分析可知,通常惡意軟件申請(qǐng)的權(quán)限數(shù)量要比非惡意軟件的權(quán)限數(shù)量多,所以一旦敏感權(quán)限的使用者在安裝軟件時(shí)申請(qǐng)了大量的權(quán)限,則懷疑其對(duì)敏感數(shù)據(jù)的操作是惡意行為.
4) 申請(qǐng)權(quán)限中是否存在敏感權(quán)限組合.通常惡意軟件所申請(qǐng)的多種權(quán)限被組合一起使用時(shí),有可能威脅到系統(tǒng)或者用戶數(shù)據(jù)的安全.本文采用Apriori算法對(duì)軟件申請(qǐng)的權(quán)限進(jìn)行關(guān)聯(lián)規(guī)則挖掘,分析對(duì)象為Zhou等[13]在S&P 2012會(huì)議上發(fā)布的1 260個(gè)惡意軟件數(shù)據(jù)集,以及Android市場(chǎng)中17個(gè)分類的850個(gè)熱門軟件.表2列出了部分置信度85%以上僅存于惡意軟件中的敏感權(quán)限組合.當(dāng)被賦予這些敏感權(quán)限組合后,則該軟件得到了執(zhí)行惡意行為的能力.雖然有實(shí)施惡意行為能力的軟件并不一定會(huì)實(shí)施惡意行為,但一旦這類軟件調(diào)用敏感權(quán)限時(shí),則可能造成很大的破壞.因此,軟件安裝時(shí)申請(qǐng)敏感權(quán)限組合則可認(rèn)為是惡意行為的一個(gè)特征.
表2 惡意軟件使用較多的敏感權(quán)限組合
5) 敏感權(quán)限的使用是否存在突發(fā)性.本文通過隨機(jī)抽取在手機(jī)中執(zhí)行的49個(gè)惡意軟件,共采集了8 849條敏感權(quán)限使用記錄.通過分析發(fā)現(xiàn),很多惡意軟件在啟動(dòng)時(shí),會(huì)伴隨大量的敏感權(quán)限的使用.例如Gone in 60 seconds軟件會(huì)在啟動(dòng)時(shí)使用查看通訊錄、短信記錄、通話記錄這些敏感的權(quán)限,然后在用戶無(wú)法反應(yīng)的速度內(nèi),將這些信息上傳到遠(yuǎn)端服務(wù)器,然后關(guān)閉應(yīng)用進(jìn)程;另一個(gè)軟件moonsms在打開時(shí),會(huì)連續(xù)向一個(gè)特定號(hào)碼發(fā)送一連串特定代碼含義的短信,試圖通過短信的方式進(jìn)行遠(yuǎn)程控制.然而在數(shù)據(jù)集中隨機(jī)選出的34個(gè)非惡意的熱門軟件中,并沒有發(fā)現(xiàn)類似現(xiàn)象.所以敏感權(quán)限的使用是否呈現(xiàn)突發(fā)特征也可以被抽象成惡意行為識(shí)別算法中的一個(gè)特征.
3.2 惡意行為的識(shí)別
本文將Android系統(tǒng)中軟件惡意行為的識(shí)別問題建模成在特定環(huán)境下對(duì)軟件敏感權(quán)限使用的分類問題.基于樸素貝葉斯分類器的惡意行為智能識(shí)別算法,記X={x1,x2,x3,x4,x5}表示用于分類的特征屬性值;Y={ym,yb}表示分類結(jié)果為惡意行為和非惡意行為.惡意行為智能識(shí)別算法的執(zhí)行過程如圖1所示.
圖1 惡意行為智能識(shí)別的流程
1) 準(zhǔn)備階段.這個(gè)階段的主要工作是確定軟件惡意行為的特征屬性X,包括確定軟件是否為系統(tǒng)應(yīng)用、權(quán)限使用時(shí)是否有用戶操作、安裝軟件時(shí)是否申請(qǐng)了大量權(quán)限、這些權(quán)限中是否存在敏感權(quán)限組合、敏感權(quán)限的使用是否存在突發(fā)性.收集一系列敏感權(quán)限的使用記錄,并人工標(biāo)記每條記錄的分類結(jié)果,形成訓(xùn)練樣本集合.
2) 分類器訓(xùn)練階段.該階段的主要工作是計(jì)算出貝葉斯公式中條件概率與先驗(yàn)概率的乘積,即計(jì)算訓(xùn)練樣本中敏感權(quán)限被使用時(shí)每個(gè)特征屬性Xi在各個(gè)結(jié)果分類中出現(xiàn)的頻率與每個(gè)類別劃分Yi出現(xiàn)頻率的乘積,對(duì)出現(xiàn)頻率為0的安全信任級(jí)別分類進(jìn)行Laplace校準(zhǔn),最后將結(jié)果記錄.其輸入是特征屬性和訓(xùn)練樣本,輸出為目標(biāo)函數(shù)f(X),從而生成樸素貝葉斯分類器.
3) 應(yīng)用階段.該階段的任務(wù)是使用分類器對(duì)待分類項(xiàng)進(jìn)行分類.實(shí)時(shí)監(jiān)控軟件使用敏感權(quán)限的行為,將行為輸入分類器,分類器根據(jù)訓(xùn)練得到的目標(biāo)函數(shù)f(X)計(jì)算出貝葉斯公式中后驗(yàn)概率的分子部分(分母部分對(duì)所有特征屬性X都相同,即可約掉).至此,通過樸素貝葉斯決策方法比較各個(gè)分類的計(jì)算結(jié)果,選取其中值最大的類別作為最終分類結(jié)果Y.針對(duì)分類可能存在的錯(cuò)誤,本文引入了比率規(guī)格化參數(shù)φ來(lái)量化分類結(jié)果的可靠程度,其計(jì)算方法為
(1)
式中,Pb為軟件被判定為非惡意軟件的概率;Pm為軟件被判定為惡意軟件的概率.當(dāng)φ<0.8時(shí),認(rèn)為分類結(jié)果無(wú)效,將由用戶自行判斷本次敏感權(quán)限使用是否為惡意.
4) 迭代更新階段.該階段的任務(wù)是實(shí)時(shí)迭代更新訓(xùn)練模型.本文初始模型是基于8 849條敏感權(quán)限使用記錄所生成的,但當(dāng)加入新的敏感權(quán)限使用記錄后,需要對(duì)初始模型進(jìn)行動(dòng)態(tài)更新,從而能增加訓(xùn)練樣本的規(guī)模,提高算法分類的準(zhǔn)確度.
為了實(shí)現(xiàn)對(duì)軟件惡意行為的實(shí)時(shí)分析和攔截,本文在Android應(yīng)用程序框架層調(diào)用系統(tǒng)敏感權(quán)限時(shí)設(shè)置攔截函數(shù),然后將攔截到的權(quán)限名稱和正在調(diào)用進(jìn)程的名稱上傳到應(yīng)用層中心控制軟件中,通過中心控制軟件對(duì)該權(quán)限的使用做出判斷,然后給予反饋.Android系統(tǒng)敏感權(quán)限的動(dòng)態(tài)實(shí)時(shí)監(jiān)控的執(zhí)行過程如圖2所示,共分為5個(gè)階段.
1) 捕獲階段.該階段主要通過攔截函數(shù)識(shí)別出正在使用敏感權(quán)限的進(jìn)程名稱.主要工作分為2部分:① 實(shí)時(shí)捕獲所有權(quán)限使用的記錄;② 設(shè)置過濾器,從中篩選出對(duì)敏感權(quán)限的使用,并構(gòu)建成二元組形式〈packageName, permission〉,為中心控制程序的判斷做準(zhǔn)備.
圖2 Android系統(tǒng)敏感權(quán)限的動(dòng)態(tài)實(shí)時(shí)監(jiān)控
2) 上傳階段.該階段將應(yīng)用程序框架層所捕獲并構(gòu)建出的二元組,通過Android的AIDL進(jìn)程間通信機(jī)制,上傳給應(yīng)用程序?qū)拥闹行目刂瞥绦颍谙到y(tǒng)進(jìn)程中注冊(cè)類似于函數(shù)回調(diào)機(jī)制的接口,由中心控制程序負(fù)責(zé)實(shí)現(xiàn).
3) 分析處理階段.根據(jù)用戶在程序界面上設(shè)置的單個(gè)應(yīng)用進(jìn)程的監(jiān)控模式對(duì)所接收到的特定應(yīng)用進(jìn)程權(quán)限使用請(qǐng)求做出反饋.首先查找二元組〈packageName, permission〉中軟件的應(yīng)用進(jìn)程名,根據(jù)應(yīng)用進(jìn)程名,找到中心控制程序中用戶對(duì)該軟件所設(shè)置的模式〈ALWAYS-ALLOW, ALWAYS-DENIAL, ASK-USER, ARTIFICIAL-INTELLIGENCE〉,然后根據(jù)不同的反饋模式所處理的結(jié)果生成統(tǒng)一格式的反饋結(jié)果,并準(zhǔn)備傳回系統(tǒng)進(jìn)程.
4) 結(jié)果反饋階段.將Android應(yīng)用程序?qū)拥呐袛嘟Y(jié)果回傳給Android應(yīng)用程序框架層.該階段同樣通過Android的AIDL進(jìn)程間通信機(jī)制來(lái)實(shí)現(xiàn).
5) 反饋結(jié)果處理階段.該階段的任務(wù)是處理執(zhí)行中心控制程序的反饋結(jié)果.這個(gè)階段所得到的最終結(jié)果分為ALLOW,DENY和ASK-USER三種形式.根據(jù)這3種反饋形式,應(yīng)用程序框架層分別進(jìn)行放行權(quán)限的使用、攔截權(quán)限的使用或者詢問用戶3種處理方式,并且將執(zhí)行結(jié)果存入Android自帶的Sqlite數(shù)據(jù)庫(kù)中.
5.1 惡意行為識(shí)別效果的實(shí)驗(yàn)分析
為了驗(yàn)證本文實(shí)現(xiàn)的基于樸素貝葉斯分類器的Android軟件惡意行為智能識(shí)別算法,本文在HTC G7設(shè)備上安裝了83個(gè)軟件(其中惡意軟件49個(gè)、非惡意軟件34個(gè)),運(yùn)行40 d,對(duì)10個(gè)敏感權(quán)限的使用進(jìn)行了詳細(xì)的記錄和分析,將8 849條敏感權(quán)限的使用記錄作為訓(xùn)練樣本,并采用有監(jiān)督的學(xué)習(xí)方式,手動(dòng)標(biāo)記這些記錄的類別.
本文記Nm,m為軟件惡意行為分類正確的數(shù)量,Nb,b為軟件非惡意行為分類正確的數(shù)量,Nm,b為軟件惡意行為被分類為非惡意的數(shù)量,Nb,m為軟件非惡意行為被分類為惡意的數(shù)量,N為數(shù)據(jù)集中的樣本數(shù)量.各測(cè)試指標(biāo)如下:
① 正確率(correct rate).PD表示數(shù)據(jù)集中歸類正確的概率,即
(2)
② 錯(cuò)誤率(error rate).PE表示數(shù)據(jù)集中歸類錯(cuò)誤的概率,即
(3)
③ 命中率(true positive rate).PT表示Android系統(tǒng)中軟件的惡意行為被正確歸類的概率,即
(4)
④ 誤報(bào)率(false positive rate).PF表示Android系統(tǒng)中軟件的非惡意行為被歸類到惡意行為的概率,即
(5)
對(duì)于本文樣本空間中8 849條敏感權(quán)限的使用記錄,采用分層10折交叉方法進(jìn)行驗(yàn)證,并迭代10輪,每輪隨機(jī)使用不同測(cè)試集計(jì)算分類器的PD,PE,PT和PF.
實(shí)驗(yàn)結(jié)果顯示,基于樸素貝葉斯分類器的Android軟件惡意行為分類器的分類正確率為87.6%、錯(cuò)誤率為12.4%、命中率為100%、誤報(bào)率為36.7%.可見,該初始化的分類器有著較高的命中率、正確率以及較低的錯(cuò)誤率,但是該分類器的誤報(bào)率比較高.因此,本文將規(guī)格化比率φ參數(shù)引入分類器的判別:當(dāng)φ<80%時(shí)分類器不做出決策,而是提示用戶進(jìn)行選擇.
假設(shè)用戶對(duì)Android軟件惡意行為的反饋正確率為75%,則改進(jìn)后的算法正確率為90.1%、錯(cuò)誤率為9.9%、命中率為98.2%、誤報(bào)率為15.3%.由于大幅度減少了誤報(bào)率,保障了非惡意軟件的正常使用.
5.2 智能分析和處理軟件的測(cè)試
在上述工作的基礎(chǔ)上,本文開發(fā)和實(shí)現(xiàn)了一款A(yù)ndroid軟件惡意行為的智能分析與處理軟件.應(yīng)用該軟件可以對(duì)系統(tǒng)中任意應(yīng)用進(jìn)行敏感權(quán)限訪問的4種設(shè)置:允許、禁止、詢問和智能分析,分別對(duì)應(yīng)允許訪問、禁止訪問、詢問用戶和進(jìn)行智能判斷4種操作.
根據(jù)Android平臺(tái)中響應(yīng)時(shí)間超時(shí)5 s就會(huì)彈出應(yīng)用程序無(wú)響應(yīng)(application not responding,ANR)的消息,提示用戶是否繼續(xù)等待或者關(guān)閉,本文針對(duì)軟件性能的測(cè)試要求各操作的響應(yīng)時(shí)間不超過5 s,從而不產(chǎn)生ANR異常.本文在HTC G7和Android模擬器上重復(fù)開啟了10次, 求取平均啟動(dòng)時(shí)間, 隨機(jī)點(diǎn)擊了20次按鈕求取平均響應(yīng)速度,并使用PerfMon V1.1和Memory Status軟件輔助檢測(cè)包括CPU和內(nèi)存在內(nèi)的資源占有率,得到的性能測(cè)試結(jié)果如表3所示.
表3 軟件性能測(cè)試結(jié)果
注:括號(hào)中F表示Android安全防護(hù)軟件未啟動(dòng)時(shí)的狀態(tài);T表示Android安全防護(hù)軟件打開以后的狀態(tài).
由表3可見,是否開啟本軟件對(duì)系統(tǒng)性能的影響較小,因此應(yīng)用該軟件可以有效增強(qiáng)Android系統(tǒng)的安全性.
本文針對(duì)Android系統(tǒng)所提供的安全管理機(jī)制粒度較粗,并且一旦用戶對(duì)應(yīng)用軟件授權(quán)即無(wú)法更改或追蹤權(quán)限的使用問題,在充分考慮用戶操作場(chǎng)景、軟件屬性、權(quán)限之類特性的前提下,應(yīng)用樸素貝葉斯分類器設(shè)計(jì)了一種軟件惡意行為分析方法,并通過對(duì)Android安全框架的擴(kuò)展,實(shí)現(xiàn)了對(duì)惡意行為的實(shí)時(shí)分析和處理,可以有效增強(qiáng)Android系統(tǒng)的安全性.
References)
[1]IDC Press. Smartphone OS market share 2014, 2013, 2012, and 2011[EB/OL]. (2004-07-01)[2014-08-07].http://www.idc.com/prodserv/smartphone-os-market-share.jsp.
[2]NQMobile網(wǎng)秦. 2014年第一季度全球手機(jī)安全報(bào)告[EB/OL]. (2004-06-10)[2014-08-07]. http://cn.nq.com/news/360.
[3]Enck W, Ongtang W, McDaniel P. On lightweight mobile phone application certification[C]//Proceedingsof16thACMConferenceonComputerandCommunicationsSecurity.Chicago, Illinois, USA, 2009: 235-245.
[4]Barrera D, Kayacik H, Paul C, et al. A methodology for empirical analysis of permission-based security models and its application to Android[C]//Proceedingsofthe17thACMConferenceonComputerandCommunicationsSecurity. Chicago, Illinois, USA,2010: 73-84.
[5]Enck W, Gilbert P, Chun B G. TaintDroid: an information-flow tracking system for realtime privacy monitoring on smartphones[C]//ProceedingsofUSENIXSymposiumonOperatingSystemsDesignandImplementation.Berkeley, California, USA, 2010: 24-38.
[6]Zhang Y, Yang M, Xu B, et al. Vetting undesirable behaviors in Android apps with permission use analysis[C]//Proceedingsofthe20thACMConferenceonComputerandCommunicationsSecurity. Berlin, Germany, 2013: 611-622.
[7]Miettinen M, Halonen P, Hatonen K. Host-based intrusion detection for advanced mobile devices[C]//ProceedingsofAdvancedInformationNetworkingandApplications. Vienna, Austria, 2006: 72-76.
[8]Schmidt A, Schmidt H, Clausen J, et al. Enhancing security of Linux-based Android devices[C]//Proceedingsofthe15thInternationalLinuxSystemTechnologyConference. Hamburg, Germany, 2008: 174-189.
[9]Rieck K, Holz T, Willems C, et al. Learning and classification of malware behavior[C]//Proceedingsofthe5thInternationalConferenceonDetectionofIntrusionsandMalware,andVulnerabilityAssessment. Paris, France, 2008: 108-125.
[10]Bose A, Shin K. Proactive security for mobile messaging networks[C]//Proceedingsofthe5thACMWorkshoponWirelessSecurity. Los Angeles, California, USA, 2006: 95-104.
[11]Xie L, Zhang X, Seifert J, et al. pBMDS: a behavior-based malware detection system for cellphone devices[C]//ProceedingsoftheThirdACMConferenceonWirelessNetworkSecurity. Hoboken, New Jersey, USA, 2010: 37-48.
[12]Shabtai A, Kanonov U, Elovici Y, et al. "Andromaly": a behavioral malware detection framework for Android devices[J].JournalofIntelligentInformationSystems, 2012, 38(1): 161-190.
[13]Zhou Y, Jiang X. Dissecting Android malware: characterization and evolution[C]//ProceedingsofIEEESymposiumonSecurityandPrivacy. San Francisco, California, USA, 2012: 95-109.
Intelligent identification of malicious behavior in Android applications based on Naive Bayes
Zhang Yiting1,2Zhang Yang2Zhang Tao3Yang Ming2Luo Junzhou2
(1College of Computer, Nanjing University of Posts and Telecommunications, Nanjing 210023, China)(2School of Computer Science and Engineering, Southeast University, Nanjing 210096, China)(3Information and Communication Department, State Grid Smart Grid Research Institute, Nanjing 210009, China)
As Android only provides coarse security management mechanism based on per-application permission authorization, and the granted permissions cannot be tuned and tracked during runtime, a malicious software behavior identification method using Naive Bayes classifier is proposed. When analyzing software behavior, not only software property such as permissions, but also user operation and behavior and some other characteristics are all taken into accounts. Accordingly, different classification features are extracted, such as whether the software is a system application, whether permission use is caused by user operations, whether the application is overprivileged whether there exists certain permission combination, whether there exist permission use bursts, and etc. By extending the Android security framework, malicious behavior can be detected and processed in real time. Experimental results show that the proposed method can detect malicious behavior with high detection rate, lower false positive rate and little system performance loss, which proves itself to be effective in enhancement of the security of Android system efficiently and effectively.
Android security; privacy leakage; permission use; malicious behavior identification
10.3969/j.issn.1001-0505.2015.02.005
2014-12-07. 作者簡(jiǎn)介: 張怡婷(1978—),女,講師,zyt@njupt.edu.cn.
國(guó)家自然科學(xué)基金資助項(xiàng)目(61272054, 61320106007)、國(guó)家高技術(shù)研究計(jì)劃(863計(jì)劃)資助項(xiàng)目(2013AA013503)、國(guó)家電網(wǎng)公司科技資助項(xiàng)目(EPRIXXKJ[2014]2244)、江蘇省網(wǎng)絡(luò)與信息安全重點(diǎn)實(shí)驗(yàn)室資助項(xiàng)目(BM2003-201)、網(wǎng)絡(luò)與信息集成教育部重點(diǎn)實(shí)驗(yàn)室(東南大學(xué))資助項(xiàng)目(93K-9).
張怡婷,張揚(yáng),張濤,等.基于樸素貝葉斯的Android軟件惡意行為智能識(shí)別[J].東南大學(xué)學(xué)報(bào):自然科學(xué)版,2015,45(2):224-230.
10.3969/j.issn.1001-0505.2015.02.005
TP393
A
1001-0505(2015)02-0224-07