張偉娜
(中國(guó)民用航空飛行學(xué)院洛陽(yáng)分院,河南 洛陽(yáng) 471001)
目前互聯(lián)網(wǎng)應(yīng)用已經(jīng)深入到了人們生產(chǎn)生活的方方面面,計(jì)算機(jī)網(wǎng)絡(luò)在人類生活的各個(gè)領(lǐng)域已起著越來(lái)越重要的作用。隨之而來(lái)的網(wǎng)絡(luò)安全威脅變得日益嚴(yán)重,越來(lái)越多的關(guān)鍵業(yè)務(wù)已成了黑客的攻擊目標(biāo),各種網(wǎng)絡(luò)攻擊也層出不窮,一旦網(wǎng)絡(luò)安全出現(xiàn)問(wèn)題,將造成巨大的損失,因此網(wǎng)絡(luò)安全成了一個(gè)困擾網(wǎng)絡(luò)應(yīng)用的首要問(wèn)題。尤其是蠕蟲(chóng)、DDoS及DoS等攻擊帶來(lái)了巨大的危害,例如DDoS攻擊可以利用分散在網(wǎng)絡(luò)各處的其他主機(jī)協(xié)作共同完成對(duì)一臺(tái)主機(jī)攻擊的操作,從而使被攻擊主機(jī)進(jìn)入不安全狀態(tài)。因此對(duì)網(wǎng)絡(luò)主機(jī)的狀態(tài)進(jìn)行主動(dòng)識(shí)別變得尤為重要,如何高效精確的檢測(cè)主機(jī)是否存在不安全行為或處于不安全狀態(tài)已成為一個(gè)十分必要的研究課題。
對(duì)于主機(jī)安全檢測(cè)這一問(wèn)題,國(guó)內(nèi)外許多專家也已經(jīng)做了很多的研究。傳統(tǒng)的檢測(cè)模型主要有數(shù)據(jù)統(tǒng)計(jì)及模式匹配等簡(jiǎn)單的數(shù)據(jù)分析方法。文獻(xiàn)[1]提出了兩種模式匹配的入侵檢測(cè)方法,一個(gè)是基于BM的模式匹配算法進(jìn)行入侵檢測(cè),另一個(gè)是根據(jù)字符出現(xiàn)概率進(jìn)行優(yōu)先匹配。文獻(xiàn)[2]對(duì)四種模式匹配的入侵檢測(cè)算法進(jìn)行了測(cè)試和比較。文獻(xiàn)[3]使用樸素貝葉斯分類器實(shí)現(xiàn)異常檢測(cè)。隨著大數(shù)據(jù)及神經(jīng)網(wǎng)絡(luò)等方法被廣泛地應(yīng)用于各個(gè)領(lǐng)域,常用的數(shù)據(jù)挖掘方法也逐漸被引入主機(jī)安全檢測(cè)。文獻(xiàn)[4]提出了一種支持向量機(jī)的入侵檢測(cè)方法,并利用AdaBoost對(duì)其模型進(jìn)行訓(xùn)練。文獻(xiàn)[5]提出了一種改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)進(jìn)行主機(jī)安全檢測(cè)方法,主要是采用自動(dòng)變速率學(xué)習(xí)法,同時(shí)引入遺忘因子等。文獻(xiàn)[6]提出了一個(gè)基于機(jī)器學(xué)習(xí)的網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)。文中提出了將兩種支持向量機(jī)結(jié)合起來(lái)的方法,此方法同時(shí)具有監(jiān)督學(xué)習(xí)中的無(wú)監(jiān)督學(xué)習(xí)的優(yōu)點(diǎn)。文獻(xiàn)[7]提出了一種網(wǎng)絡(luò)入侵檢測(cè)的非線性分析方法,文中使用了一種非線性技術(shù)遞歸量化分析,這種方法通常用于具有時(shí)間相關(guān)性的數(shù)據(jù)統(tǒng)計(jì)。文中深入探討了遞歸量化分析和支持向量機(jī)技術(shù)在事件分類中的應(yīng)用。結(jié)論表明非線性技術(shù)有助于獲取網(wǎng)絡(luò)數(shù)據(jù)的隱藏特性,當(dāng)使用支持向量機(jī)機(jī)器學(xué)習(xí)時(shí)可以用于網(wǎng)絡(luò)異常檢測(cè)。
隨機(jī)森林是由Breiman于2001年提出,其本質(zhì)也是一種對(duì)數(shù)據(jù)進(jìn)行挖掘的理論,利用重抽樣方法抽取樣本,然后生成對(duì)應(yīng)的決策樹(shù),通過(guò)所有樹(shù)的投票得到最終結(jié)果,是一種有效的非線性數(shù)據(jù)的建模工具,近幾年來(lái)已經(jīng)被廣泛地應(yīng)用于計(jì)算機(jī)、醫(yī)學(xué)、經(jīng)濟(jì)學(xué)、等多個(gè)領(lǐng)域。文獻(xiàn)[9]提出了一種利用隨機(jī)森林來(lái)改進(jìn)圖像分割的方法,文中討論了隨機(jī)森林是如何學(xué)習(xí)判別特征的,并提供了這些特征重要性的量化,利用這種被量化的重要性特征設(shè)計(jì)一個(gè)策略進(jìn)行有效的分類,作者在許多醫(yī)學(xué)圖像上測(cè)試了這種分割方法,結(jié)果表明這是一種有效的圖像分割方法。一些傳統(tǒng)方法例如決策樹(shù)、支持向量機(jī)及貝葉斯等在面對(duì)數(shù)據(jù)較多時(shí)檢測(cè)誤差率較大,因此檢測(cè)效率不夠。但是隨機(jī)森林在處理高緯度數(shù)據(jù)時(shí)具有較好的表現(xiàn),隨機(jī)森林對(duì)異常值和噪聲具有很好的容忍度,并且具有較好的泛化能力,因此本文采用隨機(jī)森林分類模型實(shí)現(xiàn)對(duì)主機(jī)的網(wǎng)絡(luò)行為進(jìn)行檢測(cè)。
隨機(jī)森林可以通過(guò)重采樣的方法從原始數(shù)據(jù)集中提取多個(gè)子樣本,通過(guò)構(gòu)造多個(gè)針對(duì)不同的特征值的決策樹(shù)對(duì)同一問(wèn)題進(jìn)行預(yù)測(cè),然后通過(guò)所有決策樹(shù)產(chǎn)生的結(jié)果進(jìn)行投票,最終度量特征值重要程度,同時(shí)消除不太重要的特征值的影響,進(jìn)而產(chǎn)生一個(gè)較為準(zhǔn)確的結(jié)果。隨機(jī)森林模型對(duì)于海量的數(shù)據(jù)集也能達(dá)到較快的訓(xùn)練速度,并且與單獨(dú)決策樹(shù)相比可以有效地避免過(guò)擬合現(xiàn)象,具有更好的穩(wěn)定性。
本文分別對(duì)多個(gè)特征值構(gòu)造多個(gè)決策樹(shù),在每棵樹(shù)的每一次分割時(shí)對(duì)分割準(zhǔn)則不斷進(jìn)行調(diào)整。隨機(jī)森林中的決策樹(shù)由訓(xùn)練集的二進(jìn)制分割序列構(gòu)造成終端節(jié)點(diǎn),如圖1所示。
圖1 決策樹(shù)的結(jié)構(gòu)
在主機(jī)安全檢測(cè)中把度量主機(jī)是否存在不安全狀態(tài)的相關(guān)參數(shù)作為輸入的特征值,用這些特征值對(duì)相應(yīng)主機(jī)的安全狀態(tài)進(jìn)行檢測(cè)。首先需要用訓(xùn)練集對(duì)模型進(jìn)行訓(xùn)練,隨機(jī)森林的構(gòu)建過(guò)程如下:
本文對(duì)主機(jī)安全狀態(tài)使用歸一化的方法進(jìn)行評(píng)估,越接近1說(shuō)明主機(jī)的狀態(tài)低,越接近0代表主機(jī)的安全狀態(tài)越高,因此實(shí)際主機(jī)的安全狀態(tài)為I=[I,I,…,I],其中∈[0,1]。定義第個(gè)與檢測(cè)主機(jī)安全狀態(tài)相關(guān)的個(gè)特征值數(shù)據(jù)集為X=[X,X,…,X],其中X∈R,X={X,X,…,X}。本文的I與X有對(duì)應(yīng)關(guān)系,也就是說(shuō)X為第個(gè)主機(jī)的特征值,I為第個(gè)主機(jī)的安全狀態(tài)。
其中y代表第個(gè)主機(jī)的安全狀態(tài),x代表與檢測(cè)主機(jī)安全狀態(tài)相關(guān)的特征值,q代表分裂的第一部分主機(jī)安全狀態(tài)的平均值,q代表第二部分主機(jī)安全狀態(tài)的平均值。
決策樹(shù)不能一直的分裂,這會(huì)導(dǎo)致最終生成樹(shù)的復(fù)雜度過(guò)高,所以需要在合適的時(shí)候停止分裂。當(dāng)數(shù)據(jù)屬性增多時(shí),單棵決策樹(shù)的節(jié)點(diǎn)也會(huì)相應(yīng)增加,同時(shí)也會(huì)增加決策樹(shù)的復(fù)雜度,最終導(dǎo)致模型的過(guò)擬合,因此在許多其他實(shí)驗(yàn)中決策樹(shù)通常通過(guò)修剪進(jìn)一步提升性能,也就是移除不重要的分支,但是本文在實(shí)驗(yàn)中發(fā)現(xiàn)剪枝對(duì)檢測(cè)精度提高并不明顯,因此在本文中不對(duì)決策樹(shù)進(jìn)行剪枝操作。本文直接設(shè)置節(jié)點(diǎn)到?jīng)Q策樹(shù)根節(jié)點(diǎn)的距離為決策樹(shù)的深度,也就是說(shuō)當(dāng)子節(jié)點(diǎn)深度D≤時(shí),代表此節(jié)點(diǎn)為終端節(jié)點(diǎn),不再進(jìn)行分裂,本文中設(shè)置決策樹(shù)的=5。
在單棵決策樹(shù)構(gòu)建完成后,需要構(gòu)造其他決策樹(shù)共同形成隨機(jī)森林。本文采用有放回的堆積抽取個(gè)特征值,按照構(gòu)造單棵決策樹(shù)的貪婪算法生成其他決策樹(shù)。每棵決策樹(shù)根據(jù)設(shè)定的決策樹(shù)深度停止分裂。最終生成的棵決策樹(shù)共同構(gòu)成隨機(jī)森林檢測(cè)模型。檢測(cè)模型訓(xùn)練完成后需要對(duì)模型的擬合度進(jìn)行檢驗(yàn),本文通過(guò)最小化誤差來(lái)驗(yàn)證檢驗(yàn)?zāi)P?,即?/p>
其中當(dāng)檢驗(yàn)結(jié)果和與實(shí)際數(shù)值的差值足夠小時(shí),說(shuō)明整個(gè)模型的擬合程度較為充分,也就是說(shuō)這個(gè)模型是有效的。隨機(jī)森林的構(gòu)造方法具有多個(gè)優(yōu)點(diǎn),首先通過(guò)隨機(jī)選擇特征值使得每棵決策樹(shù)的關(guān)聯(lián)性更小,這可以提高模型的檢測(cè)精度,并避免出現(xiàn)過(guò)擬合現(xiàn)象;其次可以區(qū)別特征值在分類中的重要性,并且單個(gè)決策樹(shù)增長(zhǎng)速度更快;最后針對(duì)具有噪聲的數(shù)據(jù)也具有良好的穩(wěn)定性。
本文的數(shù)據(jù)通過(guò)實(shí)驗(yàn)仿真在局域網(wǎng)模擬DDOS攻擊采集相應(yīng)特征值數(shù)據(jù)并進(jìn)行模型的參數(shù)訓(xùn)練與檢測(cè)驗(yàn)證。得到數(shù)據(jù)集后,首先對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,由于各種實(shí)際原因,原始數(shù)據(jù)包含一些缺失或無(wú)效的數(shù)據(jù),本文對(duì)缺失的數(shù)據(jù)使用平均值進(jìn)行填充。然后把原始數(shù)據(jù)集分為兩個(gè)子集,分別是訓(xùn)練集和測(cè)試集。選取方式為隨機(jī)抽取多個(gè)樣本作為訓(xùn)練集,其余的未被選中的數(shù)據(jù)集作為測(cè)試集。首先用訓(xùn)練集的數(shù)據(jù)來(lái)訓(xùn)練的檢測(cè)模型,從原始數(shù)據(jù)集中隨機(jī)抽取多個(gè)子集,每個(gè)子集組成每棵決策樹(shù)的訓(xùn)練集,然后按照相應(yīng)的方法構(gòu)造對(duì)應(yīng)的決策樹(shù),過(guò)程如圖2所示。然后利用測(cè)試集的數(shù)據(jù)通過(guò)訓(xùn)練完成的決策樹(shù),每棵決策樹(shù)共同投票得到最終分類結(jié)果,即使用測(cè)試集來(lái)驗(yàn)證整個(gè)檢測(cè)模型的過(guò)程如圖3所示。為了加快訓(xùn)練和檢測(cè)的過(guò)程,本文采用歸一化方法對(duì)預(yù)處理后的數(shù)據(jù)集進(jìn)行處理。在訓(xùn)練模型之前,對(duì)原始數(shù)據(jù)進(jìn)行歸一化處理并不會(huì)對(duì)檢測(cè)結(jié)果有影響,因?yàn)樵诘玫筋A(yù)測(cè)結(jié)果后,通過(guò)對(duì)歸一化過(guò)程進(jìn)行逆向處理,就可以得到正常檢測(cè)值。
圖2 模型訓(xùn)練過(guò)程
圖3 模型測(cè)試過(guò)程
本檢測(cè)模型使用的特征值包括五種,分別是特殊協(xié)議所占總流量的比例、網(wǎng)絡(luò)傳輸速率、實(shí)時(shí)連接會(huì)話數(shù)、TCP確認(rèn)報(bào)文數(shù)量和報(bào)文長(zhǎng)度。在生成每個(gè)決策樹(shù)時(shí)采用隨機(jī)選取多個(gè)不同方面的多個(gè)特征值。檢測(cè)方法的性能使用三種常用的有效性度量來(lái)評(píng)估,分別是誤報(bào)率、檢測(cè)率和漏報(bào)率。其中誤報(bào)率為安全樣本被判斷為不安全樣本數(shù)量與安全樣本總數(shù)的比,檢測(cè)率為成功檢測(cè)出不安全樣本數(shù)量與不安全樣本總數(shù)的比。
從表1的試驗(yàn)結(jié)果可以看出本文使用的檢測(cè)模型與傳統(tǒng)檢測(cè)模型支持向量機(jī)相比,檢測(cè)精度高于傳統(tǒng)的檢測(cè)方法,檢測(cè)率達(dá)到了0.81,同時(shí)誤報(bào)率也比傳統(tǒng)的檢測(cè)方式更低,誤報(bào)率為0.12,可見(jiàn)該檢測(cè)模型對(duì)主機(jī)安全檢測(cè)具有較高的檢測(cè)精度。
表1 檢測(cè)模型性能比較
本文提出了一種用于網(wǎng)絡(luò)中主機(jī)安全檢測(cè)的隨機(jī)森林的檢測(cè)模型。此模型從原始數(shù)據(jù)中進(jìn)行隨機(jī)有放回的抽取子集,并利用子集構(gòu)建決策樹(shù),這樣可以避免每棵決策樹(shù)之間的相關(guān)性,從而使得檢測(cè)模型不容易陷入過(guò)擬合,并且具有很好的抗噪能力,提高檢測(cè)精度。本文在實(shí)驗(yàn)的數(shù)據(jù)集上驗(yàn)證了此模型的性能,實(shí)驗(yàn)結(jié)果表明,對(duì)原始數(shù)據(jù)進(jìn)行特征提取后再進(jìn)行數(shù)據(jù)清洗可以提高檢測(cè)的精度,并且與傳統(tǒng)檢測(cè)模型相比該模型在主機(jī)安全檢測(cè)方面具有良好的性能,其提高了檢測(cè)率,降低了誤報(bào)率,具有更好的穩(wěn)定性,為網(wǎng)絡(luò)安全提供更好的安全保障。