徐 偉 冷 靜
(湖北警官學(xué)院信息技術(shù)系 湖北 武漢 430034)
(電子取證及可信應(yīng)用湖北省協(xié)同創(chuàng)新中心 湖北 武漢 430034)
網(wǎng)絡(luò)攻擊給用戶帶來(lái)的損失巨大,其范圍廣、危害大,有些損失和破壞甚至不可恢復(fù)。針對(duì)網(wǎng)絡(luò)攻擊,很多大型用戶(企業(yè)級(jí))使用入侵檢測(cè)系統(tǒng)[1](Intrusion Detection System,IDS)等多種安全系統(tǒng)來(lái)抵御攻擊。由于IDS可以識(shí)別異常模式和流量,并對(duì)系統(tǒng)中所有未授權(quán)活動(dòng)進(jìn)行監(jiān)測(cè)、檢測(cè)和響應(yīng)[2],因此它一直是網(wǎng)絡(luò)安全領(lǐng)域的重要研究方向。
IDS一般包括誤用檢測(cè)和異常檢測(cè)[3]。在誤用檢測(cè)方法中,將預(yù)構(gòu)建的入侵模式作為規(guī)律保存在數(shù)據(jù)集中,每個(gè)模式代表一種特定的攻擊類型。這種情況下無(wú)法檢測(cè)到網(wǎng)絡(luò)中的新型攻擊[4],因?yàn)槠淠J讲辉跀?shù)據(jù)庫(kù)中。異常檢測(cè)方法是基于網(wǎng)絡(luò)正常行為或特征來(lái)制定決策,將明顯違背該模型的業(yè)務(wù)事件或數(shù)據(jù)流視為入侵[5]。這種IDS分類方法能夠檢測(cè)到新型未知攻擊,但由于難以區(qū)分普通行為和異常行為的界限,會(huì)造成較高的虛警率。
目前已有一些IDS方面的研究成果。文獻(xiàn)[6]提出的模型通過(guò)數(shù)據(jù)分析將網(wǎng)絡(luò)數(shù)據(jù)分類為正常行為和異常行為,是一種多級(jí)混合入侵檢測(cè)模型,使用支持向量機(jī)和極值學(xué)習(xí)機(jī)來(lái)提升對(duì)已知攻擊和未知攻擊的檢測(cè)效率。此外,文獻(xiàn)[6]還提出了改進(jìn)的K均值算法,用于構(gòu)建能夠代表整個(gè)原始訓(xùn)練數(shù)據(jù)集的多個(gè)較小的新訓(xùn)練數(shù)據(jù)集,顯著降低了分類器的訓(xùn)練時(shí)間,提升了入侵檢測(cè)系統(tǒng)的性能。文獻(xiàn)[7]提出了DDoS攻擊的應(yīng)用層實(shí)時(shí)檢測(cè)方法,根據(jù)絕對(duì)時(shí)間間隔準(zhǔn)則,推導(dǎo)出了一組新的訓(xùn)練和測(cè)試工具,該方法使用了布谷鳥(niǎo)等算法,其中布谷鳥(niǎo)二元聚類策略最大限度降低了算法的開(kāi)銷成本,并提升了預(yù)測(cè)準(zhǔn)確度。文獻(xiàn)[8]提出一種基于網(wǎng)絡(luò)連接數(shù)據(jù)分析和在線貫序極限學(xué)習(xí)機(jī)分類器的IDS,對(duì)入侵?jǐn)?shù)據(jù)庫(kù)中的網(wǎng)絡(luò)連接數(shù)據(jù)進(jìn)行分析,通過(guò)特征選擇算法選擇出最優(yōu)特征子集,利用優(yōu)化后的樣本特征集來(lái)訓(xùn)練OSELM分類器。鑒于DoS攻擊是基礎(chǔ)設(shè)施的一個(gè)主要隱患,文獻(xiàn)[9]提出了一個(gè)基于cookie的統(tǒng)計(jì)模型,使用定性和定量結(jié)果對(duì)各種統(tǒng)計(jì)模型進(jìn)行了分析,以提高模型檢測(cè)效率。
目前,很多入侵檢測(cè)的研究中使用了機(jī)器學(xué)習(xí)算法,例如分類和聚類算法或以不同方式將機(jī)器學(xué)習(xí)算法與特征選擇方法結(jié)合在一起[10]。但這些研究很少考慮降低虛警率的問(wèn)題。本文針對(duì)該問(wèn)題提出了能夠降低虛警率的異常檢測(cè)方法,使用了人工蜂群(ABC)算法和XGBoost算法的混合檢測(cè),其中ABC算法被用于特征選擇,XGBoost算法則被用于特征的評(píng)價(jià)和分類。實(shí)驗(yàn)結(jié)果證明了所提出的方法在準(zhǔn)確度和檢測(cè)率方面的優(yōu)勢(shì)。
一般IDS方法都由三個(gè)主要階段組成:預(yù)處理、特征選擇、分類。由于數(shù)據(jù)集包括數(shù)值特征、非數(shù)值特征、字符串,應(yīng)該對(duì)其進(jìn)行同質(zhì)化。因此,首先必須對(duì)數(shù)據(jù)集進(jìn)行預(yù)處理。一般預(yù)處理包括兩個(gè)階段:1) 將數(shù)據(jù)集中非數(shù)值特征轉(zhuǎn)換為數(shù)值量;2) 數(shù)值歸一化。由于NSL-KDD數(shù)據(jù)集[11]特征包括離散量和連續(xù)量,特征量位于不同區(qū)間,所以這些特征不具備可比性。因此使用歸一化完成特征的標(biāo)準(zhǔn)化,且所有數(shù)值均被限制在區(qū)間[0,1]內(nèi)。
本文方法通過(guò)ABC算法進(jìn)行特征選擇,以提升準(zhǔn)確度,并加快檢測(cè)時(shí)間;通過(guò)XGBoost算法用于特征評(píng)價(jià)和分類。本文方法的流程如圖1所示。
圖1 本文方法的流程示意圖
在ABC算法中,每類蜜蜂各司其職,食物源代表問(wèn)題相關(guān)的解,而食物源花蜜量則表示解的質(zhì)量。求解過(guò)程主要分為以下四個(gè)階段:初始化階段、雇傭蜂階段、旁觀蜂階段、偵查蜂階段[12]。
首先建立一群蜜蜂,其中半數(shù)為雇傭蜂,另一半為旁觀蜂。生成NF個(gè)解,每個(gè)解Xi(i=1,2,…,NF)為一個(gè)D維向量。Xi表示蜂群中第i個(gè)食物源。每個(gè)食物源(解)僅對(duì)應(yīng)一只雇傭蜂,即雇傭蜂或旁觀蜂的數(shù)量等于解的數(shù)量。根據(jù)式(1)隨機(jī)生成每個(gè)候選解。然后計(jì)算適應(yīng)度并保存最優(yōu)解。由于本文選擇封裝方法進(jìn)行特征選擇,因此使用了XGBoost進(jìn)行適應(yīng)度評(píng)價(jià)。
(1)
vi,j=xi,j+φi,j(xi,j-xk,j)
(2)
式中:xi,j為上一個(gè)位置;φi,j為區(qū)間[-1,1]內(nèi)的隨機(jī)量;xk,j為xi,j的一個(gè)鄰居。通過(guò)下式計(jì)算每個(gè)解的適應(yīng)度:
(3)
式中:f(xi)為第i個(gè)解的目標(biāo)函數(shù)值。
在所有雇傭蜂都完成探索過(guò)程后,將更新后解的適應(yīng)度數(shù)值與旁觀蜂共享。蜜蜂基于食物源概率選擇一個(gè)食物源。利用下式計(jì)算任意解的選擇概率[13]:
(4)
式中:fiti為雇傭蜂計(jì)算出的第i個(gè)解的適應(yīng)度數(shù)值。根據(jù)式(4)隨機(jī)選擇鄰近解,并通過(guò)式(2)搜索周圍更好的解,使得位置xi,j的變化減少。由此在搜索空間中搜索到的最優(yōu)解是在附近的。在利用式(2)完成每個(gè)探索后,若上一個(gè)食物源的位置不優(yōu)于新位置,則將trial的數(shù)值加1。為了防止局部最優(yōu)陷阱,若經(jīng)過(guò)幾次連續(xù)的重復(fù)后,食物源的trail數(shù)值是預(yù)先確定的限值,且未更新,則丟棄該食物源,與其對(duì)應(yīng)的雇傭蜂將該食物源丟棄給偵查蜂。接著,基于式(1)利用隨機(jī)探索選擇一個(gè)新的食物源來(lái)替代丟棄的食物源,丟棄食物源的trial數(shù)值為0。最后,通過(guò)反復(fù)探索計(jì)算出最優(yōu)食物源,若計(jì)算出的最優(yōu)食物源優(yōu)于整個(gè)算法的最優(yōu)食物源,則進(jìn)行替換。ABC算法的流程如圖2所示。
圖2 應(yīng)用ABC算法的流程示意圖
由于入侵檢測(cè)數(shù)據(jù)集中包含多個(gè)分類,目前很多智能算法(如AdaBoost算法)是針對(duì)二元分類設(shè)計(jì)的,并不適用于多分類問(wèn)題。因此,本文在XGBoost算法的基礎(chǔ)上,利用偽損失的概念來(lái)衡量弱假設(shè)的優(yōu)良度。其偽代碼如算法1所示。將包含5片樹(shù)葉的決策樹(shù)作為基分類器,初始時(shí)所有樣本權(quán)重相等,在每個(gè)T中改變樣本權(quán)重。弱分類器旨在最小化步驟3中的偽損失。如果弱分類器能夠不斷生成偽損失小于1/2的弱假設(shè),則對(duì)其進(jìn)行增強(qiáng)。
算法1XGBoost算法
輸入:m個(gè)帶標(biāo)簽樣本的序列((x1,y1),(x2,y2),…,(xm,ym));yi∈Y={1,2,…,k};弱分類算法DT;迭代次數(shù)T。
輸出:分類結(jié)果hfin(x)。
fort=1,2,…,Tdo
2.DT(給出分布Dt和標(biāo)簽加權(quán)函數(shù)qt)
ht:X×Y→[0,1]
式(5)和式(6)通過(guò)XGBoost函數(shù)建立網(wǎng)絡(luò)用戶的行為模型,該模型通過(guò)對(duì)測(cè)試數(shù)據(jù)集的分類進(jìn)行預(yù)測(cè)(正常類或攻擊類)。
[MDL]=XGBoost(X,t)
(5)
pre=predict(MDL,XTest)
(6)
式中:X和t分別表示訓(xùn)練數(shù)據(jù)集和樣本標(biāo)簽;XTest為測(cè)試數(shù)據(jù)集。然后根據(jù)式(7)確定實(shí)際情況下的模型誤差量,通過(guò)重復(fù)最大搜索次數(shù)的方式確定影響IDS性能的最佳特征。
L=loss(MDL,XTest,GroupTest)
(7)
式中:GroupTest為測(cè)試集標(biāo)簽。根據(jù)這些最佳特征設(shè)定檢測(cè)操作的參數(shù),這些參數(shù)將會(huì)影響到運(yùn)行時(shí)間和求解效率。
為了評(píng)價(jià)該方法,本文在NSL-KDD(KDD99修改版本)和ISCXIDS2012數(shù)據(jù)集上基于MATLAB進(jìn)行了仿真。網(wǎng)絡(luò)拓?fù)淙鐖D3所示,在上述數(shù)據(jù)集中定義不同的攻擊場(chǎng)景。仿真參數(shù)如表1所示。
圖3 混合式計(jì)算機(jī)網(wǎng)絡(luò)拓?fù)?/p>
表1 仿真參數(shù)設(shè)定
鑒于IDS性能存在若干標(biāo)準(zhǔn),本文在方法驗(yàn)證中計(jì)算了檢測(cè)率DR、虛警率FPR和準(zhǔn)確率Ac。具體計(jì)算公式為:
(8)
(9)
(10)
式中:TP表示真陽(yáng)性;TN表示真陰性;FP表示假陽(yáng)性;FN表示假陰性。其含義為:1) 真陽(yáng)性(TP):生成警報(bào)且確實(shí)存在入侵。2) 假陰性(FN):未生成警報(bào),但存在入侵,即漏警。3) 假陽(yáng)性(FP):生成警報(bào),但不存在入侵,即虛警。4) 真陰性(TN):未生成警報(bào),且不存在入侵。
本文使用NSL-KDD和ISCXIDS2012數(shù)據(jù)集來(lái)測(cè)試本文方法在不同場(chǎng)景下的性能。仿真在MATLAB中完成,訓(xùn)練時(shí)間和測(cè)試時(shí)間分別為2.3 s和32.5 s。捕捉期間每秒的數(shù)據(jù)流數(shù)量在10 MB以上。基于流量可視化的分析[14]使用Wireshark工具繪制,如圖4所示。
圖4 流量可視化分析的Wireshark工具界面
2.3.1場(chǎng)景1
在場(chǎng)景1中,攻擊者使用的攻擊類型包括:
1) DoS攻擊(拒絕服務(wù)):攻擊者占用處理有效請(qǐng)求所需的計(jì)算資源或內(nèi)存資源,使得系統(tǒng)無(wú)法應(yīng)答正常的用戶請(qǐng)求。
2) R2L攻擊(遠(yuǎn)程到本地):攻擊者遠(yuǎn)程非授權(quán)接入系統(tǒng),使用有效用戶賬戶。
3) U2R攻擊(用戶到Root):攻擊者遠(yuǎn)程接入網(wǎng)絡(luò),并非法獲得超級(jí)用戶權(quán)限,使用有效用戶賬戶。
4) 探測(cè)攻擊:攻擊者試圖獲得計(jì)算機(jī)網(wǎng)絡(luò)相關(guān)信息。
表2給出了本文方法使用NSL-KDD數(shù)據(jù)集在場(chǎng)景1下的運(yùn)行結(jié)果,可以看出,該方法成功完成了攻擊檢測(cè)。特別針對(duì)攻擊特征與正常業(yè)務(wù)非常相似的攻擊類型(識(shí)別難度較大),表3進(jìn)一步給出了場(chǎng)景1下本文方法的運(yùn)行情況。
表2 場(chǎng)景1攻擊的多項(xiàng)檢測(cè)結(jié)果
表3 場(chǎng)景1攻擊檢測(cè)的樣本情況
2.3.2場(chǎng)景2
場(chǎng)景2中,攻擊者使用的攻擊手段包括:
1) 滲透攻擊:攻擊者首先收集目標(biāo)相關(guān)信息,包括網(wǎng)絡(luò)IP段、服務(wù)器名等。通過(guò)使用網(wǎng)絡(luò)管理工具查詢資源記錄來(lái)實(shí)現(xiàn)[15]。
2) 暴力SSH攻擊:一種常見(jiàn)的網(wǎng)絡(luò)攻擊,窮舉弱用戶名和密碼組合完成賬戶入侵。該場(chǎng)景設(shè)計(jì)是對(duì)郵件服務(wù)器進(jìn)行暴力攻擊以獲取SSH賬戶[15]。
3) 僵尸網(wǎng)絡(luò)攻擊:將上述行為合并為單個(gè)平臺(tái),最終幫助平臺(tái)上的用戶執(zhí)行針對(duì)世界各地網(wǎng)絡(luò)的復(fù)雜攻擊。此類行為包括掃描、分布式拒絕服務(wù)(DDoS)活動(dòng)等[15]。
本文方法使用ISCXIDS2012數(shù)據(jù)集在場(chǎng)景2的運(yùn)行結(jié)果如表4所示,其中:正確報(bào)警率為86%,錯(cuò)誤報(bào)警率為14%,虛警率小于等于5%,漏警率為3%,準(zhǔn)確率為83%,檢測(cè)率為73%,誤差率為27%。表5給出了本文方法與其他方法的比較結(jié)果??梢钥闯?,方法在所有三個(gè)重要標(biāo)準(zhǔn)中均顯著優(yōu)于其他方法。這主要因?yàn)锳BC算法能夠避免局部最優(yōu)區(qū)域,選擇出最優(yōu)相關(guān)特征,從而實(shí)現(xiàn)性能改進(jìn)。
表4 本文方法對(duì)場(chǎng)景2攻擊的檢測(cè)結(jié)果
表5 與其他方法的結(jié)果比較
表6給出了對(duì)于DR、Ac和FPR標(biāo)準(zhǔn),本文方法在每個(gè)特征子集中單獨(dú)實(shí)施的結(jié)果??梢?jiàn),參數(shù)T的數(shù)量至少要在200以上調(diào)整。當(dāng)T=200時(shí),DR和Ac會(huì)隨最大循環(huán)數(shù)的增加而上升,且FPR則會(huì)下降。同樣,當(dāng)maxcycle=10時(shí),T增加會(huì)帶來(lái)性能提升。由于相關(guān)特征直接影響到分類準(zhǔn)確度,循環(huán)次數(shù)增加會(huì)提高選擇最合適的分類特征的概率,由此對(duì)攻擊檢測(cè)造成積極的影響。另一方面,由于XGBoost的設(shè)計(jì)能夠降低分類中的誤差,在迭代次數(shù)較高的水平上調(diào)整特征數(shù)也能得到較理想的結(jié)果。
表6 本文方法的靈敏度分析
為了分析NF的影響,以maxcycle=10,T=200運(yùn)行程序,NF分別為25和50。得到25個(gè)解時(shí),DR=98.81,Ac=93.67,F(xiàn)PR=0.093;在50個(gè)解時(shí),DR=99.40,Ac=97.50,F(xiàn)PR=0.040。結(jié)果表明增加NF能夠提升性能。4個(gè)實(shí)驗(yàn)下的分類誤差如圖5所示,其中最佳情況下分類誤差低于0.006(T=200,maxcycle=50)。
(a) T=500,maxcycle=10的情況
各方法的復(fù)雜度結(jié)果如表7所示。可以看出,本文方法在攻擊檢測(cè)中表現(xiàn)出很高的效率。在選定的數(shù)據(jù)集上,本文方法能夠以適當(dāng)?shù)臅r(shí)間和空間復(fù)雜度有效檢測(cè)網(wǎng)絡(luò)異常,其ABC算法的適應(yīng)度函數(shù)在30次迭代即可達(dá)到收斂狀態(tài)。
表7 時(shí)間和空間復(fù)雜度結(jié)果
網(wǎng)絡(luò)流量數(shù)據(jù)集非常大且不平衡,會(huì)影響到IDS的性能,其不平衡性會(huì)造成傳統(tǒng)的數(shù)據(jù)挖掘算法無(wú)法正確檢測(cè)少數(shù)異常類,而少數(shù)實(shí)例類非常重要。因此本文針對(duì)不平衡數(shù)據(jù)采用了XGBoost算法,使本文方法能夠準(zhǔn)確地對(duì)不同攻擊類型進(jìn)行分類。另一方面,ABC算法適用于優(yōu)化IDS問(wèn)題,因此采用ABC算法進(jìn)行特征選擇。在NSL-KDD和ISCXIDS2012數(shù)據(jù)集上執(zhí)行了仿真和評(píng)價(jià)。實(shí)驗(yàn)結(jié)果表明,該方法在準(zhǔn)確度和檢測(cè)率方面的性能優(yōu)秀,強(qiáng)于傳統(tǒng)方法。