芶繼軍,李均華,陳 晨,陳一鳴,呂奕達(dá)
1.國(guó)網(wǎng)四川省電力公司 經(jīng)濟(jì)技術(shù)研究院,成都610041
2.西安電子科技大學(xué),西安710071
隨著信息社會(huì)的不斷發(fā)展,以及大數(shù)據(jù)、云計(jì)算等新興技術(shù)的應(yīng)用,網(wǎng)絡(luò)安全對(duì)于個(gè)人、企業(yè)、國(guó)家都有重要的意義。網(wǎng)絡(luò)在提供給人們生活便利的同時(shí),網(wǎng)絡(luò)安全問(wèn)題日益凸顯,一旦出現(xiàn)安全事件,將造成極大的經(jīng)濟(jì)損失、社會(huì)影響。所以事前主動(dòng)檢測(cè)、防御,對(duì)于網(wǎng)絡(luò)穩(wěn)定、可靠運(yùn)行具有重要的意義。近年來(lái),由于網(wǎng)絡(luò)攻擊多發(fā)生于廣域網(wǎng)環(huán)境,導(dǎo)致攻擊檢測(cè)工作面臨挑戰(zhàn),因此要求研究人員必須結(jié)合大數(shù)據(jù)技術(shù),研究新的攻擊檢測(cè)方法。一些傳統(tǒng)的網(wǎng)絡(luò)攻擊流量檢測(cè)方法和檢測(cè)技術(shù)[1](如流量分析、特征提取、模式匹配和專家系統(tǒng))在高速和大規(guī)模的互聯(lián)網(wǎng)環(huán)境中很難高效準(zhǔn)確地檢測(cè)攻擊,難以適應(yīng)如今的大數(shù)據(jù)時(shí)代,必須對(duì)其進(jìn)行改進(jìn)。
針對(duì)這一問(wèn)題,利用在各個(gè)領(lǐng)域都廣泛應(yīng)用、能進(jìn)行自我學(xué)習(xí)、主動(dòng)檢測(cè)防御的機(jī)器學(xué)習(xí)算法,研究了基于隨機(jī)森林的入侵檢測(cè)模型,并且與近期流行的分布式并行計(jì)算框架MapReduce相結(jié)合,可有效地主動(dòng)針對(duì)網(wǎng)絡(luò)攻擊進(jìn)行檢測(cè),通過(guò)引入兩個(gè)隨機(jī)性,降低網(wǎng)絡(luò)流量?jī)?nèi)不同屬性特征字段的噪聲,并消除了彼此的關(guān)聯(lián)性,提高了攻擊檢測(cè)的檢測(cè)率、正確率、精確率,在大數(shù)據(jù)時(shí)代背景下,為網(wǎng)絡(luò)安全提供了更好的防御。
針對(duì)攻擊檢測(cè)這一熱點(diǎn)問(wèn)題,國(guó)內(nèi)外學(xué)者對(duì)網(wǎng)絡(luò)流量異常做了各種研究,檢測(cè)算法主體基于特征、統(tǒng)計(jì)、數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)等方式進(jìn)行檢測(cè)。
基于特征的檢測(cè)算法核心是通過(guò)提前人為設(shè)定網(wǎng)絡(luò)異常流量的一般特征,檢測(cè)算法再進(jìn)行特征匹配。文獻(xiàn)[1]在分析網(wǎng)絡(luò)流量的基礎(chǔ)之上,針對(duì)時(shí)、空方面的流量特征進(jìn)行深度探究,使用大數(shù)據(jù)挖掘技術(shù),對(duì)通信網(wǎng)絡(luò)流量的行為特征參數(shù)進(jìn)行提取,然后對(duì)網(wǎng)絡(luò)流量異常行為進(jìn)行分布式檢測(cè),能夠?qū)崟r(shí)對(duì)異常信息進(jìn)行反饋。文獻(xiàn)[2]通過(guò)對(duì)比單窗口聚類異常檢測(cè)算法的不足,對(duì)其進(jìn)行改進(jìn),在每個(gè)單窗口中用優(yōu)化的k-means算法對(duì)數(shù)據(jù)進(jìn)行初步聚類檢測(cè),最終綜合多個(gè)窗口的結(jié)果得出異常流量,增加了檢測(cè)正確率,提高了檢測(cè)的效率。
基于統(tǒng)計(jì)分析的檢測(cè)算法核心是對(duì)網(wǎng)絡(luò)流量數(shù)據(jù)進(jìn)行分層次的統(tǒng)計(jì)分析,利用網(wǎng)絡(luò)攻擊與流量數(shù)據(jù)統(tǒng)計(jì)量的對(duì)應(yīng)關(guān)系來(lái)檢測(cè)。文獻(xiàn)[3]提出以統(tǒng)計(jì)為基礎(chǔ)的異常流量檢測(cè)方法,可在常見(jiàn)網(wǎng)絡(luò)環(huán)境,且誤檢率偏低時(shí),更為迅速地對(duì)攻擊進(jìn)行檢查。但此時(shí)往往需對(duì)閾值予以確定,且閾值無(wú)法自動(dòng)伴隨流量模式的改變而調(diào)整。文獻(xiàn)[4]無(wú)需對(duì)閾值加以確定,而直接在網(wǎng)絡(luò)流量審計(jì)數(shù)據(jù)內(nèi),對(duì)檢測(cè)規(guī)則進(jìn)行總結(jié)。
基于數(shù)據(jù)挖掘攻擊檢測(cè)不需要人工設(shè)置異常閾值,能從網(wǎng)絡(luò)流量中自我總結(jié)出檢測(cè)規(guī)則,一般有支持向量機(jī)、聚類、決策樹(shù)等算法。文獻(xiàn)[5]表明,在持續(xù)更新數(shù)據(jù)的同時(shí),數(shù)據(jù)挖掘可對(duì)檢測(cè)模型進(jìn)行微調(diào),以便與全新異常行為相適應(yīng),提高了檢測(cè)異常流量時(shí)的準(zhǔn)確度。文獻(xiàn)[6]表明,對(duì)比以統(tǒng)計(jì)分析為基礎(chǔ)的異常流量檢測(cè)方法,數(shù)據(jù)挖掘算法復(fù)雜度更高,且效率偏低。假如要在海量網(wǎng)絡(luò)流量環(huán)境下適用,仍需對(duì)此進(jìn)行優(yōu)化。文獻(xiàn)[7]和文獻(xiàn)[8]均通過(guò)聚類方式來(lái)分析異常流量。前者選定流量特征直方圖作為圖像,以便進(jìn)行聚類。后者則基于Chameleon算法,對(duì)全新聚類算法進(jìn)行總結(jié)。文獻(xiàn)[9-10]則對(duì)SVM,即支持向量機(jī)算法加以選用,以便檢測(cè)BGP異常流量。針對(duì)BGP 數(shù)據(jù)樣本較少、多變且維度較高等特性,多通過(guò)數(shù)據(jù)預(yù)處理、調(diào)整參數(shù)等方式,以便與之相適應(yīng)。文獻(xiàn)[11]以及文獻(xiàn)[12]通過(guò)貝葉斯、決策樹(shù)算法來(lái)檢測(cè)異常流量。文獻(xiàn)[13]將卷積神經(jīng)網(wǎng)絡(luò)引入網(wǎng)絡(luò)攻擊檢測(cè),將日志信息特征提取到灰度圖,通過(guò)大數(shù)據(jù)平臺(tái)spark處理日志信息,不斷迭代生成最新的特征,通過(guò)卷積對(duì)數(shù)據(jù)進(jìn)行降噪。文獻(xiàn)[14]是一篇關(guān)于機(jī)器學(xué)習(xí)不同方法在攻擊檢測(cè)上的應(yīng)用,對(duì)典型的理論模型進(jìn)行了各個(gè)優(yōu)化參數(shù)的對(duì)比,對(duì)于選取對(duì)攻擊檢測(cè)來(lái)說(shuō)更具優(yōu)勢(shì)的機(jī)器學(xué)習(xí)方法具有重要意義。文獻(xiàn)[15]使用樸素貝葉斯分類器實(shí)現(xiàn)異常檢測(cè)系統(tǒng),結(jié)果表明沒(méi)有產(chǎn)生誤報(bào),正常和異常識(shí)別率達(dá)到98%和89%。文獻(xiàn)[16-17]利用無(wú)監(jiān)督聚類算法,Blowers等人使用基于密度的聚類算法DBSCAN對(duì)正常與異常流量進(jìn)行分組。
隨著網(wǎng)絡(luò)數(shù)據(jù)量越來(lái)越大,特征越來(lái)越復(fù)雜,基于特征和統(tǒng)計(jì)的檢測(cè)算法已不適應(yīng)實(shí)際應(yīng)用場(chǎng)景。分布式計(jì)算平臺(tái)的出現(xiàn),計(jì)算能力的增強(qiáng),使得基于機(jī)器學(xué)習(xí)的檢測(cè)算法越來(lái)越流行,這是未來(lái)主要發(fā)展和研究趨勢(shì)。
目前,一些經(jīng)典的機(jī)器學(xué)習(xí)算法,例如基于概率的貝葉斯[18]、決策樹(shù)、SVM被證明在面對(duì)高維度、海量數(shù)據(jù)時(shí),攻擊檢測(cè)中的準(zhǔn)確率不高且誤報(bào)率高,而隨機(jī)森林能夠處理高維度數(shù)據(jù),并且不用做特征選擇,模型泛化能力強(qiáng)。所以本文在各種機(jī)器學(xué)習(xí)算法的基礎(chǔ)上,重點(diǎn)將經(jīng)典的Adaboost 組合多分類器方法與本文提出的隨機(jī)森林算法在檢測(cè)率、正確率、精確率三個(gè)方面進(jìn)行對(duì)比,來(lái)體現(xiàn)本文算法的優(yōu)越性。
MapReduce[19]是一個(gè)非常流行的分布式并行計(jì)算框架。MapReduce 是Hadoop 的兩個(gè)核心之一,Hadoop主要包括兩部分,一是分布式文件系統(tǒng)hdfs,二是分布式計(jì)算框MapReduce。兩者的聯(lián)系是通過(guò)MapReduce在Hadoop 平臺(tái)上進(jìn)行分布式的計(jì)算編程。MapReduce核心思想是簡(jiǎn)單的多業(yè)務(wù)邏輯被復(fù)雜的任務(wù)執(zhí)行過(guò)程分解。
可以將MapReduce分開(kāi)來(lái)理解:映射是對(duì)集合中的每個(gè)目標(biāo)應(yīng)用相同的操作,也就是說(shuō),如果要將一個(gè)窗體中的每個(gè)單元格乘以二,那么將該函數(shù)單獨(dú)應(yīng)用于每個(gè)單元格的操作屬于映射(它體現(xiàn)了移動(dòng)計(jì)算而不是移動(dòng)數(shù)據(jù));化簡(jiǎn)指的是為了返回綜合結(jié)果遍歷集合中的元素。也就是說(shuō),輸出表單中的任務(wù)數(shù)量和任務(wù)屬于化簡(jiǎn)。
MapReduce計(jì)算框架如圖1所示,簡(jiǎn)單理解,MapReduce計(jì)算框架是把需要計(jì)算的數(shù)據(jù)放入到MapReduce中進(jìn)行計(jì)算,然后返回一個(gè)期望的結(jié)果。所以首先需要一個(gè)源(計(jì)算的東西),即輸入(輸入),然后MapReduce通過(guò)定義一個(gè)好的計(jì)算模型來(lái)操作輸入(輸入),并最終得到(期望的結(jié)果)輸出(輸出)。在這里主要討論的是MapReduce計(jì)算模型。MapReduce計(jì)算模型如表1所示。
圖1 MapReduce計(jì)算框架
表1 計(jì)算模型
在運(yùn)行一個(gè)MapReduce計(jì)算任務(wù)時(shí),可劃分任務(wù)進(jìn)程為兩部分,分別對(duì)應(yīng)于map和reduce。兩輸入輸出均為鍵值對(duì)??傊琈apReduce 可以使程序并行執(zhí)行,極大提高檢測(cè)效率。
目前,大多攻擊檢測(cè)算法都應(yīng)用了集成方法,該方法具有優(yōu)越的泛化性能,很適合實(shí)際的攻擊檢測(cè)場(chǎng)景。集成學(xué)習(xí)是通過(guò)構(gòu)造和組合多個(gè)學(xué)習(xí)器完成的,因此稱為多分類器系統(tǒng)。集成學(xué)習(xí)比單一學(xué)習(xí)器有更優(yōu)越的泛化能力,它是通過(guò)將多個(gè)學(xué)習(xí)器進(jìn)行結(jié)合而實(shí)現(xiàn)的。通過(guò)多分類器組合完成分類等,對(duì)比單一分類器而言,其往往更具優(yōu)勢(shì),且泛化性更為突出,通過(guò)對(duì)單一分類器存在的局部行為的整合即可令整體分類性能變得更高。而就單一分類器學(xué)習(xí)算法而言,分類能力不足,在問(wèn)題所處的分類空間里很難找到最優(yōu)分類。單分類器經(jīng)典的算法有決策樹(shù)、支持向量機(jī)等。多分類器算法有Adaboost和隨機(jī)森林算法。通過(guò)以往的研究,基于決策樹(shù)的基分類器存在過(guò)度擬合的問(wèn)題,不能很好地解決噪聲等問(wèn)題,而Adaboost 算法構(gòu)成強(qiáng)分類器,能很好地解決過(guò)度擬合的問(wèn)題,一般應(yīng)用在二分類或者多分類場(chǎng)景,但缺點(diǎn)在于訓(xùn)練耗時(shí),易受噪聲數(shù)據(jù)影響。而基于隨機(jī)森林的組合分類器既能有效解決過(guò)度擬合的問(wèn)題,又對(duì)噪聲數(shù)據(jù)有較強(qiáng)的健壯性。通過(guò)下文介紹,可以清晰地看出從單分類器到組合分類器,再到基于隨機(jī)森林的組合分類器,檢測(cè)算法逐漸優(yōu)化的過(guò)程。
作為分類方法中的一種,決策樹(shù)[20]一般結(jié)合學(xué)習(xí)訓(xùn)練數(shù)據(jù)集,以便樹(shù)得以形成,其可有效地分類測(cè)試數(shù)據(jù)集,若如下的訓(xùn)練數(shù)據(jù)集已經(jīng)給定:
Adaboost[21]是用于訓(xùn)練相同訓(xùn)練集的不同分類器的迭代算法。一般通過(guò)對(duì)數(shù)據(jù)分布的改變,最終來(lái)實(shí)現(xiàn)Adaboost。本算法的一大亮點(diǎn),即通過(guò)關(guān)聯(lián)弱分類器、帶權(quán)分類誤差。需分離樣本權(quán)重與數(shù)據(jù)集對(duì)照后的誤差,由此可獲得弱分類器樣本權(quán)重分類誤差,即帶權(quán)分類誤差。如下即為相關(guān)表示:
此處,與i 個(gè)弱分類器互為對(duì)應(yīng)的帶權(quán)分類誤差,即針對(duì)k 這一樣本進(jìn)行分類的結(jié)果,yk即與樣本k 對(duì)應(yīng)的標(biāo)簽,I[ci(k)≠yk]是一個(gè)指示函數(shù),表示為:
結(jié)合上述公式,由此可得到,此種誤差往往受到訓(xùn)練集內(nèi)樣本權(quán)重、弱分類器的樣本誤差等方面的影響。
弱分類器的權(quán)重與它自身的帶權(quán)分類誤差有關(guān),表示為:
進(jìn)而可認(rèn)識(shí)到,以[0,1]作為該誤差的范圍,且與弱分類器權(quán)重之間為反比關(guān)系,也就說(shuō)明,弱分類器權(quán)值伴隨帶權(quán)分類誤差的減小而增大,反之,即減小。
更新訓(xùn)練樣本權(quán)重的公式參見(jiàn)如下:
即當(dāng)對(duì)ci的權(quán)值進(jìn)行獲取后,再更改樣本k 的權(quán)重。當(dāng)其能夠準(zhǔn)確地完成樣本k 分類時(shí),即將樣本權(quán)值降低。如果不這樣做,則需提高權(quán)值。一般可劃分算法為兩部分,即訓(xùn)練以及分類階段。
運(yùn)用此種算法,可令過(guò)度擬合現(xiàn)象得以避免,但也存在欠缺之處。比如訓(xùn)練階段時(shí)間較長(zhǎng),無(wú)法對(duì)隨機(jī)模型的實(shí)現(xiàn)予以表示,因此,噪聲數(shù)據(jù)對(duì)此算法產(chǎn)生影響較大。
就機(jī)器學(xué)習(xí)領(lǐng)域來(lái)看,隨機(jī)森林[22]屬于備受關(guān)注的一類集成學(xué)習(xí)技術(shù),在入侵檢測(cè)等領(lǐng)域已得到大量運(yùn)用。首先,通過(guò)Bootstrap 重采樣方法的運(yùn)用,自原始樣本內(nèi)對(duì)諸多子樣本進(jìn)行提取,再通過(guò)決策樹(shù)來(lái)完成建模工作。此后,綜合不同決策樹(shù)預(yù)測(cè)。最終基于投票算法,獲得最終的預(yù)測(cè)結(jié)果。它是一組樹(shù)分類器,每個(gè)分類器都是一個(gè)分類回歸樹(shù),并且不使用CART算法進(jìn)行修剪。在針對(duì)不同數(shù)字構(gòu)成的森林輸出策略進(jìn)行分類時(shí),結(jié)合多數(shù)表決方法來(lái)完成,如下即為具體表示:
其中,x 是輸入向量,ai是獨(dú)立同分布的變量。
隨機(jī)森林的特征:(1)通過(guò)對(duì)每個(gè)節(jié)點(diǎn)的隨機(jī)選擇特征完成分類,即令決策分類樹(shù)的關(guān)聯(lián)性得以最小化,提高分類準(zhǔn)確度,并有效地解決過(guò)擬合問(wèn)題;(2)可以預(yù)測(cè)屬性特征在分類中的重要性,并且單個(gè)決策樹(shù)增長(zhǎng)得更快;(3)針對(duì)噪聲數(shù)據(jù),魯棒性較為突出。
隨機(jī)森林屬于組合決策樹(shù)模型,首先通過(guò)BACGUG方法的運(yùn)用,重建原始訓(xùn)練集,然后使用隨機(jī)特征選擇方法生成每個(gè)重組訓(xùn)練集的決策樹(shù)。隨機(jī)森林中個(gè)體分類器的多樣性不僅取決于數(shù)據(jù)樣本的干擾,而且還取決于屬性特征的干擾。通過(guò)增加個(gè)體分類器之間的差異程度,使得最終分類器的泛化性提高。
在形成多個(gè)決策樹(shù)之后,運(yùn)用本算法,即可從單一向組合多分類器轉(zhuǎn)換。若樹(shù)木、森林具備更為突出的關(guān)聯(lián)性,則森林分類相對(duì)更差。隨機(jī)森林與單一決策樹(shù)相比的優(yōu)勢(shì)在于避免過(guò)擬合、高分類精度和良好的穩(wěn)定性。隨機(jī)森林比其他組合多分類器集成方法對(duì)數(shù)據(jù)噪聲更穩(wěn)定。就組合決策樹(shù)的全部樹(shù)而言,它是對(duì)概率分布形成的隨機(jī)變量進(jìn)行運(yùn)用。在對(duì)精度進(jìn)行檢測(cè)時(shí),以弱相關(guān)、低精度作為關(guān)鍵條件,所以為實(shí)現(xiàn)低偏差,需確保樹(shù)生長(zhǎng)的深度達(dá)到最大。為了使弱相關(guān)得以實(shí)現(xiàn),需確保應(yīng)用隨機(jī)化。隨機(jī)變量的運(yùn)用,可令決策樹(shù)在分類方面變得更為準(zhǔn)確,減少每個(gè)決策樹(shù)之間的相關(guān)性,最終令森林整體的分類性能得以提升。結(jié)合如上分析,由此認(rèn)識(shí)到,通過(guò)在單一分類器內(nèi)引入兩種隨機(jī)性,以此使得過(guò)擬合現(xiàn)象得到解決,即為隨機(jī)森林。以下是隨機(jī)森林的幾個(gè)重要數(shù)學(xué)概念,通過(guò)這幾個(gè)隨機(jī)森林的定理及分析,為之后如何更好地優(yōu)化基于隨機(jī)森林的檢測(cè)模型指明了方向。
邊緣函數(shù)表示為:
此處I()即對(duì)應(yīng)示性函數(shù),Y 以及j 分別對(duì)應(yīng)于正確、非正確的分類向量,avk即對(duì)應(yīng)于取平均值,如下即為泛化誤差:
其中,下標(biāo)X,Y 表示概率的定義空間。
森林中所有決策樹(shù)的泛化誤差都收斂于:
其中,n 表示森林中決策樹(shù)的個(gè)數(shù)。
該定理表明:在決策樹(shù)數(shù)量不斷增大的同時(shí),泛化誤差隨之達(dá)到穩(wěn)定上界。表明隨機(jī)森林存在擴(kuò)展性,且避免過(guò)擬合的作用較為突出。如下即為對(duì)應(yīng)上界:
上述定理表明:隨機(jī)森林的泛化性能取決于,各決策樹(shù)之間的相關(guān)性越小,單棵分類樹(shù)的分類能力強(qiáng)這兩個(gè)因素。
隨機(jī)樹(shù)模型能夠?qū)Υ罅髁抗暨M(jìn)行分布式檢測(cè),處理高維度的數(shù)據(jù),訓(xùn)練速度快,容易做成并行化方法(訓(xùn)練時(shí)樹(shù)與樹(shù)之間是相互獨(dú)立的),并且不用做特征選擇(因?yàn)樘卣髯蛹请S機(jī)選擇的)。在訓(xùn)練完后,它能夠給出哪些特征比較重要,模型泛化能力強(qiáng),如果有很大一部分的特征遺失,仍可以維持準(zhǔn)確度。它有兩大隨機(jī)性即可降低屬性特征字段的噪聲,且關(guān)聯(lián)性也得以消除,以便確保檢測(cè)的準(zhǔn)確性。兩個(gè)隨機(jī)性具體指:
(1)選定訓(xùn)練數(shù)據(jù)樣本的隨機(jī)性。隨機(jī)森林訓(xùn)練數(shù)據(jù)樣本的生成,一般結(jié)合隨機(jī)采樣返回來(lái)完成,且全新的數(shù)據(jù)集屬于原始數(shù)據(jù)集的子集。因數(shù)據(jù)集存在差異性,導(dǎo)致新形成的森林也存在不同。所以,森林決策樹(shù)即形成了隨機(jī)的增長(zhǎng)過(guò)程。
(2)選定特征屬性變量的隨機(jī)性。隨機(jī)森林算法,導(dǎo)致選定特征屬性變量具備更強(qiáng)的隨機(jī)性,在構(gòu)建決策樹(shù)并進(jìn)行生長(zhǎng)時(shí),無(wú)需開(kāi)展剪枝工作。如此,特征屬性變量即令分類精度得以明顯提升,降低了森林中決策樹(shù)之間的相關(guān)系數(shù)。
相比于Adaboost算法,其并不過(guò)分依賴于單一分類器,噪聲數(shù)據(jù)對(duì)此的干擾相對(duì)較小。
因決策樹(shù)一般通過(guò)單個(gè)樹(shù)來(lái)完成決策樹(shù)分類,其在諸多單檢測(cè)模型之中發(fā)揮關(guān)鍵作用。但卻難以實(shí)現(xiàn)于分布式檢測(cè)模型內(nèi)。因此,此處即對(duì)以隨機(jī)森林算法為基礎(chǔ)的分布式檢測(cè)模型進(jìn)行檢測(cè)方式、框架等方面的探究。
此種模型可劃分為四大塊,如分布式分類檢測(cè)、數(shù)據(jù)采集模塊等,分布式檢測(cè)模型具體如圖2所示。
(1)數(shù)據(jù)采集模塊。通過(guò)對(duì)網(wǎng)絡(luò)流量抓包技術(shù)的運(yùn)用,以便對(duì)進(jìn)行檢測(cè)的數(shù)據(jù)流、數(shù)據(jù)包進(jìn)行抓取。
(2)預(yù)處理模塊。需要對(duì)數(shù)據(jù)或數(shù)據(jù)流進(jìn)行預(yù)處理的數(shù)據(jù)預(yù)處理方法,如數(shù)據(jù)匿名性和數(shù)據(jù)規(guī)范化操作等。
圖2 分布式檢測(cè)模型
由于收集的網(wǎng)絡(luò)數(shù)據(jù)是裸數(shù)據(jù),這些數(shù)據(jù)通常無(wú)法通過(guò)細(xì)粒度統(tǒng)計(jì)分析和數(shù)據(jù)挖掘進(jìn)行有效分析和攻擊檢測(cè)。
(3)分布式分類檢測(cè)模塊。自節(jié)點(diǎn)上對(duì)部署攻擊、正常流量的分類檢測(cè)子模塊進(jìn)行總結(jié),此后再向主節(jié)點(diǎn)匯總檢測(cè)結(jié)果,并運(yùn)用簡(jiǎn)單多數(shù)表決方式,以便得到分類結(jié)果。本模塊均將CART 算法運(yùn)用于單一決策樹(shù)分類器,并并行在分類進(jìn)程中執(zhí)行,所以具備相對(duì)獨(dú)立性。CART算法則對(duì)兩點(diǎn)遞歸分割技術(shù)加以運(yùn)用,此種技術(shù)劃分樣本集為兩大樣本子集,然后將它們分開(kāi)以形成簡(jiǎn)單的二叉樹(shù)。Gini 指數(shù)用于在分裂時(shí)測(cè)量CART算法的雜質(zhì)。對(duì)于決策樹(shù)的節(jié)點(diǎn),Gini指數(shù)計(jì)算公式如下:
其中,Gini指數(shù),即1與類別ck概率平方之和的差值,其對(duì)樣本集合不確定程度予以體現(xiàn)。一般而言,該數(shù)值較大時(shí),則樣本集合具備更為突出的不確定性程度。
(4)報(bào)警響應(yīng)模塊。就分布式分類檢測(cè)模塊而言,其中僅給出一個(gè)警報(bào)級(jí)別權(quán)重,并連續(xù)觀測(cè)多個(gè)檢測(cè)結(jié)果。若短時(shí)間內(nèi)出現(xiàn)結(jié)果較為接近或完全一致時(shí),即對(duì)報(bào)警級(jí)別權(quán)重予以增加。最后,則基于投票策略機(jī)制,以便最終警報(bào)響應(yīng)產(chǎn)生于主節(jié)點(diǎn)。并且主節(jié)點(diǎn)在末端通過(guò)輪詢機(jī),使得報(bào)警響應(yīng)出現(xiàn)于系統(tǒng)。
為令分布式協(xié)同攻擊檢測(cè)特點(diǎn)得到滿足,一般在已搭建形成的Hadoop集群系統(tǒng)內(nèi)部署隨機(jī)森林分布式檢測(cè)模型,當(dāng)前主要自多點(diǎn)來(lái)檢測(cè)攻擊流量。本方法的具體思想如下,分別在系統(tǒng)的從節(jié)點(diǎn)位置部署所有隨機(jī)森林內(nèi)的決策樹(shù)。所以,由此取得分類檢測(cè)結(jié)果,并在主節(jié)點(diǎn)上創(chuàng)建集中分析處理模塊。集中分析處理模塊的主要功能是從節(jié)點(diǎn)上每個(gè)基本分類器獲得的各種分類檢測(cè)結(jié)果,并基于投票策略來(lái)針對(duì)記錄進(jìn)行投票。由此,即可取得分類檢測(cè)的最終結(jié)果。如下即為分布式分類檢測(cè)的具體步驟:
其一,預(yù)處理測(cè)試以及原始訓(xùn)練數(shù)據(jù)集,并不均分或均分為同等于Hadoop 集群內(nèi)從節(jié)點(diǎn)數(shù)量的份數(shù);其二,基于各個(gè)節(jié)點(diǎn),運(yùn)用選擇訓(xùn)練數(shù)據(jù)樣本的隨機(jī)性,來(lái)對(duì)訓(xùn)練樣本數(shù)據(jù)進(jìn)行選定,構(gòu)建決策樹(shù),并在此基礎(chǔ)上,再運(yùn)用選定特征屬性變量的隨機(jī)性來(lái)進(jìn)行屬性特征的選定,此后完成訓(xùn)練;其三,分別在從節(jié)點(diǎn)內(nèi)輸入相關(guān)子測(cè)試數(shù)據(jù)集樣本,以便完成分類檢測(cè),獲得子結(jié)果,然后再向主節(jié)點(diǎn)發(fā)送結(jié)果;其四,通過(guò)集中分析處理模塊進(jìn)行投票,由此獲得分類檢測(cè)的最終結(jié)果。
基于分類的檢測(cè)模型,它的性能根據(jù)檢測(cè)到異常流量的個(gè)數(shù)與正常流量的個(gè)數(shù)進(jìn)行評(píng)價(jià)。TP(True Positive)表示攻擊被正確預(yù)測(cè)的個(gè)數(shù),F(xiàn)P(False Positive)表示將正常流量記錄錯(cuò)誤的預(yù)測(cè)為攻擊的記錄個(gè)數(shù),TN(True Negative)表示將正常流量預(yù)測(cè)正確的個(gè)數(shù),F(xiàn)N(False Negative)表示將攻擊錯(cuò)誤預(yù)測(cè)為正常的個(gè)數(shù),由以上四個(gè)指標(biāo),可得出DR、Accuracy、Precision:
DR 反映數(shù)據(jù)集中攻擊樣本被正確識(shí)別的比例,Accuracy反映被正確分類的樣本的比例,Precision 反映被檢測(cè)為攻擊的樣本中,真正攻擊樣本的比例。
在攻擊檢測(cè)方向,任何一個(gè)檢測(cè)算法最終要應(yīng)用到不同的實(shí)際場(chǎng)景中,但不同的應(yīng)用環(huán)境,數(shù)據(jù)量大小、網(wǎng)路環(huán)境都不相同,因此不存在唯一的標(biāo)準(zhǔn)去衡量檢測(cè)算法的優(yōu)越。為了在實(shí)驗(yàn)環(huán)境下采用一個(gè)統(tǒng)一的標(biāo)準(zhǔn),大多論文都采用美國(guó)國(guó)防部高級(jí)計(jì)劃研究局1999年用于攻擊檢測(cè)的公開(kāi)數(shù)據(jù)集KDD CUP99。為了證明本文方法在DR、Accuracy、Precision 這些性能指標(biāo)比Adaboost方法的優(yōu)越性,在實(shí)驗(yàn)室環(huán)境下,采用Linux虛擬機(jī),利用阿里云服務(wù)器,采用虛擬化的方法,搭建一個(gè)偽分布式Hadoop 集群,其中有一個(gè)主節(jié)點(diǎn),其余為從節(jié)點(diǎn),受主節(jié)點(diǎn)管理。本文采用經(jīng)典的KDD CUP 1999數(shù)據(jù)集進(jìn)行機(jī)器學(xué)習(xí)訓(xùn)練,其中選取兩類數(shù)據(jù)集,一類是異常數(shù)據(jù)集和正常數(shù)據(jù)集進(jìn)行驗(yàn)證。并且,該數(shù)據(jù)集包含測(cè)試卷和訓(xùn)練集,有41項(xiàng)特征,其中38項(xiàng)是數(shù)值型,3項(xiàng)是標(biāo)稱型數(shù)據(jù)。
本文選擇Adaboost算法與本文算法進(jìn)行性能比較,原因在于Adaboost 算法作為機(jī)器學(xué)習(xí)中一種經(jīng)典的強(qiáng)分類器算法,具有高精度的分類器,易實(shí)現(xiàn),不需要做特征篩選,并且不用擔(dān)心過(guò)度擬合的問(wèn)題,很適合攻擊檢測(cè)這種多分類的應(yīng)用場(chǎng)景,與本文算法進(jìn)行比較,有較高的參考價(jià)值。
最終,本文對(duì)最后檢測(cè)的結(jié)果進(jìn)行三項(xiàng)指標(biāo)的評(píng)估,分別是檢測(cè)率、正確率、精確率,并且與Adaboost 方法進(jìn)行三個(gè)指標(biāo)的對(duì)比,在仿真環(huán)境下證明了本文方法的優(yōu)越性。
對(duì)于本文采用的隨機(jī)森林方法,它有一個(gè)重要的特性,隨機(jī)森林中決策樹(shù)的數(shù)量即閾值的不同,對(duì)最終檢測(cè)算法的有效性及檢測(cè)效率有極大的影響。假如決策樹(shù)過(guò)多,算法的效率會(huì)下降,若過(guò)小,對(duì)結(jié)果的分類精度就會(huì)下降,產(chǎn)生過(guò)擬合的現(xiàn)象。根據(jù)以往研究者的成果及真實(shí)的實(shí)驗(yàn)基礎(chǔ)上,本文采用8個(gè)不同的閾值。
表2 表示本文模型與Adaboost 在不同閾值下各參數(shù)TP、FP、TN、FN 的實(shí)驗(yàn)結(jié)果。
表2 本文模型與Adaboost在不同閾值各參數(shù)結(jié)果
經(jīng)過(guò)圖3~5 可得,在8 個(gè)閾值中本文方法的DR、Accuracy、Precision 幾乎接近百分百,相比于Adaboost檢測(cè)性能十分優(yōu)越。
圖3 本文方法與Adaboost的DR 對(duì)比
在DR 方面,本文的檢測(cè)模型在閾值50 后基本保持在接近100%,當(dāng)閾值為100 時(shí)最大,為99.95%,而Adaboost 方法的DR 值起伏較大,且均在99.95%以下,如圖3。在Accuracy 方面,本文檢測(cè)模型的閾值為25時(shí),
圖4 本文方法與Adaboost的Accuracy 對(duì)比
圖5 本文方法與Adaboost的Precision 對(duì)比
其值為99.95%,之后有所下降,但基本都保持在99.9到99.95 之間,而Adaboost 在閾值為100 前非常低,基本不能使用,在100 后Accuracy 才大幅上升,與本文檢測(cè)方法明顯效果相差很多,如圖4 所示。在Precision 方面,本文檢測(cè)模型在所有的閾值上均優(yōu)于Adaboost 方法。其中,Adaboost 方法的閾值從100 到125 時(shí)有一個(gè)很大的上升,而上升幅度較大的原因正是因?yàn)锳daboost方法不存在兩個(gè)“隨機(jī)性”,所以只在閾值為100之后才與本文檢測(cè)模型的Precision 基本一致。如圖5所示。
最終的結(jié)果表明:本研究所設(shè)計(jì)的攻擊檢測(cè)模型在DR、Accuracy、Precision 三個(gè)方面都要比傳統(tǒng)的Adaboost方法更具優(yōu)越性,更具有優(yōu)秀的檢測(cè)性能和檢測(cè)的穩(wěn)定性。
本文為了解決在大數(shù)據(jù)環(huán)境下網(wǎng)絡(luò)存在的安全問(wèn)題,尤其針對(duì)攻擊檢測(cè)這一突出問(wèn)題,基于機(jī)器學(xué)習(xí)與統(tǒng)計(jì)分析等方法,研究了一種基于隨機(jī)森林的入侵檢測(cè)方法,并與MapReduce 分布式框架相結(jié)合,理論分析了檢測(cè)模型的功能與步驟,且檢測(cè)算法在引入兩大隨機(jī)性后,即可降低網(wǎng)絡(luò)流量?jī)?nèi)的屬性特征字段的噪聲,并使彼此關(guān)聯(lián)性得以消除,提高了攻擊檢測(cè)的檢測(cè)正確率、精確率,為網(wǎng)絡(luò)安全提供了更好的保護(hù)。