賈慧 李永忠
摘 要:針對(duì)Android平臺(tái)下惡意軟件侵?jǐn)_問題,提出一種基于權(quán)限—敏感API特征的加權(quán)樸素貝葉斯分類算法的檢測(cè)方案。首先對(duì)Android應(yīng)用程序中的配置文件進(jìn)行解析,然后利用Apktool工具對(duì)APK文件進(jìn)行反編譯,提取出權(quán)限—敏感API特征集,并通過信息增益算法和卡方檢驗(yàn)算法過濾冗余數(shù)據(jù),最后利用加權(quán)樸素貝葉斯分類算法的惡意軟件檢測(cè)模型進(jìn)行分類判斷。實(shí)驗(yàn)結(jié)果證明,該系統(tǒng)能有效提高分類器的效率和惡意軟件的檢測(cè)率。
關(guān)鍵詞:Android;惡意軟件;加權(quán)樸素貝葉斯算法;權(quán)限—敏感API特征
DOI:10. 11907/rjdk. 182748 開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
中圖分類號(hào):TP309 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2019)007-0182-04
Analysis and Detection of Malware Under the Android Platform
JIA Hui, LI Yong-zhong
(School of Computer Science, Jiangsu University of Science and Technology, Zhenjiang 212003,China)
Abstract: Aiming at the problem of malware intrusion under Android platform at present, this paper proposes an Android malware detection scheme based on the weighted naive Bayes classification algorithm based on the permission-sensitive API features. Firstly, the configuration files in the Android application is analyzed,Then the Apktool tool to decompile the APK file is used to extract the permission-sensitive API feature set, and the residual data in the feature set is filtered by the information gain algorithm and the Chi-square test algorithm; Finally, use the weighted naive Bayesian classification algorithm to maliciously The software detection model performs classification and judgment. The experimental results verify that the system can effectively improve the efficiency of the classifier and the detection rate of malware.
Key Words: Android; malware; weighted naive Bayesian algorithm; permissions-sensitive API features
作者簡(jiǎn)介:賈慧(1993-),女,江蘇科技大學(xué)計(jì)算機(jī)學(xué)院碩士研究生,研究方向?yàn)榫W(wǎng)絡(luò)與信息安全;李永忠(1961-),男,碩士,江蘇科技大學(xué)計(jì)算機(jī)學(xué)院教授,研究方向?yàn)榫W(wǎng)絡(luò)安全、嵌入式應(yīng)用。
0 引言
Android系統(tǒng)在互聯(lián)網(wǎng)中占有極大的市場(chǎng)份額,相對(duì)開源的特點(diǎn)使得Android平臺(tái)成為惡意軟件侵襲的重災(zāi)區(qū)。根據(jù)《2018年上半年手機(jī)安全報(bào)告》分析顯示[1],360互聯(lián)網(wǎng)安全中心累計(jì)截獲新增惡意程序樣本1.4億個(gè),Android平臺(tái)新增惡意程序樣本283.1萬個(gè),平均每天截獲新增手機(jī)惡意程序樣本近1.6萬個(gè)。針對(duì)Android平臺(tái)日益嚴(yán)重的安全問題進(jìn)行惡意軟件的檢測(cè)研究具有重要現(xiàn)實(shí)意義。Borja[2]等根據(jù) Android系統(tǒng)的權(quán)限機(jī)制,采用多種分類算法對(duì)惡意軟件進(jìn)行檢測(cè),但其只采用權(quán)限特征,比較單一,不能全面考慮存在的關(guān)聯(lián)特征;文獻(xiàn)[3]提出了一種基于敏感權(quán)限及API的靜態(tài)綜合檢測(cè)法,但該方法比較適合已知的惡意應(yīng)用程序。
為了提高分類算法準(zhǔn)確率,同時(shí)降低分類消耗時(shí)間,本文提出將提取的權(quán)限—敏感API特征作為混合特征集[4],通過信息增益—卡方驗(yàn)證算法過濾特征集中的冗余數(shù)據(jù),提取出比較符合樸素貝葉斯分類器特點(diǎn)的特征集,同時(shí)對(duì)特征屬性進(jìn)行加權(quán),以此提高樸素貝葉斯分類算法對(duì) Android 惡意軟件的檢測(cè)性能。通過收集大量的惡意軟件進(jìn)行對(duì)比實(shí)驗(yàn),結(jié)果證明此方案能明顯提高樸素貝葉斯分類器對(duì)惡意軟件檢測(cè)的效率及準(zhǔn)確率。
1 權(quán)限—敏感API特征集提取
1.1 權(quán)限特征屬性分析與提取
為防止用戶信息被越權(quán)訪問,造成信息泄露[5],Android平臺(tái)提供的權(quán)限機(jī)制是對(duì)應(yīng)用程序訪問系統(tǒng)功能或資源都進(jìn)行相應(yīng)的權(quán)限檢測(cè)[6],同時(shí)要求開發(fā)者在AndroidManifest.xml文件中聲明相對(duì)應(yīng)的〈uses-permission〉標(biāo)簽,用戶在安裝軟件時(shí)需要接受相關(guān)權(quán)限[7]才能完成軟件安裝。Yajin Zhou [8]建立了一個(gè)超過1 200 種Android 惡意軟件的數(shù)據(jù)集,通過對(duì)比良性軟件與惡意軟件中配置文件(AndroidManifest.xml)中的user-permission 權(quán)限標(biāo)簽,發(fā)現(xiàn)惡意軟件調(diào)用敏感權(quán)限行為[9]的次數(shù)明顯比良性軟件要多。比較常見的敏感權(quán)限有SEND_SMS、WRITE_SMS、RECEIVE_SM、CALL_PHONE等權(quán)限標(biāo)簽。惡意軟件為了實(shí)現(xiàn)其功能,必須獲取相應(yīng)的權(quán)限。所以提取Android應(yīng)用程序的配置文件信息很有必要。如果在程序的靜態(tài)配置文件中含有該權(quán)限標(biāo)簽用1表示,不包含則用0表示。權(quán)限特征提取流程如圖1所示。
圖1 權(quán)限特征提取流程
1.2 敏感API特征屬性分析與提取
本文中的API指Android 系統(tǒng)本身所提供的函數(shù)接口[10]。應(yīng)用程序可以通過這些函數(shù)接口訪問和獲取用戶的敏感數(shù)據(jù),例如獲取賬戶信息、手機(jī)照片、發(fā)送扣費(fèi)短信等,這些敏感行為稱之為敏感API。通過對(duì)AndroidManifest.xml文件中的jar包的源代碼進(jìn)行敏感API調(diào)用掃描,發(fā)現(xiàn)惡意軟件樣本中對(duì)getSubscriberId()、getDeviceId()、getNETWORKCountryIso()、getLatitude()等敏感API調(diào)用較多。本文通過KMP 字符串匹配算法[11]對(duì)應(yīng)用程序進(jìn)行敏感 API 調(diào)用匹配,如果在程序的源代碼中含有該敏感API標(biāo)簽用1表示,不包含則用0表示。敏感API特征提取流程如圖2所示。
2 基于權(quán)限相關(guān)性的處理方案
2.1 信息增益算法
信息增益算法[12]通過過濾特征集中的冗余數(shù)據(jù),提取出與類別屬性相關(guān)度較大的特征屬性。通過信息增益算法,當(dāng)權(quán)限—敏感API特征集中某一個(gè)特征屬性對(duì)應(yīng)分類的信息增益值越大,說明該特征屬性對(duì)分類的影響越大,需要提取該特征屬性。相反,信息增益很小則對(duì)正確分類影響不大,但會(huì)降低分類性能,所以要去除這些冗余數(shù)據(jù)[13]。設(shè)置[θ]值為0.2,當(dāng)[Gain(Y)>θ]時(shí),特征集變?yōu)閄與Y的合集,特征屬性 Y 的信息增益計(jì)算公式如下:
[Gain(Y)=I(X1,X2,?,Xm)-E(Y)] (1)
其中
[I(X1,X2,?Xm)=-i=1mP(ci)bP(ci)] (2)
[E(Y)=j=1zXj1+Xj2+…+XjmXI(Xj1+Xj2+?+Xjm)] (3)
公式(1)是計(jì)算特征屬性 Y 與權(quán)限—敏感API分類的信息增益值,[Xi]是訓(xùn)練樣本中對(duì)應(yīng)的分類,m表示分類個(gè)數(shù)。公式(2)是計(jì)算樣本所需的期望信息,其中[P(Ci)]是在樣本空間中該類別占有的比重。公式(3)是計(jì)算樣本空間中特征屬性 Y 的熵。
2.2 卡方檢驗(yàn)
卡方檢驗(yàn)[14]是通過計(jì)算兩個(gè)分類變量之間的卡方值,查表得出其對(duì)應(yīng)概率,判斷這兩個(gè)變量之間是否相互獨(dú)立[15]。四格卡方檢驗(yàn)公式如下:
[X2=(ad-bc)?N(a+b)(c+d)(a+c)(b+d)] (4)
公式(4)中a,b,c,d代表了兩種條件屬性構(gòu)成的4種情況,N 是a,b,c,d頻數(shù)之和。將經(jīng)過信息增益算法處理的特征集作為數(shù)據(jù)輸入,通過公式(4)計(jì)算得出相應(yīng)的卡方值,當(dāng)概率大于0.95時(shí),這兩個(gè)特征屬性就是相關(guān)的,否則就剔除這個(gè)特征屬性。由此可以通過信息增益—卡方檢驗(yàn)得到適合樸素貝葉斯分類器特點(diǎn)的特征集F。
3 木馬檢測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
通過比較幾種常見的檢測(cè)技術(shù),本文提出基于權(quán)限—敏感API特征的樸素貝葉斯分類算法的Android惡意軟件檢測(cè)方案。
3.1 系統(tǒng)整體架構(gòu)
系統(tǒng)分為文件解析、特征提取、數(shù)據(jù)處理、樸素貝葉斯分類算法模型建立和結(jié)果顯示5個(gè)模塊,系統(tǒng)整體架構(gòu)如圖3所示。
圖3 系統(tǒng)架構(gòu)
3.2 文件解析模塊
文件掃描模塊主要對(duì)導(dǎo)入的API文件進(jìn)行解析。首先掃描系統(tǒng)中的文件,然后判斷是否是壓縮形式。如果是壓縮形式,進(jìn)行解壓縮操作。該模塊工作流程如圖4所示。
圖4 文件掃描模塊流程
3.3 數(shù)據(jù)處理模塊
數(shù)據(jù)預(yù)處理的主要目的是對(duì)權(quán)限—敏感API特征集去除冗余特征,以有效提高分類器的性能以及準(zhǔn)確性。本文利用信息增益和卡方檢驗(yàn)組合算法對(duì)提取的組合特征進(jìn)行數(shù)據(jù)預(yù)處理,預(yù)處理流程如圖5所示。
3.4 檢測(cè)模塊
惡意軟件檢測(cè)模塊主要運(yùn)用加權(quán)樸素貝葉斯算法對(duì)樣本中提取的特征集進(jìn)行計(jì)算,判斷是否為惡意軟件。加權(quán)主要是因?yàn)槊總€(gè)特征屬性對(duì)分類的影響不一樣,根據(jù)每個(gè)特征屬性對(duì)類別變量的相關(guān)度量化相應(yīng)的權(quán)重值,以此提高樸素貝葉斯分類算法的分類性能。設(shè)C表示屬性的類別集合,其中有m個(gè)類C(C1,C2,…Cm),利用信息增益算法和卡方檢驗(yàn)算法得到適合樸素貝葉斯分類算法的權(quán)限-敏感API特征集F[(F1,F(xiàn)2,?Fj)],根據(jù)樸素貝葉斯算法定理[16-18]可得:
[P(CiF)=P(Ci)P(FCi)P(F)] (5)
式(5)中,[P(F)]是常數(shù),只需判斷[P(Ci)P(FCi)]的值就可得到概率的值。通過對(duì)每個(gè)特征屬性進(jìn)行相應(yīng)的加權(quán)處理,得到如下公式:
[P(FCi)=k=1jPFkCiWi] (6)
若樣本 F 屬于某一類,只需滿足:
[C(F)=arg maxP(ci)k=1jPFkCiWi]
[(1kj,1im)] (7)
其中,[Wi]是對(duì)應(yīng)特征屬性的權(quán)重系數(shù),相應(yīng)特征屬性的權(quán)重越大該特征屬性就越明顯[19]。權(quán)重系數(shù)[Wi]根據(jù)信息增益算法中的特征屬性Y[(Y1,Y2,?Yp)]進(jìn)行計(jì)算:
[Wi=Gain(Yn)n=1pGain(Yn)] (8)
根據(jù)公式(7),加權(quán)樸素貝葉斯算法可將樣本對(duì)象歸類,從而完成分類并顯示結(jié)果。
4 實(shí)驗(yàn)結(jié)果分析
Android 平臺(tái)對(duì)應(yīng)用軟件的敏感權(quán)限進(jìn)行檢測(cè),運(yùn)行如圖6所示。
本文采用大量的訓(xùn)練樣本進(jìn)行實(shí)驗(yàn)對(duì)比,其中惡意樣本來源于 Contagiodump[20],實(shí)驗(yàn)對(duì)比結(jié)果如表1所示,運(yùn)行結(jié)果如圖7所示。
表1 不同特征集實(shí)驗(yàn)對(duì)比結(jié)果
其中,TP——檢測(cè)正確的惡意軟件樣本數(shù)量;
FN——檢測(cè)錯(cuò)誤的惡意軟件樣本數(shù)量;
FP——檢測(cè)錯(cuò)誤的良性軟件樣本數(shù)量;
TN——檢測(cè)正確的良性軟件樣本數(shù)量;
FPR——正常程序中的誤報(bào)率FPR=[FPFP+TN];
TPR——惡意軟件中的正報(bào)率TPR=[TPTP+FN];
ACC——檢測(cè)率ACC=[TP+TNTP+FN+FP+TN]。
圖7 不同特征集處理實(shí)驗(yàn)對(duì)比
將未處理的權(quán)限—敏感API特征集與剔除冗余數(shù)據(jù)的特征集進(jìn)行比較,進(jìn)一步證明通過信息增益—卡方驗(yàn)證算法提取的特征集能提高樸素貝葉斯分類器性能。實(shí)驗(yàn)對(duì)比結(jié)果如表2所示,運(yùn)行結(jié)果如圖8所示。
表2 不同處理方式實(shí)驗(yàn)對(duì)比結(jié)果
[處理方式\&檢測(cè)率\&FPR\&TPR\&ACC\&未處理\&0.204\&0.853\&0.832\&信息增益\&0.113\&0.860\&0.873\&卡方驗(yàn)證\&0.121\&0.845\&0.876\&信息增益-卡方驗(yàn)證\&0.079\&0.907\&0.915\&]
為評(píng)估本系統(tǒng)工作效率,將本實(shí)驗(yàn)與基于權(quán)限的樸素貝葉斯分類算法的惡意軟件檢測(cè)系統(tǒng)進(jìn)行對(duì)比實(shí)驗(yàn),結(jié)果表明:采用權(quán)限—敏感API特征集明顯提高了樸素貝葉斯分類算法的分類性能。實(shí)驗(yàn)結(jié)果如表3所示。
圖8 不同數(shù)據(jù)處理方式實(shí)驗(yàn)對(duì)比
表3 本系統(tǒng)與不同算法對(duì)比
綜上所述,本文采用基于權(quán)限—敏感API特征集,利用加權(quán)樸素貝葉斯分類算法的惡意軟件檢測(cè)模型,能夠?qū)崿F(xiàn)更加精準(zhǔn)、快速的檢測(cè),達(dá)到預(yù)期效果。
5 結(jié)語
本文使用基于權(quán)限—敏感API特征的樸素貝葉斯分類算法檢測(cè)模型檢測(cè)軟件是否為惡意軟件,使用權(quán)限—敏感API特征集以及信息增益—卡方驗(yàn)證算法,降低了分類消耗時(shí)間,對(duì)特征屬性加權(quán)提高了分類效率,增加了系統(tǒng)檢測(cè)準(zhǔn)確率,達(dá)到了設(shè)計(jì)目的。
參考文獻(xiàn):
[1] 360安全衛(wèi)士. 2018年上半年中國(guó)互聯(lián)網(wǎng)安全告[EB/OL]. http://www.freebuf.com.
[2] BORJA S,IGOR S,LAORDEN C,et al. PUMA: permission usage to detect malware in Android[C]. International Jiont Conference CISIS 12-ICEUTE 12-SOCO 12 Special Sessions. Berlin,Germany:Springer,2012:289-298.
[3] ZHU X L,WANG J F,DU Y,et al. Detecting android malware based on sensitive permissions and function-call graphs[J]. Journal of Sichuan University:Natural Science Edition, 2016,53(3):526-533.
[4] 盛超,魏盛娜. 基于權(quán)限與敏感API的惡意程序檢測(cè)方法[J]. 網(wǎng)絡(luò)通信及安全,2017(1):96-101.
[5] YAN M,PENG X G. Permission detection system based on Android security mechanism[J]. Computer Engineering and Design,2013,34(3):854-858.
[6] 陳偉鶴,邱道龍. 一種增強(qiáng)的Android安全機(jī)制模型[J]. 無線通信技術(shù),2014(3):152-157.
[7] SHI R,JIANGSU N. Detection of malicious application based on improved na?ve Bayesian algorithm Android[J]. Journal of Security and Safety Technology,2016,4(3):39-44.
[8] ZHOU Y J,JIANG X X. Dissecting Android malware: characterization and evolution. north carolina state university[J]. Security and Privacy(SP), IEEE,2012(5):43-46.
[9] ZHOU Y,JIANG X. Dissecting android malware:characterization and evolution[C]. Proceedings of the 2012 IEEE Symposium on Security and Privacy. Washington,D.C.:IEEE Computer Society,2012:95-109.
[10] 邵舒迪,虞慧群,范貴生. 基于權(quán)限和API特征結(jié)合的Android惡意軟件檢測(cè)方法[J]. 計(jì)算機(jī)科學(xué),2017(8):139-141.
[11] 劉磊,李廣力,徐玥,等. 基于移動(dòng)平臺(tái)的異構(gòu)并行字符串匹配算法[J]. 吉林大學(xué)學(xué)報(bào),2017(5):88-92.
[12] 任克強(qiáng),張國(guó)萍. 基于相對(duì)文檔頻的平衡信息增益降維方法[J]. 江西理工大學(xué)學(xué)報(bào),2008(3):92-96.
[13] FEIZOLLAH A, ANUAR N B, SALLEH R, et al. A review on feature selection in mobile malware detection[J].? Digital Investigation, 2015(13):22-37.
[14] 鄭艷梅,鮮茜. 基于權(quán)限信息的 Android 惡意軟件分類檢測(cè)[J]. 現(xiàn)代計(jì)算機(jī)學(xué)報(bào),2018(11):76-79.
[15] ZHANG R, YANG J Y. Android malware detection based on permission correlation[J]. Journal of Computer Applications,2014,34(5):1322-1325.
[16] 張立民,劉峰,張瑞峰.? 一種構(gòu)造系數(shù)的自相關(guān)函數(shù)特征提取算法[J]. 無線電通信技術(shù),2012,38(5):56-59.
[17] MITCHELL T. Machine learning[M]. Beijing:China Machine Press, 2012:112-136.
[18] GOU K X, JUN G X, ZHAO Z. Learning Bayesian network structure from distributed homogeneous data[C]. Eighth ACIS International Conference on Software Engineering, Artificial Intelligence,Networking, and Parallel/Distributed Computing,2007: 250-254.
[19] 居友道. 基于改進(jìn)樸素貝葉斯算法的Android惡意軟件檢測(cè)[D]. 南京:南京郵電大學(xué),2016.
[20] STUTTARD D, PINTO M. The Web application hackers handbook: finding and exploiting security flaws[M]. [S.l. ]. Wiley,2011.
(責(zé)任編輯:杜能鋼)