譚 寧
[摘要]介紹數字化校園可視化入侵檢測系統實現方案,將可視化入侵檢測系統劃分為兩個子系統:入侵檢測數據管理子系統和入侵檢測數據分析子系統,并對各個功能模塊進行闡述。
[關鍵詞]可視化 入侵檢測 系統
中圖分類號:TP3文獻標識碼:A文章編號:1671-7597(2009)0420071-01
可視化入侵檢測系統具有實時檢測、報警、動態安全響應和數據顯示和圖像繪制等功能,利用直觀的圖形來顯示入侵分析的結果,并根據結果進行異常檢測,給出警報信息,安全管理員根據組織的安全策略決定如何進行安全響應。
一、系統開發及運行環境
該系統是基于WEB頁面的入侵檢測系統。利用Apache 2.0作為WWW服務器;利用PHP作為腳本語言;后臺數據庫使用MYSQL。linux2.6.5內核下運行的入侵檢測系統。
二、數字化校園可視化入侵檢測系統構建
目前許多高校數字化校園的工作系統大多是基于瀏覽器/服務器、客戶端/服務器模式和網絡計算模式的分布式應用。在這樣一個分布式應用的環境中,學校的數據庫服務器、郵件服務器、WWW服務器等,只要有一個“門戶”沒有完全保護好,入侵者就會通過這道門進入系統,竊取或破壞所有系統資源。如何保證和加強數據庫系統的安全性和保密性對于數字化校園的正常、安全運行至關重要。
鑒于上述考慮,在數字化校園已有的防護措施基礎上,引入可視化入侵檢測系統建立了數字化校園的安全管理體系。并設計了一個由網絡管理信息中心負責數字化校園管理,以可視化入侵檢測系統為主,以防病毒軟件、防火墻為輔這樣一個多方位的安全保障體系,以確保數字化校園的安全。
三、入侵檢測數據管理子系統實現
入侵檢測數據管理子系統是入侵檢測數據分析的基礎。以下為該子系統三個部分:數據包捕獲模塊實現、數據提取模塊和事件分析數據庫的實現。
(一)數據包捕獲模塊實現。數據包捕獲模塊是進行檢測和決策的基礎,它的準確性、可靠性和效率直接影響到整個系統的性能。如果采集數據的延時太大,系統可能在檢測到攻擊的時候,入侵者已經長驅直入;如果數據不完整,系統的檢測能力就會大打折扣;如果數據本身不正確,系統就無法檢測到某種攻擊,造成的后果更加不堪設想。數據包捕獲模塊的任務是利用數據包捕獲工具從網卡上捕獲網絡上的數據包,再將捕獲的數據包經過解碼引擎填入到鏈路層協議的包結構體中,以便對高層次的協議進行解碼。
1.對網絡數據包的捕獲機制。網絡數據包捕獲機制指通過捕獲整個網絡的所有信息流量,根據信息源主機、目標主機、服務協議端口等信息簡單過濾掉不關心的數據,再將系統感興趣的數據發送給更上層的應用程序進行分析。網絡數據捕獲可以通過兩種方法實現,一種是利用以太網絡的廣播特性,另一種方式是通過設置路由器的監聽端口實現。
(1)利用以太網絡的廣播特性進行捕獲。以太網數據傳輸通過廣播實現。但是在系統正常工作時,應用程序只能接收到以本主機為目標主機的數據包,其它數據包將被丟棄不作處理,其數據包過濾機制分為鏈路層、網絡層和傳輸層幾個層次。
鏈路層主要指網卡驅動程序判斷所收到包的目標MAC地址,如果不是自己網卡的MAC地址,又不是廣播地址和組播地址,將直接丟棄,不向上層提交。網絡層判斷目標IP地址是否為本機所綁定IP地址,否則將不向上層提交。傳輸層如TCP層或者UDP層判斷目標端口是否在本機已經打開,如果沒有打開不作處理,并不向應用層提交。
要截獲流經網卡的不屬于自己主機的數據,必須繞過系統正常工作的處理機制,直接訪問網絡底層。首先將網卡工作模式置于混雜模式,使之可以采集目標MAC地址不是自己MAC地址的數據包。
(2)在交換環境中的網絡數據捕獲。在實際應用中,存在很多非以太網接入的情況,如通過光纖接入等。在這些情況下,就不能利用以太網絡的廣播特性,而必須在路由器中設置監聽端口,將流經路由器的所有信息流量通過一個特定的監聽端口輸出,從而實現數據包的捕獲。此時,網絡路由工作將不同于正常情況,所有的網絡信息數據包除按照正常情況傳遞外,將同時轉發到監聽端口。
2.Libpcap捕包機制。考慮到在Liunx平臺上對該系統進行實現,可采用libpcap對網絡數據進行收集。其通過直接訪問數據鏈路層,從而為應用層程序提供了捕獲底層數據包的API.。
(二)數據提取模塊實現。數據提取模塊是實現入侵檢測系統VIDS的基礎,它為檢測模塊提供分析的數據。根據數據包和系統日志提取出相應的特征數據,并對其進行規范化,以方便后面的數據分析。數據提取的三個過程是:協議解析、規則解析和數據預處理。
1.協議解析。數據包捕獲模塊把捕獲的數據提交給協議解析模塊后,協議解析模塊必須對這些數據進行分析,根據相應的協議把這些分析后的數據放到指定的數據結構中,供上層模塊調用。同時協議解析模塊還要對這些數據包進行一些基本的校驗,如出現錯誤的數據包,及時丟棄。
協議解析模塊設計了一些對數據報進行表述的數據結構,在這些數據結構中,存放數據的Packet結構是其中最為關鍵的一個,數據包的數據結構如下在數據包解碼時,首先判斷以太網封裝的協議是否為IP協議,如果不是,則直接返回。否則首先解析出IP頭部,再根據所封裝的協議,并分別對TCP,UDP,ICMP解析,將各項值寫入Packet結構中對應的字段。
2.規則解析。在本系統中,采用了Snort的入侵行為描述方法。這種描述方法簡單、易于實現,能夠描述絕大多數的入侵行為。
Snort的規則在邏輯上分為兩部分:規則頭(Rule Header)和規則選項(Rule Option)。規則頭部分包括:規則行為(rules action)、協議(protocol)、源/目的IP地址、子網掩碼以及源/目的端口。規則選項包含了所要顯示給用戶查看的警告信息,以及用來判定此報文是否為攻擊報文的其他信息。
3.數據預處理。數據預處理模塊的作用就是對網絡數據進行預先處理,從而方便隨后的檢測分析。另外,我們可以發現,基于規則的檢測引擎并不能檢測所有的入侵,尤其是針對有效載荷的檢測,而像端口掃描、SYN Flooding等攻擊,按照前面所述的方法很難對它們的特征進行提取。因此,需要特殊情況特殊處理,而數據預處理就是一個很好的選擇。通過數據預處理可以用一種特殊的方式對數據包進行分析,如果在數據預處理模塊中發現了攻擊行為,此時就可以不再需要檢測分析模塊進一步處理了。
參考文獻:
[1]薛靜鋒、寧宇鵬、閻慧編著,入侵檢測技術[M].北京:機械工業出版社,2004.
[2]覃伯平、周賢偉等,基于模糊方法的綜合評判入侵檢測系統[J].計算機工程,2006.08.
[3]戚玉娥、劉方愛,基于網絡流量異常的入侵檢測技術[J].網絡安全技術與應用,2008.05.
作者簡介:
譚寧,男,漢族,副教授,淄博職業學院信息工程系,研究方向:計算機網絡。