王阿婷,畢紅軍,劉 云,司夏萌
(1.北京交通大學通信與信息系統北京市重點實驗室,北京100044;2.北京交通大學網絡輿論安全研究中心,北京100044)
隨著計算機和網絡技術的迅速發展,人類正逐步邁向網絡化和信息化的時代。與此同時,與人們切身利益相關的網絡安全問題越來越受到關注。由于黑客活動頻繁,各個網站遭到不同程度的攻擊,一些金融機構或者個人也遭受了嚴重的經濟損失。對于防火墻技術往往是解決來自于網絡外部的攻擊,而對于內部攻擊卻是無能為力。對于網絡安全的另一種保障體系:入侵檢測系統因為能同時檢測來自網絡外部和內部的攻擊而得到了廣泛研究和應用。
入侵檢測系統能夠及時發現并報告系統中異常現象。隨著高速網絡環境的大量出現及快速發展,傳統的入侵檢測技術開始暴露出一些弊端,其中比較突出的是:漏抓的網絡數據報多、誤報率高、檢測速度慢和檢測時出現的丟包現象等。本文所提出的網絡入侵檢測系統,在基于應用協議分析的基礎上將傳統的入侵檢測系統進行了改進,加入了對數據包的預處理過程,在模式匹配環節中使用決策樹算法,以提高入侵檢測系統的性能,使其更能適應高速網絡環境。
入侵檢測作為一種網絡防護的安全措施,影響入侵檢測系統性能的主要因素有:對協議的分析能力、單位時間內需要處理的數據包的數量、規則庫的規模[1]。為了能夠提高網絡入侵檢測系統在高速網絡環境中的性能,應該從協議分析和模式匹配這兩個過程入手來解決問題。本文提出了一個入侵檢測系統模型[2],如圖1。

圖1 改進的入侵檢測系統模型
對于一些簡單或容易辨認的可疑協議,在這一步就能夠被識別出來。可以對包中的數據各部分進行全面的協議規則檢查,如果檢測到與協議規則不符的數據包時就直接進入響應模塊。比如FTP協議,假設數據包中的協議為FTP協議,在接到這個數據包之后,先對它進行最直接的判斷,檢查它是不是有很特殊的特征,這時可以立刻判斷出包中的協議類型。而對于FTP協議來說,當加入了由用戶定義的一些操作或參數時,可以通過計算這些操作或參數的長度作為判斷是否出現緩沖區溢出的根據,此時可以直接判斷是否發生了攻擊。直接將這個數據包送入相關FTP協議模式匹配的模塊中,而不需要再進行協議分析。這樣的改進對于高速網絡環境來說,可以有效地改善入侵檢測系統的實時性,提高檢測速度,減少檢測時出現的丟包現象,同時也可以有效地減少模式匹配中的資源。
協議分析[3]的數據包預處理模塊的另一個功能就是進行協議分析。采用基于應用協議的網絡入侵檢測方法,它將捕獲的數據包進行處理,形成屬性-值的數據形式,直接用于下一步的模式匹配。這樣做的好處:
(1)能夠根據特定的應用協議再進行細致的分析。例如,可以通過檢測狀態碼中是否含有代表服務被拒絕的“403”來發現是否有未授權訪問網頁[3]。然而簡單模式匹配方法則可能在非狀態碼的其他區域搜索到“403”,就會將正常的數據誤判成入侵數據。在高速網絡環境下,這將會導致系統的誤報次數增加,準確率下降。而基于應用的網絡入侵檢測方法來說,能夠獲取與目的主機相同的內容,可以更準確的判斷是否發生了入侵行為。
(2)對于不同的應用協議,比如HTTP、FTP、SMTP、TELNET、POP等,可以根據協議的不同,形成不同類型的屬性-值,便于下一步模式匹配的使用。這樣能夠有效地提高檢測的準確性、減小模式匹配的計算量、減少誤報率,更能適應高速網絡。
在入侵檢測模式匹配過程中引入了決策樹,對檢測的規則進行優化。它與協議分析相互結合,其核心是選擇決策樹算法利用樣本數據生成決策樹模型,然后用生成的決策樹對未知數據進行分類預測。這種方法可提高檢測速度并降低誤判率[4]。
文中選用了ID3算法的改進算法C4.5[5],這種算法可以選擇具有最高信息增益率的屬性作為測試屬性,能夠有效地處理連續屬性。
2.2.1 入侵檢測決策樹的生成過程
首先建立數據分類和屬性文件。數據分類為intrusion和normal,表示入侵和正常兩種狀態。屬性文件用于存放屬性名、屬性類型以及離散性屬性的所有可能取值。其中屬性類型數據根據每個屬性對應的協議字段的特點,標記為離散型或者連續型。再準備訓練數據。一般訓練數據都是以tcpdump格式存儲的。經過協議分析預處理后,生成屬性-值的二維表形式數據。最后利用C4.5算法,由信息增益率選擇測試屬性創建決策樹。
2.2.2 模式匹配過程
利用協議分析預處理模塊處理后的結果作為輸入,將屬性-值型記錄中與根節點測試屬性對應的屬性值提取出來,并將此值與分支值比較。如果找不到匹配的分支,檢測結束,此記錄的分類為該節點的默認最佳分類。如果默認分類為入侵,就立即響應。如果此屬性值與某個分支值匹配,該分支將此記錄指向下一個子節點,再對下一個節點屬性進行比較,直至到達葉節點為止。葉節點所標記的分類為該記錄的分類。模式匹配過程如圖2。在高速網絡環境下,可以在檢測的過程中只檢測相關的規則集,而不是遍歷整個規則集,可以大大的減少匹配計算量,提高匹配效率;同時針對某一種協議進行匹配可以提高匹配的正確率。

