馮曉榮,林軍,麥松濤
?。üI(yè)和信息化部電子第五研究所 軟件質(zhì)量工程研究中心,廣東 廣州 510610)
摘要:隨著移動互聯(lián)網(wǎng)應用的不斷普及,移動終端承載了大量的數(shù)據(jù)交互業(yè)務與應用,移動數(shù)據(jù)的安全問題日益凸顯?;?a class="innerlink" href="http://ihrv.cn/tags/C4.5決策樹" title="C4.5決策樹" target="_blank">C4.5決策樹算法對移動數(shù)據(jù)進行文本分類檢測,實現(xiàn)惡意代碼分析。傳統(tǒng)的C4.5文本分類模型中,測試屬性選擇未考慮屬性之間的影響,因此提出了一種改進的基于Boosting算法的C4.5決策樹文本分類模型。該模型在衡量被測屬性最優(yōu)弱假設的重要性時,引入Boosting的權(quán)重系數(shù),每次迭代計算結(jié)束后,自適應調(diào)整權(quán)重值,在降低特征子集屬性冗余度的同時,提高了分類模型的魯棒性。實驗結(jié)果表明,改進的文本分類模型在檢測率和分類準確率上均有一定程度的提高。
關鍵詞:惡意代碼;文本分類;C4.5決策樹;Boosting算法
中圖分類號:TP311文獻標識碼:ADOI: 10.19358/j.issn.1674-7720.2017.08.001
引用格式:馮曉榮,林軍,麥松濤.一種改進的面向移動數(shù)據(jù)安全檢測的文本分類模型[J].微型機與應用,2017,36(8):1-4.
0引言
*基金項目:廣東省省級科技計劃項目(2015A030401023)近年來,隨著移動互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、云計算、大數(shù)據(jù)技術的迅猛發(fā)展,全球數(shù)據(jù)量呈現(xiàn)爆發(fā)式增長。由于移動終端承載了大量的數(shù)據(jù)交互業(yè)務與應用,移動數(shù)據(jù)的安全問題日益凸顯,移動終端設備也成為攻擊者的主要目標之一。如何在海量數(shù)據(jù)中對安全威脅進行快速識別與分類,成為當前信息安全研究亟待解決的問題。
移動終端是大量互聯(lián)應用與服務的承載體,目前主要通過對移動終端設備安全能力檢測及移動應用程序的惡意行為檢測來實現(xiàn)數(shù)據(jù)安全保障。然而,這些安全防護方法都存在較大的局限性,基于移動終端設備的安全能力檢測一般局限于移動終端系統(tǒng)本身,而移動應用程序的檢測主要采用病毒庫的特征匹配,需要隨時更新病毒庫,無法滿足移動大數(shù)據(jù)應用的多樣性和實時動態(tài)特性。
在移動互聯(lián)網(wǎng)應用背景下,針對移動數(shù)據(jù)應用的主要攻擊是面向移動終端設備,包括竊取移動終端上的信息、遠程控制移動設備等,其中,大量惡意攻擊行為通過HTTP請求實現(xiàn)。例如,在移動終端通過HTTP訪問請求注入SQL語句惡意代碼,實現(xiàn)DNS欺騙、ARP欺騙,竊取用戶敏感信息。在服務器端通過HTTP傳遞請求內(nèi)容的方式將用戶敏感信息上傳至服務器,泄露大量隱私數(shù)據(jù)。
在大數(shù)據(jù)應用環(huán)境下移動終端數(shù)據(jù)的信息安全檢測中,機器學習主要應用于解決數(shù)據(jù)分類問題、知識表示及規(guī)則提取、搜索問題和增強學習等方面。其中,利用機器學習技術解決數(shù)據(jù)的分類,區(qū)分異常數(shù)據(jù)和正常數(shù)據(jù),為移動大數(shù)據(jù)的分析提供前提條件。
本文根據(jù)已有的參考文獻中提出的主流文本分類算法的特征[1],結(jié)合移動數(shù)據(jù)的特性,綜合考慮各種算法在移動數(shù)據(jù)分析中的優(yōu)缺點和局限性,提出了一種基于AdaBoost思想的改進型C4.5決策樹文本分類模型,通過對HTTP請求數(shù)據(jù)的特征屬性進行選擇、特征向量化,形成訓練樣本和測試樣本,輸入到分類算法中進行模型訓練、文本分類和結(jié)果驗證,從查準率、誤檢率和準確率三個方面進行比較分析,為今后的文本分析研究提供理論基礎。
1C4.5決策樹算法
1.1特征提取
在機器識別分類算法實現(xiàn)中,數(shù)據(jù)特征向量化是前提條件。對于一個特征集F={f1,f2…,fn},描述特征子集的二進制向量為S={S1,S2…,Sn},其中Si∈{0,1},i=1,2,…,n。Si=1表示第i個特征被選擇,Si=0表示第i 個特征未被選擇[2]。由于特征集中包含很多冗余特征與不相關特征,導致數(shù)據(jù)屬性的維度增加,提高了數(shù)據(jù)計算的時間復雜度和空間復雜度,降低了分類模型的泛化能力。通過過濾的方法進行特征選擇,選擇出與類別相關性最大且具有最小冗余特征的子集,從而達到最優(yōu)分類效果。
1.2C4.5決策樹基本原理
基于機器學習的文本分類方法是將數(shù)據(jù)根據(jù)預先定義的類別,按照一定的規(guī)則進行自動化分類,實現(xiàn)數(shù)據(jù)挖掘。在移動互聯(lián)網(wǎng)環(huán)境下,使用文本分類算法對移動數(shù)據(jù)進行安全檢測,將移動終端本身及移動應用的安全威脅進行有效分類,能夠自適應地學習正常數(shù)據(jù)和異常數(shù)據(jù)行為模式,從而涵蓋更大的安全檢測范圍,具有重要的研究意義。
在機器學習中,決策樹作為一個分類預測模型,代表對象屬性與對象值之間的映射關系。樹中的每個節(jié)點代表某個對象,每個分叉路徑代表某個可能的屬性值,每個葉節(jié)點對應從根節(jié)點到該葉節(jié)點所經(jīng)歷的路徑所表示的對象值,基于數(shù)據(jù)產(chǎn)生決策樹的機器學習方法依托于分類、訓練上的預測樹,根據(jù)已知預測歸類未知數(shù)據(jù)。決策樹是一種多級分類的思想,目前已有的算法包括ID3、C4.5、CART算法等[3]。ID3是決策樹基礎算法,自頂向下地貪婪搜索遍歷可能的決策樹空間構(gòu)造決策樹,使用統(tǒng)計測試確定每一個實例單獨分類訓練樣例的能力,分類能力最好的屬性作為判定樹根節(jié)點的測試屬性?;贑4.5決策樹算法建立在ID3算法的基礎上,用信息增益率選擇特征屬性,解決多值偏向問題。在樹構(gòu)造過程中進行剪枝,完成對連續(xù)屬性的離散化處理以及對不完整屬性的處理能力和產(chǎn)生規(guī)則等功能。
根據(jù)已有的ID3算法,基于信息增益的基本原理,C4.5算法通過計算信息增益率,選取信息增益比最高的屬性作為樣本的測試屬性,創(chuàng)建一個節(jié)點并為每個屬性創(chuàng)建分支劃分樣本[4]。
2改進的安全檢測文本分類模型
2.1C4.5決策樹改進算法
C4.5決策樹算法根據(jù)信息增益率選擇屬性,從一個無次序、無規(guī)則的實例中歸納一組采用樹形結(jié)構(gòu)表示的分類規(guī)則。信息增益率為信息增益和分割信息量的比值,信息增益越大,則類屬性對該屬性的依賴性越大,因此,該屬性作為測試屬性的期望值越大。
假設以屬性A的值為基準對樣本分割,訓練數(shù)據(jù)D用分裂信息SplitInfo作為初始信息量劃分成對應于屬性A的有m個輸出的m個劃分信息。屬性A具有n個不同的取值{a1,a2,…,an},如果用屬性A將樣本集S劃分為{S1,S2,…,Sn}共n個子集,則屬性A對S進行劃分的信息增益率為:
最佳屬性子集能夠?qū)Ψ诸愵A測產(chǎn)生最好的效果,子集中的屬性與類屬性關聯(lián)度最大,同時屬性之間的冗余度相對較小。C4.5算法考慮了屬性與類屬性的關聯(lián)度,但是屬性之間的關系尚未考慮。特別是對于數(shù)據(jù)屬性及其取值較多的情況,不同屬性之間可能存在一定的聯(lián)系,若屬性之間的關聯(lián)度過高,屬性的冗余度過大,則會影響屬性子集的有效性,導致系統(tǒng)魯棒性較差。
在該改進的算法模型中,將屬性與其他屬性之間的關聯(lián)度引入屬性A的信息增益率度量。屬性A與其他屬性之間的信息增益如式(3)所示:
其中,Gain(AF)為其他屬性對屬性A的信息增益之和,表示屬性A與其他屬性的關聯(lián)度;F是不包含屬性A的非類屬性集合;f是非類屬性且f∈F。式(4)表示其他屬性對屬性A的信息增益平均值。
在已有的信息增益率的基礎上,通過引入其他屬性對被選屬性信息增益的均值,降低其他屬性與備選屬性之間的冗余度。改進后的信息增益率如式(5)所示,其中,w是權(quán)重系數(shù)。
在改進的信息增益率計算過程中,若備選屬性A與其他屬性的關聯(lián)度較差,其他屬性對屬性A的信息增益平均值較低,該屬性的信息增益率會增加,則被選定作為類屬性的子屬性的可能性會更大。
對于權(quán)重系數(shù)w,在形成的初始訓練序列后,基于AdaBoost思想,對每個訓練樣本賦予相同的初始權(quán)重,在迭代遞歸過程中動態(tài)調(diào)整權(quán)重系數(shù),根據(jù)權(quán)重系數(shù)構(gòu)造訓練集。權(quán)重系數(shù)w衡量備選屬性最優(yōu)弱假設的重要性,在每次迭代計算結(jié)束后,對分類錯誤的樣本增加權(quán)重,使得在下一次迭代中更關注分類錯誤的樣本,利用不同的訓練集構(gòu)造多個分類模型,通過綜合打分得到優(yōu)化的分類結(jié)果。在降低特征子集屬性冗余度的同時,提高了分類模型的魯棒性。
權(quán)重系數(shù)的確定及樣本訓練過程如下:
輸入:訓練數(shù)據(jù)集T,樣本數(shù)n,迭代次數(shù)m;
輸出:決策樹序列G(x);
訓練流程如下:
訓練序列為 Ti,權(quán)重系數(shù)Dm表示在第m輪迭代開始前訓練數(shù)據(jù)的概率分布,wmi表示第i個樣本的權(quán)值,∑Ni=1wmi=1。
(1)初始化訓練數(shù)據(jù)的權(quán)重:
D1={w11,w12,…,w1N}(6)
其中,
w1i=1N,i=1,2,…,N(7)
?。?)對于m=1,2,…,M,使用具有權(quán)值分布Dm的訓練數(shù)據(jù)集基于改進的C4.5決策樹進行學習,得到弱分類器。
(3)計算Gm(Ti)在訓練數(shù)據(jù)集上的分類誤差率:
?。?)更新訓練數(shù)據(jù)的權(quán)值分布:
?。?)將m個弱分類器進行線性組合,得到最終分類器:
2.2改進的安全檢測文本分類模型
針對HTTP請求的移動數(shù)據(jù)安全檢測文本分類模型如圖1所示,檢測流程包括以下幾個步驟:
(1)以每個請求數(shù)據(jù)包為文本單位,將已分類的數(shù)據(jù)集分為訓練數(shù)據(jù)和測試數(shù)據(jù);
(2)數(shù)據(jù)特征選擇及數(shù)據(jù)特征向量化,轉(zhuǎn)化為可供機器學習的訓練樣本和測試樣本;
(3)利用訓練數(shù)據(jù)集對改進的文本分類算法模型進行訓練,建立分類模型,輸入測試數(shù)據(jù),輸出檢測數(shù)據(jù)類別。
3實驗與結(jié)果分析
3.1實驗數(shù)據(jù)集
文中采用HTTP請求進行模型驗證分析。在移動互聯(lián)網(wǎng)應用環(huán)境中,通過HTTP請求實現(xiàn)Web攻擊是一種常見的攻擊方式,包括SQL注入、跨站腳本攻擊、Cookie篡改等惡意行為特征[56]。HTTP請求分為正常和異常兩個類別,根據(jù)HTTP請求的數(shù)據(jù)格式和惡意特征分析,從數(shù)據(jù)結(jié)構(gòu)、長度、字符等方面提取大量特征,使用基于相關的屬性選擇算法(CFS)對基礎數(shù)據(jù)進行屬性選擇,再使用本文提出的改進的文本分類算法選擇屬性子集,對實驗數(shù)據(jù)集進行分類,比較分類結(jié)果的正確率。
原始數(shù)據(jù)為CSIC2010的原始數(shù)據(jù)包,保留有效TCP數(shù)據(jù)包,過濾得到HTTP請求數(shù)據(jù)。HTTP請求格式包含請求方法URL協(xié)議/版本、請求頭(Request Header)、請求正文等數(shù)據(jù)。將HTTP結(jié)構(gòu)化數(shù)據(jù)部分保存為特征文本,同時,將請求內(nèi)容、path和Cookie等半結(jié)構(gòu)化的內(nèi)容進行結(jié)構(gòu)化處理。已有研究基礎表明,請求內(nèi)容、訪問路徑和Cookie一般是惡意特征集中表現(xiàn)位置[7]。參考KDDCUP1999數(shù)據(jù)集在安全檢測方面的特征要求[8],選取長度、鍵值對數(shù)等有效信息保存為結(jié)構(gòu)化文本數(shù)據(jù)。為了提高分類效率,首先對文本數(shù)據(jù)進行屬性選擇,屬性集搜索算法選用Bestfirst Search,屬性集評估算法選用CFS,提取HTTP請求的15個特征描述數(shù)據(jù)內(nèi)容。具體特征如表1所示。
3.2評估策略
將數(shù)據(jù)包劃分為正常數(shù)據(jù)和惡意數(shù)據(jù)兩類,數(shù)據(jù)向量特征化之后將目標數(shù)據(jù)輸入到分類算法中進行模型訓練、分類測試和準確率驗證。實驗平臺使用WEKA,迭代次數(shù)設為10次,建立10棵決策樹,采用10折交叉驗證。
文本分類結(jié)果使用信息檢索中的查準率(TP)、誤檢率(FP)和分類準確率(ACC)來衡量改進算法的效果[9]。
其中:
查準率=正確分類的HTTP惡意請求個數(shù)/HTTP惡意請求總數(shù)
誤檢率=正常HTTP請求被誤判為惡意請求的個數(shù)/正常HTTP請求總數(shù)
分類準確率=正確分類的樣本數(shù)/所有測試樣本數(shù)
3.3結(jié)果分析
實驗數(shù)據(jù)采用CSIC2010數(shù)據(jù)集,選取36 878條正常HTTP請求和24 668條包含惡意代碼的異常HTTP請求。通過Bestfirst Search屬性集搜索算法和CFS屬性集評估算法,提取HTTP請求的15個特征描述數(shù)據(jù)內(nèi)容。在選擇的15個屬性集上分別選用C4.5決策樹算法和改進的C4.5決策樹算法訓練樣本數(shù)據(jù),建立分類模型。
3.3.1小規(guī)模樣本測試
為驗證文中提出的改進算法的分類效率,首先進行小批量實驗數(shù)據(jù)驗證,選擇樣本數(shù)據(jù)集包含正常HTTP請求500個,異常HTTP請求500個。分類結(jié)果如表2所示。
表2結(jié)果顯示,基于AdaBoost思想的C4.5決策樹分類模型適用于HTTP惡意請求檢測,針對于傳統(tǒng)的C4.5檢測算法,檢測率和分類準確率指標均有所改善,其中,查準率提高了1.9%,誤檢率降低了3.8%,分類準確率提高了2.9%。由于改進模型中增加了Boosting自適應調(diào)整權(quán)值系數(shù)過程,導致分類時間增加了12.2 ms。
3.3.2總體樣本測試
采用上述方法選取所有異常樣本和正常樣本HTTP請求的屬性值,輸入算法模型,對比C4.5算法和改進后的C4.5算法在數(shù)據(jù)集上的分類準確率,結(jié)果如表3所示。
表3結(jié)果顯示,改進的C4.5文本分類模型查準率提高了1.6%,誤檢率降低了0.8%,分類準確率提高了1.7%,分類時間增加了45 ms。在保證分類時間影響較小的前提下提高了分類準確度。
4結(jié)論
針對移動數(shù)據(jù)HTTP請求的惡意代碼特征,本文分析了傳統(tǒng)C4.5算法未考慮屬性間影響、屬性間冗余度較大、從而導致算法復雜度較高的問題,提出了一種基于AdaBoost算法的C4.5文本分類模型,并對模型進行優(yōu)化和改進。通過對文本數(shù)據(jù)的特征屬性進行選擇并通過特征向量化形成訓練樣本和測試樣本,輸入到分類算法中進行模型訓練、文本分類和結(jié)果驗證,從查準率、誤檢率和準確率三個方面進行比較分析。實驗結(jié)果證明,改進的C4.5算法具有較好的分類效果,對今后移動數(shù)據(jù)安全檢測研究中分類算法的選取具有一定的理論研究和應用價值。
參考文獻
?。?] 張福永,齊德昱,胡鏡林. 基于C4.5決策樹的嵌入型惡意代碼檢測方法[J]. 華南理工大學學報(自然科學版),2011,39(5):68-72.
?。?] 陳祎荻,秦玉平, 基于機器學習的文本分類方法綜述[J]. 渤海大學學報(自然科學版), 2010,31(2): 201-205.
?。?] 潘峰,基于C5.0決策樹算法的考試結(jié)果預測研究[J].微型機與應用, 2016,35(8):72-74.
?。?] 程駿,王健.面向移動數(shù)據(jù)安全檢測的文本分類算法比較研究[J]. 無線互聯(lián)科技, 2015(24):115-118.
?。?] 魏浩,丁要軍.一種基于屬性相關的C4.5決策樹改進算法[J], 中北大學學報(自然科學版),2014,35(4):402-406.
[6] SCHULTZ M G, ESKIN E, ZADOK E, et al. Data mining methods for detection of new malicious executables[C].IEEE Symposium on Security and Privacy,2001:3849.
?。?] LA POLLA M, MARTINELLI F, SAGANDURRA D. A survey on security for mobile devices[J]. Communications Surveys & Tutorials, IEEE,2013,15(1):446471.
?。?] STOLFO S J,Wang Ke,Li Weijen.Towards stealthy malware detection[M].Malware detection.Heidelberg:SpringerVerlag,2007:231249.
?。?] GARCIA S,FERNANDEZ A,HERRERA F. Enchancing the effectiveness and interpretability of decision tree and rule induction classifiers with evolutionary training set selection over imbalanced problems [J]. Applied Soft Computing,2009,9(4):1304-1314.