引 言
在保障網絡的安全性時,入侵檢測系統已經成為必選的技術和手段,因為它比起其他的安全技術存在著很多優勢。用戶在選用IDS時,總是從各自不同的需要來考慮。要衡量IDS的優劣,就需要明確IDS應該具備的性能指標,設計有效的方法來測試。實際上入侵檢測系統的測試是一個難度較大的問題,也是一件費時耗力的工作。對于這一工作,許多研究機構都進行了相應的研究,給出了自己的測試方法和測試結果。例如MIT的林肯實驗室分別在1998年和1999年進行了IDS的兩次測試,這兩次測試的結果曾受到廣泛的關注。IBM的蘇黎世研究院和其他一些研究機構也做過相似的工作。他們的工作都專注于IDS*估和測試的本身,沒有過多考慮到開發者的需要,而且他們的方法實現起來代價都很大。本文既考慮到測試的目的,又考慮了開發者的需要,盡量能夠保證測試環境和開發環境的融合,提出模擬現實的網絡環境,然后搭建軟件平臺進行IDS測試的方法。該方法比較容易實現,可控制性強,能夠滿足IDS測試的多種需要,隨后的仿真測試說明該方法是有效的。
1 IDS測試目的及指標
入侵檢測系統是一個軟硬件結合體系,可以借鑒軟件測試方法來測試和*價入侵檢測系統,但是純粹的軟件測試方法并不能很好地滿足IDS測試的需要。首先要確定應該以什么樣的標準來測試IDS,也就是選擇測試指標。根據IDS的特點采取定量的測試方法,這些測試指標側重于那些定量的測量,以及與檢測準確度相關的項目。
IDS的主要目的就是有效地檢測出入侵行為,并進行及時處理。檢測率用來確定在一個時間段內及在給定的環境中IDS可以正確檢測到攻擊的比率。當系統將正常的行為確認為人侵行為時就是發生誤報(False Positive)。誤報率用來確定在一個特定的時間段內及在給定環境中IDS所產生的誤報比率,大多數產生誤報的原因是正常的非惡意的后臺流量引起的。當系統將入侵行為確認為正常行為時,則發生漏報(False Negatire)。漏報率用來衡量一個特定的時間段及在給定環境中IDS所產生的漏報比率。
檢測率和誤報率是緊密相關的,受試者行為特性曲線(Receiver Operating Characteristic,ROC)反映了這兩者之間的關系。ROC曲線的橫軸是IDS的誤報次數,縱軸為檢測率,該曲線準確地刻畫了IDS的檢測率與誤報率情況。利用ROC曲線還可以找出IDS的檢測和誤報之間的平衡點,但是為了獲得這個點需要預先做很多工作。
除了上面的幾項指標外,還有幾項重要的指標需要加以考慮。它們包括:自身安全性(抵抗對于入侵檢測系統本身的攻擊)、處理高數據流量的能力、事件關聯能力、檢測未知攻擊的能力、確認攻擊是否成功的能力等。
2 IDS測試環境
測試環境是對IDS進行*估和測試的基礎,因為它直接關系到測試的結果,也直接影響測試的真實性和客觀性。無論何種類型的IDS,其運行的真實環境總是一個具體的網絡。但是測試中環境卻不拘泥于是否是在某種特定的網絡里,IDS的部署和配置總是根據它所在的網絡環境而千差萬別,建立的測試環境應該能夠滿足IDS測試中多樣性的需要,使它不僅能對測試環境進行靈活的調整,又能在現實網絡中使其流量要求與技術指標相符合。測試環境分為三種:現實網絡環境、純軟件模擬環境和模擬網絡環境。
2.1 現實網絡環境和模擬環境
現實網絡環境就是本地現有的正在實際使用的網絡環境。整個因特網就是一個最大的現實的網絡測試環境,如圖1所示。
在內網中布置了IDS,該IDS可以是基于主機(Host-based IDS)的,也可以是基于網絡(Network-based IDS)的。發起攻擊的主機(產生攻擊行為的主機,這樣的主機可以是一臺也可以是多臺)可以在網內,也可以在網外。網內和網外是一個相對而言的概念,把與IDS同在一個局域網中的設備和節點看作網內,其他情況稱為網外。發起攻擊測試的主機如果是在網內,那么它們應該與所要測試的IDS在同一個局域網內,如果這臺主機是在網外,那么它的位置跨度可以很大,它們可以是因特網上的任何機器。
另外,還有一種完全用軟件來模擬的方法。這種方法類似于虛擬機技術(如Vmware)和網絡仿真技術(如OPNET,ns2)的結合。用一臺單主機模擬出一個完備的網絡環境,在此虛擬網絡環境中部署IDS,然后再配合測試軟件就可以進行IDS的測試。這種方法有一定的可行性,因為它的環境單一性使得測試人員能夠方便地測試一些輕量級的IDS或者測試IDS某個特定的功能方面。但是這種測試環境下測試效果的好壞還有待于進一步的研究和試驗證明。
現實環境的優點是不需要專門建立,實時性高,對特定類型的IDS測試時其測試結果的可信度高;但是也有很多缺點,最主要就是可控性不高,所能測試的IDS范圍比較窄,種類比較少。純軟件環境因其本身的運行,十分消耗資源,因此難以勝任較大規模的IDS測試工作。
2.2 模擬網絡環境
本文選擇模擬網絡環境來進行測試環境的設計,模擬測試環境大多數可以由實際的開發環境經過簡單的改動而得到。它與前兩種測試環境相比,優勢在于:可控性好,能夠根據測試需要定制和更改環境,可以測試的攻擊范圍大,種類多等。另外,在設計合理的情況下,其測試效果并不亞于真實的網絡環境。從實現的角度考慮,這種模擬測試環境也能夠滿足絕大多數IDS測試的需要。基本思路是根據測試的要求,用一個簡單的局域網來模擬規模較大的城域網和因特網。使用模擬網絡環境進行IDS測試時需要開發與之相配套的軟件平臺。樟捌網絡結構如圖2所示。
此網絡可以模擬規模較大的、實際的網絡結構和設備,也可以模擬實際網絡中多種多樣的網絡服務。具體方法是利用專門產生網絡流量的計算機來產生所需要的網絡流量,然后使用軟件把這些流量動態地分派給網絡中的節點。一般需要兩種產生流量的機器:外部流量產生器,產生模擬網絡和因特網之間的會話和流量;內部流量產生機器,產生網絡內部需要的會話和流量。這兩種流量產生器能夠產生比實際網絡上更為豐富的會話和流量,因為它們可以進行人為的控制。流量的產生要考慮測試所需流量的大小以及網絡規模的大小;另外還需要對多種網絡服務和網絡協議進行模擬,以及模擬一些分布式的流量,所以這樣的流量產生器有時要占用好幾臺性能優越的計算機。
邊界路由器介于流量產生器和網絡環境之間,它起到劃分內部流量和外部流量的作用。邊界路由器還有向網內的其他路由器和設備分配流量的作用。其他的如防火墻和主機等設備與它們在實際網絡中的作用和位置相同。這樣的模擬環境基本上反映了真實網絡的情況,進行合理的配置完全可以模擬真實網絡環境的技術參數、流量要求等指標,而且整個模擬環境可以與外界完全隔離開來獨立使用。
3 IDS測試平臺
有了測試環境還不能完成IDS的測試工作,還需要針對測試環境利用軟件搭建一個測試平臺。基于上面的模擬網絡的測試環境,建立軟件測試平臺,其流程如圖3所示。
MIT在入侵檢測系統測試*估上發展了一種系統和通用的*估方法。全部工作流程包括數據集的構造、測試過程、測試結果分析,提供改進算法的意見。這里提出的平臺既考慮了通用性,也考慮了實際IDS開發環境的因素,它能夠完成上述流程的全部工作,其中的關鍵部分有流量仿真、攻擊仿真、事件合成等。
3.1 流量仿真
*估所需的網絡流量仿真是一項很復雜的工作。常規用于研究網絡性能的流量仿真方法所產生的數據包,不考慮數據內容,極有可能引起IDS的大量誤報。一般的IDS都工作于網絡層或網絡層之上,它們在協議規定的框架內對網絡數據包的內容進行分析。因此,IDS*估環境中的網絡流量仿真,一定是具體到各個協議的流量仿真。流量仿真的子系統結構如圖4所示。
由于流量的產生不僅來自網絡外部,還有來自網絡內部其他主機的流量,這樣就需要生成兩種類型的網絡流量:外部網絡流量和內部網絡流量。對應上一節中的測試環境,這兩種網絡流量是由測試環境中的外部流量產生器和內部流量產生器分別產生的。這兩種類型的流量中又根據測試需要包含有正常的網絡會話流量和非正常的(有時是攻擊性的)網絡會話流量。
3.2 攻擊仿真
攻擊仿真是整個測試過程的關鍵,也是測試結果是否合理的關鍵。攻擊仿真的前期準備工作是收集足夠多的攻擊數據,實際上是收集現有所有已知的攻擊和系統的弱點數據。這些數據主要來自一些研究機構,像MIT的林肯實驗室、IBM的蘇黎世研究院和一些網絡界有名的討論組(社區),如The NSS Group等,其中MIT林肯實驗室的數據就其可用性、全面性和權威性都得到了廣泛的認可。
測試用例的選擇應該盡可能的全面,但是不可能把每一種現有的攻擊都試驗一遍,因此要把所有的攻擊按照某種標準進行劃分,在所劃分的每個子集里挑選若干個典型的攻擊來完成測試。實施具體的攻擊,可以利用軟件直接來實現,也可以用編寫腳本的方法來實現,利用shell編程和腳本語言編寫攻擊腳本來模擬入侵用戶的行為,實現攻擊的重放。
使用腳本和腳本解釋器的方法來模擬用戶的行為,對編寫好的腳本進行解析,執行再利用網絡連接命令連接到遠端主機,就能夠實現多種多樣的攻擊重放。如果編寫并輸人多個不同的腳本,用并行算法加以控制就能夠模擬多個并發用戶的行為,實現多用戶并發攻擊的模擬。攻擊腳本的編寫要事先制定統一的編寫規范和格式。
3.3 事件合成
事件合成也是很重要的環節,它是對網絡流量、模擬攻擊和測試對比的綜合考慮。一個仿真事件要包括事件的發生時間、結束時間和事件的內容等其他一些必要的相關信息。網絡流量仿真中的事件可以是每一個網絡連接,基于連接的流量如TCP,也可以是一個網絡數據包,基于數據包的流量如UDP。主機使用仿真中的事件可以是網絡服務的每次使用,也可以是一條用戶指令的執行。合成好的原始事件一方面給測試模塊做測試之用,一方面用日志記錄下來以備離線考察。將測試結果和原始事件進行有效的對比就可以得出大部分的測試結果。
3.4 其他模塊
正常流量數據庫存放準備好的網絡流量數據,為流量仿真模塊的調用做事先的準備;攻擊數據庫存放收集到的攻擊數據,攻擊仿真模塊從攻擊數據庫取得數據處理后形成攻擊。事件日志記錄合成事件的日志和事件原始數據,這些數據用于對測試結果的補充和一些離線的測試。運行日志專門記錄IDS運行產生的一系列事件及其對入侵行為的反應。測試結果模塊最終向用戶提交一份指定格式的測試報告,記錄測試結果,還可以進一步給出對IDS改進的意見等。
3.5 測試過程
整個平臺的工作過程如下:流量數據庫提供網絡會話流量由流量產生模塊處理后生成所需的網絡流量,攻擊數據庫提供原始的攻擊素材,由攻擊仿真模塊加工后形成攻擊數據流;兩者經過事件合成模塊合成為攻擊事件;攻擊事件一方面對待檢測的IDS發起攻擊,另一方面送給測試模塊作對比之用;測試模塊根據測試算法通過和待測IDS的雙向交互,*估IDS的各種行為和對入侵事件的反應;事件日志對攻擊事件進行記錄,運行日志對IDS的運行情況進行記錄;最后由測試結果模塊報告測試的結果。
3.6 測試結果
測試環境也可以用于IDS的開發環境,只需要進行簡單的調整。IDS開發過程中的一些性能測試、算法測試和攻擊特征優化測試等都能夠在這個環境中完成。本研究的初衷就是能夠使開發環境和測試環境相統一。利用這個環境對開發的基于多代理的入侵檢測系統進行了相應的測試,其結果如下:此IDS運行時,CPU占用率為0%~5%,內存開銷為7 492+6 648 KB;用tcpreplay產生TCPDUMP格式的文件,進行9 Mb/s的流量重放時,IDS處理到的流量為5.46 Kb/s;對于攻擊測試,主要測試了Dosnuke,SYN FL00D攻擊以及掃描攻擊等,其檢測率和誤報次數的ROC曲線如圖5所示。可以看出,該IDS在誤報比較少的情況下能夠達到比較好的檢測率。
4 結 語
網絡的發展和新網絡入侵方式的出現,促使了入侵檢測系統的不斷發展和完善,入侵檢測系統的測試技術也隨之不斷發展。實際而言,入侵檢測系統的測試不但存在很多的困難,而且也非常的耗時耗力,例如MIT有名的1998年和1999年測試都分別耗時一年時間。但是對于入侵檢測系統的測試又是一個不得不解決的事情。當然,IDS的測試本身還存在一些難題需要解決,如攻擊腳本和受害軟件難于收集,對基于異常的系統還缺乏有效的方法進行測試等。這些都有待于更進一步的深入研究。
-
測試
+關注
關注
8文章
5408瀏覽量
127172 -
檢測系統
+關注
關注
3文章
960瀏覽量
43197 -
仿真
+關注
關注
50文章
4134瀏覽量
134116
發布評論請先 登錄
相關推薦
紅外入侵檢測系統有什么優點?
基于代理的分級MANET入侵檢測系統
基于主機的入侵檢測系統分析
華北工控網絡產品在入侵檢測系統(IDS)中的應用
![華北工控網絡產品在<b class='flag-5'>入侵</b><b class='flag-5'>檢測</b><b class='flag-5'>系統</b>(<b class='flag-5'>IDS</b>)中的應用](https://file1.elecfans.com//web2/M00/A5/6E/wKgZomUMOGmAMKBzAADCPD_L5sw982.gif)
評論