本站小編為你精心準備了CBF技術的入侵檢測系統設計參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
《計算機工程與設計雜志》2014年第七期
1cbf原理
1.1基本的bloomfilter原理BF(bloomfilter)是一種空間效率高的隨機數據結構,1970年由HowardBloom提出的。其基本思想是先定義長度為m位的存儲空間M。然后定義k個相互獨立哈希函數,對于一個具有n個元素的集合X={x1,x2,...xn),對其中的每個元素xi,分別使用k個哈希函數得到值為[0,m-1]的哈希值,根據哈希值的大小,將M中相應位置1。如果一個位已經置1,則不再處理。如圖1所示。圖中的m=12,n=2,k=3。查詢時,待查詢元素ri也用k個哈希函數進行運算,如果得到的k個值在M中的相應位置有一個為0則不是集合中的數據;如果全為1表示在一定的誤差情況下[9]為集合中的數據。圖1中,r1不是集合中的數據,而r2在誤差允許范圍內屬于這個集合。與傳統的模式匹配方法相比,基本的BF最大優點是其高效的匹配速度,且與集合的大小無關,而且具有較小的存儲空間要求。但是它也具有兩個顯著的缺點。首先,本的BF不能適應集合中元素減少的情況,在m一定的情況下,不斷增加集合元素會導致錯誤率增加,所以它僅適合靜態的集合;其次,無論如何改進,它總會以一定的概率將本來不匹配的元素誤判為匹配,盡管可以做得誤判率很小,但是不能消除誤判的產生。因此,BF是通過犧牲一定的準確性來換取內存空間的節省和匹配效率的提高[10]的方法。在需要精確匹配的場合,還需要借助其他精確匹配算法進行輔助。
1.2改進的CBF原理基本的BF不能減少集合元素,也不能過多的增加集合的元素,僅僅適應靜態集合的情況。根據入侵檢測系統的要求,特別是其適應性的需要,需要動態增加或者減少集合中元素的集合。因此,需要重點關注BF的各種改進算法。為了適應集合中的元素動態變化,一種稱之為計數布隆過濾器(countingbloomfilter)的技術被提出。它將基本BF的每一位擴展為一個計數器,在插入一個元素時,將k個哈希函數計算結果對應的計數器加1;在刪除元素時,將對應的計數器減1。通過擴展集合的空間,改進了BF的性能。CBF的例子如圖2所示。CBF提供了集合元素的增刪能力,對于需要自適應的入侵檢測系統來說,為可以動態增加和減少規則集合的數量提供了便利。
2模式匹配引擎設計
本系統所設計的入侵檢測系統智能中,可能需要大量的規則或者關鍵詞進行匹配。一般的,入侵檢測模式匹配有兩個方面的匹配要求:一是行為匹配,主要是對網絡報文的IP地址和端口等參數進行匹配;其次是內容匹配,匹配網絡報文內容中的關鍵詞或者字符串。在一個分布式系統中,這些要匹配的規則可能隨著時間和地點的不同而隨時發生變化。為此,我們以CBF技術為基礎,經過一定改進適應系統需要。
2.1采用多組CBF組合根據入侵檢測的需要,本系統采用多組CBF集合作為模式匹配引擎。主要分為兩類,其中一類用于行為匹配,其哈希函數的參數包括4個參數,即源IP和源端口、目的IP和目的端口;另一類用于內容匹配,即專門進行字符串匹配,其哈希函數的參數為字符串。設計多組CBF的目的在于利用不同模式匹配的特點和不同的應用目標,可以更好的設計哈希函數,提高系統的性能。當然,在某些場合,如果只需要行為檢測或者內容檢測,則可省略多余的CBF集合。
2.2CBF的自動更新對于適應性入侵檢測系統而言,根據網絡情況變化,更新入侵檢測的規則是經常需要的。雖然我們在設計CBF方案的時候,充分考慮了各種因素,且可以動態增刪集合中的元素,但是還是有很多極限情況會在系統工作時碰到。根據實際經驗,CBF集合在長時間工作過程中,或者誤判率會增加,或者占用空間過多浪費,這時需要對CBF重構調整。根據有關研究計算,在CBF集合中,如大于0(有數據)的位置和等于0的位置一樣的時候,系統具有最佳效率。當有0的位置太多,表示系統的M空間太大,浪費空間;如果有0的位置太少,將導致系統更嚴重的誤判率,表示M空間不足。因此,本系統根據有關研究結果,規定在CBF中0的個數小于α(默認45%)時或者大于β(默認85%)時,根據集合中的元素重構CBF集合空間。讓系統保持最好的工作狀態。
2.3可以動態更新的參數對本系統中的CBF引擎來說,其多個參數需要可以改進,以適應不同時期、不同地點的模式匹配策略需要。下面對可能更新的參數及其處理辦法進行具體分析。(1)哈希函數及其數量k。為了提高運算速度和散列效果,降低誤判率,有時候需要改進哈希算法,因此這兩個參數可能偶爾需要更新。這樣的更新需要重新建立CBF空間。(2)更改集合n的大小。在少量增刪情況下,可以動態增刪,當達到前述自動更新要求時,才自動更新CBF空間。在本系統中α、β可以設置更改。(3)一般情況下,CBF總是有一定的誤判率,因此需要保存所有的集合元素,先使用CBF實現快速匹配,然后利用傳統的算法精確匹配。如前所述,過濾器中CBF集合0的個數增加或者減少到一定程度時,需要重新構造過濾器。重新構造過濾器的過程可以采用本地的匹配規則集合來實現。但是在某些場合不需要精確匹配,容許有匹配誤差時,本地可不需要保持精確的匹配規則集合。這時候各個節點僅僅需要從服務器下載最新的整個CBF的M空間的數據,就可以更新匹配規則集合。M空間的數據量遠小于精確的匹配規則數據量,可以有效減少網絡傳輸的數據量。
3系統的設計與實現
3.1系統的總體結構本系統的目標是構建一個分布式入侵檢測系統,其主要思想是在節點端實現一個智能,所有智能由制管理器進行集中管理。智能主要功能包括分析數據流特征、入侵檢測和入侵過濾等,根據所布置的節點類型不同,各智能的功能也不一樣。考慮到CBF技術的特點,利用其在流量分類、入侵檢測匹配和報文識別過濾等方面具有處理速度快、占用存儲小的優勢,本系統將其作為智能的主要算法。系統總體結構如圖3所示。系統主要由兩部分構成,即智能程序和控制管理器。其中智能部署在需要進行入侵檢測的部位,比如服務器主機、網關及其他容易檢測或者受到攻擊的地方,它通過分析流量、入侵檢測和報文過濾等手段,實現要求的入侵檢測策略。控制管理器是一個集中管理的服務器程序,它實時接收來自各個智能的信息,判斷各部署點的入侵情況,并通過人的管理干預來改進不同智能的配置參數,適應網絡入侵檢測的動態變化。系統的所有信息保存在數據庫中,由控制管理器對數據庫進行讀寫操作。下面分別對兩部分的設計與實現進行說明。
3.2基于CBF的智能的實現智能工作在需要進行入侵檢測的節點處,利用CBF技術進行入侵檢測所需要的各項工作。通過網絡及時與控制管理器保持網絡通信,達到動態報告和及時管理的需要。智能的原理結構如圖4所示。在圖4中,智能通過報文捕獲模塊獲取報文。然后分別進行流量監測、入侵檢測或者報文過濾等功能操作,這些操作根據智能的類型,采用不同的CBF引擎,實現快速匹配。智能通過網絡通信模塊和控制管理器通信,利用配置管理模塊調節各種CBF引擎參數,以適用不同入侵檢測節點的需要。為了便于自動升級改進,智能中各個功能模塊采用插件設計。在CBF引擎模塊中,哈希函數、元素集合及集合空間等都可以根據實際情況的需要而變化。其中,哈希函數采用動態庫形式,便于動態更新;而元素集合的少量變化采用CBF動態增減性來實現。如前所述,CBF集合空間變化分為兩種情況。一種是各個功能模塊(流量監測、入侵檢測或者報文過濾)利用保持的元素集合和給出的M空間大小重新構建;另一種是直接使用網絡通信模塊從控制管理器得到構造好的集合空間。CBF只能進行粗略的判斷和匹配,總有誤判率存在。對于需要精確匹配的情況,本系統先利用CBF進行初步匹配,然后在相應模塊內實現精確匹配計算,如報文過濾模塊。這樣也可以大大節省匹配運算時間。根據一般經驗估計,入侵檢測中99%以上是正常報文,采用CBF引擎可進行快速的初步匹配處理。
3.3控制管理器的設計與實現控制管理器采用B/S架構,便于管理用戶隨時在任何主機上對整個系統進行管理和控制。整個程序分為前后臺兩部分,后臺負責與各智能進行通信,收集各智能的流量監測、匹配量及CBF參數變化等信息,保存在數據庫中。前臺實現用戶管理界面,接收用戶控制要求,然后通過后臺通信程序送給各個智能執行。圖5是控制管理器的結構示意圖。根據整個系統功能要求,主要分為7個功能模塊。其中控制中心是系統核心控制部件,負責整個管理控制器的調度和管理;升級管理模塊結合用戶要求及智能的狀況,提供CBF引擎的合理參數配置及的處理功能模塊升級;管理模塊收集信息,呈現給用戶,讓用戶知道各個的工作狀況,并進行遠程控制;安全管理負責對各個用戶、連接進行驗證管理;信息分析模塊主要對各個智能回送的入侵檢測信息進行分析處理,并給用戶及時通知;網絡通信模塊負責與各個智能的通信過程,實現通信協議處理。一個控制管理器往往只能管理數量有限的智能。在一個大型的分布式入侵檢測系統中,需要多個控制管理器構造成一個可擴展的分布式管理系統,有關分布式管理系統的內容不是本文關注重點,在此不再闡述。
3.4系統測試與分析本系統采用VS2008作為開發環境,利用C/C++語言實現智能,用C#開發了控制管理器。測試運行環境是在WindowsXP,內存2G,磁盤320G的普通PC機上運行。測試系統利用了開源的snort上的一些組件。為了對比和精確匹配的需要,在智能上還實現了傳統的并行哈希(PH)匹配算法。為了便于進行對比,系統在一樣的環境下,分別使用了3種匹配方法,即單CBF匹配、單PH匹配、CBF和PH結合的匹配。分別比較內存使用量、CPU占用率和誤判率等指標。測試結果見表1。從表1很容易看出,單CBF匹配法占用內存最少,CPU占用率最低,但是存在一定誤判率。而PH匹配法則占用了較多的內存和較多的CPU使用率,由于是精確匹配,沒有誤判。將二者結合后,由CBF進行初級判斷,然后由PH進行精確匹配,占用內存最大,但是CPU使用率比純PH小很多,最重要的是,消除了誤判率。因此,在本系統中,需要精確匹配的場合采用混合匹配,允許誤差的情況下,采用單CBF匹配,更加有效地利用了CBF的優點。
4結束語
本文分析了布隆過濾器的特點,結合入侵檢測系統的需要,實現了采用CBF技術的分布式入侵檢測系統。系統充分利用了CBF技術的特點,構造的CBF模式匹配引擎可以動態修改CBF集合的參數,組成多組CBF集合以適應不同檢測節點、不同時間的不同攻擊類型的需要。配合良好的模塊化和動態庫設計,讓系統能夠自動升級和遠程配置,以具備更好的適應性。同時,還能根據入侵檢測的需要配合傳統的準確匹配算法,消除誤判率。與一般的入侵檢測系統相比,本系統可以靈活配置和動態改進,適合不同入侵檢測目標的需要。最重要的是,實現了快速匹配,滿足網絡速度越來越高的入侵檢測功能的需要。
作者:易發勝龔海剛汪海鷹單位:成都學院模式識別與智能信息處理四川省高校重點實驗室成都學院信息科學與技術學院電子科技大學計算機學院