◆胡朝舉 賈文瑞
(華北電力大學計算機系 河北 071000)
數據流聚類算法在網絡入侵檢測中的應用研究
◆胡朝舉 賈文瑞
(華北電力大學計算機系 河北 071000)
隨著計算機網絡技術的不斷發(fā)展,網絡的復雜化及規(guī)模化使得傳統(tǒng)的網絡入侵檢測系統(tǒng)已經無法適應,主要表現在對大量、高速網絡數據流處理的實時性一般、可靠性不高。針對這些問題,本文結合了數據流聚類算法和Snort入侵檢測系統(tǒng),設計了面向大量網絡數據流的入侵檢測機制,通過基于網格和密度的數據流聚類算法提高了處理數據流的實時性和可靠性,并在入侵檢測中體現出了高效性。
入侵檢測;數據流聚類;網格密度;Snort
隨著網絡技術的不斷發(fā)展,網絡攻擊成為了網絡穩(wěn)定運行的最大威脅。入侵檢測技術是一種積極主動的安全防護措施,它提供了對內部攻擊、外部攻擊以及誤操作的實時監(jiān)控,在系統(tǒng)受到危害之前攔截并做出相關響應。但由于網絡的復雜化以及規(guī)模化,傳統(tǒng)的網絡入侵檢測技術在面對新網絡攻擊時已經顯得無法適應,在實時性、可靠性上都需要進一步地提升。通過數據流聚類的方法可以很大地改善這一問題。
1.1 傳統(tǒng)網絡入侵檢測研究
傳統(tǒng)網絡入侵檢測系統(tǒng)算法都需要對數據進行大量的運算迭代才能出現精確的分類結果,在入侵檢測系統(tǒng)中正確區(qū)分識別各類攻擊方式,但是在新型的復雜網絡環(huán)境中,數據是連續(xù)到達且是不斷更新的,如果面對大量并且高速的數據流傳統(tǒng)算法難以適應。
1.2 基于數據流聚類的入侵檢測研究
隨著數據流聚類算法的不斷發(fā)展,已提出了多種方案來解決數據流挖掘相關問題,我們可以在入侵檢測技術中用數據流挖掘算法來替代傳統(tǒng)的靜態(tài)數據挖掘算法,從而適應當前的網絡環(huán)境。
文獻[1]中提出了基于在線和離線兩階段數據流聚類算法的入侵檢測系統(tǒng),在線端統(tǒng)計網絡數據流,離線端聚類并檢測所有簇的入侵類別,文獻[2]提出了基于數據流的網絡入侵實時檢測框架,建立了相關知識庫,通過判斷點和簇的相似性進行檢測。現有的基于數據流聚類的入侵監(jiān)測算法使用了基于K-means的Clu-Stream算法,但K-means算法是需要對樣本數據多次迭代才能得到分類結果,所以隨著高速數據流的不斷流入,不能高速且實時地處理并能做出正確的響應。
1.3 網絡入侵檢測Snort系統(tǒng)
許多入侵檢測系統(tǒng)都用到了Snort系統(tǒng),Snort是一個擁有多平臺、實時流量分析、網絡IP數據包記錄等特性的強大的網絡入侵檢測/防御系統(tǒng),它以開放源代碼形式發(fā)行,包括數據包嗅探、數據包分析、數據包檢測、響應處理等多種功能,每個模塊實現不同的功能,各模塊都是用插件的方式和Snort相結合,有很強的擴展性。
與其它大型入侵檢測系統(tǒng)相比較,Snort系統(tǒng)具有靈活性強、尺寸小、安裝配置簡便、模塊化功能強大等優(yōu)勢。Snort既能用于網絡入侵檢測,也可以用作網絡數據包的記錄和分析。Snort系統(tǒng)采用基于規(guī)則的檢測模式,將網絡數據流處理后進行規(guī)則匹配,以此檢測各種入侵行為和探測活動。
1.4 總結
本文基于網格和密度的數據流聚類算法,采用在線和離線兩階段法進行聚類,結合Snort系統(tǒng),提出一種實時網絡入侵檢測設計方案,通過網格壓縮數據以提高實時性,按密度進行聚類并提取特征向量進行檢測,最后預警和更新規(guī)則庫,從而滿足要求。
定義1 數據流:X={X1,X2…Xn},它只能有序訪問且只能一次或者幾次被訪問。
定義2 網格:若某數據A有m維,A=A1×A2×…×Am,將Ai劃分為n段,則Ai被劃分成了n格,和其它維的交叉組合空間就是網格。
定義3 網格密度:網格密度即為每個網格中存在點的系數和,記為D,按照密度的不同,將其分為稠密網格、稀疏網格、過渡網格。規(guī)定稠密閾值Dm和稀疏閾值Dl,如果當前D>Dm則該網格為稠密網格,如果當前D < Dl則該網格為稀疏網格,如果當前網格Dl<D<Dm,則該網格為過渡網格。
定義4 網格元組:網格g對應的網格元組為(Tg,D,L,Status),其中Tg代表最后一次數據到達的時間,D為網格密度,L代表所示簇類,Status代表是否為異常網格。
定義5 相鄰網格:對網格來說,如果網格g1和網格g2除一個屬性相差1以外,其余屬性都相等,則g1和g2是相鄰網格。
定義6 金字塔時間模型[3]:用于存儲數據流快照,它按照不同的等級存儲概要,節(jié)約了系統(tǒng)空間。
定義7 滑動窗口:內存中一段數據區(qū)域,存放最近到達的數據流,隨數據流不斷流入,滑動窗口會拋去舊數據,填充新數據。
定義8 衰減系數:為了使數據聚類能反映最近最新數據對聚類的影響,隔一段時間T,網格密度會進行衰減,衰減系數即為λ,D(t+T)=λD(t),其中λ∈(0,1)。
3.1 系統(tǒng)設計
本系統(tǒng)主要包括Snort、數據預處理、數據的在線微聚類、離線宏聚類、異常檢測和更新規(guī)則這幾個主要部分,結構如圖1所示。

