摘 要: 入侵檢測" title="入侵檢測">入侵檢測作為一種計算機系統安全監測手段,已經成為維護網絡安全的主要技術之一。提出了一種新的模式匹配" title="模式匹配">模式匹配方法,即基于動態規則集和協議分析" title="協議分析">協議分析的模式匹配,它能縮短模式匹配的時間,極大地提高了入侵檢測效率,為入侵檢測理論研究和相關產品研發提供了參考。
關鍵詞: 入侵檢測 動態規則集 協議分析 模式匹配
入侵檢測系統" title="入侵檢測系統">入侵檢測系統IDS(Intrusion Detection System)是近年出現的新型網絡安全系統,它能夠發現入侵并且對其作出反應,如報警、事件記錄、終止惡意程序和斷開網絡等,為網絡安全提供實時保障。IDS通常是根據已知攻擊方式構建規則特征庫,抓取數據包,然后基于特征逐條模式匹配,匹配成功則說明有入侵發生,否則繼續下一個數據包的處理。將模式匹配應用于入侵檢測是由Sandeep Kumar最先提出的[4]。
IDS的主要性能參數有兩個:誤報率和漏報率。誤報率又叫虛警率,是指IDS在檢測時出現虛警的概率;漏報率是指本來應該報警卻沒有報警的概率。
1 動態規則集和協議分析
1.1 目前模式匹配中的問題
隨著網絡的發展,攻擊代碼不斷衍生,例如phf攻擊將“/cgi-bin/phf”改變為“/cgi-bin/xxx/../phf”或“\cgi-bin\phf”等,攻擊方式也越來越多樣,如沖擊波、振蕩波等。新的漏洞不斷被發現,不得不增多規則條目來完善IDS的規則庫,這將使IDS的處理負荷增加。規則集的膨脹和網絡流速的提高,使得IDS來不及處理每一個數據包,致使丟包不可避免。所丟的包中的攻擊100%被漏報,導致漏報率增大。網絡流速的單位為pps(packet per second)。
目前的IDS都是采用靜態規則集,存在很多弊端:如果規則集大而全面,在理想的條件下,降低了漏報率,但是實際中反而增加了漏報率。因為規則集膨脹,模式匹配所耗時間增大,處理負荷線性增加[3],網絡流速超出IDS的處理能力" title="處理能力">處理能力時,有些數據包來不及進行模式匹配,導致丟包,特別是在高速網絡下,導致大量丟包,漏報率明顯增大。
顯然,各攻擊出現的概率存在較大差異,有些攻擊每天都可能發生,有些攻擊一年甚至多年才可能發生一次。因此可以根據概率對規則集進行排序,在模式匹配時優先匹配那些概率大的規則。另外,大部分的攻擊都不是孤立產生的,相互之間存在著某種聯系,這種聯系多為依賴性,即存在先后關系,如80端口被掃描,就有可能發生CGI攻擊。
多數IDS都忽略了這種概率性和依賴性,從而暴露出模式匹配所消耗的時間資源太大,浪費大量不必要的時間。針對這個問題,本文參照參考文獻[2]中提到的動態規則集[2],提出利用動態規則集和協議分析來提高模式匹配效率。
1.2 動態規則集
所謂動態規則集,其動態性有兩種含義:
(1)建立一個動態規則調整策略,它可以獲得網絡流速和IDS的處理能力,然后根據相應的策略來動態調整規則集的范圍。當網絡流速大于靜態規則集IDS處理能力時,目前的IDS會丟掉來不及處理的數據包,特別是網絡流速很大時,會產生大量丟包,導致較大的漏報率。而動態規則調整策略則是把一些長期沒有匹配成功過的規則,特別是一些多年才可能匹配成功一次的規則和一些已經荒廢的規則過濾。這就使IDS在模式匹配時不與這些小概率規則匹配。這樣,雖然有可能帶來一些漏報率,但是相對于前一種方法來說,它帶來的漏報率要低很多,使IDS在當前流速下獲得最佳性能。當網絡流速小于靜態規則集IDS處理能力時,根據動態規則調整策略將規則集的范圍擴大到全規則,在此規則集上進行模式匹配,可使系統資源得到充分利用,也使IDS獲得了當前流速下的最佳性能。
(2)規則格式如圖1所示,規則格式中有兩項,分別為長期概率和短期概率。長期概率有個初始默認值,是IDS研發人員經過大量真實數據測試得出的,它是該規則在固定時間內出現的平均次數值,短期概率初始值為0。IDS安裝后,如果某個規則被匹配成功一次,則將短期概率加1,設定一個時間門檻T,在時間到達T后,計算長期概率×1/4+短期概率的值,然后賦給長期概率,短期概率清零,也就是動態更新長期概率和短期概率,使之與本地的網絡背景不斷接近。通常,T的值不能太小,因為太小的T值不能真實反映本地網絡背景的特點。之所以沒有把長期概率+短期概率的值賦給長期概率,是因為短期概率比長期概率更能真實地反映本地的網絡背景,短期概率優先級別大于長期概率。
在圖1中,后續規則1~5這五項是用來記錄這些規則被匹配成功之后常出現的后續攻擊所對應的規則編號,這些編號也是IDS研發人員經過推斷以及大量真實數據測試得出的。在IDS中可以定義六個變量:ID、ID1、ID2、ID3、ID4和ID5。ID為上一個被匹配成功的規則編號,ID1、ID2、ID3、ID4和ID5為對應規則編號ID的五個后續規則編號。IDS發現一個攻擊后,用這六個變量分別記錄規則編號和五個后續規則編號,在下一個數據包獲取后,先將數據包分別與規則編號為ID1、ID2、ID3、ID4和ID5的規則匹配,如有匹配成功則報警,否則繼續下一步匹配。直到有一個數據包被匹配成功時,才將新的規則編號和五個后續規則編號分別賦給ID、ID1、ID2、ID3、ID4和ID5。
1.3 協議分析
在以網絡為主的入侵檢測系統中,由于把通過網絡獲得的數據包作為偵測的資料來源,所以數據包在網絡傳輸中必須遵循固定的協議才能在計算機之間相互溝通,因此可以按照協議類別對規則集進行分類。
協議分析的原理就是根據現有的協議模式,到固定的位置取值(而不是逐一地去比較),然后根據取得的值判斷其協議以及實施下一步分析動作。其作用十分類似于郵局的郵件自動分撿設備,有效地提高了分析效率,同時還可以避免單純模式匹配帶來的誤報。
根據以太網的幀結構定義,在以太幀的第13個字節處包含2字節的第三層協議標識,0800為IP協議,0806為ARP協議,8138為NOVELL協議等。在IP數據包的格式定義中,第10個字節為第四層協議標識,如:TCP為06,UDP為11,ICMP為01等。而TCP數據包的第3、第4個字節為應用層協議標識(端口號),如80為HTTP協議,21為FTP協議,23為TELNET協議等。
根據以上特點,可以將協議分析算法用一棵協議分類樹來表示,如圖2所示。
這樣,當IDS進行模式匹配時,利用協議分析過濾許多規則,可以節省大量的時間。在所有規則中又是關于TCP的規則最多,大約占了50%以上,因此在初步分類后,可以按照端口進行第二次分類。在兩次分類完成后,可以快速比較特征庫中的規則,減少大量不必要的時間消耗。如有必要,還可進行多次分類,盡量在規則樹上分叉,盡可能地縮減模式匹配的范圍。圖2就是對協議的多次分類。
1.4 基于動態規則集和協議分析的模式匹配算法設計
基于動態規則集和協議分析的模式匹配算法包括以下六個主要步驟:(1)數據包獲取和流速測試;(2)根據網絡流速與IDS處理能力確定規則集范圍;(3)協議分析,將規則分類,過濾掉無需匹配的規則集;(4)概率策略選擇,將需要匹配的剩余規則集按概率降序排列;(5)取出上一條匹配成功的規則的五個后續規則編號,將數據包依次與其匹配,若匹配成功則報警,并將短期概率加1,否則繼續下一步;(6)與按照概率策略算法所得的規則集進行模式匹配,若成功則報警,并將短期概率加1,否則,返回步驟1重新開始下一數據包的處理。
綜上所述,可以給出整個模式匹配的流程圖,如圖3所示。
從圖3中可以看出,概率策略選擇有三種方案:長期概率優先,短期概率優先和綜合折中。很明顯,長期概率優先機制在排序時考慮了短期概率,但是效果不明顯,忽略了短期概率的重要性;同樣,短期概率優先機制忽略了長期概率的重要性;而綜合折中機制綜合考慮了長期概率和短期概率的重要性,是其中最佳的方案。
2 性能比較分析
實際的測試是在實驗室進行的,根據自定義的測試攻擊數據和規則庫,利用Smartbits設備制造背景流量(平均幀長為128字節),在C++語言的環境下編譯程序,針對不同的網絡流速進行測試。
根據程序中所設的計數器,在不同網絡流速下測試不同方案的臨界丟包點,也就是程序所處理的數據包個數開始小于網絡背景流量時的流速,測試的臨界丟包點如表1所示。
采用不同方案的IDS在不同網絡流速下對已知攻擊測得的漏報率如圖4所示。
?
在圖4中,11萬pps是IDS采用靜態規則集的處理能力,30萬pps是采用動態規則集的處理能力,43萬pps是采用協議分析的處理能力,61萬pps是采用動態規則集和協議分析的處理能力。
由于攻擊數據是已知攻擊,不存在未知攻擊,所以網絡流速低于11萬pps時,已知攻擊的漏報率是0%。由圖4可以看出,不管采用何種方案,網絡流速小于11萬pps時,漏報率保持不變。比較各方案的性能,可得出如下結論:
(1)采用靜態規則集的IDS:網絡流速大于11萬pps時開始出現丟包,導致漏報率增大。
(2)采用動態規則集的IDS:網絡流速大于11萬pps小于30萬pps時,沒有丟包,但是由于動態調整了規則集的范圍,過濾掉了一些小概率規則,導致漏報率稍微增大,這種方案比第一種方案帶來的性能損失要小;網絡流速大于30萬pps后開始丟包,漏報率增大。
(3)采用協議分析的IDS:網絡流速大于11萬pps小于43萬pps時沒有丟包,但是由于協議分析過程中不能完全正確地分類,漏報率稍微增大;網絡流速大于43萬pps后開始丟包,漏報率增大。
(4)采用動態規則集和協議分析的IDS:網絡流速大于11萬pps小于61萬pps時,沒有丟包,但是由于動態調整了規則集的范圍和協議分析過程中不能完全正確地分類,漏報率稍微增大;網絡流速大于61萬pps后開始出現丟包,漏報率增大。
假設未知攻擊占所有攻擊的百分比為a,未知攻擊的漏報率b為100%,已知攻擊的漏報率為c,如圖4中的縱坐標,則可以計算出實際的漏報率為P=a*b+(1-a)*c, P=a+(1-a)*c,其中0≤a≤1,b=1,0≤c≤1。
綜上所述,采用動態規則集與協議分析結合的方案能夠極大地提高IDS的處理能力,在不影響誤報率的條件下,大大降低了漏報率,提高了IDS的性能,使得IDS能夠適應不同流速的網絡。
本論文提出了利用動態規則集和協議分析來提高入侵檢測效率。這種方案主要是通過協議分析縮小了模式匹配的規則集,并把規則集按照概率降序排序,優先匹配概率高的規則,從而極大地提高了模式匹配的效率,節省了不必要的匹配時間,解決了規則集不斷膨脹而導致IDS性能下降的問題。
參考文獻
1 Kumar G.Classification and detection of computer intrusion[D].Purdue University,1995
2 李朔峰,李雪瑩,許榕生.運用動態規則集機制改善IDS性能的研究[J].計算機工程與應用,2003;(34):139~141
3 閆 巧,喻建平,謝維信.入侵檢測系統的可信問題[J].計算機研究與發展,2003;(8):1203~1208