圖2 模式匹配過程
實驗環境為:CPU:Intel Core Duo 1.80 GHZ,操作系統:Windows XP Service Pack 3,內存DDR 1 GB,訓練和測試數據為采用WinPcap4.1.1和Wireshark1.0.10捕獲的數據包。
先利用Wireshark捕獲一定數量的網絡數據包,手工地向某些包中添加入侵特征值,作為測試使用的數據;然后再訓練這些數據生成C4.5決策樹,根據不同的屬性值生成各自的檢測規則。
實驗1:檢驗協議分析預處理功能是否有效。
前面提到過有一些入侵檢測特征相對比較容易被檢測出來,不用再進行模式匹配。在捕獲的數據包中隨機選取了50條,并手工向20條中分別添加了比較明顯的入侵特征值,作為測試使用的數據。檢測時間如表1。

表1 檢驗協議預處理結果 單位:ms
實驗結果:當規則數量較少時,兩種情況下使用的時間相當;隨著規則數量開始增加,進行協議預處理所用的檢測時間相對要少。
實驗2:比較簡單模式匹配方法和改進后的方法。
使用簡單模式匹配方法與使用本文提出的方法的檢測時間比較:實驗過程中,規則數從10條開始,一直增加到200條。用兩種待檢測的方法進行檢測,記錄結果,如表2。
實驗結果:當測試數據量和匹配規則數較少時,兩種情況下使用的時間相當;隨著測試數據量和匹配規則數開始增加時,改進后的方法所用的檢測時間相對要少。
實驗3:檢測的正確率比較。

表2 兩種模式下檢測時間比較 單位:ms
首先選取25條測試數據,針對性設置10條檢測規則;手工將規則的入侵檢測值添加到測試數據包的數據部分;用兩種待檢測的方法進行檢測。
實驗結果:使用簡單模式匹配方法只對3條進行正確的判斷,而本文提出的基于協議分析的決策樹方法對20條進行了正確的判斷。
本文采用C4.5算法實現了基于決策樹的協議分析網絡入侵檢測,將決策樹與協議分析技術結合的同時還對數據包進行了預處理。面對高速大流量的網絡環境,利用C4.5算法能夠減少系統資源,可以提高檢測效率,減少匹配計算量,使模式匹配技術在一定程度上實現智能化,而不僅僅是單純的字節匹配;利用協議分析預處理可以提高匹配的精確度,減少誤報率。使入侵檢測系統更加適應高速網絡。
[1] 凌宇,徐雄,石林安. NIDS中協議分析和模式匹配的研究[J] . 信息技術,2006(5):82-84.
[2] Ulf lindvist,Phillip Brentano, Doug Mansur. IDS Motivation,architecture, and An Early Prototype[J] . Comupter Security Laboratory, US Davis, 2007 (2): 160-171.
[3] 蔡敏,葉震,徐吉斌. 協議分析技術在入侵檢測中的應用[J] . 計算機技術與發展,2007,17(2):240-241.
[4] LEE W. A data mining framework for constructing features and models for intrusion detection systems[D] .New York:Columbia University, 1999.
[5] Quinlan J R. C4.5:Programs for Machine Learning[J] . New York:Morgan Kaufman, 1993 (2): 25-26.
[6] HAN Jian-wei,KAMBER M. Data mining concepts and techniques[M] .Beijing:China Machine Press,2000:188-194.