[摘 要] 當前,入侵檢測系統已經成為安全解決方案的一個必要條件,然而,入侵檢測不能主動地阻斷具有攻擊特征的數據流。它往往是被動的監視局域網,讓網絡管理員對攻擊行為采取相應的措施。本文討論了入侵防御系統(IPS)的概念、優點和弱點,并根據著名的開放源代碼網絡入侵檢測系統Snort的內部組織特點,提出了一種讓Snort實現主動阻斷攻擊數據流的方法。
[關鍵詞] 網絡入侵檢測系統 網絡入侵防御系統 Snort
一、讓Snort實現主動防御功能
1.設計思路。通過分析Snort的整體結構可知,它充分利用了插件機制,這種特點使它更靈活,更容易系統功能的增加,使程序具有很強的可擴展性。IPS與IDS的主要區別就是IPS實現了主動的阻斷攻擊。利用Snort的這種內部組織結構和IPS的特點,可以設想,只要為Snort增加一個能夠阻斷數據包的模塊(假設稱該模塊為“在線處理模塊”),并把Snort置于在線的位置,當Snort檢測到某種入侵行為時,通過對該模塊的調用,就可以達到阻斷含有入侵傾向數據流的目的。
Snort的檢測引擎主要是基于規則的匹配。Snort規則類型(規則行為)包括:alert、log、pass、activate和dynamic。我們就讓Snort做拒絕與該規則匹配的數據包的處理。剩余的任務就是,當Snort找到了和被捕獲的數據包相匹配的規則時,Snort通過什么條件來判斷該數據包是否符合做拒絕處理,在Snort源文件rules.h中定義了OptTreeNode的數據結構。為該結構中增加標志位。當Snort進行規則解析時,通過判斷規則的類型和priority、classtype參數的值,當符合一定的條件時,給相應的標志位置“1”。 這樣,當檢測引擎觸發了某條規則,則通過判斷這些標志位,決定是否阻斷相對應的數據包。
為了使Snort更具有靈活性,還可以為之增加一個可選的功能:通過用戶的選擇,即可使Snort以IDS方式工作,也可以使其以IPS方式工作。
2.實現阻斷數據包的條件。為了實現Snort的IPS功能,需要特定的底層庫Iptables來代替原有的Libpcap(Libpcap是Snort的底層庫)。Iptables用于計算和控制在Linux平臺上的外部連接。netfilter /iptables支持Linux2.4內核,能夠進行數據包過濾,網絡地址轉換及其它的數據包處理。
3.實現方法。(1)給Snort源文件snort.h中定義的pv結構增加標志位。在PV結構中增加一個標志位:inline。如果期望Snort以在線的(IPS)方式工作,則設該標志被置“1”,否則Snort工作在普通的IDS工作方式。(2)在OptTreeNode(規則選項)結構中增加兩個標志位:reject和drop。當某規則的規則類型為alert,且classtype關鍵字屬于1級優先級,或者priority大于9,則當程序進行規則解析時,為屬于該規則的OptTreeNode結構標志位reject置“1”。當某規則的規則類型為alert,且classtype關鍵字屬于2級優先級,或者priority為7或8,則當程序進行規則解析時,為屬于該規則的OptTreeNode結構標志位drop置“1”。
4.如果被捕獲的數據包與某規則相匹配,這時說明Snort已經發現攻擊行為。此時判斷該規則的OptTreeNode結構中兩個標志位的值,如果drop為1,調用在線處理模塊,對該包做阻斷處理并輸出報警信息。如果reject為1,調用在線處理模塊,阻斷該包、輸出報警信息,如果該包協議類型為TCP,向數據源發送RESET報文,終止該連接;如果協議類型是UDP,向數據源發送ICMP端口不可達報文,終止該連接。圖1是Snort以在線方式運行的響應處理過程。
二、結束語
本文提出的使Snort增加主動阻斷攻擊數據流功能的方法具有以下優點:
1.該方法簡單、靈活,不需要改動整體結構和Snort原有的規則,只需在其原有的系統和規則的基礎上給PV結構和OptTreeNode結構增加了幾個標志位,為之添加現有的Iptables底層庫和Libnet,增加一些函數即可實現。
2.只有符合某種嚴重級別的數據流才對之采取阻斷處理的策略,而并不是所有的符合報警的具有攻擊特征的包均采取這種響應處理方式,減少了因誤檢而阻斷正常的數據流的可能性。
3.只是在Snort原有的功能上增加了主動防御功能,沒有改變原有系統的功能。
參考文獻:
[1]R.G Bace:入侵檢測[M]. 陳明奇,吳秋新,張振濤等譯. 北京:人民郵電出版社,2001,6
[2]韓東海 王 超 李 群:入侵檢測系統及實例剖析[M]. 北京:清華大學出版社, 2002,4
[3]Joel Snyder. IPS: A technology, not a product. Network World, 2002,11
[4]Joel Snyder. What is an IPS, anyway? Network World,2002,8
[5]張悅連 郭文東:Snort規則及規則處理模塊分析. 河北科技大學學報,2003,12