鮑美英
基于改進(jìn)決策樹(shù)分類的Android惡意軟件檢測(cè)
鮑美英
(山西大同大學(xué)數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,山西大同 037009)
針對(duì)目前Android手機(jī)惡意軟件越來(lái)越多的問(wèn)題,本文在現(xiàn)有研究的基礎(chǔ)上,設(shè)計(jì)了一個(gè)Android惡意軟件檢測(cè)框架。該框架通過(guò)提取Android應(yīng)用程序的特征屬性,結(jié)合Fisher Score、信息增益和卡方檢驗(yàn)三種特征選擇方法,對(duì)屬性特征進(jìn)行預(yù)處理,然后利用惡意檢測(cè)模塊中的改進(jìn)決策樹(shù)算法對(duì)軟件進(jìn)行分類。通過(guò)實(shí)驗(yàn)仿真,結(jié)果表明使用該檢測(cè)框架檢測(cè)惡意軟件具有較低的誤報(bào)率和較高的精確度。
Android系統(tǒng);惡意軟件;檢測(cè);決策樹(shù)
Android系統(tǒng)是基于Linux內(nèi)核的開(kāi)源系統(tǒng)[1],是目前市場(chǎng)占有量最大的智能手機(jī)平臺(tái)。對(duì)Android手機(jī)惡意軟件[2]的檢測(cè)研究是目前的熱點(diǎn)問(wèn)題。檢測(cè)的方法有多種:靜態(tài)、動(dòng)態(tài)和混合檢測(cè),劉偉[3]等研究了Android平臺(tái)惡意軟件的行為模式,并總結(jié)了惡意軟件的攻擊意圖和攻擊手段。文獻(xiàn)[4]采用多種分類算法檢測(cè)惡意軟件,但所考慮的權(quán)限不能很好反映Android軟件的特性。文獻(xiàn)[5]中提到一個(gè)Andromaly框架,該框架通過(guò)分類器、特征選擇和特征數(shù)量三方面考慮Android平臺(tái)的異常檢測(cè)方法,但當(dāng)時(shí)沒(méi)有足夠的可以測(cè)試的惡意軟件樣本。文獻(xiàn)[6]研究的Amandroid系統(tǒng),采用靜態(tài)分析方法,從數(shù)據(jù)流和控制流確定對(duì)象的指向信息,可生成多種安全分析。文獻(xiàn)[7]通過(guò)靜態(tài)分析提取上下文中權(quán)重較大的API(Application Programming Interface,應(yīng)用程序接口),通過(guò)有向圖解決惡意軟件變種問(wèn)題。謝麗霞[8]提出了基于良性樣本的檢測(cè)模型,該模型在客戶端采集樣本訓(xùn)練信息,在服務(wù)器端檢測(cè)判斷出惡意軟件。
本文實(shí)現(xiàn)了基于改進(jìn)決策樹(shù)分類算法的Android惡意軟件檢測(cè)的框架,該檢測(cè)框架是靜態(tài)檢測(cè),經(jīng)過(guò)對(duì)屬性特征的選擇,然后利用分類算法對(duì)應(yīng)用程序進(jìn)行分類。該框架中屬性特征選擇后還通過(guò)Fisher Score、信息增益和卡方檢驗(yàn)三種分類方法對(duì)這些特征進(jìn)行預(yù)處理,去掉那些對(duì)后期分類影響不大的冗余特征,提高分類的精確度。分類器中的分類算法采用決策樹(shù),但是傳統(tǒng)的決策樹(shù)分類算法不能滿足框架的需求,所以本文對(duì)決策樹(shù)分類算法進(jìn)行了改進(jìn),改進(jìn)后的算法可以達(dá)到較好的分類效果。
近年來(lái)出現(xiàn)了許多Android惡意軟件,安全工作人員對(duì)這些軟件的惡意行為進(jìn)行了總結(jié),主要以惡意扣費(fèi)、資費(fèi)消耗、惡意傳播、遠(yuǎn)程控制[9]、隱私竊取[10]、流氓、誘騙欺詐等行為為主。惡意行為的發(fā)生,主要是通過(guò)用戶安裝、觸發(fā)以及惡意載荷等方式進(jìn)行的。Android操作系統(tǒng)是基于Linux內(nèi)核的[11],不管是哪種惡意方式,在運(yùn)行時(shí)都會(huì)涉及到系統(tǒng)調(diào)用,也即Android通過(guò)應(yīng)用程序接口API來(lái)調(diào)用內(nèi)核操作。
Android應(yīng)用程序由四大組件Activity、Broadcast Receiver、Service和Content Provider組成,應(yīng)用程序進(jìn)行操作的相應(yīng)權(quán)限申請(qǐng)都寫在AndroidManifest. xml配置文件中,而應(yīng)用程序在進(jìn)行系統(tǒng)調(diào)用時(shí)的API都在它的源代碼中,表1列出了部分惡意行為所需的權(quán)限和涉及到的系統(tǒng)調(diào)用API。
表1 部分惡意行為所需權(quán)限及系統(tǒng)調(diào)用APITab.1 the required permissions and system calls API of malicious behavior
2.1系統(tǒng)整體框架
惡意軟件檢測(cè)框架如圖1所示,該框架包括:輸入、特征提取、數(shù)據(jù)預(yù)處理、惡意性判定和輸出五部分,其中各部分詳細(xì)描述如下。
圖1 基于改進(jìn)決策樹(shù)的惡意軟件檢測(cè)框架Fig.1 malware detection framework based on improved decision tree
特征提取:從配置文件AndroidManifest.xml中提取出權(quán)限特征,從程序源代碼中提取出危險(xiǎn)系統(tǒng)調(diào)用API,本文共整理出235種危險(xiǎn)API。
數(shù)據(jù)預(yù)處理:對(duì)特征數(shù)據(jù)去除冗余,去除對(duì)后期分類影響不大的特征,可以提高后期分類的效率。本文采用三種方法Fisher Score、卡方檢驗(yàn)和信息增益進(jìn)行特征選擇,其中Fisher Score評(píng)價(jià)特征對(duì)數(shù)據(jù)結(jié)構(gòu)的保持能力,它可以使類別相同的樣本數(shù)據(jù)投影到特征的近距離處??ǚ綑z驗(yàn)是對(duì)假設(shè)值的驗(yàn)證,它可以去除關(guān)聯(lián)性較大的特征值,降低各屬性之間的相關(guān)度。信息增益進(jìn)行全局特征的選擇,提取對(duì)后期分類具有明顯作用的屬性特征。
惡意性判定:該部分是一個(gè)分類器,其中采用的是改進(jìn)的決策樹(shù)分類算法。對(duì)樣本的屬性特征進(jìn)行評(píng)估,判斷惡意性概率和正常概率的值。
輸入和輸出:輸入是從數(shù)據(jù)庫(kù)中取出一部分Android應(yīng)用程序;輸出是把對(duì)應(yīng)用程序的分類結(jié)果輸出到界面,告訴用戶。
上面是對(duì)檢測(cè)框架各部分功能的描述,下面再給出Android惡意程序檢測(cè)方案的流程,見(jiàn)圖2。
圖2 檢測(cè)方案流程圖Fig.2 flowchart of the detection schemes
首先對(duì)于Android應(yīng)用程序通過(guò)反編譯工具apktool進(jìn)行解壓縮,得到配置文件AndroidManifest. xml和應(yīng)用程序的源代碼,對(duì)配置文件中的權(quán)限申請(qǐng)和源代碼中的系統(tǒng)調(diào)用API進(jìn)行特征提取,然后利用特征選擇方法對(duì)特征數(shù)據(jù)進(jìn)行預(yù)處理,最后利用特征集以及改進(jìn)的決策樹(shù)分類算法建立惡意軟件的檢測(cè)模型,通過(guò)判斷,輸出檢測(cè)的結(jié)果。
2.2改進(jìn)的決策樹(shù)分類算法
傳統(tǒng)的決策樹(shù)分類算法把數(shù)據(jù)樣本分成訓(xùn)練集和測(cè)試集兩部分,利用訓(xùn)練集生成決策樹(shù),采用測(cè)試集測(cè)試決策樹(shù)的精確度,而決策樹(shù)分類的精確度取決于樣本的質(zhì)量,這種通過(guò)一批訓(xùn)練樣本生成的決策樹(shù),精確度很難達(dá)到最優(yōu)。本文對(duì)傳統(tǒng)決策樹(shù)分類算法進(jìn)行改進(jìn),初始狀態(tài)時(shí),不對(duì)數(shù)據(jù)樣本分類,訓(xùn)練集是通過(guò)多次隨機(jī)抽取獲得,每次都構(gòu)建決策樹(shù),并把剩余樣本作為測(cè)試集測(cè)試決策樹(shù)精度,然后進(jìn)行比較,并且根據(jù)它們之間的誤差調(diào)整訓(xùn)練集中的樣本,經(jīng)過(guò)反復(fù)多次迭代測(cè)試,選取精確度最高的作為最終決策樹(shù)。該改進(jìn)算法的具體描述步驟如下:
(1)假定有樣本數(shù)N個(gè),每個(gè)樣本都包含M個(gè)特征屬性;
(2)從N個(gè)樣本中隨機(jī)抽取N1個(gè)作為訓(xùn)練集,剩余的N-N1個(gè)樣本作為測(cè)試集,樣本迭代計(jì)數(shù)器n=0,決策樹(shù)精確度初始值S0=q;
(3)根據(jù)樣本訓(xùn)練集N1生成決策樹(shù)T,樣本迭代計(jì)數(shù)器n=n+1;
(4)對(duì)決策樹(shù)T計(jì)算其精確度Si,若Si>Si-1,則Si-1=Si;
(5)判斷決策樹(shù)兩次迭代結(jié)果的精確度的差是否滿足誤差要求,若滿足,則輸出決策樹(shù);否則,轉(zhuǎn)步驟(6);
(6)判斷樣本迭代次數(shù)n是否小于最大迭代次數(shù)C,若小于轉(zhuǎn)步驟(7),否則輸出決策樹(shù);
(7)對(duì)樣本訓(xùn)練集N1中的樣本進(jìn)行篩選,找出其特征屬性不能很好用于后期分類的樣本,把這些樣本用等量的測(cè)試集中的樣本進(jìn)行替換,這些樣本放回測(cè)試集,由此形成新的訓(xùn)練集和測(cè)試集,測(cè)試集賦值給N1,轉(zhuǎn)步驟(3)。
樣本數(shù)據(jù)包括惡意軟件和正常軟件兩大類,樣本均來(lái)自實(shí)際的網(wǎng)絡(luò)環(huán)境,正常軟件主要來(lái)自官方軟件市場(chǎng)Google Play,惡意軟件主要來(lái)自Virus Share,這是一個(gè)惡意軟件的在線倉(cāng)庫(kù)。
對(duì)于本文提出的檢測(cè)系統(tǒng)模型,通過(guò)對(duì)大量的惡意軟件和正常軟件樣本進(jìn)行處理,其中的一部分用于訓(xùn)練分類器,剩余的樣本數(shù)據(jù)作為測(cè)試分類器的數(shù)據(jù),本文中True positives(TP)表示正常軟件被正確分類的數(shù)目;True negatives(TN)表示惡意軟件被正確分類的數(shù)目;False positives(FP)表示正常軟件被分類器錯(cuò)誤分類為惡意軟件的數(shù)目;False negatives(FN)表示惡意軟件被錯(cuò)誤分類為正常軟件的數(shù)目。結(jié)合分類器的性能評(píng)估指標(biāo),給出如下計(jì)算公式。
上面的公式中,Accuracy表示正常軟件與惡意軟件被分類器正確分類的比例,稱為分類正確率;Precision是分類精度,指所有被分類器判定為惡意軟件的,其中確實(shí)為惡意軟件的比例,這是分類器性能中的重要指標(biāo);FPR表示誤報(bào)率,即所有正常軟件中被錯(cuò)誤分類為惡意軟件的比例;TPR是所有正常軟件能被正確分類的比例,評(píng)估分類器能夠判定出正常軟件的能力。
3.1數(shù)據(jù)是否預(yù)處理對(duì)分類結(jié)果的影響
通過(guò)圖3柱狀圖可以看出,將Fisher Score-卡方檢驗(yàn)-信息增益方法相結(jié)合進(jìn)行數(shù)據(jù)預(yù)處理,剔除冗余數(shù)據(jù),可以提高分類模型的正確率和精確度,并有效降低了誤報(bào)率。
圖3 不同預(yù)處理方式實(shí)驗(yàn)結(jié)果Fig.3 The experimental results of different pretreatment methods
3.2傳統(tǒng)決策樹(shù)與改進(jìn)決策樹(shù)的比較
為了進(jìn)一步提高決策樹(shù)分類算法分類的性能,本文對(duì)決策樹(shù)分類算法進(jìn)行了改進(jìn),從圖4可以看出,對(duì)決策樹(shù)分類算法進(jìn)行改進(jìn)之后,比傳統(tǒng)的決策樹(shù)樹(shù)分類算法在正確率、分類精度和正常樣本的檢出率都有了大幅度提高,而在正常軟件被誤報(bào)為惡意軟件的比率也有所下降,說(shuō)明本文對(duì)算法的改進(jìn)是有效的。
圖4 分類算法的實(shí)驗(yàn)比較Fig.4 The comparison of classification algorithms
并且,圖4中,分類器對(duì)應(yīng)用程序的分類是基于前面對(duì)數(shù)據(jù)進(jìn)行預(yù)處理之后進(jìn)行的,對(duì)比圖3和圖4,通過(guò)數(shù)據(jù)預(yù)處理,再應(yīng)用本文提出的改進(jìn)算法,可以大大提高分類效果。
本文提出了基于改進(jìn)的決策樹(shù)分類算法的Android惡意軟件檢測(cè)框架,并介紹了其中的核心部分和檢測(cè)流程。對(duì)該惡意軟件檢測(cè)框架進(jìn)行了仿真實(shí)驗(yàn),通過(guò)實(shí)驗(yàn)比較發(fā)現(xiàn),基于改進(jìn)的決策樹(shù)分類算法的Android惡意軟件檢測(cè)模型能有效提高惡意軟件的檢測(cè)性能,對(duì)Android應(yīng)用程序的分類判定工作具有實(shí)用價(jià)值。后期主要研究方向包括:實(shí)現(xiàn)樣本分析的自動(dòng)化,通過(guò)網(wǎng)絡(luò)實(shí)現(xiàn)聯(lián)合檢測(cè),提高檢測(cè)惡意軟件的效率。
[1] 石旭東. 基于Android 平臺(tái)的NFC 技術(shù)的研究與實(shí)現(xiàn)[J].軟件, 2013, 34(1): 64-68.
[2] 榮艷冬. Android 軟件權(quán)限系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 軟件, 2014, 35(2): 50-51.
[3] 劉偉, 孫其博. Android平臺(tái)惡意軟件行為模式研究[J]. 軟件, 2012, 33(11): 150-155.
[4] BORJA S, IGOR S, CARLOS L, 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.
[5] SHABTAI A, KANONOV U, ELOVICI Y, et al. “Androma1y”: a Behavioral Malware Detection Framework for Android Devices[J]. Journal of Intelligent Information Systems, 2012, 38(1): 161-190.
[6] WEI F, ROY S, OU X. Amandroid: a precise and general intercomponent data flow analysis framework for security vetting of Android APPS [C]//Proceedings of the 2014 AGM SIGSAC Conference on Computer and Communications Security. New York: ACM, 2014: 1329-1341.
[7] ZHANG M, DUAN Y, YIN H, et al. Semantics-aware Android malware classification using weighted contextual API dependency graphs[C]//Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security. New York: ACM, 2014:1105-1116.
[8] 謝麗霞, 趙彬彬. 基于良性樣本的Android系統(tǒng)惡意軟件檢測(cè)[J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2016, 37(5): 1191-1195.
[9] 汪文彬,楊少輝. 基于短信控制的Android手機(jī)安全系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 軟件, 2015, 36(6): 21-25.
[10] 李淑民. Android 手機(jī)隱私泄露研究[J]. 軟件, 2015, 36(2): 69-72.
[11] 李錚山, 林干, 范文浩, 吳帆. Android的應(yīng)用程序安全評(píng)估系統(tǒng)設(shè)計(jì)[J]. 軟件, 2012, 33(12):287-291.
Android Malware Detection Based on Improved Decision Tree Classification
BAO Mei-ying
(School of Mathmatics and Computer Science, Shanxi Datong University, Datong Shanxi, 037009)
At present, the mobile phone for Android is facing more and more malicious threats, this paper designs an Android malware detection framework. A malicious detection framework is implemented which adopts Android application extraction feature, Fisher Score and information gain and chi-square test as the feature selection method. The attributes are pre processed, and then the improved decision tree algorithm is used to classify the software. The simulation results show that the malware detection framework own lower false alarm rate and higher accuracy.
Android system; Malicious software; Detection; Decision trees
TP311
A
10.3969/j.issn.1003-6970.2017.02.008
國(guó)家自然科學(xué)基金青年科學(xué)基金項(xiàng)目(批準(zhǔn)號(hào):11301312);山西大同大學(xué)大學(xué)生創(chuàng)新創(chuàng)業(yè)項(xiàng)目(批準(zhǔn)號(hào):XDC2016232))
鮑美英,女,(1975-),山西大同人,碩士,副教授,主要研究方向:網(wǎng)格計(jì)算,嵌入式
本文著錄格式:鮑美英. 基于改進(jìn)決策樹(shù)分類的Android惡意軟件檢測(cè)[J]. 軟件,2017,38(2):33-36