圖1 系統(tǒng)結構圖
在系統(tǒng)中,Snort用于從網絡數據流中抓取數據包并解析,和規(guī)則庫匹配后過濾已有的網絡入侵檢測類型,其余未知的數據流則進入下一階段。
預處理是將數據流規(guī)則化,若某種狀態(tài)只有兩種可能,則可用1和0代替,方便在網格劃分的處理,為了使得數據流聚類有更高的效率,可以將抓取的數據包中一些無關的數據屬性進行排除,保留相關性強的一些屬性如協(xié)議類型、訪問敏感數據文件次數、訪問控制文件次數等。
在線微聚類首先會初始化網格,待數據到來后填充網格,確定網格的密度并識別網格是否為稠密、過渡或稀疏網格,得到初始的密度網格簇,待到時間滿足滑動窗口時衰減密度并進行離線聚類。
離線聚類則是根據格簇集合進行聚類,確定每個網格的所屬類,并用金字塔快照存儲概要信息。
異常檢測則是對離線宏聚類中的聚類結果進行分析,如果發(fā)現異常的類別,則提取類別特征信息并進行規(guī)格化,最后將新的異常特征加入原有規(guī)則庫。
其中,Snort負責對異常數據的響應及處理,并及時做出預警。系統(tǒng)中也可加入用戶的控制,用戶通過輸入一些相關屬性使聚類和檢測的效率更高,或者用戶查看任意時間的聚類和檢測分析結果。
3.2 算法設計
在線層算法:
輸入:網格劃分length、衰減系數λ、經處理的流數據、稀疏和稠密閾值。
輸出:密度網格簇。
步驟1:初始化網格,t=0;
步驟2:While 數據流未結束 do;
步驟3:讀入數據,t=t+1;
步驟4:填充數據至網格,更新網格元組;
步驟5:若t等于滑動窗口,確定網格密度、形成初始聚類;
步驟6:若t等于滑動窗口倍數,網格密度衰減,更新網格元組;
步驟7:end While。
這里注意在若某網格是稀疏網格并周圍無相鄰網格時,不能進行孤立點的移除,因為它可能就是異常攻擊數據流,因為普通的數據流占了很大一部分,相對于這些孤立簇來說,我們更希望對這些孤立簇進行分析。另外,為了使算法高效,可以對長時間未來數據的網格進行移除,減少維護空間。
離線層算法:
輸入:格簇的集合。
輸出:網格快照。
步驟1:檢查過渡網格,確定稠密網格;
步驟2:檢查鄰近網格的密度,確定過渡網格所屬的類別并進行調整;
步驟3:對格簇進行調整,輸出聚類結果;
步驟4:用金字塔結構存儲快照信息。
用戶可以在不同時間進行查詢和檢測,因為金字塔快照是根據時間存儲的概要信息,可以滿足任意時間的聚類分析。
實驗的數據采用 UCI 機器學習庫當中的入侵檢測 KDD CUP數據集,它包括了Dos、R2L、U2L、PROBING幾種攻擊類型,由于原始數據量比較龐大,我們選取了其中的部分數據進行測試,為了方便處理,選取了20維數據進行驗證。
基于網格和密度的數據流聚類算法在精度上高于Clu-Stream算法,且分類簇非球狀。

