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