摘 要:本文主要構建了一種基于聚類技術的分布式入侵檢測系統模型——CDIDS,介紹了該模型中各個模塊的設計方法和工作流程,同時,也說明了整個系統的工作流程,并對該系統進行了性能評價,說明其可擴展、強壯并且智能。
關鍵詞:網絡安全;入侵檢測;聚類
1 引言
近年,隨著Internet迅速發展的同時,計算機及計算機網絡逐漸成為計算機犯罪的攻擊目標,從而導致社會和個人都有很大的損失。計算機及網絡的安全也因此成為研究的焦點。入侵檢測技術是繼傳統安全保護措施后新一代的安全保障技術,作為一種積極主動的安全防護技術,它有效地補充和完善了其他安全技術和手段。
由于數據挖掘能夠從存儲的大量數據中挖掘出有效、新穎、具有潛在用途及最終可以理解的模式,所以可以將其應用于入侵檢測領域中,發現新類型或變種的攻擊。以聚類分析為代表的無監督檢測方法的提出解決了傳統方法存在的問題。因此,致力于基于聚類方法的入侵檢測技術的研究具有重要的社會意義和現實意義。
2 入侵檢測
入侵檢測是指對入侵行為的發現,通過在計算機網絡或計算機系統中的若干關鍵點收集信息并對收集到的信息進行分析,從而判斷網絡或系統中是否有違反安全策略的行為或攻擊的跡象[1]。入侵檢測技術的引入,使得網絡、系統的安全性得到進一步的提高。完成入侵檢測功能的軟件和硬件的組合稱為入侵檢測系統(Intrusion Detection System)簡稱IDS。
3 數據挖掘
數據挖掘(DM,Data Mining)就是從大量的、不完整的、有噪聲的、模糊的、隨機的數據中,提取隱含在其中的、人們事先不知道的、但又是潛在的、有用的信息和知識的過程[2]。數據挖掘的主要分析方法有分類分析、關聯規則、序列模式分析和聚類分析等等,本文著重講述聚類分析方法。
4 聚類分析
聚類是一個將數據劃分為若干組或類的過程,并使得同一個組內的數據對象具有較高的相似度,而不同組中的數據對象則是不相似的[3]。一個聚類就是由彼此相似的一組對象所構成的集合,聚類分析就是從給定的數據集中搜索數據對象之間存在的有價值的聯系。
5 基于聚類技術的分布式入侵檢測模型CDIDS的設計
5.1 設計思想
本文所提出的入侵檢測模型的設計遵循如下原則:
5.1.1 基于Agent的分布式檢測系統
本文采用分布協作式體系結構,將每個主機代理都設計成可以獨立檢測和響應的單元,向中央控制模塊發送入侵行為特征。
5.1.2 誤用檢測與異常檢測相結合
誤用入侵檢測利用已知系統和應用軟件的弱點攻擊模式來檢測入侵,能直接檢測出不利的或不可接受的行為。這種檢測方法檢測率高、誤報率低、檢測速度快,但是漏報率較高,對新的入侵行為和已知入侵行為的變種卻無能為力。異常檢測是基于已掌握了的被保護對象的行為建立正常工作模式,并假定正常工作模式相對穩定。異常檢測最大的優點是有可能檢測出以前從未出現過的攻擊方式,但是誤報率較高[4]。通過以上說明可以看出誤用檢測和異常檢測技術是互補的,兩種技術的結合可以互相補短,進而提高入侵檢測的準確性。
5.2 CDIDS系統模型
本文將所設計的基于聚類技術的分布式入侵檢測模型定義為CDIDS,該模型分為兩大模塊——Agent和中央控制模塊。
系統工作原理如下:
(1)每個駐留在被保護主機的代理獨立承擔一定的檢測任務,檢測系統或網絡安全的某個方面,并把收集到的網絡數據進行檢測分析,將檢測到的入侵行為特征傳送給中央控制模塊。
(2)中央控制單元將接收到的入侵行為特征存入數據庫,利用數據挖掘模塊對這些入侵行為進行挖掘,形成規則即入侵特征庫存入數據庫,并將這些規則傳送給每個代理,使得每個代理都可以自動更新入侵特征庫,實現智能化。
5.2.1 Agent設計
本系統中Agent由五個模塊構成:數據采集模塊、預處理模塊、誤用檢測模塊、異常檢測模塊和響應模塊。
(1)數據采集模塊。數據采集模塊的主要作用是收集網絡數據包。為了將包輸送給預處理程序以及隨后的檢測引擎,必須先做一些準備工作,即需要一個抓包工具。WinPcap是由伯克利分組捕獲庫派生而來的分組捕獲庫,它是在Windows 操作平臺上來實現對底層包的截取過濾。
(2)數據預處理模塊。數據預處理模塊主要的作用是對數據采集模塊采集到的連接進行特征提取,提取出能用于數據挖掘的特征群,并對這些特征數據標準化處理,供檢測引擎中的數據挖掘算法使用。
(3)誤用檢測模塊。誤用檢測模塊將待檢測的數據對象與入侵模式庫中的規則類別相比較,同時設定一個閾值dn。計算待檢測對象與規則庫中每個類別的距離,找出距離它最短的類別,如果距離值小于dn,則說明該數據對象屬于此類,將其確定為入侵行為,啟動響應模塊;否則,說明該對象是新型攻擊或者正常數據(這里視其為可疑數據),將其送往異常檢測模塊。
(4)異常檢測模塊。異常檢測模塊將誤用檢測模塊中判斷得到的可疑數據與正常模式庫中的類進行比較,并設定閾值da。如果數據與正常模式庫中的任意類別的距離都大于da,則將此數據判定為入侵,加入入侵模式庫并啟動響應單元;否則說明此數據為正常行為,將其丟棄。
在誤用檢測模塊中所使用的模式匹配技術也是基于距離計算,將待檢測的數據對象與正常模式庫中的聚類中心進行計算,得到距離dis(m,C)(m為待檢測數據對象,C為正常模式庫中到m最近的聚類的聚類中心),若dis(m,C)≤da,則說明m為正常數據,否則,便將m判定為入侵行為。
(5)響應模塊。當CDIDS發現入侵時,便啟動響應模塊,響應模塊主要的作用就是進行報警,提示系統管理員系統有入侵行為,以便管理員采取響應措施。
5.2.2 中央控制模塊的設計
中央控制模塊的主要作用是收集入侵行為,挖掘新的規則,并實時將最新的規則庫傳送給各代理。中央控制模塊主要由兩部分組成:數據庫和數據挖掘單元。
這里的數據庫可以分為入侵數據庫和規則數據庫。入侵數據庫存放的是從各個代理傳送來的入侵行為,入侵數據庫實時更新入侵內容,將入侵行為提供給數據挖掘模塊進行聚類。規則庫存放的是入侵規則,即入侵類別。數據挖掘模塊采用的是KD算法[5],將入侵數據庫中的行為進行聚類,形成不同類別,存入規則庫。
5.3 系統工作流程
CDIDS系統工作分為兩階段:訓練階段和檢測階段。
5.3.1 訓練階段
由于開始時系統中所有的數據庫都是空的,沒有入侵行為,也沒有規則,因此需要有一個訓練階段來存儲入侵行為和形成規則,這也是聚類分析方法在此模型中應用的主要所在。
5.3.2 檢測階段
檢測階段的任務就是檢測網絡中的行為是否為入侵行為。當系統的訓練階段完成后,每個代理中的入侵模式庫和正常模式庫都不會為空,此時開始進行檢測。在檢測過程中每個代理都是一個獨立的實體,都具有獨立的入侵檢測能力。
5.4 訓練階段的實現
訓練階段主要是應用KD算法將預處理后的數據集進行聚類,目的是形成正常和入侵模式庫,供檢測階段進行正常模式匹配或入侵模式匹配之用。這里供訓練階段使用的數據對象有10500個,其中正常數據10000個,入侵數據500個,充分滿足了正常數據個數要遠遠大于入侵數據個數,實驗選取的半徑為2.3,實驗中規定,當二次聚類后聚類中的數據對象數目大于或等于總實驗數據對象數量的5%時,將該類標記為正常,否則標記為入侵。實驗結果是形成正常模式和入侵模式,結果如圖5-2所示。
圖5-2中列出了正常模式和入侵模式所包含的聚類。正常模式中包含了兩個類,入侵模式中包含了7個類。訓練階段結束后,中央控制模塊將所形成的正常模式庫和入侵模式庫傳送給各個代理,代理將自己的正常模式庫和入侵模式庫更新,開始進行檢測階段的入侵檢測任務。
6 系統評價
6.1 實時性
分布在不同主機上的代理在工作的情況下實時地收集網絡數據,并進行分析,由于CDIDS系統是分布式結構,所以每個代理所負責檢測的數據要比集中式結構中中心服務器所檢測的數據少很多,這樣就能保證每個代理都能及時進行數據行為的檢測,不會出現積攢或是丟棄數據的情況。
6.2 可擴展性
CDIDS是一個分布式系統,系統由很多代理組成,當系統想要擴展時,只需對新加入的主機配置相應的入侵檢測模塊即可,而無須對其他主機上的代理做任何變動。這樣使得整個系統的可擴展性得到了很大的提高。
6.3 智能化
由系統工作流程可以看出,整個系統的運作完全不需要人的手工操作,而是由系統自動完成,主要體現在代理中的入侵模式庫的自動更新和中央控制模塊中的入侵數據庫、規則數據庫的自動更新。
[參考文獻]
[1]羅守山.入侵檢測[M].北京:北京郵電大學出版社,2004.
[2]邵峰晶,余忠清.數據挖掘原理與算法[M].北京:中國水利水電出版社,2003,2.
[3]A.K.JAIN,M.N.MURTY,P.J.FLYN.Data Clustering:A Review[J].ACM Computing Surveys,31(3),1999:264-311.
[4]蔣建春,馬恒泰,任黨恩,卿斯漢.網絡安全入侵檢測:研究綜述[J].軟件學報.2000,11(11):1460-1466.
[5]孫珊珊.聚類分析在入侵檢測中的應用[J].河北省科學院學報2010(27),2010:31-34.