圖2 處理時間比較
在實時性上,密度網格處理時間更快。
檢測實驗結果表明,數據流聚類精度可以達到94%,入侵檢測的識別召回率達到91%,誤報率在0.6%。
該系統(tǒng)結構表現出了良好的性能,同時也體現了在網絡入侵檢測中數據流聚類算法的優(yōu)越性,基于數據流聚類算法以及正在發(fā)展的分布式流聚類算法在未來網絡入侵檢測中是很好的發(fā)展趨勢。
[1]俞研,郭山清,黃皓.基于數據流的異常入侵檢測[J].計算機科學,2007.
[2]李艷紅,李德玉,崔夢天,李華.基于數據流的網絡入侵實時檢測框架[J].計算機應用,2015.
[3]李敏.基于網格密度的數據流聚類算法研究[D].武漢:武漢理工學,2009.
[4]尚志遠.基于數據流挖掘分析的網絡入侵檢測系統(tǒng)研究[D].山東大學,2012.
[5]王治和,楊晏.基于雙層網格和密度的數據流聚類算法[J].計算機工程,2014.
[6]葛翠翠.數據流挖掘技術在入侵檢測中的研究與應用[D].廣東工業(yè)大學,2013.
[7]朱桂宏,王剛.基于數據流的網絡入侵檢測研究[J].計算機技術與發(fā)展,2009.

經實驗得出結果為:

表1 實驗結果對照表

圖3 預測流量與實際流量比較圖
作為網絡管理重要內容之一的網絡流量預測,一直是人們的研究的熱點,通過對流量的預測,可以提高網絡管理效率,方便網管人員更加有目的性地完善網絡,并可對以后的網絡升級等提供依據。本文提出了基于BP神經網絡的流量預測模型,并通過仿真實驗驗證了模型的可用性。實驗結果表明該模型對網絡流量的預測基本準確。但由于影響網絡流量的因素很多,因此單一通過流量特征預測具有一定的局限性,如果能夠參考諸如網絡結構,節(jié)點分布等方面綜合考慮,則能夠更加完善網絡流量的預測,也是筆者下一步希望進行的后續(xù)研究。
參考文獻:
[1]楊新宇,楊樹森,李娟.基于非線性預處理網絡流量預測方法的泛洪型DDoS攻擊檢測算法[J].計算機學報,2011.
[2]張婷婷,趙京勝.一種基于神經網絡的入侵檢測系統(tǒng)研究[J].計算機安全,2010.
[3]何運村,張柱華.灰色理論及神經網絡在就業(yè)預測中的應用研究[J].計算機與數字工程,2008.
[4]Haykin5 著 葉世偉譯.神經網絡原理 第2版[M].北京:機械工業(yè)出版社,2004.
[5]劉巖.網絡流量控制若干關鍵技術研究[D].上海:復旦大學圖書館,2004.
數據來源于思科發(fā)布的Visual Networking Index(VNI)Forecast(2011-2016)年度預測結果。