王雪敬
摘要:Android操作系統(tǒng)是當(dāng)今最流行的智能手機操作系統(tǒng),Android平臺的惡意軟件也急劇增長,而目前仍然沒有十分有效的手段對Android惡意軟件進(jìn)行檢測,該文通過分析Android惡意軟件并獲取特征,采用機器學(xué)習(xí)算法Xgboost對Android惡意軟件進(jìn)行檢測分類。選取Permission、Intent和API作為特征屬性并進(jìn)行優(yōu)化選擇,用Xgboost算法對特征集進(jìn)行訓(xùn)練和測試,得到最終分類結(jié)果。實驗結(jié)果表明,提出的基于檢測方法有較好的檢測準(zhǔn)確率和較低的誤報率。
關(guān)鍵詞:Xgboost;Android;惡意軟件;特征提取;檢測分類
中圖分類號:TP393.08? ? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2019)18-0288-03
Abstract:Android operating system is the most popular smartphone operating system nowadays. Malware on Android platform is also growing rapidly. At present, there is still no very effective means to detect Android malware. By analyzing the characteristics of Android malware, machine learning algorithm Xgboost is used to detect and classify Android malware. Extract Permission,Intent and API as feature attributes and select the optimal feature subset by feature selection algorithm . Xgboost algorithm is used to detect and classify Android malware. The experimental results show that thedetection method proposed have better accuracy of detection and lower false positive rate.
Key words: Xgboost; Android; malware; feature extraction; detection classification
1 引言
Android操作系統(tǒng)由于其開源性、兼容性和市場的開放性,成了當(dāng)今最流行的智能手機操作系統(tǒng)。各種各樣的應(yīng)用軟件給人們的生活提供了極大的便利,然而多種類型的Android惡意軟件也隨之而來。Android智能終端帶來的安全問題日益嚴(yán)重,造成用戶的隱私泄露和經(jīng)濟損失等問題,給用戶帶來了非常多的困擾。因此,對惡意軟件檢測研究具有重要的意義,如何有效檢測出惡意軟件已成為目前的研究熱點。
目前,Android惡意軟件檢測的方法有靜態(tài)檢測、動態(tài)檢測以及動靜態(tài)相結(jié)合的混合檢測方法[1]。由于機器學(xué)習(xí)算法的普遍應(yīng)用,許多學(xué)者試著借助機器學(xué)習(xí)的算法對Android 惡意軟件檢測研究。文獻(xiàn)[2]提出一種基于權(quán)限相關(guān)性的惡意軟件檢測方法,通過對樸素貝葉斯改進(jìn)形成分類器,實現(xiàn)了對惡意軟件初步的快速檢測,缺點是只采用單一的特征,造成檢測效果不佳。文獻(xiàn)[3]提出了一種基于SVM(Support Vector Machine )的檢測方法,利用高危的權(quán)限組合和API調(diào)用作為特征屬性,建立SVM分類器,從而自動分類惡意和良性軟件。文獻(xiàn)[4]提出了一種基于沙盒的惡意軟件動態(tài)分類模型,使用逆向工具在Android 的apk中注入API監(jiān)視代碼,在沙盒中運行Android軟件并實時監(jiān)測API調(diào)用,故在沙盒中模擬應(yīng)用軟件的運行過程,從而達(dá)到檢測惡意軟件的目的,但是這種方法資源開銷很大。文獻(xiàn)[5]提出了一個高效系統(tǒng)的信息流跟蹤工具TaintDroid,它可以同時跟蹤應(yīng)用程序的敏感數(shù)據(jù)的多個擴散途徑,實現(xiàn)了對多種敏感數(shù)據(jù)泄露源點的追蹤。文獻(xiàn)[6]設(shè)計了Android軟件行為的動態(tài)監(jiān)控框架,通過實驗分別對SVM、DT、k-近鄰和NB四種算法進(jìn)行評價。文獻(xiàn)[7]采用動靜態(tài)結(jié)合的方法提取三種類型的特征,然后設(shè)計了一種三層混合系綜算法(Triple Hybrid Ensemble Algorithm, THEA)。然后通過THEA算法實現(xiàn)了Androdect檢測工具對惡意軟件的檢測,但此方法在技術(shù)方面比較有難度。
目前的惡意軟件檢測方法在檢測準(zhǔn)確率、檢測誤報率和復(fù)雜度等方面還存在一些不足。本文提出基于Xgboost的Android惡意軟件檢測分類方法,通過逆向工程對Android 應(yīng)用軟件進(jìn)行處理,獲取Permission、Intent和API三種特征作為特征屬性,并運用特征選擇算法去除冗余的特征,得到的最優(yōu)特征子集。采用十折交叉驗證法訓(xùn)練分類器并獲取分類結(jié)果。實驗表明該分類檢測方法具有較好的檢測準(zhǔn)確率和較低的誤報率。
2 基于Xgboost的檢測方法
2.1 Xgboost算法
Xgboost是在GBDT(Gradient Boosting Decision Tree)基礎(chǔ)上發(fā)展起來的,全名是eXreme Gradient Boosting,Tianqi Chen于2015年提出的[8]。Xgboost使用多種策略去防止出現(xiàn)過擬合,如正則化項、Shrinkage and Column Subsampling等。在Xgboost集成學(xué)習(xí)框架中,直接影響其分類性能的主要有參數(shù)的收縮步長(shrinkage)和子節(jié)點中最小樣本權(quán)重閾值(min_child_weight)。過小的shrinkage會導(dǎo)致算法過擬合,較大的shrinkage導(dǎo)致算法無法收斂,對于min_child_weight,過小會導(dǎo)致算法過擬合,過大的mini_child_weight將會導(dǎo)致算法對線性不可分?jǐn)?shù)據(jù)的分類性能。Xgboost支持并行化,有很快的訓(xùn)練速度。Xgboost的目標(biāo)函數(shù)的優(yōu)化是利用損失函數(shù)關(guān)于待求函數(shù)的二階導(dǎo)數(shù)。
2.2 方法設(shè)計
本文提出的基于Xgboost的Android惡意軟件檢測方法示意圖如圖1所示。該方法主要有特征向量提取、特征優(yōu)化和檢測分類3個階段組成。詳細(xì)的設(shè)計過程如下:
①運用反編譯工具apktool[9]反編譯apk文件得到AndroidManifest.xml文件和smali文件。
②選取Permission、Intent和API作為特征屬性,然后提取屬性值。根據(jù)提取的屬性值,統(tǒng)計出每個屬性值的出現(xiàn)次數(shù)并進(jìn)行排序,使用頻率較高的屬性值組合作為特征集合。
③根據(jù)組成的特征集合,把apk文件提取出的屬性值與之對比,生成相應(yīng)的特征向量集合。
④使用特征選擇算法對特征向量集合進(jìn)行特征屬性選擇并排序,根據(jù)排序的結(jié)果選取更更具有代表性的特征屬性集合并生成最優(yōu)的特征子集。
⑤按照十折交叉驗證,將特征向量提取階段生成的最優(yōu)特征子集輪流地以9:1的比例劃分為訓(xùn)練集和測試集,輸入到Xgboost分類器中進(jìn)行訓(xùn)練和測試,并計算出分類準(zhǔn)確率和誤報率。
2.3 特征向量提取
在特征向量提取模塊首先進(jìn)行逆向分析,提取apk文件中的Permission、Intent和API作為特征,特征量化后構(gòu)造特征向量,最后將全部的特征向量合并為數(shù)據(jù)集。獲取Permission、Intent和API的過程以及apk文件的反編譯結(jié)果如圖2、圖3所示。部分常見的Permission、Intent和高危API如表1所示。
具體處理過程設(shè)計如下:
3 實驗結(jié)果與分析
3.1 樣本來源和實驗環(huán)境
在本文實驗中共采集了3260個樣本,其中良性軟件2000個,來源于Google 官方應(yīng)用市場Google Play[10],包含所有應(yīng)用類別。惡意軟件來源于Android 惡意軟件基因組項目(Android malware genome project)[11],共計1260個樣本,覆蓋惡意應(yīng)用家族的所有類別。
實驗主機配置為 Intel(R) Core(TM) i5-7400 CPU @ 3.00 GHz,內(nèi)存為4GB,特征的提取以及檢測分類通過Python語言編程來實現(xiàn),特征的優(yōu)化過程是在Weka[12]下完成。
3.2 實驗結(jié)果分析
本文通過實驗來驗證所提出方法的分類效果。采用十折交叉驗證法,將獲得的最優(yōu)樣本集分為10個部分,輪流將其中1個部分作為測試樣本,其它9部分為訓(xùn)練樣本,實驗結(jié)果取10次平均值。
為驗證Xgboost對Android惡意軟件分類的效果,將Xgboost分別與Android 惡意軟件檢測中常用的機器學(xué)習(xí)算法RF、SVM和GBDT進(jìn)行對比,訓(xùn)練4種分類器,并對測試集分類,獲得最終分類結(jié)果。本文所采用的評估指標(biāo)是準(zhǔn)確率和誤報率。實驗結(jié)果如表2所示。
4 結(jié)論
針對Android平臺中惡意軟件泛濫問題以及現(xiàn)有方法檢測的效果不是很好等問題,提出了基于Xgboost的Android惡意軟件檢測方法。在特征屬性選擇方面,選取了Permission、Intent和API三個特征屬性,有效增強了對Android軟件的區(qū)分度。實驗結(jié)果顯示出該分類方法有較高的分類精度,具有良好的分類效果。
參考文獻(xiàn):
[1] Qing SH. Research progress on Android security. Ruan Jian Xue Bao/Journal of Software, 2016,27(1):45?71 (in Chinese). http://www.jos.org.cn/1000-9825/4914.html
[2] ZHANG R, YANG J Y. Android malware detection based on permission relevance[J]. Journal of Computer Applications,2014, 34(5):1322-1325.
[3] Li W, Ge J, Dai G. Detecting Malware for Android Platform: An SVM-Based Approach[C]// IEEE International Conference on Cyber Security and Cloud Computing. Piscataway, New Jersey, USA: IEEE Press, 2015: 464-469.
[4] 趙洋,胡龍,熊虎,等. 基于沙盒的Android惡意軟件動態(tài)分析方案[J]. 信息網(wǎng)絡(luò)安全,2014,(12):21-26.
[5] Enck W, Gilbert P, Han S, et al. TaintDroid:An Information-Flow Tracking System for Realtime Privacy Monitoring on Smartphones[C]// ACM Transactions on Computer Systems. New York, New York, USA: ACM Press, 2014:393-407.
[6] 孫潤康,彭國軍,李晶雯,等.基于行為的Android惡意軟件判定方法及其有效性[J].計算機應(yīng)用,2016, 36(4):973-978.
[7] 楊歡,張玉清,胡予淮,等.基于多類特征的Android應(yīng)用惡意行為檢測系統(tǒng)[J].計算機學(xué)報,2014, 37(1):15-27.
[8] TIANQI C, GUESTRIN C. XGBoost: A Scalable Tree Boosting System[C]//KDD '16 Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. USA, California San Francisco: AMC, 2016.
[9] FENG S Q. Android software security and reverse analysis[M]. Beijing: PTPRESS, 2013.
[10] https://play.google.com/store
[11]? JIANG X,ZHOU Y. Dissecting Android malware: characterization and evolution[C]// IEEE Symposium on Security & Privacy. New Jersey, USA: IEEE, 2012: 95-109.
[12] YUAN M Y.Data Mining and Machine Learning: WEKA Application Technology and Practice[M]. Beijing: Tsinghua University Press,2016: 329-344.
【通聯(lián)編輯:代影】