江蘇省通信服務(wù)有限公司 無(wú)錫網(wǎng)盈分公司 楊樹(shù)春
惡意移動(dòng)應(yīng)用檢測(cè)方法
江蘇省通信服務(wù)有限公司 無(wú)錫網(wǎng)盈分公司 楊樹(shù)春
提出了一種惡意移動(dòng)應(yīng)用檢測(cè)方法,該方法以Android移動(dòng)應(yīng)用為研究對(duì)象,從APK(Android安裝包)文件中靜態(tài)提取出權(quán)限、組件行為和函數(shù)調(diào)用等特征,進(jìn)而采用支持向量機(jī)分類方法,建立分類模型用于識(shí)別惡意應(yīng)用。實(shí)驗(yàn)結(jié)果表明該方法能獲得較好的檢測(cè)精度。
聚類分析; 集成聚類; 惡意應(yīng)用檢測(cè)
移動(dòng)互聯(lián)網(wǎng)移動(dòng)終端的廣泛應(yīng)用,使得移動(dòng)終端上的惡意軟件成為重要的危險(xiǎn)源。這些惡意軟件通常會(huì)通過(guò)植入惡意代碼篡改和采集用戶信息、竊取賬號(hào)、構(gòu)建僵尸網(wǎng)絡(luò)和獲取root權(quán)限等操作,進(jìn)而對(duì)終端使用者和服務(wù)提供者的數(shù)據(jù)資產(chǎn)安全造成了極大危害。此外,Android平臺(tái)由于其開(kāi)放性、優(yōu)秀的性能和易操作性等特點(diǎn),在智能移動(dòng)終端市場(chǎng)具有較高的占有率,但也正由于其開(kāi)放性,易于被惡客篡改和利用,所以出現(xiàn)了數(shù)量巨大、變種較多的惡意Android應(yīng)用。因此,惡意應(yīng)用檢測(cè)成為近年來(lái)移動(dòng)終端安全防護(hù)技術(shù)研究的熱點(diǎn)問(wèn)題之一。為了進(jìn)行惡意應(yīng)用檢測(cè),提高檢測(cè)精度,本文的工作首先通過(guò)靜態(tài)分析方法提取三類應(yīng)用特征,包括權(quán)限特征、組件特征和函數(shù)調(diào)用特征,而后數(shù)據(jù)挖掘方法中支持向量機(jī)(SVM)模型對(duì)給定的樣本建立分類模型,最后將采集自第三方應(yīng)用市場(chǎng)的500款A(yù)ndroid應(yīng)用作為樣本(其中有147款惡意應(yīng)用和353款正常應(yīng)用)進(jìn)行了實(shí)驗(yàn),獲得了較好的檢測(cè)精度。
1.1 檢測(cè)框架
圖1為基于數(shù)據(jù)挖掘的惡意應(yīng)用檢測(cè)框架。給定收集的正常應(yīng)用樣本庫(kù)和惡意應(yīng)用樣本庫(kù),首先通過(guò)靜態(tài)分析方法,對(duì)于Android應(yīng)用的APK(Android安裝包)文件進(jìn)行處理,提取多種類型的特征,包括權(quán)限特征、組件使用特征和函數(shù)調(diào)用特征,建立多類型特征集;其次,采用主成分分析(PCA)方法進(jìn)行特征選??;接著,采用SVM分類方法建立惡意應(yīng)用分類器;最后,對(duì)應(yīng)用分類器測(cè)試樣本進(jìn)行分類,給出樣本的分類結(jié)果。
1.2 特征提取
Xij表示第i個(gè)樣本應(yīng)用的第j個(gè)特征值。
采用靜態(tài)分析方法提取二進(jìn)制程序樣本的特征,本文提取的樣本特征包括組件使用特征、權(quán)限特征、函數(shù)調(diào)用特征等。
假設(shè)Android應(yīng)用可指定的權(quán)限有n個(gè),權(quán)限集為
其中pi為第i個(gè)權(quán)限,n為權(quán)限總數(shù),1≤i≤n,則權(quán)限特征為
若有
假設(shè)Android應(yīng)用包含p個(gè)組件,記為C1,…,C2,…,Cp,則組件使用特征為
則方程組左邊的綜合指標(biāo)Z1,Z2,…,Zm是樣本原先的p個(gè)特征X1, X2,…, Xp對(duì)應(yīng)的m個(gè)主成分,bij是系數(shù)。其中,Zi與Zj(i≠j;i, j=1,2,…, m)相互無(wú)關(guān);Z1是X1, X2,…, Xp的所有線性組合中方差最大的;Z2是與Z1不相關(guān)的X1, X2, …, Xp的所有線性組合中方差最大的;Zm是與Z1, Z2,…,Zm-1都不相關(guān)的X1, X2, …, Xp的所有線性組合中方差最大的。
其中count(Ci)表示組件使用次數(shù),1≤i≤p。
其中βi(0≤i≤m)是線性回歸中變量Zi對(duì)應(yīng)的系數(shù),Y是線性擬合后的值。
其中函數(shù)調(diào)用是應(yīng)用程序與底層系統(tǒng)交互的紐帶,函數(shù)調(diào)用可以獲取用戶的subscriber ID、phone ID、其他類似個(gè)人隱秘信息和下載其他應(yīng)用程序等。
可以采用靜態(tài)分析的方式進(jìn)行特征提取,其步驟如下:
1) 將APK文件解壓縮后獲取其中的lib/*.so文件以及Androidmanifest.xml文件;
2) 從Androidmanifest.xml文件中提取權(quán)限特征和組件使用特征;
3) 將所有的lib/*.so文件進(jìn)行合并產(chǎn)生對(duì)應(yīng)的*.elf文件;
4) 從*.elf文件中得到類別為“func”(*.elf文件中包含的類別)的所有應(yīng)用程序編程接口。
經(jīng)過(guò)主成分分析完成特征選擇后,從樣本庫(kù)中選取部分訓(xùn)練樣本以訓(xùn)練SVM分類器,同時(shí)選取部分測(cè)試樣本作為測(cè)試集以進(jìn)行分類結(jié)果的精度評(píng)估。選取樣本的原則為充分考慮正常應(yīng)用和惡意應(yīng)用的比例,從而使選擇的樣本具有代表性。本文所選取的訓(xùn)練樣本數(shù)據(jù)占總樣本的80%,測(cè)試樣本數(shù)據(jù)占20%。
其中x是空間中某個(gè)點(diǎn),y是中心點(diǎn), ||x -y||2表示x2與中心點(diǎn)y之間的距離平方和,核參數(shù)σ=0.5;錯(cuò)分懲罰因子C=50,采用開(kāi)源的軟件包Libsvm[1]實(shí)現(xiàn)。
1.3 特征選擇
為了從組件使用特征、權(quán)限特征、函數(shù)調(diào)用特征等眾多的特征中確定哪些特征對(duì)于分類有重大影響,采用了基于主成分分析方法進(jìn)行特征選擇。
設(shè)有個(gè)n×p 階的數(shù)據(jù)矩陣是由n 個(gè)樣本組成,其中每條樣本都具有p個(gè)特征,構(gòu)成如下的數(shù)據(jù)矩陣
2.1 實(shí)驗(yàn)設(shè)置
本實(shí)驗(yàn)采集自第三方應(yīng)用市場(chǎng)的500款A(yù)ndroid應(yīng)用進(jìn)行了病毒、蠕蟲(chóng)、木馬等多種分析,經(jīng)過(guò)整理將147款惡意應(yīng)用和353款正常應(yīng)用作為最終的樣本集,樣本集中的這些應(yīng)用覆蓋了娛樂(lè)、教育、體育、衛(wèi)生、新聞、財(cái)經(jīng)等多種類型,具有代表性。所有實(shí)驗(yàn)在內(nèi)存為8 GB RAM,處理器為 Intel(R) core i5 CPU 3.5 GHz的機(jī)器上完成,采用了Java語(yǔ)言實(shí)現(xiàn)了本文提出的基于靜態(tài)分析的特征提取算法完成上述APK樣本的特征提取。為了驗(yàn)證算法有效性,與其他分類算法如后向傳播神經(jīng)網(wǎng)絡(luò)、決策樹(shù)算法C4.5等進(jìn)行比較。
實(shí)驗(yàn)中采用的評(píng)價(jià)標(biāo)準(zhǔn)采用精度precision、召回率recall和平衡F分?jǐn)?shù)F1 score,其中精度計(jì)算方法為正確識(shí)別的異常應(yīng)用個(gè)數(shù)與真實(shí)異常應(yīng)用個(gè)數(shù)的比值;召回率計(jì)算方法為正確識(shí)別的異常應(yīng)用個(gè)數(shù)與識(shí)別到的所有異常個(gè)數(shù)的比值;F1 score計(jì)算方法為精度與召回率乘積的2倍除以精度與召回率之和。
2.2 結(jié)果分析
為了驗(yàn)證本文提出的算法的有效性,將SVM算法與人工神經(jīng)網(wǎng)絡(luò)(ANN)和C4.5的檢測(cè)方法進(jìn)行了比較分析,并且考慮了采用不同特征組合表示應(yīng)用樣本的情況,實(shí)驗(yàn)結(jié)果如表1所示。其中表格中每個(gè)單元格的第一行描述了算法獲得的F1 score,而第二行則是算法的precision和recall值,粗體字表示每一個(gè)特征集刻畫(huà)的樣本取得最佳F1 score值的那個(gè)算法。
表1 不同算法在不同特征集表示樣本中的結(jié)果
從表1中可以看出:
1) SVM分類器幾乎在所有的特征集上的F1 score都優(yōu)于其他兩種分類器;
2) 在考慮用單一特征刻畫(huà)的應(yīng)用樣本情形下,可以發(fā)現(xiàn)采用函數(shù)調(diào)用的方式刻畫(huà)的樣本集上取得的F1 score值最高,優(yōu)于其他兩種特征集下的值,其中基于組件特征的檢測(cè)精度最低,基于權(quán)限特征的惡意應(yīng)用檢測(cè)的精度較高;
3) 從特征組合角度來(lái)說(shuō),基于多個(gè)特征刻畫(huà)的樣本集上取得的F1 score值均高于采用單一特征刻畫(huà)的樣本集取得的值,且對(duì)于組件特征的改善更為明顯。
本文的方法以Android移動(dòng)應(yīng)用為研究對(duì)象,從APK文件中靜態(tài)提取出權(quán)限、組件行為和函數(shù)調(diào)用等特征,進(jìn)而采用支持向量機(jī)分類方法建立分類模型用于識(shí)別惡意應(yīng)用。實(shí)驗(yàn)結(jié)果表明該方法能獲得較好的檢測(cè)精度。不過(guò),目前本文的工作中考慮的特征均為通過(guò)靜態(tài)分析方法獲得的特征,在未來(lái)的工作中可以考慮通過(guò)動(dòng)態(tài)分析的方法獲取一些系統(tǒng)運(yùn)行時(shí)的行為特征,如系統(tǒng)調(diào)用特征、控制流特征等,將對(duì)于進(jìn)一步提高檢測(cè)精度有更多貢獻(xiàn)。
[1]CHANG Chih-chung, LIN Chih-jen. Libsvm-a library for support vector machines[EB/OL].[2015-10-08]. http://www.csie.ntu.edu.tw/~cjlin/libsvm.