◆胡朝舉 賈文瑞
(華北電力大學(xué)計(jì)算機(jī)系 河北 071000)
數(shù)據(jù)流聚類算法在網(wǎng)絡(luò)入侵檢測(cè)中的應(yīng)用研究
◆胡朝舉 賈文瑞
(華北電力大學(xué)計(jì)算機(jī)系 河北 071000)
隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,網(wǎng)絡(luò)的復(fù)雜化及規(guī)?;沟脗鹘y(tǒng)的網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)已經(jīng)無(wú)法適應(yīng),主要表現(xiàn)在對(duì)大量、高速網(wǎng)絡(luò)數(shù)據(jù)流處理的實(shí)時(shí)性一般、可靠性不高。針對(duì)這些問(wèn)題,本文結(jié)合了數(shù)據(jù)流聚類算法和Snort入侵檢測(cè)系統(tǒng),設(shè)計(jì)了面向大量網(wǎng)絡(luò)數(shù)據(jù)流的入侵檢測(cè)機(jī)制,通過(guò)基于網(wǎng)格和密度的數(shù)據(jù)流聚類算法提高了處理數(shù)據(jù)流的實(shí)時(shí)性和可靠性,并在入侵檢測(cè)中體現(xiàn)出了高效性。
入侵檢測(cè);數(shù)據(jù)流聚類;網(wǎng)格密度;Snort
隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,網(wǎng)絡(luò)攻擊成為了網(wǎng)絡(luò)穩(wěn)定運(yùn)行的最大威脅。入侵檢測(cè)技術(shù)是一種積極主動(dòng)的安全防護(hù)措施,它提供了對(duì)內(nèi)部攻擊、外部攻擊以及誤操作的實(shí)時(shí)監(jiān)控,在系統(tǒng)受到危害之前攔截并做出相關(guān)響應(yīng)。但由于網(wǎng)絡(luò)的復(fù)雜化以及規(guī)?;?,傳統(tǒng)的網(wǎng)絡(luò)入侵檢測(cè)技術(shù)在面對(duì)新網(wǎng)絡(luò)攻擊時(shí)已經(jīng)顯得無(wú)法適應(yīng),在實(shí)時(shí)性、可靠性上都需要進(jìn)一步地提升。通過(guò)數(shù)據(jù)流聚類的方法可以很大地改善這一問(wèn)題。
1.1 傳統(tǒng)網(wǎng)絡(luò)入侵檢測(cè)研究
傳統(tǒng)網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)算法都需要對(duì)數(shù)據(jù)進(jìn)行大量的運(yùn)算迭代才能出現(xiàn)精確的分類結(jié)果,在入侵檢測(cè)系統(tǒng)中正確區(qū)分識(shí)別各類攻擊方式,但是在新型的復(fù)雜網(wǎng)絡(luò)環(huán)境中,數(shù)據(jù)是連續(xù)到達(dá)且是不斷更新的,如果面對(duì)大量并且高速的數(shù)據(jù)流傳統(tǒng)算法難以適應(yīng)。
1.2 基于數(shù)據(jù)流聚類的入侵檢測(cè)研究
隨著數(shù)據(jù)流聚類算法的不斷發(fā)展,已提出了多種方案來(lái)解決數(shù)據(jù)流挖掘相關(guān)問(wèn)題,我們可以在入侵檢測(cè)技術(shù)中用數(shù)據(jù)流挖掘算法來(lái)替代傳統(tǒng)的靜態(tài)數(shù)據(jù)挖掘算法,從而適應(yīng)當(dāng)前的網(wǎng)絡(luò)環(huán)境。
文獻(xiàn)[1]中提出了基于在線和離線兩階段數(shù)據(jù)流聚類算法的入侵檢測(cè)系統(tǒng),在線端統(tǒng)計(jì)網(wǎng)絡(luò)數(shù)據(jù)流,離線端聚類并檢測(cè)所有簇的入侵類別,文獻(xiàn)[2]提出了基于數(shù)據(jù)流的網(wǎng)絡(luò)入侵實(shí)時(shí)檢測(cè)框架,建立了相關(guān)知識(shí)庫(kù),通過(guò)判斷點(diǎn)和簇的相似性進(jìn)行檢測(cè)。現(xiàn)有的基于數(shù)據(jù)流聚類的入侵監(jiān)測(cè)算法使用了基于K-means的Clu-Stream算法,但K-means算法是需要對(duì)樣本數(shù)據(jù)多次迭代才能得到分類結(jié)果,所以隨著高速數(shù)據(jù)流的不斷流入,不能高速且實(shí)時(shí)地處理并能做出正確的響應(yīng)。
1.3 網(wǎng)絡(luò)入侵檢測(cè)Snort系統(tǒng)
許多入侵檢測(cè)系統(tǒng)都用到了Snort系統(tǒng),Snort是一個(gè)擁有多平臺(tái)、實(shí)時(shí)流量分析、網(wǎng)絡(luò)IP數(shù)據(jù)包記錄等特性的強(qiáng)大的網(wǎng)絡(luò)入侵檢測(cè)/防御系統(tǒng),它以開放源代碼形式發(fā)行,包括數(shù)據(jù)包嗅探、數(shù)據(jù)包分析、數(shù)據(jù)包檢測(cè)、響應(yīng)處理等多種功能,每個(gè)模塊實(shí)現(xiàn)不同的功能,各模塊都是用插件的方式和Snort相結(jié)合,有很強(qiáng)的擴(kuò)展性。
與其它大型入侵檢測(cè)系統(tǒng)相比較,Snort系統(tǒng)具有靈活性強(qiáng)、尺寸小、安裝配置簡(jiǎn)便、模塊化功能強(qiáng)大等優(yōu)勢(shì)。Snort既能用于網(wǎng)絡(luò)入侵檢測(cè),也可以用作網(wǎng)絡(luò)數(shù)據(jù)包的記錄和分析。Snort系統(tǒng)采用基于規(guī)則的檢測(cè)模式,將網(wǎng)絡(luò)數(shù)據(jù)流處理后進(jìn)行規(guī)則匹配,以此檢測(cè)各種入侵行為和探測(cè)活動(dòng)。
1.4 總結(jié)
本文基于網(wǎng)格和密度的數(shù)據(jù)流聚類算法,采用在線和離線兩階段法進(jìn)行聚類,結(jié)合Snort系統(tǒng),提出一種實(shí)時(shí)網(wǎng)絡(luò)入侵檢測(cè)設(shè)計(jì)方案,通過(guò)網(wǎng)格壓縮數(shù)據(jù)以提高實(shí)時(shí)性,按密度進(jìn)行聚類并提取特征向量進(jìn)行檢測(cè),最后預(yù)警和更新規(guī)則庫(kù),從而滿足要求。
定義1 數(shù)據(jù)流:X={X1,X2…Xn},它只能有序訪問(wèn)且只能一次或者幾次被訪問(wèn)。
定義2 網(wǎng)格:若某數(shù)據(jù)A有m維,A=A1×A2×…×Am,將Ai劃分為n段,則Ai被劃分成了n格,和其它維的交叉組合空間就是網(wǎng)格。
定義3 網(wǎng)格密度:網(wǎng)格密度即為每個(gè)網(wǎng)格中存在點(diǎn)的系數(shù)和,記為D,按照密度的不同,將其分為稠密網(wǎng)格、稀疏網(wǎng)格、過(guò)渡網(wǎng)格。規(guī)定稠密閾值Dm和稀疏閾值Dl,如果當(dāng)前D>Dm則該網(wǎng)格為稠密網(wǎng)格,如果當(dāng)前D < Dl則該網(wǎng)格為稀疏網(wǎng)格,如果當(dāng)前網(wǎng)格Dl<D<Dm,則該網(wǎng)格為過(guò)渡網(wǎng)格。
定義4 網(wǎng)格元組:網(wǎng)格g對(duì)應(yīng)的網(wǎng)格元組為(Tg,D,L,Status),其中Tg代表最后一次數(shù)據(jù)到達(dá)的時(shí)間,D為網(wǎng)格密度,L代表所示簇類,Status代表是否為異常網(wǎng)格。
定義5 相鄰網(wǎng)格:對(duì)網(wǎng)格來(lái)說(shuō),如果網(wǎng)格g1和網(wǎng)格g2除一個(gè)屬性相差1以外,其余屬性都相等,則g1和g2是相鄰網(wǎng)格。
定義6 金字塔時(shí)間模型[3]:用于存儲(chǔ)數(shù)據(jù)流快照,它按照不同的等級(jí)存儲(chǔ)概要,節(jié)約了系統(tǒng)空間。
定義7 滑動(dòng)窗口:內(nèi)存中一段數(shù)據(jù)區(qū)域,存放最近到達(dá)的數(shù)據(jù)流,隨數(shù)據(jù)流不斷流入,滑動(dòng)窗口會(huì)拋去舊數(shù)據(jù),填充新數(shù)據(jù)。
定義8 衰減系數(shù):為了使數(shù)據(jù)聚類能反映最近最新數(shù)據(jù)對(duì)聚類的影響,隔一段時(shí)間T,網(wǎng)格密度會(huì)進(jìn)行衰減,衰減系數(shù)即為λ,D(t+T)=λD(t),其中λ∈(0,1)。
3.1 系統(tǒng)設(shè)計(jì)
本系統(tǒng)主要包括Snort、數(shù)據(jù)預(yù)處理、數(shù)據(jù)的在線微聚類、離線宏聚類、異常檢測(cè)和更新規(guī)則這幾個(gè)主要部分,結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)圖
在系統(tǒng)中,Snort用于從網(wǎng)絡(luò)數(shù)據(jù)流中抓取數(shù)據(jù)包并解析,和規(guī)則庫(kù)匹配后過(guò)濾已有的網(wǎng)絡(luò)入侵檢測(cè)類型,其余未知的數(shù)據(jù)流則進(jìn)入下一階段。
預(yù)處理是將數(shù)據(jù)流規(guī)則化,若某種狀態(tài)只有兩種可能,則可用1和0代替,方便在網(wǎng)格劃分的處理,為了使得數(shù)據(jù)流聚類有更高的效率,可以將抓取的數(shù)據(jù)包中一些無(wú)關(guān)的數(shù)據(jù)屬性進(jìn)行排除,保留相關(guān)性強(qiáng)的一些屬性如協(xié)議類型、訪問(wèn)敏感數(shù)據(jù)文件次數(shù)、訪問(wèn)控制文件次數(shù)等。
在線微聚類首先會(huì)初始化網(wǎng)格,待數(shù)據(jù)到來(lái)后填充網(wǎng)格,確定網(wǎng)格的密度并識(shí)別網(wǎng)格是否為稠密、過(guò)渡或稀疏網(wǎng)格,得到初始的密度網(wǎng)格簇,待到時(shí)間滿足滑動(dòng)窗口時(shí)衰減密度并進(jìn)行離線聚類。
離線聚類則是根據(jù)格簇集合進(jìn)行聚類,確定每個(gè)網(wǎng)格的所屬類,并用金字塔快照存儲(chǔ)概要信息。
異常檢測(cè)則是對(duì)離線宏聚類中的聚類結(jié)果進(jìn)行分析,如果發(fā)現(xiàn)異常的類別,則提取類別特征信息并進(jìn)行規(guī)格化,最后將新的異常特征加入原有規(guī)則庫(kù)。
其中,Snort負(fù)責(zé)對(duì)異常數(shù)據(jù)的響應(yīng)及處理,并及時(shí)做出預(yù)警。系統(tǒng)中也可加入用戶的控制,用戶通過(guò)輸入一些相關(guān)屬性使聚類和檢測(cè)的效率更高,或者用戶查看任意時(shí)間的聚類和檢測(cè)分析結(jié)果。
3.2 算法設(shè)計(jì)
在線層算法:
輸入:網(wǎng)格劃分length、衰減系數(shù)λ、經(jīng)處理的流數(shù)據(jù)、稀疏和稠密閾值。
輸出:密度網(wǎng)格簇。
步驟1:初始化網(wǎng)格,t=0;
步驟2:While 數(shù)據(jù)流未結(jié)束 do;
步驟3:讀入數(shù)據(jù),t=t+1;
步驟4:填充數(shù)據(jù)至網(wǎng)格,更新網(wǎng)格元組;
步驟5:若t等于滑動(dòng)窗口,確定網(wǎng)格密度、形成初始聚類;
步驟6:若t等于滑動(dòng)窗口倍數(shù),網(wǎng)格密度衰減,更新網(wǎng)格元組;
步驟7:end While。
這里注意在若某網(wǎng)格是稀疏網(wǎng)格并周圍無(wú)相鄰網(wǎng)格時(shí),不能進(jìn)行孤立點(diǎn)的移除,因?yàn)樗赡芫褪钱惓9魯?shù)據(jù)流,因?yàn)槠胀ǖ臄?shù)據(jù)流占了很大一部分,相對(duì)于這些孤立簇來(lái)說(shuō),我們更希望對(duì)這些孤立簇進(jìn)行分析。另外,為了使算法高效,可以對(duì)長(zhǎng)時(shí)間未來(lái)數(shù)據(jù)的網(wǎng)格進(jìn)行移除,減少維護(hù)空間。
離線層算法:
輸入:格簇的集合。
輸出:網(wǎng)格快照。
步驟1:檢查過(guò)渡網(wǎng)格,確定稠密網(wǎng)格;
步驟2:檢查鄰近網(wǎng)格的密度,確定過(guò)渡網(wǎng)格所屬的類別并進(jìn)行調(diào)整;
步驟3:對(duì)格簇進(jìn)行調(diào)整,輸出聚類結(jié)果;
步驟4:用金字塔結(jié)構(gòu)存儲(chǔ)快照信息。
用戶可以在不同時(shí)間進(jìn)行查詢和檢測(cè),因?yàn)榻鹱炙煺帐歉鶕?jù)時(shí)間存儲(chǔ)的概要信息,可以滿足任意時(shí)間的聚類分析。
實(shí)驗(yàn)的數(shù)據(jù)采用 UCI 機(jī)器學(xué)習(xí)庫(kù)當(dāng)中的入侵檢測(cè) KDD CUP數(shù)據(jù)集,它包括了Dos、R2L、U2L、PROBING幾種攻擊類型,由于原始數(shù)據(jù)量比較龐大,我們選取了其中的部分?jǐn)?shù)據(jù)進(jìn)行測(cè)試,為了方便處理,選取了20維數(shù)據(jù)進(jìn)行驗(yàn)證。
基于網(wǎng)格和密度的數(shù)據(jù)流聚類算法在精度上高于Clu-Stream算法,且分類簇非球狀。
圖2 處理時(shí)間比較
在實(shí)時(shí)性上,密度網(wǎng)格處理時(shí)間更快。
檢測(cè)實(shí)驗(yàn)結(jié)果表明,數(shù)據(jù)流聚類精度可以達(dá)到94%,入侵檢測(cè)的識(shí)別召回率達(dá)到91%,誤報(bào)率在0.6%。
該系統(tǒng)結(jié)構(gòu)表現(xiàn)出了良好的性能,同時(shí)也體現(xiàn)了在網(wǎng)絡(luò)入侵檢測(cè)中數(shù)據(jù)流聚類算法的優(yōu)越性,基于數(shù)據(jù)流聚類算法以及正在發(fā)展的分布式流聚類算法在未來(lái)網(wǎng)絡(luò)入侵檢測(cè)中是很好的發(fā)展趨勢(shì)。
[1]俞研,郭山清,黃皓.基于數(shù)據(jù)流的異常入侵檢測(cè)[J].計(jì)算機(jī)科學(xué),2007.
[2]李艷紅,李德玉,崔夢(mèng)天,李華.基于數(shù)據(jù)流的網(wǎng)絡(luò)入侵實(shí)時(shí)檢測(cè)框架[J].計(jì)算機(jī)應(yīng)用,2015.
[3]李敏.基于網(wǎng)格密度的數(shù)據(jù)流聚類算法研究[D].武漢:武漢理工學(xué),2009.
[4]尚志遠(yuǎn).基于數(shù)據(jù)流挖掘分析的網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)研究[D].山東大學(xué),2012.
[5]王治和,楊晏.基于雙層網(wǎng)格和密度的數(shù)據(jù)流聚類算法[J].計(jì)算機(jī)工程,2014.
[6]葛翠翠.數(shù)據(jù)流挖掘技術(shù)在入侵檢測(cè)中的研究與應(yīng)用[D].廣東工業(yè)大學(xué),2013.
[7]朱桂宏,王剛.基于數(shù)據(jù)流的網(wǎng)絡(luò)入侵檢測(cè)研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2009.
經(jīng)實(shí)驗(yàn)得出結(jié)果為:
表1 實(shí)驗(yàn)結(jié)果對(duì)照表
圖3 預(yù)測(cè)流量與實(shí)際流量比較圖
作為網(wǎng)絡(luò)管理重要內(nèi)容之一的網(wǎng)絡(luò)流量預(yù)測(cè),一直是人們的研究的熱點(diǎn),通過(guò)對(duì)流量的預(yù)測(cè),可以提高網(wǎng)絡(luò)管理效率,方便網(wǎng)管人員更加有目的性地完善網(wǎng)絡(luò),并可對(duì)以后的網(wǎng)絡(luò)升級(jí)等提供依據(jù)。本文提出了基于BP神經(jīng)網(wǎng)絡(luò)的流量預(yù)測(cè)模型,并通過(guò)仿真實(shí)驗(yàn)驗(yàn)證了模型的可用性。實(shí)驗(yàn)結(jié)果表明該模型對(duì)網(wǎng)絡(luò)流量的預(yù)測(cè)基本準(zhǔn)確。但由于影響網(wǎng)絡(luò)流量的因素很多,因此單一通過(guò)流量特征預(yù)測(cè)具有一定的局限性,如果能夠參考諸如網(wǎng)絡(luò)結(jié)構(gòu),節(jié)點(diǎn)分布等方面綜合考慮,則能夠更加完善網(wǎng)絡(luò)流量的預(yù)測(cè),也是筆者下一步希望進(jìn)行的后續(xù)研究。
參考文獻(xiàn):
[1]楊新宇,楊樹森,李娟.基于非線性預(yù)處理網(wǎng)絡(luò)流量預(yù)測(cè)方法的泛洪型DDoS攻擊檢測(cè)算法[J].計(jì)算機(jī)學(xué)報(bào),2011.
[2]張婷婷,趙京勝.一種基于神經(jīng)網(wǎng)絡(luò)的入侵檢測(cè)系統(tǒng)研究[J].計(jì)算機(jī)安全,2010.
[3]何運(yùn)村,張柱華.灰色理論及神經(jīng)網(wǎng)絡(luò)在就業(yè)預(yù)測(cè)中的應(yīng)用研究[J].計(jì)算機(jī)與數(shù)字工程,2008.
[4]Haykin5 著 葉世偉譯.神經(jīng)網(wǎng)絡(luò)原理 第2版[M].北京:機(jī)械工業(yè)出版社,2004.
[5]劉巖.網(wǎng)絡(luò)流量控制若干關(guān)鍵技術(shù)研究[D].上海:復(fù)旦大學(xué)圖書館,2004.
數(shù)據(jù)來(lái)源于思科發(fā)布的Visual Networking Index(VNI)Forecast(2011-2016)年度預(yù)測(cè)結(jié)果。