龔華堂
摘要: 為了能夠更精準(zhǔn)檢測(cè)惡意應(yīng)用軟件,保證計(jì)算機(jī)或個(gè)人移動(dòng)中終端的數(shù)據(jù)安全以及個(gè)人財(cái)產(chǎn)安全,需要對(duì)傳統(tǒng)的惡意應(yīng)用軟件檢測(cè)方法進(jìn)行改良,因此基于決策樹(shù)對(duì)惡意應(yīng)用軟件檢測(cè)方法進(jìn)行研究。研究基本的決策樹(shù)算法,分析得到?jīng)Q策樹(shù)算法在惡意應(yīng)用軟件檢測(cè)過(guò)程中的兩種應(yīng)用方式,并分別闡述CART決策樹(shù)生成算法與CART決策樹(shù)剪枝算法的應(yīng)用原理。提取數(shù)據(jù)集中的樣本特征、構(gòu)建相應(yīng)的樣本特征數(shù)據(jù)集,基于決策樹(shù)進(jìn)行相應(yīng)的樣本特征篩選,并研究該算法的訓(xùn)練方法。最后設(shè)計(jì)實(shí)驗(yàn),驗(yàn)證基于決策樹(shù)的惡意應(yīng)用軟件檢測(cè)方法達(dá)成了研究目的,具備算法的優(yōu)越性和實(shí)用性。
關(guān)鍵詞:決策樹(shù);惡意應(yīng)用軟件;Android系統(tǒng)
中圖分類(lèi)號(hào):TP311? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)12-0049-02
人們?cè)谑褂檬謾C(jī)和電腦時(shí),必然離不開(kāi)對(duì)應(yīng)用軟件的操作,因此由應(yīng)用軟件衍生而來(lái)的惡意軟件就成了當(dāng)前互聯(lián)網(wǎng)和計(jì)算機(jī)最重要的威脅。如果放任惡意軟件在計(jì)算機(jī)中運(yùn)行,很有可能對(duì)計(jì)算機(jī)系統(tǒng)本身造成威脅[1]。因此想要保證互聯(lián)網(wǎng)環(huán)境的安全性,就需要首先確保個(gè)人設(shè)備中不會(huì)混入惡意應(yīng)用程序,這就需要相關(guān)研發(fā)人員對(duì)于能夠檢測(cè)惡意應(yīng)用軟件的系統(tǒng)進(jìn)行研究。因此本文使用決策樹(shù)對(duì)惡意應(yīng)用軟件檢測(cè)方法進(jìn)行研究。
1 決策樹(shù)算法研究
本文的決策樹(shù)主要用于檢測(cè)惡意應(yīng)用軟件,因此使用CART決策樹(shù)作為本文的算法。CART決策樹(shù)是一個(gè)樹(shù)狀的結(jié)構(gòu),通過(guò)基尼指數(shù)的檢驗(yàn),測(cè)試特征的不同,通過(guò)根節(jié)點(diǎn)逐一分裂,如此在分裂的過(guò)程中收集性狀特征,逐漸達(dá)到子節(jié)點(diǎn)[2]。
在檢測(cè)惡意應(yīng)用軟件時(shí),需要兩種對(duì)于CART決策樹(shù)的應(yīng)用方式,其一便是在遍歷惡意軟件時(shí)的CART決策樹(shù)生成算法,CART決策樹(shù)生成算法是CART回歸樹(shù)中最簡(jiǎn)單的特征劃分算法,使用了最小平方化的原則,以完成二叉樹(shù)的構(gòu)建[3]。首先輸入訓(xùn)練集,終止所有已知條件,輸出CART決策回歸樹(shù)[f(x)],此時(shí)應(yīng)通過(guò)以下公式選擇最優(yōu)切分變量:
其中[j]表示所求的最優(yōu)切分變量;[s]表示待切分點(diǎn);通過(guò)將所有最優(yōu)切分變量遍歷,得到所有能夠切分點(diǎn)子樹(shù)樹(shù)枝,并得到公式(1)中數(shù)值最小的切分插入點(diǎn)[(j,s)]。
需要將已經(jīng)選定的[(j,s)]點(diǎn)劃分出相應(yīng)的區(qū)域,并輸出切分點(diǎn)的最優(yōu)變量值,此時(shí)得到的只是區(qū)域最優(yōu)變量,若想要計(jì)算出全局最優(yōu)解,還需要不斷重復(fù)以上兩個(gè)步驟的遞歸程序,直至滿(mǎn)足性狀特征條件。設(shè)定每一個(gè)性狀特征都是一個(gè)子樹(shù)樹(shù)葉,就能夠得到如下所示的決策樹(shù)生成表達(dá)式:
式中,[M]表示輸入空間的總個(gè)數(shù),即該決策樹(shù)將空間劃分為[M]個(gè)不相交的區(qū)域[R1,R2,R3,…,RM];[m]則表示每個(gè)區(qū)域的一個(gè)子樹(shù)葉片,且滿(mǎn)足[x∈Rm]。
CART決策樹(shù)的應(yīng)用方式是在檢測(cè)到惡意應(yīng)用軟件刪除以上過(guò)程中生成數(shù)據(jù)時(shí)所需要的CART決策樹(shù)剪枝算法,剪枝的過(guò)程實(shí)際上就是一個(gè)將算法簡(jiǎn)化的過(guò)程,檢測(cè)惡意應(yīng)用軟件的目的達(dá)成以后,就需要?jiǎng)h除一些已經(jīng)不需要的底端子樹(shù),因此需要在CART決策應(yīng)用樹(shù)中先后進(jìn)行兩步操作[4]。決策樹(shù)的剪枝操作需要從底端開(kāi)始,逐步操作至根節(jié)點(diǎn),就能夠獲得經(jīng)過(guò)修剪的決策樹(shù)[{T0,T1,T2,…,Tn}]。可以通過(guò)驗(yàn)證法,交叉驗(yàn)證獨(dú)立集合中的決策樹(shù),對(duì)其進(jìn)行測(cè)試,選擇一條最優(yōu)的子樹(shù)[5]。
2 惡意應(yīng)用軟件檢測(cè)方法研究
2.1 特征向量的提取和構(gòu)建
在研究檢測(cè)方法時(shí),為了方便設(shè)計(jì)算法以及驗(yàn)證算法的準(zhǔn)確性,均需要首先構(gòu)建數(shù)據(jù)集,在本文中,構(gòu)建數(shù)據(jù)集時(shí)需要大量的良性應(yīng)用軟件和惡意應(yīng)用軟件,使良性應(yīng)用軟件和惡意應(yīng)用軟件達(dá)到1:1的比例。在數(shù)據(jù)集中提取特征向量并構(gòu)建基于決策樹(shù)的類(lèi)別特征。
在得到了.txt的數(shù)據(jù)集集合后,就能夠?qū)υ摂?shù)據(jù)集中的所有文件名稱(chēng)進(jìn)行操作,通過(guò)讀取和去重,能夠獲得數(shù)據(jù)及樣本的特征向量,并與數(shù)據(jù)集中的每一個(gè)樣本比對(duì)。若存在與之相仿的文件則標(biāo)注為1,若不存在與之相對(duì)應(yīng)的文件則標(biāo)注為0,以1和0作為樣本特征的標(biāo)簽,并以此構(gòu)建樣本的特征向量集合。獲得標(biāo)簽后,還需要再次處理已經(jīng)集結(jié)為集合的特征文件,以便之后的樣本訓(xùn)練。假設(shè)特征數(shù)據(jù)集中共有N個(gè)樣本,可以設(shè)計(jì)樣本總體特征與樣本單體特征的對(duì)比函數(shù)關(guān)系式,獲取了特征向量的維度分析結(jié)果之后,需要首先對(duì)該特征向量維度進(jìn)行壓縮操作,之后再進(jìn)行特征的判別。
2.2 基于決策樹(shù)的特征篩選
在上文計(jì)算得到特征向量之后,還需要基于決策樹(shù)對(duì)這些向量進(jìn)行特征的篩選,以尋找到混雜在良性應(yīng)用軟件之中的惡意應(yīng)用軟件,本文使用特征重要度的度量進(jìn)行特征篩選。對(duì)于上文中構(gòu)建的數(shù)據(jù)集,假設(shè)其中共有y個(gè)樣本,其中惡意應(yīng)用軟件在樣本集中的比例為[p2],則此時(shí)可以使用基尼指數(shù)進(jìn)行樣本集中CART決策樹(shù)的生成操作。由此,對(duì)樣本特征數(shù)據(jù)集所得到相應(yīng)的特征進(jìn)行評(píng)分,以評(píng)分進(jìn)行篩選,其篩選過(guò)程如下所示:
其中,[F1,F(xiàn)2,…,F(xiàn)N]表示數(shù)據(jù)特征集合;[FS1,F(xiàn)S2,…,F(xiàn)Sk]表示這些數(shù)據(jù)集合中各項(xiàng)數(shù)據(jù)所對(duì)應(yīng)的評(píng)分。此時(shí)應(yīng)設(shè)置一個(gè)特征閾值,若超過(guò)閾值,則可以將其篩選出來(lái)。其中[FSk]就表示第k個(gè)被篩選出來(lái)的特征。
2.3 算法訓(xùn)練集成方法研究
將以上特征的提取與篩選進(jìn)行整合之后,就可以設(shè)計(jì)該惡意應(yīng)用軟件的檢測(cè)方法如圖1所示。
如上圖所示,將上文中的樣本特征集合分別進(jìn)行訓(xùn)練并將其分類(lèi),通過(guò)對(duì)樣本的劃分,可以得到整個(gè)算法的訓(xùn)練集,將這些訓(xùn)練集統(tǒng)一測(cè)試,得到Roting的結(jié)果,經(jīng)過(guò)投票處理之后,對(duì)各個(gè)子結(jié)果統(tǒng)一合并,才能得到最終的結(jié)果。將最終的結(jié)果輸出,就可以將此作為一個(gè)數(shù)據(jù)集中惡意應(yīng)用軟件和良性應(yīng)用軟件的評(píng)判結(jié)果。
3 實(shí)驗(yàn)設(shè)計(jì)
為了確定本文研究的基于決策樹(shù)的惡意應(yīng)用軟件檢測(cè)方法是否能夠達(dá)成研究目的,在檢測(cè)精度、檢測(cè)過(guò)后的算法冗余度、檢測(cè)效率等方面的綜合成績(jī)優(yōu)于傳統(tǒng)的幾種算法,設(shè)計(jì)對(duì)比實(shí)驗(yàn)進(jìn)行驗(yàn)證。
3.1 實(shí)驗(yàn)環(huán)境設(shè)置
本實(shí)驗(yàn)在設(shè)置實(shí)驗(yàn)環(huán)境時(shí)應(yīng)分為計(jì)算機(jī)的測(cè)試環(huán)境與移動(dòng)通信設(shè)備的測(cè)試環(huán)境,基本的環(huán)境參數(shù)如下所示:計(jì)算機(jī)設(shè)備包括Intel Core -2440(八核)i7-4230 5.1GHz 的CPU、8GB運(yùn)行內(nèi)存、MS SQL Server 2012惡意軟件樣本數(shù)據(jù)庫(kù);個(gè)人移動(dòng)端包括Core i7-2550 CPU(八核)4.20 GHz處理器、8GB運(yùn)行內(nèi)存、Weka3.8軟件環(huán)境。使用Python軟件將上文中研究的檢測(cè)方法編寫(xiě)出來(lái),裝載于計(jì)算機(jī)設(shè)備中,再利用Weka軟件將以上程序?qū)雮€(gè)人移動(dòng)終端中,作為實(shí)驗(yàn)中的惡意應(yīng)用軟件檢測(cè)程序。設(shè)置惡意應(yīng)用軟件樣本數(shù)據(jù)集,收集2000個(gè)軟件樣本作為樣本數(shù)據(jù),其中200個(gè)為惡意應(yīng)用軟件。將這500個(gè)軟件樣本分為數(shù)量不一的10組,每組的良性應(yīng)用軟件和惡意應(yīng)用軟件數(shù)量不一,分組將這些應(yīng)用軟件裝載進(jìn)計(jì)算機(jī)設(shè)備和個(gè)人移動(dòng)終端中。分別使用本文研究的基于決策樹(shù)的惡意應(yīng)用軟件檢測(cè)方法、傳統(tǒng)的基于隨機(jī)森林算法的惡意應(yīng)用軟件方法、基于機(jī)器學(xué)習(xí)的惡意應(yīng)用軟件方法這三種方法對(duì)以上的惡意應(yīng)用軟件進(jìn)行檢測(cè)。通過(guò)對(duì)檢測(cè)精度以及檢測(cè)過(guò)后的算法冗余度進(jìn)行檢測(cè),判斷其算法的實(shí)用性及優(yōu)越性。
3.2 實(shí)驗(yàn)結(jié)果分析
通過(guò)以上四個(gè)公式的計(jì)算,可以得到四組對(duì)于惡意應(yīng)用軟件檢測(cè)算法實(shí)用性的衡量數(shù)據(jù),使用Matlab軟件對(duì)其進(jìn)行分析整理。
通過(guò)統(tǒng)計(jì)能夠得到如表1所示的實(shí)驗(yàn)結(jié)果。
通過(guò)表1可以得知,在以上10次測(cè)試的精度檢測(cè)中,基于決策樹(shù)的惡意應(yīng)用軟件檢測(cè)方法高于基于隨機(jī)森林算法的惡意應(yīng)用軟件檢測(cè)方法,卻與基于機(jī)器學(xué)習(xí)的惡意應(yīng)用軟件檢測(cè)方法精度相仿;在算法冗余度的測(cè)試中,本文研究的算法與基于隨機(jī)森林算法的惡意應(yīng)用軟件檢測(cè)方法相差不大,卻遠(yuǎn)高于基于機(jī)器學(xué)習(xí)的惡意應(yīng)用軟件檢測(cè)方法?;诰C合考慮,本文研究的算法擁有較高的檢測(cè)精度,在檢測(cè)過(guò)后算法冗余度的計(jì)算中也冗余量較少,因此相較于其他兩種算法具備更好的實(shí)用性和優(yōu)越性。
4 結(jié)束語(yǔ)
本文為了解決原始的惡意應(yīng)用軟件檢測(cè)方法應(yīng)用效果不理想的問(wèn)題,提出了一種基于決策樹(shù)的惡意應(yīng)用軟件檢測(cè)方法,對(duì)決策樹(shù)算法進(jìn)行了簡(jiǎn)要的分析,并將這種算法帶入到了惡意應(yīng)用軟件檢測(cè)方法中。對(duì)比實(shí)驗(yàn)中通過(guò)對(duì)樣本數(shù)據(jù)的檢測(cè)對(duì)比分析,驗(yàn)證了該種惡意應(yīng)用軟件檢測(cè)方法的實(shí)用性和優(yōu)越性。
參考文獻(xiàn):
[1] 馮垚,王金雙,張雪濤.基于特征生成方法的Android惡意軟件檢測(cè)方法[J].信息技術(shù)與網(wǎng)絡(luò)安全,2020,39(11):8-13.
[2] 管峻,劉慧英,毛保磊,等.基于API配對(duì)的Android惡意應(yīng)用檢測(cè)[J].西北工業(yè)大學(xué)學(xué)報(bào),2020,38(5):965-970.
[3] 超凡,楊智,杜學(xué)繪,等.基于深度神經(jīng)網(wǎng)絡(luò)的Android惡意軟件檢測(cè)方法[J].網(wǎng)絡(luò)與信息安全學(xué)報(bào),2020,6(5):67-79.
[4] 陳怡,唐迪,鄒維.基于深度學(xué)習(xí)的Android惡意軟件檢測(cè):成果與挑戰(zhàn)[J].電子與信息學(xué)報(bào),2020,42(9):2082-2094.
[5] 龐夢(mèng)洋,索中英,鄭萬(wàn)澤,等.基于RS-CART決策樹(shù)的航空發(fā)動(dòng)機(jī)小樣本故障診斷[J].航空動(dòng)力學(xué)報(bào),2020,35(7):1559-1568.
【通聯(lián)編輯:張薇】