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