張驍敏,劉靜,2,3,莊俊璽,2,3,賴英旭,2,3
(1. 北京工業(yè)大學信息學部,北京 100124;2. 北京工業(yè)大學可信計算北京市重點實驗室,北京 100124;3. 北京工業(yè)大學信息安全等級保護關(guān)鍵技術(shù)國家工程實驗室,北京 100124)
基于權(quán)限與行為的Android惡意軟件檢測研究
張驍敏1,劉靜1,2,3,莊俊璽1,2,3,賴英旭1,2,3
(1. 北京工業(yè)大學信息學部,北京 100124;2. 北京工業(yè)大學可信計算北京市重點實驗室,北京 100124;3. 北京工業(yè)大學信息安全等級保護關(guān)鍵技術(shù)國家工程實驗室,北京 100124)
針對Android平臺惡意應(yīng)用,從Android自身權(quán)限機制入手,提出了一種靜態(tài)權(quán)限特征分析和動態(tài)行為分析相結(jié)合、將行為映射為權(quán)限特征的方法,并采用關(guān)聯(lián)分析算法挖掘出權(quán)限特征之間的關(guān)聯(lián)規(guī)則,把權(quán)限特征和行為特征作為樸素貝葉斯分類算法的輸入,建立了一個惡意應(yīng)用檢測模型,最后通過實驗驗證了該方法的有效性和準確性。
Android系統(tǒng);安全機制;權(quán)限特征;分類器
近年來,隨著智能手機的普及,Android操作系統(tǒng)占據(jù)了手機操作系統(tǒng)的大部分市場份額。據(jù)市場研究公司 Strategy Analytics公布的最新數(shù)據(jù)顯示,2016年第三季度,Android的全球智能手機市場份額已經(jīng)達到了 88.0%,較去年同期的84.1% 份額略有上升[1]。然而,針對 Android智能手機的惡意程序也以驚人的速度不斷增長,360互聯(lián)網(wǎng)安全中心發(fā)布的《2016年第三季度中國互聯(lián)網(wǎng)安全報告》顯示,2016年第三季度,360安全中心平均每天攔截新增Android惡意應(yīng)用程序樣本近3.8×104個,共攔截將近3.49×106個。Android平臺新增惡意程序主要是資費消耗,占比高達73.5%,其次為惡意扣費(18.0%)、隱私竊?。?.8%)、流氓行為(2.8%)和遠程控制(1.5%)[2],這些惡意程序給手機用戶帶來了巨大的安全隱患。
Android平臺惡意程序的迅猛增長,對惡意軟件的檢測研究十分重要。然而,現(xiàn)有的檢測方法主要以基于權(quán)限特征的靜態(tài)分析為主[3],這種方法只考慮單個權(quán)限特征,不足以反映Android應(yīng)用程序的特性,且也缺乏針對Android應(yīng)用程序的權(quán)限特征和行為的綜合考慮。因此,本文提出了一種基于權(quán)限與行為的Android惡意軟件檢測方案。
惡意軟件檢測存在 2種方法[4]:一是基于特征代碼的檢測方法;二是基于行為的檢測方法。
基于行為的檢測方法又分為動態(tài)分析方法和靜態(tài)分析方法[4]。張銳等[5]采用卡方檢驗計算各權(quán)限特征對分類結(jié)果的影響,去除冗余權(quán)限特征,從權(quán)限相關(guān)性角度快速檢測惡意軟件,但沒有考慮組合權(quán)限的威脅。重慶郵電大學黃梅根等[6]以竊取Android 系統(tǒng)隱私數(shù)據(jù)為切入點,將Android系統(tǒng)隱私數(shù)據(jù)劃分為4類(通話、短信、地理位置信息、其他個人隱私信息),參考Kirin 安全規(guī)則提出了一系列惡意權(quán)限組合,該方法的不足是某些權(quán)限規(guī)則對于某些正常軟件和惡意軟件都有可能被使用到,提出的組合權(quán)限沒有科學依據(jù)。
Enck 等[7]設(shè)計實現(xiàn)了Taint Droid系統(tǒng),該系統(tǒng)可以標記內(nèi)存數(shù)據(jù)的流向,修改Dalvik虛擬機使在 Android系統(tǒng)中應(yīng)用傳統(tǒng)的信息流追蹤技術(shù),在軟件運行時對系統(tǒng)中敏感信息的傳播進行監(jiān)控,以達到安全防范的目的。然而,Taint Droid采用了傳統(tǒng)的動態(tài)污點傳播技術(shù),使處于運行時的應(yīng)用程序性能開銷明顯增加,這在實時性要求非常高的移動平臺上使用缺乏實用性。Zhang等[8]實現(xiàn)了軟件動態(tài)分析平臺VetDroid,該平臺可以分析出應(yīng)用的權(quán)限使用行為,包括訪問系統(tǒng)資源時如何申請使用的權(quán)限,以及進一步使用這些資源。但以上工作僅提供了一種輔助分析的平臺工具,其本身無法分析惡意行為。
綜上,基于特征代碼的檢測方法快速、準確率高、誤報率低,但是無法檢測未知的惡意程序。基于行為的檢測方法可以檢測未知的惡意程序變種,缺點是誤報率較高。因此本文從Android自身權(quán)限機制入手,提出了一種靜態(tài)權(quán)限特征提取和動態(tài)行為分析相結(jié)合,將行為映射為權(quán)限特征的方法,采用關(guān)聯(lián)分析算法挖掘出權(quán)限特征之間的關(guān)聯(lián)規(guī)則,為惡意應(yīng)用的檢測奠定了堅實的基礎(chǔ)。
惡意應(yīng)用檢測分為兩大部分:建立惡意應(yīng)用檢測模型、測試惡意應(yīng)用檢測模型。
3.1 建立惡意應(yīng)用檢測模型
惡意APK和正常APK訓(xùn)練集是權(quán)限特征提取模塊的分析依據(jù),構(gòu)建過程如圖1所示,主要包括權(quán)限特征提取、權(quán)限特征關(guān)聯(lián)分析和特征集合分類這3個模塊。
3.1.1 權(quán)限特征提取
權(quán)限特征提取分為靜態(tài)分析和動態(tài)分析。靜態(tài)分析是對已知應(yīng)用程序反編譯的過程,本文靜態(tài)分析是在開源項目androwarn的基礎(chǔ)上進行改進,自動讀取特定目錄下應(yīng)用程序申請的權(quán)限,該工具主要對反編譯結(jié)果目錄中的AndroidManifest.xml文件進行自動分析,提取訓(xùn)練集中應(yīng)用程序申請的權(quán)限信息,如讀取短信、打電話等權(quán)限信息。
靜態(tài)權(quán)限特征提取的特點是應(yīng)用程序無需執(zhí)行,就可以提取應(yīng)用程序申請的權(quán)限,如果使用這種方法對獲取的權(quán)限信息進行惡意應(yīng)用檢測會導(dǎo)致誤判率很高。例如,某應(yīng)用程序申請了危險權(quán)限但其代碼中并沒有用到該權(quán)限,采用該方法很可能會將正常應(yīng)用誤判為惡意應(yīng)用。因此,本文在靜態(tài)分析的基礎(chǔ)上,進一步結(jié)合動態(tài)行為分析提取權(quán)限特征。
本文的動態(tài)行為分析采用建立在 TaintDroid基礎(chǔ)之上的動態(tài)分析工具DroidBox,其通過污染分析和API監(jiān)控等手段分析函數(shù)的調(diào)用過程,提取訓(xùn)練集中每個應(yīng)用程序的行為。DroidBox的分析結(jié)果包括輸入/輸出網(wǎng)絡(luò)數(shù)據(jù)、文件讀取和寫入操作、啟動服務(wù)和通過DexClassLoader加載的類、通過網(wǎng)絡(luò)/文件和SMS信息泄露、執(zhí)行加密操作使用的Android API、發(fā)送短信和撥打電話等行為。
圖1 惡意應(yīng)用檢測模型框架
通過DroidBox分析sample1.apk樣本,得到的方法調(diào)用過程如圖2所示。
圖2 sample1.apk方法調(diào)用過程
每個應(yīng)用程序動態(tài)行為分析的結(jié)果都是一個方法調(diào)用棧,包含方法的個數(shù)和調(diào)用順序,該結(jié)果有2個用途:一是用于權(quán)限特征提?。欢呛蜋?quán)限特征集合一并作為惡意應(yīng)用檢測模型的分類特征。
Android應(yīng)用程序通過聲明權(quán)限獲取沙盒未提供的行為,即一個行為的產(chǎn)生需要一個或多個權(quán)限的配合,所以應(yīng)用程序的行為可以反映應(yīng)用程序申請的權(quán)限。結(jié)合Android運行時權(quán)限,提出如下算法。
算法1 行為與權(quán)限特征映射
輸入:方法調(diào)用棧,25種危險權(quán)限(包括在Android官方提供[9]24種運行時權(quán)限基礎(chǔ)上加上INTERNET權(quán)限)
輸出:權(quán)限特征集合
1) stack←Method Call Stack;
2) pMSet←25 Dangerous Permissions;
3) tm←Target Method
4) pSet←set();
5) pSet←findPermission(tm);
6) if pSet is empty then
7) N←size(stack)?1;
8) r←stringAnalysis(stack[1…N]);
9) pSet←pSet ∩ r ∩ pMSet;
10) return pSet
算法1實現(xiàn)了行為與權(quán)限特征的轉(zhuǎn)換,形成的行為與權(quán)限特征映射如表1所示。
靜態(tài)分析提取權(quán)限特征只需要一步,即通過反編譯提取權(quán)限特征信息,動態(tài)行為分析提取權(quán)限特征分為2步:一是根據(jù)函數(shù)調(diào)用提取訓(xùn)練集中每個應(yīng)用程序的行為;二是利用表1將行為映射為權(quán)限特征。
3.1.2 權(quán)限特征關(guān)聯(lián)分析
Android應(yīng)用程序申請的每個權(quán)限可以有效地反映出應(yīng)用程序的行為模式,但對一些敏感權(quán)限,惡意應(yīng)用和正常應(yīng)用可能都會申請,不足以反映Android應(yīng)用程序的特性,而且一個惡意行為的產(chǎn)生通常需要多個權(quán)限的配合[10]。所以,本文通過靜態(tài)分析和動態(tài)分析獲取權(quán)限特征信息的同時,采用權(quán)限特征關(guān)聯(lián)分析挖掘權(quán)限特征之間的關(guān)聯(lián)規(guī)則,提高惡意應(yīng)用檢測的檢測率和準確率。
關(guān)聯(lián)分析是從海量數(shù)據(jù)集中,提取出有用的數(shù)據(jù)關(guān)聯(lián)、頻繁模式,為進一步的數(shù)據(jù)決策提供數(shù)據(jù)支持[11]。本文采用挖掘布爾關(guān)聯(lián)規(guī)則頻繁項集的Apriori先驗算法,挖掘應(yīng)用程序訓(xùn)練集申請的權(quán)限之間的關(guān)聯(lián)規(guī)則,該過程分為3個步驟。
1) 將權(quán)限特征提取模塊提取到的每個應(yīng)用程序申請的所有權(quán)限構(gòu)建成權(quán)限特征集合。
2) 使用python語言編寫代碼對第1)步中的權(quán)限特征集合進行處理,統(tǒng)一為逗號分隔值(CSV, comma separated values)格式,以便后續(xù)進行頻繁模式挖掘。
3) 使用 Apriori算法挖掘權(quán)限特征之間的相互依賴性,即權(quán)限關(guān)聯(lián)規(guī)則。
表1 行為與權(quán)限特征映射
3.1.3 特征集合分類
特征集合包括權(quán)限特征和行為特征,特征集合分類采用樸素貝葉斯分類算法[12],記 X ={x1, x2,…,xn}表示用于分類的權(quán)限特征屬性, Y = {y1, y2}表示分類結(jié)果為惡意應(yīng)用和正常應(yīng)用。其基本思想是通過訓(xùn)練樣本對每個分類計算先驗概率P(Y),根據(jù)先驗概率和樣本數(shù)據(jù)信息獲得確定事件的后驗概率,最后把事件歸于后驗概率最大的類別。將權(quán)限特征集合和行為特征集合進行信息聚集,作為樸素貝葉斯分類算法的輸入數(shù)據(jù),建立一個惡意應(yīng)用檢測模型。
3.2 測試惡意應(yīng)用檢測模型
測試惡意應(yīng)用檢測模型的過程如圖3所示。
圖3 測試惡意應(yīng)用檢測模型的過程
惡意APK和正常APK測試集是惡意應(yīng)用檢測模型的測試依據(jù),將測試集輸入到惡意應(yīng)用檢測模型,判定目標應(yīng)用程序是否為惡意應(yīng)用程序。
4.1 實驗說明
實驗在內(nèi)存為4 GB,處理器為Intel(R) Core 2.20 GHz的機器和系統(tǒng)為Android 5.0.1的Nexus手機上完成,分別用Python、Java語言實現(xiàn)了如圖1所示的惡意應(yīng)用檢測模型,為了衡量實驗效果,定義如下衡量指標[13]。
1) 真陽性(TP,true positive):檢測正確的惡意樣本數(shù)量。
2) 假陰性(FN,false negative):檢測錯誤的惡意樣本數(shù)量。
3) 真陽性率(TPR,true positive rate):,表示命中率(檢測率)。
4) 假陽性(FP,false positive):檢測錯誤的良性樣本數(shù)量。
5) 真陰性(TN,true negative):檢測正確的良性樣本數(shù)量。
6) 假陽性率(FPR,false positive rate):,表示錯誤命中率(誤報率)。
實驗數(shù)據(jù)及來源如表2所示。
表2 實驗數(shù)據(jù)及來源
4.2 實驗結(jié)果
將測試集各分為5組作為實驗數(shù)據(jù),所有實驗使用相同的訓(xùn)練集和測試集。
整個惡意應(yīng)用檢測模型的建立過程有2個重要的環(huán)節(jié):一是提取權(quán)限特征時的關(guān)聯(lián)分析;二是將權(quán)限特征和行為特征作為2個分類特征。
實驗 1 權(quán)限特征提取未進行關(guān)聯(lián)分析,分類特征僅為權(quán)限特征,實驗結(jié)果如表3所示。
實驗 2 權(quán)限特征提取進行關(guān)聯(lián)分析,分類特征僅為權(quán)限特征,實驗結(jié)果如表4所示。
表3和表4的實驗結(jié)果表明,僅通過單個的權(quán)限無法反映Android應(yīng)用程序的特性,一個惡意行為的產(chǎn)生通常需要多個權(quán)限的配合,脫離組合的權(quán)限并沒有太大的威脅,實驗2在權(quán)限特征提取過程中進一步挖掘了權(quán)限特征之間的關(guān)聯(lián)規(guī)則,使權(quán)限特征集合對惡意檢測更有效,所以,權(quán)限特征關(guān)聯(lián)分析明顯提高了惡意應(yīng)用檢測模型的檢測率和準確率。
但是,相對于表3,表4中數(shù)據(jù)顯示TPR有了明顯的提高,而第 4組數(shù)據(jù)則提高很少,通過觀察惡意應(yīng)用訓(xùn)練集權(quán)限組合和正常應(yīng)用訓(xùn)練集權(quán)限組合,發(fā)現(xiàn)INTERNET是一個通用權(quán)限,在惡意應(yīng)用和正常應(yīng)用當中的使用率都很高,如表5和表6所示。
表3 實驗1的實驗結(jié)果
表4 實驗2的實驗結(jié)果
表5 惡意應(yīng)用程序使用較多的權(quán)限組合后的支持度和置信度
表6 正常應(yīng)用程序使用較多的權(quán)限組合后的支持度和置信度
針對以上問題,對算法 1進行了改進,將INTERNET權(quán)限從危險權(quán)限中去除,生成新的行為與權(quán)限特征映射表,進行實驗。
實驗3 權(quán)限特征提取進行關(guān)聯(lián)分析,算法1去除INTERNET權(quán)限,分類特征僅為權(quán)限特征,實驗結(jié)果如表7所示。
從表7可以看出,實驗3較實驗2檢測率和準確率都略有提高,但是,第1組和第3組中TPR和ACC明顯低于平均值,究其原因,是由于第1組和第3組的測試樣本集中存在一些非典型惡意應(yīng)用,其特點是申請了很少的權(quán)限,但威脅程度極大,僅依靠權(quán)限不能夠準確檢測出這種惡意應(yīng)用,這是基于權(quán)限惡意應(yīng)用檢測的不足之處。針對非典型惡意應(yīng)用進行如下實驗。
實驗4 在實驗3的基礎(chǔ)上加入了行為特征,即如圖1所示的實驗方案,實驗結(jié)果如表8所示。
實驗結(jié)果表明,在靜態(tài)權(quán)限特征分析和動態(tài)行為分析相結(jié)合的基礎(chǔ)上,進行權(quán)限特征關(guān)聯(lián)分析的方案的檢測率和準確率高于沒有進行權(quán)限特征關(guān)聯(lián)分析的方案,該方案彌補 Kirin方案不足,同時還挖掘出了權(quán)限之間的關(guān)聯(lián)規(guī)則。通過觀察惡意應(yīng)用和正常應(yīng)用所使用的權(quán)限組合,發(fā)現(xiàn)INTERNET是通用權(quán)限,進而改進了算法1,最后,針對申請很少權(quán)限但威脅極大的非典型應(yīng)用程序,將權(quán)限特征和行為特征作為分類特征,使最終輸出的惡意應(yīng)用檢測模型具有較高的檢測率和準確率,對測試集的檢測能力有了明顯提升。
表7 實驗3的實驗結(jié)果
表8 實驗4的實驗結(jié)果
基于靜態(tài)權(quán)限特征分析的不足,本文提出了靜態(tài)權(quán)限特征分析和動態(tài)行為分析相結(jié)合的方法,并將行為映射為權(quán)限特征,進一步優(yōu)化權(quán)限特征,然后利用權(quán)限特征關(guān)聯(lián)分析挖掘出權(quán)限之間的關(guān)聯(lián)規(guī)則,解決了對申請敏感權(quán)限的正常應(yīng)用程序的誤判問題。并且針對申請較少權(quán)限的非典型應(yīng)用程序,將權(quán)限特征和行為特征作為分類特征,提高了檢測模型的檢測能力。因此,該惡意應(yīng)用檢測模型對惡意應(yīng)用檢測有較高的準確率,但還存在一定的不足,如果再結(jié)合其他的特征,擴大樣本數(shù)量,優(yōu)化分類算法,可以進一步提高準確率。
[1] Strategy analytics: Android captures record 88 percent share of global smartphone shipments in Q3 2016[EB/OL]. https://www. strategyanalytics.com/strategy-analytics/news/strategy-analyticspress-releases/strategy-analytics-press-release/2016/11/02/strategy-analytics-android-captures-record-88-percent-share-of-global-smartphone-s hipments-in-q3-2016?slid=90814&spg=3#.WG2VClV951s.
[2] 2016年第三季度中國互聯(lián)網(wǎng)安全報告[EB/OL]. http://www.docin. com/p-1787390122.html&formDaily=1. The Chinese Internet security reportin the third quarter of 2016[EB/OL]. http://www.docin.com/p-1787390122.html&formDaily=1.
[3] 張怡婷, 張揚, 張濤, 等. 基于樸素貝葉斯的 Android 軟件惡意行為智能識別[J]. 東南大學學報,2015,45(2):224-230. ZHANG Y T, ZHANG Y, ZHANG T, et al. Based on naive bayesian Android software malicious behavior intelligent identification[J].Journal of Southeast University, 2015, 45(2):224-230.
[4] 陳宏偉. 基于關(guān)聯(lián)分析的 Android權(quán)限濫用攻擊檢測系統(tǒng)研究[D]. 合肥:中國科學技術(shù)大學,2016. CHEN H W. Research on Android rights abuse attack detection system based on correlation analysis[D]. Hefei: China University of Science and Technology, 2016.
[5] 張銳, 楊吉云. 基于權(quán)限相關(guān)性的 Android惡意軟件檢測[J].計算機應(yīng)用,2014, 34(5):1322-1325. ZHANG R, YANG J Y. Android malware detection based on permission relevance[J]. Journal of Computer Applications,2014, 34(5):1322-1325.
[6] 黃梅根, 曾云科. 基于權(quán)限組合的Android竊取隱私惡意應(yīng)用檢測方法[J].計算機應(yīng)用與軟件,2016,33(9):320-333. HUANG M G, ZENG Y K. Based on the combination of authority Android steal privacy application detection method[J].Computer Applications and Software, 2016,33(9):320-333.
[7] ENCK W, GILBERT P, CHUN B G, et al. TaintDroid: an information flow tracking system for real-time privacy monitoring on smartphones[C]//Usenix Symposium on Operating Systems Design and Implementation(OSDI 2010). 2010:393-407.
[8] ZHANG Y, YANG M,XU B, et al. Vetting undesirable behaviors in Android apps with permission use analysis[C]//The 20th ACM Conference on Computer and Communications Security. 2013: 611-622.
[9] The developer’s guide[EB/OL]. https://developer.android.google. cn/guide/index.html.
[10] 楊歡, 張玉清, 胡予濮, 等. 基于權(quán)限頻繁模式挖掘算法的Android惡意應(yīng)用檢測方法[J]. 通信學報, 2013,34(Z1):106-115. YANG H, ZHANG Y Q, HU Y P, et al. Android malicious application detection method based on privilege frequent pattern mining algorithm[J]. Journal on Communications,2013,34(Z1):106-115.
[11] HUANG J J, ZHANG X Y, TAN L. Detecting sensitive data disclosure via bi-directional text correlation analysis[C]//The 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering. 2016:169-180.
[12] AKSHAY N, PRATEEK S. The curse of 140 characters: evaluating the efficacy of SMS spam detection on Android[C]//The 3rd ACM workshop on Security and Privacy in Smartphones & Mobile Devices. 2013:33-42.
[13] 蔡澤廷, 姜梅. 基于權(quán)限的樸素貝葉斯Android惡意軟件檢測研究[J].電腦知識與技術(shù), 2013,9(14):3288-3291. CAI Z T, JIANG M. Research on naive bayesian Android malware detection based on permission[J].Computer Knowledge and Technology,2013,9(14):3288-3291.
[14] VirusShare.com. Beacause sharing is caring[EB/OL]. https://virusshare. com/.
Research on Android malware detection based on permission and behavior
ZHANG Xiao-min1, LUI Jing1,2,3, ZHUANG Jun-xi1,2,3, LAI Ying-xu1,2,3
(1. Faculty of Information Technology, Beijing University of Technology, Beijing 100124, China; 2. Beijing Key Laboratory of Trusted Computing, Beijing University of Technology, Beijing 100124, China; 3. National Engineering Laboratory for Critical Technologies of Information Security Classified Protection, Beijing University of Technology, Beijing 100124, China)
For the Android platform malicious application, a method of mapping behavior to privilege characteristics by combining static privilege feature analysis and dynamic behavior analysis was proposed, and association analysis algorithm was used to dig out the association rules between privilege features. Feature as a naive Bayesian classification algorithm input, a malicious application detection model was established. Finally, the experiment verify the effectiveness and accuracy of the method.
Android system, security mechanism, permissions feature, classifier
TP309
A
10.11959/j.issn.2096-109x.2017.00159
張驍敏(1990-),男,山西洪洞人,北京工業(yè)大學碩士生,主要研究方向為Android軟件安全。
劉靜(1978-),女,北京人,碩士,北京工業(yè)大學講師,主要研究方向為網(wǎng)絡(luò)安全、可信計算。
莊俊璽(1981-),女,河南新鄉(xiāng)人,北京工業(yè)大學講師,主要研究方向為網(wǎng)絡(luò)安全、可信計算等。
賴英旭(1973-),女,遼寧撫順人,博士,北京工業(yè)大學教授,主要研究方向為網(wǎng)絡(luò)接入控制、病毒防御技術(shù)、網(wǎng)絡(luò)安全工程、可信計算理論及其應(yīng)用。
2016-12-02;
2017-03-02。通信作者:賴英旭,laiyingxu@bjut.edu.cn
北京市自然科學基金資助項目(No.4162006)
Foundation Item: The Natural Science Foundation of Beijing (No.4162006)