摘要:入侵檢測系統是當前計算機界研究的熱點,但眾多的設計方案更多偏重于算法上的改進,在實際應用中入侵檢測技術還不成熟,面臨瓶頸。分布式數據庫由于其自身特性使得系統存取數據效率大大提高,所以如果將分布式數據庫與入侵檢測系統結合將可以有效提高入侵檢測系統的性能。基于分布式數據庫的入侵檢測系統就是根據這種思想解決了從設計方法、存儲模式、數據處理到實際應用的一系列問題,由此可以看出入侵檢測系統的應用發展前景相當廣闊,嘗試通過局部的優化可以有效提高其應用效果。
關鍵詞:入侵檢測;入侵檢測系統;事件數據庫;分布式數據庫
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2009)24-6618-02
Intrusion Detection System Based on Distributed Database
ZHAO Liang, WANG Guo-an
(Henan University, Kaifeng 475004, China)
Abstract: Intrusion Detection System (IDS) is a research hotspot in the current computer world, but the numerous design proposals emphasis on improvements in the algorithm, in the practical applications IDS technology is still immature which is facing a bottleneck. Distributed database (DDB) makes the system greatly enhanced in the efficiency of access to data because of its characteristics, so if combining DDB with IDS will be able to improve the performance of IDS effectively. According to this thinking, IDS based on DDB resolves a range of issues from design method, storage pattern, data processing to practical application, and this shows the development prospects of IDS is very broad, and attempts through the partial optimization may enhance its application effect effectively.
Key words:intrusion detection; IDS; event database; DDB
入侵檢測作為有效的網絡安全技術已經發展了二十多年,一直以來它都倍受關注,如今已經發展成為計算機界研究的熱點問題之一。在當前計算機每時每刻都有遭受攻擊的危險下,如何避免系統崩潰、數據丟失已經成為關系企業利益和國家安全的重要課題,因此圍繞入侵檢測不斷涌現出許多新思維、新方法和新技術。本文在入侵檢測系統的基礎上,把分布式數據庫技術運用于事件數據庫中,改善入侵檢測系統的性能,提高入侵檢測系統響應的及時性和準確率。
1 入侵檢測與入侵檢測系統
入侵檢測(Intrusion Detection)指對入侵行為的發現、報警和響應,它通過收集計算機網絡或計算機系統中若干關鍵點的信息,并對收集到的信息進行分析,從而判斷網絡或系統中是否有違反安全策略的行為和系統被攻擊的征兆[1]。
入侵檢測系統(Intrusion Detection System,IDS)是完成入侵檢測功能的軟件、硬件的集合。它作為一種積極主動的安全防護工具,提供了對內部攻擊、外部攻擊和誤操作的實時防護,在計算機網絡和系統受到危害之前進行報警、攔截和響應。
入侵檢測系統可以分為四個組件:事件產生器(Event generators)、事件分析器(Event analyzers)、響應單元(Response units)和事件數據庫(Event databases)。事件產生器的功能是從整個計算環境中捕捉事件信息,并向系統的其他組件提供該事件數據。事件分析器的功能是分析得到的事件數據,并產生分析結果。響應單元的功能是對分析結果作出反應,可以是切斷連接、改變文件屬性,也可以只是報警。事件數據庫是存放各種中間和最終數據的設備統稱,功能是指導事件的分析及反應。
2 分布式數據庫技術
分布式數據庫是數據庫技術和網絡技術的高級緊密結合,是物理上分散在計算機網絡各節點上,而邏輯上屬于同一個系統的數據集合。網絡中的每個節點具有獨立處理數據的能力,可以執行局部應用,同時也能通過網絡執行全局應用。分布式數據庫系統具有物理分布性、邏輯整體性、站點自治性、數據獨立性、集中與自制相結合的控制機制、適當增加數據冗余等特點。因此分布式數據庫提高了系統的可靠性、可用性和改善了系統的性能。
在分布式數據庫中,數據存儲通過以下三種途徑實現:
1) 復制系統維護關系的幾個完全相同的副本,各個副本存儲在不同的節點上。
2) 分片關系被劃分為幾個片段,各個片段存儲在不同的節點上。
3) 復制和分片關系被劃分為幾個片段,系統為每個片段維護幾個副本[2]。
3 分布式數據庫在入侵檢測系統中的應用
3.1 引入分布式數據庫的背景
入侵檢測技術的兩大類,不管是異常入侵檢測(Anomaly Detection),還是誤用入侵檢測(Misuse Detection)都需要強大的數據庫系統隨時記錄主體特征,描述主體活動,然后再根據記錄的數據和信息進行后續操作。特別是誤用入侵檢測,它主要是通過將網絡采集的數據與特征模式庫中的特征進行匹配,來判斷是否有入侵行為發生,因此采集的數據是否準確、完整就直接影響判斷結果。盡管異常入侵檢測受構建的模型不同會采取不同的檢測方法,但其核心(構造異常活動集并從中發現入侵性活動子集)仍然脫離不了數值的運算,而加快數值存取的速度可以減少系統響應時間。因此,在入侵檢測系統中引入分布式數據庫技術有不錯的應用前景。
3.2 分布式事件數據庫的設計
從全局應用的角度考慮,可以將入侵檢測系統的事件數據庫自上而下構成分布式數據庫,實現全局數據的完整性和一致性,各計算機存放本地數據。另設一臺服務器存放所有事件數據,并對數據進行完整性和一致性檢查,這樣雖有一定的數據冗余,但在不同計算機上存儲同一數據的多個副本可以提高系統的穩定性和可用性,同時提高局部應用的效率,減少通訊代價。
3.3 分布式事件數據庫中數據的存儲
因為各個數據庫之間存在一定的數據冗余和差異,所以采用復制+分片的方法進行數據存儲。各計算機之間由于都是服務器事件數據的子集,將采用水平分片的方式,通過運算實現關系的重構。
數據同步方式則根據系統需求使用事務復制(transaction replication),由于各計算機只存放本地數據,數據管理和分析功能是由服務器的數據庫來完成,各計算機只需將更新的數據發送到服務器即可。可以使用事務復制進行事件數據的同步,把各計算機的數據庫作為上傳者,服務器的數據庫作為下載者,對各計算機的數據建立快照代理,并記錄下同步狀態的信息。這樣每一個使用事務復制的計算機數據庫均有自己的日志讀取代理。事務復制可以支持兩種類型的對象復制:表和存儲過程。在上傳者中定義數據庫的部分或全部數據,選擇多個存儲過程作為復制。當各計算機的數據發生更新時,日志讀取代理將及時的把更新信息上傳到服務器的數據庫中。基于存儲過程的復制使應用具有更好的性能,可以大大減少網絡的通訊量。
3.4 分布式事件數據庫中事務的處理
分布式事件數據庫中數據的分布使得系統中事務具有了分布性。一個全局事務的執行被劃分為在許多子事務的執行。我們可以使用事務管理器來協調各個服務器對事物的處理操作,為了避免分布式事務造成不同服務器間數據的不一致,可以把分布式事務的處理過程分為準備階段和提交階段兩步進行。
在系統設計的過程中,為了減少網絡通訊量,我們可以根據應用的功能將數據關系進行分片存放在各個數據庫中,因此大部分的應用是面向局部數據的操作,但全局性的查詢仍需要多個數據庫的數據支持。
3.5 分布式事件數據庫運行測試
首先在服務器端用Transact SQL腳本程序BEGIN DISRIBUTED TRANSCATION語句啟動一個分布式事務,將該服務器作為分布式事件管理服務器,然后腳本程序執行分布式查詢或遠程服務器的存儲過程,分布式事件管理服務器能夠自動調用MS DTC,將遠程服務器加入分布式事件處理。當腳本程序執行COMMIT TRANSACTION、COMMIT WORK、ROLIBACK TRANSACTION或ROLLBACK WORK語句時,分布式事件管理服務器將調用MS DTC,用它來管理提交進程,使連接服務器和遠程服務器提交或回滾事件。在入侵檢測系統中,如果事件管理服務器發現計算機提交的是異常或誤用記錄,則將該記錄插入事件記錄表中,同時在對應的事件數據庫中將該記錄的狀態設為禁止,這樣就有效解決了數據分散和集中管理的矛盾,實現了數據的共享和交換。經在校園ARP入侵檢測系統中試運行,響應時間由原來的5ms降為4ms,大大提高了系統性能。
3.6 分布式事件數據庫的優點
在對入侵檢測系統的事件數據庫進行了分布式的改進后,可以明顯感到以下變化:
1) 功能分配趨于合理。數據和任務被賦予最適合處理它們的地點,從而減少了網絡傳輸延遲;分布在網上的多個數據庫不僅可以并行操作,而且還可以減少集中式數據庫所引起的CPU或I/O瓶頸。
2) 系統可靠性提高。分布式的數據庫通過數據復制技術,增加數據副本,以減少通信代價,改善系統性能,提高系統可用性,即不會因網絡上某個節點的故障而引起全系統的癱瘓。
3) 可擴展性好。因為一個數據庫可以分布在多臺計算機上,單臺計算機的最大容量不至于限制數據庫的大小和吞吐量。
4) 數據訪問透明。數據邏輯結構和存儲結構無關,故在任意節點上都可以透明地訪問其他節點上的數據庫,如同所有數據庫都在本地節點上一樣[3]。
4 結論
以上是利用分布式數據庫技術對入侵檢測系統中事件數據庫的改造,由于它要求硬件配置高,費用投入大,所以它主要適用于檢測交換技術和高帶寬環境下,大流量沖擊、多IP分片情況形成的攻擊,可以為規模較大的組織、企事業單位或安全要求較高的部門使用。在入侵檢測技術出現瓶頸,入侵檢測系統僅僅停留在研究和實驗樣品,而防火墻中僅集成了較為初級的入侵檢測模塊的情勢下,嘗試對入侵檢測系統的事件分析器以外的其他組成部分進行改進完全可以取得一定進展。入侵檢測系統有著很好的應用前景,有待進一步研究開發。
參考文獻:
[1] 羅守山.入侵檢測[M].北京:北京郵電大學出版社,2004:89-92.
[2] 蓋九宇,張忠能,肖鶴.分布式數據庫數據復制技術的分析與應用[J].計算機應用與軟件,2005,22(7):36.
[3] 葉塞蓬,劉瑾,談理.基于網絡的數據庫共享方式和技術[J].機電一體化,2005(6):48-49.