天天看點

入侵檢測系統IDS測試與評估

随着入侵檢測系統的廣泛應用,對入侵檢測系統進行測試和評估的要求也越來越迫切。開發者希望通過測試和評估發現産品中的不足,使用者希望測試和評估來幫助自己選擇合适的入侵檢測産品。本文根據目前的相關研究,介紹了入侵檢測系統測試評估的标準、名額,方法步驟、資料來源、環境配置、測試評估的現狀以及其中存在的一些問題。

  1、引言

  随着人們安全意識的逐漸提高,入侵檢測系統(IDS)的應用範圍也越來越廣,各種各樣的IDS也越來越多。那麼IDS能發現入侵行為嗎?IDS是否達到了開發者的設計目标?什麼樣的IDS才是使用者需要的性能優良的IDS呢?要回答這些問題,都要對IDS進行測試和評估。

  和其他産品一樣,當IDS發展和應用到一定程度以後,對IDS進行測試和評估的要求也就提上日程表。各方都希望有友善的工具,合理的方法對IDS進行科學。公正并且可信地測試和評估。對于IDS的研制和開發者來說,對各種IDS進行經常性的評估,可以及時了解技術發展的現狀和系統存在的不足,進而将講究重點放在那些關鍵的技術問題上,減少系統的不足,提高系統的性能;而對于IDS的使用者來說,由于他們對IDS依賴程度越來越大,是以也希望通過評估來選擇适合自己需要的産品,避免各IDS産品宣傳的誤導。IDS的使用者對測試評估的要求尤為迫切,因為大多數使用者對IDS本身了解得可能并不是很深入,他們希望有專家的評測結果作為自己選擇IDS的依據。

  總地來說,對IDS進行測試和評估,具有以下作用:

·有助于更好地刻劃IDS的特征。通過測試評估,可更好地認識了解IDS的處理方法、所需資源及環境;建立比較IDS的基準;領會各檢測方法之間的關系。

·對IDS的各項性能進行評估,确定IDS的性能級别及其對運作環境的影響。

·利用測試和評估結果,可做出一些預測,推斷IDS發展的趨勢,估計風險,制定可實作的IDS品質目标(比如,可靠性、可用性、速度、精确度)、花費以及開發進度。

·根據測試和評估結果,對IDS進行改善。也就是發現系統中存在的問題并進行改進,進而提高系統的各項性能名額。

  本文首先介紹了測試評估IDS性能的标準,然後介紹了測試評估的方法步驟,并且介紹測試評估的具體名額、所需的資料源、測試評估環境配置與架構,最後介紹了測試評估現狀以及其中存在的一些問題。

  2、測試評估IDS性能的标準

  根據Porras等的研究,給出了評價IDS性能的三個因素:

·準确性(Accuracy):指IDS從各種行為中正确地識别入侵的能力,當一個IDS的檢測不準确時,就有可能把系統中的合法活動當作入侵行為并辨別為異常(虛警現象)。

·處理性能(Performance):指一個IDS處理資料源資料的速度。顯然,當IDS的處理性能較差時,它就不可能實作實時的IDS,并有可能成為整個系統的瓶頸,進而嚴重影響整個系統的性能。

·完備性(Completeness):指IDS能夠檢測出所有攻擊行為的能力。如果存在一個攻擊行為,無法被IDS檢測出來,那麼該JDS就不具有檢測完備性。也就是說,它把對系統的入侵活動當作正常行為(漏報現象)。由于在一般情況下,攻擊類型、攻擊手段的變化很快,我們很難得到關于攻擊行為的所有知識,是以關于IDS的檢測完備性的評估相對比較困難。

在此基礎上,Debar等又增加了兩個性能評價測度:

·容錯性(Fault Tolerance):由于IDS是檢測入侵的重要手段/是以它也就成為很多入侵者攻擊的首選目标。IDS自身必須能夠抵禦對它自身的攻擊,特别是拒絕服務(Denial-of-Service)攻擊。由于大多數的IDS是運作在極易遭受攻擊的作業系統和硬體平台上,這就使得系統的容錯性變得特别重要,在測試評估IDS時必須考慮這一點。

·及時性(Timeliness):及時性要求IDS必須盡快地分析資料并把分析結果傳播出去,以使系統安全管理者能夠在入侵攻擊尚未造成更大危害以前做出反應,阻止入侵者進一步的破壞活動,和上面的處理性能因素相比,及時性的要求更高。它不僅要求IDS的處理速度要盡可能地快,而且要求傳播、反應檢測結果資訊的時間盡可能少。

  3、IDS測試評估的方法步驟

  前面我們已經讨論了IDS測試評估的性能名額,具體測試主要就是圍繞這些名額來進行。大部分的測試過程都遵循下面的基本測試步驟:

·建立、選擇一些測試工具或測試腳本。這些腳本和工具主要用來生成模拟的正常行為及入侵,也就是模拟IDS運作的實際環境。

·确定計算環境所要求的條件,比如背景計算機活動的級别。

·配置運作IDS。

·運作測試工具或測試腳本。

·分析IDS的檢測結果。

  美國加州大學的Nicholas J.Puketza等人把測試分為三類,分别與前面的性能名額相對應,即入侵識别測試(也可以說是IDS有效性測試)。資源消耗測試、強度測試。入侵識别測試測量IDS區分正常行為和入侵的能力,主要衡量的名額是檢測率和虛警率。資源消耗測試(Resource Usage Tests)測量IDS占用系統資源的狀況,考慮的主要因素是硬碟占用空間、記憶體消耗等。強度測試主要檢測IDS在強負荷運作狀況下檢測效果是否受影響,主要包括大負載、高密度資料流量情況下對檢測效果的檢測。

 4、測試評估IDS的性能名額

  在我們分析IDS的性能時,主要考慮檢測系統的有效性、效率和可用性。有效性研究檢測機制的檢測精确度和系統檢測結果的可信度,它是開發設計和應用IDS的前提和目的,是測試評估IDS的主要名額,效率則從檢測機制的處理資料的速度以及經濟性的角度來考慮,也就是側重檢測機制性能價格比的改進。可用性主要包括系統的可擴充性、使用者界面的可用性,部署配置友善程度等方面。有效性是開發設計和應用IDS的前提和目的,是以也是測試評估IDS的主要名額,但效率和可用性對IDS的性能也起很重要的作用。效率和可用性滲透于系統設計的各個方面之中。本節從檢測的有效性、效率以及可用性角度,對測試評估IDS的性能名額進行分析讨論。

  4.1 檢測率、虛警率及檢測可信度

  檢測率是指被監控系統在受到入侵攻擊時,檢測系統能夠正确報警的機率。虛警率是指檢測系統在檢測時出現虛警的機率。檢測可信度也就是檢測系統檢測結果的可信程度,這是測試評估IDS的最重要的名額。

  實際的IDS的實作總是在檢測率和虛警率之間徘徊,檢測率高了,虛警率就會提高;同樣虛警率降低了,檢測率也就會降低。一般地,IDS産品會在兩者中取一個折衷,并且能夠進行調整,以适應不同的網絡環境。美國的林肯實驗室用接收器特性(ROC,Receiver Operating Characteristic)曲線來描述IDS的性能。該曲線準确刻畫了IDS的檢測率與虛警率之間的變化關系。ROC廣泛用于輸入不确定的系統的評估。根據一個IDS在不同的條件(在允許範圍内變化的門檻值,例如異常檢測系統的報警門限等參數)下的虛警率和檢測率,分别把虛警率和檢測率作為橫坐标和縱坐标,就可做出對應于該IDS的ROC曲線。ROC曲線與IDS的檢測門限具有對應的關系。

在測試評估IDS的具體實施過程中,除了要IDS的檢測率和虛警率之外,往往還會單獨考慮與這兩個名額密切相關的一些因素,比如能檢測的入侵特征數量、IP碎片重組能力、TCP流重組能力。顯然,能檢測的入侵特征數量越多,檢測率也就越高。此外,由于攻擊者為了加大檢測的難度甚至繞過IDS的檢測,常常會發送一些特别設計的分組。為了提高IDS的檢測率降低IDS的虛警率,IDS常常需要采取一些相應的措施,比如IP碎片能力、TCP流重組。因為分析單個的資料分組會導緻許多誤報和漏報,是以IP碎片的重組可以提高檢測的精确度。IP碎片重組的評測标準有三個性能參數:能重組的最大IP分片數;能同時重組的IP分組數;能進行重組的最大IP資料分組的長度,TCP流重組是為了對完整的網絡對話進行分析,它是網絡IDS對應用層進行分析的基礎。如檢查郵件内容。附件,檢查FTP傳輸的資料,禁止通路有害網站,判斷非法HTTP請求等。這兩個能力都會直接影響IDS的檢測可信度。

  4.2 IDS本身的抗攻擊能力

  和其他系統一樣,IDS本身也往往存在安全漏洞。若對IDS攻擊成功,則直接導緻其報警失靈,入侵者在其後所作的行為将無法被記錄。是以IDS首先必須保證自己的安全性。IDS本身的抗攻擊能力也就是IDS的可靠性,用于衡量IDS對那些經過特别設計直接以IDS為攻擊目标的攻擊的抵抗能力。它主要展現在兩個方面:一是程式本身在各種網絡環境下能夠正常工作;二是程式各個子產品之間的通信能夠不被破壞,不可仿冒。此外要特别考慮抵禦拒絕服務攻擊的能力。如果IDS本身不能正常運作,也就失去了它的保護意義。而如果系統各子產品間的通信遭到破壞,那系統的報警之類的檢測結果也就值得懷疑,應該有一個良好的通信機制保證子產品間通信的安全并能在出問題時能夠迅速恢複。

  4.3 其他性能名額

  延遲時間。檢測延遲指的是在攻擊發生至IDS檢測到入侵之間的延遲時間。延遲時間的長短直接關系着入侵攻擊破壞的程度。

  資源的占用情況。即系統在達到某種檢測有效性時對資源的需求情況。通常,在同等檢測有效性的前提下,對資源的要求越低,IDS的性能越好,檢測入侵的能力也就越強。

  負荷能力。IDS有其設計的負荷能力,在超出負荷能力的情況下,性能會出現不同程度的下降。比如,在正常情況下IDS可檢測到某攻擊但在負荷大的情況下可能就檢測不出該攻擊。考察檢測系統的負荷能力就是觀察不同大小的網絡流量、不同強度的CPU記憶體等系統資源的使用對IDS的關鍵名額(比如檢測率、虛警率)的影響。

  日志、報善、報告以及響應能力。日志能力是指檢測系統儲存日志的能力、按照特定要求選取日志内容的能力。報警能力是指在檢測到入侵後,向特全部件、人員發送報警信号的能力以及在報警中附加資訊的能力。報告能力是指産生入侵行為報告、提供查詢報告、建立和儲存報告的能力。響應能力是指在檢測到入侵後進一步處理的能力,這包括阻斷入侵、跟蹤入侵者、記錄入侵證據等。

  系統的可用性。主要是指系統安裝、配置、管理、使用的友善程度,系統界面的友好程度,攻擊規則庫維護的簡易程度等方面。

  總之,IDS是個比較複雜的系統,對IDS進行測試和評估不僅和IDS本身有關,還與應用IDS的環境有關。測試過程中涉及到操作環境、網絡環境、工具、軟體、硬體等方面。我們既要考慮入侵檢測的效果如何,也要考慮應用該系統後它對實際系統的影響,有時要折衷考慮這兩種因素。

5、對IDS進行測試評估一利用的相關資料

  對IDS進行測試評估,也就是讓IDS對進入到受保護系統的資料進行檢測,以确定檢測系統能否發現其中的入侵。要測試評估IDS,最準确的資料當然是根據實際運作環境産生的資料,但這通常是行不通的。因為各機構的資料中都包含一些隐私資訊,他們不願公開這些資料,并且即使有機構願意公開自己的資料,也不大适合用來做通用測試,因為特定機構的資料都帶有明顯的特有的一些特性,具有一定的局限性,可重複性也不好。為此,在具體測試的時候,大都采用一些測試工具。通過這些工具來生成IDS的測試資料。

  測試評估資料的生成需要滿足下面幾個條件,即資料的生成必須能自動完成,不需要人為的幹預;要具有一定的可重複性,也就是說需要時可以産生相同的資料;要有一定的健壯性,可在無人監控的條件下,可運作較長時間。

  測試評估IDS的資料包括兩部分,一部分是訓練資料,另外一部分是實際測試資料。這兩部分資料中都包括正常資料和入侵資料。隻有在正常資料的背景下,對IDS的測試評估結果才是客觀和全面的。入侵行為在背景資料的掩護下,被檢測系統發現的機率會大大降低。而IDS也可能将正常的流量行為誤判為攻擊,産生虛警。訓練資料用來幫助IDS建立正常行為的模型,調整IDS各參數的設定。在訓練資料中,入侵資料是明确标明的。測試資料用來對檢測系統進行測試,其中的入侵資料沒有标明。

  通常使用下面三種方法生成既包含正常通信資料又有攻擊的可公用的資料:抓取正常情況和被受控攻擊時的運作通信資料。由于隐私和安全問題這顯然行不通;從實際運作資料中清除秘密資訊。并在其中加入攻擊,這也行不通,因為很難清除秘密資訊;在一個内部網中重建正常通信和攻擊資料,這是我們采用的方法。

  重建正常通信和攻擊資料也就是仿真使用者操作、模拟入侵。仿真使用者操作即生成使用者各種各樣的正常使用模式,這些模式幫助基于異常檢測的IDS建立正常行為的模型,并且以使用者正常模式資料作為檢測入侵的背景通信資料,對于确定IDS正常運作時的檢測率和虛警率是非常必要的。模拟入侵應盡可能地覆寫多種類型,新的攻擊隻在測試資料一出現。設計攻擊要考慮很多問題。要分析攻擊的機制,并在測試系統中試驗以便于分析和調節。分析要确定攻擊在測試環境中能否工作,是否需要新軟體或服務的支援。設計新奇的攻擊以用來發現未利用的系統或網絡漏洞。下面對使用者正常模式的仿真和入侵仿真分别進行讨論。

  目前,大多采用下面三種方法來仿真網絡使用者行為,即通用會話生成工具、測試軟體包和錄制重放實際資料。通用會話生成工具方法基于有限自動機來生成使用者所有可能的操作。每種操作都有一定的操作規程,比如FTP操作,首先它要完成TCP三步握手初始化連接配接,然後要輸入使用者名和密碼,使用者名密碼通過之後再浏覽FTP伺服器上的内容、下載下傳或者上傳,所有操作完成後離開伺服器,結束TCP會話。根據這種通用規程,就可生成通用的會話,模拟使用者操作。但是,這種方法隻适用于測試有限的指令集,比如可仿真FTP客戶,但不能仿真shell客戶,并且這種仿真存在一些問題,因為使用者操作的順序和伺服器端的響應都是不确定的,仿真并不能完全模拟使用者的操作狀況。作業系統開發商自帶測試軟體包是比較簡單的模拟方法,通常用于測試評估作業系統服務的性能和應用服務軟體是否按設計說明來實作。但是這種測試不能給出使用者進行什麼樣的操作,隻能告訴我們系統對正常請求的響應行為。錄制重放方法是記錄各種使用者正常活動的資料,然後在測試平台上重放使用者的活動過程。這種方法要求使用者活動記錄要足夠多。

使用者正常行為的仿真主要包括網絡流量仿真、主機正常使用仿真。大多數的網絡IDS或者網絡IDS的大部分都工作于網絡層或網絡層之上,它們對網絡上的資料分組根據不同的協定進行相應的分析。是以,在仿真網絡流量時,要仿真各種協定的各種應用的流量。通常,對實際流量進行分析,經統計計算,得到各個協定按時間的流量機率分布,以此為模型,分别仿真各個協定的流量。

  主機的使用可以分為兩個部分:主機所提供的網絡服務的使用和主機的直接使用,即使用者在主機上執行指令。相應的主機正常使用的仿真要分為兩部分,即主機網絡服務正常使用的仿真和主機直接使用的仿真。對主機提供的網絡服務的正常使用進行仿真,可以采用兩種方法。一是周遊法,即找出某個服務允許的所有正常使用模式,再由仿真程式,按這些模式依次對該服務進行通路。二是實際采樣法,取得真實網絡環境中某個服務的實際使用情況資料,分析出現的使用模式,再根據分析結果建立仿真模型進行仿真。此方法與網絡流量仿真的方法類似。這兩種方法各有優缺點、仿真實作中,應根據被仿真服務的具體情況進行選擇。由于使用者的行為因工作性質不同,會有很大差别,是以主機直接使用的仿真應将使用者分為不同的種類(比如管理者、普通使用者),根據不同的使用者類型編寫不同的腳本,實作主機直接使用的仿真。由于不同使用者使用習慣變化很大,并且即使同一使用者使用習慣也帶有很大的随機性,這使得仿真的難度大大增加。在實際測試評估IDS時,一般隻是仿真主機正常使用的一個具有代表性的子集。

  攻擊仿真是評估環境的核心,也是對IDS進行測試的關鍵。攻擊仿真要盡可能多地搜集各種攻擊方法。由于各種攻擊的數量過于龐大,不可能對所有的攻擊都進行仿真。參考軟體測試領域中的等價劃分方法(equivalence partitioning),在進行攻擊仿真時,一般先将攻擊分類,然後選擇每種類别中典型的攻擊方法進行仿真試驗。選擇好攻擊類型後,在仿真時根據入侵者進行攻擊的步驟進行仿真。在構造攻擊資料時還要注意新式攻擊。攻擊方式隐秘的攻擊、并行進行的攻擊等方面。相對于舊式攻擊、攻擊方式明顯的攻擊以及串行進行的攻擊而言,這些攻擊方式對檢測結果的影響可能會更大。

  目前,測試資料所采用的格式大多采用Tcpdump資料格式和BSM資料格式,由于Windows系統廣泛應用,Windows NT的日志格式也逐漸考慮進來。在測試資料方面,麻省理工學院林肯實驗室的資料比較完備,它包括一定時間的訓練資料和用于最後實際測試的檢測資料。用于網絡流量仿真的工具有Anzen公司開發的nidsbench以及加利福尼亞大學開發的入侵檢測測試平台。nidsbench包括tcpreplay和fraqrouter兩部分。tcpreplay的功能是将tcpdump複制的資料分組重放,還原網絡的實際運作狀态;而fraqrouter的功能是通過構造一系列躲避IDS檢測的攻擊以測試檢測系統的正确性和安全性。加利福尼亞大學的IDS軟體測試平台使用 Tcl-DP(TooL Command Language Distributed Programming)工具開發實作。它共包含四組指令:基本的會話指令集、同步指令集、通信指令集、記錄重放指令集。這些指令集分别用來仿真入侵者的基本操作,按指定要求産生事件,實作并發程序的通信以及記錄使用者會話期間的操作指令序列再重放這些記錄。此外,麻省理工學院林肯實驗室也開發了非實時IDS性能評估工具,該工具可動态重放大量的資料。

6、測試評估IDS的環境配置與架構

  在測試評估IDS時,很少會把IDS放在實際運作的網絡中,因為實際網絡環境是不可控的,并且實際網絡環境的專用性也太強,很難對IDS進行準确的系統測試。是以一般要建構專用的網絡的環境。

  受保護系統模拟主機正常運作狀況,網絡負載生成器模拟内部網之間以及内部網與外部網之間的網絡通信。攻擊模拟用來模拟入侵者發起的攻擊。IDS即為待檢測的系統。由于有時實際的網絡環境很大,有很多安裝各種各樣作業系統、應用軟體的主機伺服器,要求測試環境完全按照實際網絡進行配置并不是很實際,是以在測試中一般采用虛拟主機技術。通常使用一些軟體工具或者編寫可自動運作的腳本來模拟各種主機的各種行為,相當于在一台實體主機上運作多台虛拟主機,每個虛拟主機模拟不同硬體上運作的不同作業系統、不同應用程式。一般來說,受保護主機要包含運作常用作業系統(比如Windows、Linux、SunOS)的主機。内部網網絡負載生成器要模拟内部的網絡流量以及内部的攻擊,而外部位網絡負載生成器要模拟外部的網絡流量(比如通路Web頁面,下載下傳檔案)以及外部的攻擊。實際建構測試環境的過程是個複雜過程,它直接關系到評測的成功與否。

  7、IDS測試評估現狀以及存在的問題

  雖然IDS及其相關技術已獲得了很大的進展,但關于IDS的性能檢測及其相關評測工具、标準以及測試環境等方面的研究工作還很缺乏。

  Puketza等人在1994年開創了對IDS評估系統研究的先河,在他們開發的軟體平台上可以實作自動化的攻擊仿真。1998年Debar等在IDS實驗測試系統的研究中,指出在評估環境中仿真正常網絡流量是一件非常複雜而且耗時的工作。林肯實驗室在1998年、1999年進行的兩次IDS離線評估,是迄今為止最權威的IDS評估。在精心設計的測試網絡中,他們對正常網絡流量進行了仿真,實施了大量的攻擊,将記錄下的流量系統日志和主機上檔案系統映像等資料,交由參加評估的IDS進行離線分析。最後根據各IDS送出的檢測結果做出評估報告。目前美國空軍羅馬實驗室對IDS進行了實時評估。羅馬實驗室的實時評估是林肯實驗室離線評估的補充,它主要對作為現行網絡中的一部分的完整系統進行測試,其目的是測試IDS在現有正常機器和網絡活動中檢測入侵行為的能力以及IDS的響應能力及其對正常使用者的影響。IBM的Zurich研究實驗室也開發了一套IDS測評工具。此外,有些黑客工具軟體也可用來對IDS進行評測。

  目前,市場上以及正在研發的IDS很多,各系統都有自己獨特的檢測方法。攻擊描述方式以及攻擊知識庫,還沒有一個統一的标準。這大大加大了測試評估IDS的難度,因為很難建立一個統一的基準,也很難建立統一的測試方法。

  測試評估IDS中存在的最大問題是隻能測試已知的攻擊。在測試評估過程中,采用模拟的方法來生成測試資料,而模拟入侵者實施攻擊面臨的困難是隻能掌握已公布的攻擊,而對于新的攻擊方法就無法得知。這樣的後果是,即使測試沒有發現IDS的潛在弱點,也不能說明IDS是一個完備的系統。不過,可以通過分類選取測試例子,使之盡量覆寫許多不同種類的攻擊,同時不斷更新入侵知識庫,以适應新的情況。

并且,由于測試評估IDS的資料都是公開的,如果針對測試資料設計待測試IDS,則該IDS的測試結果肯定比較好,但這并不能說明它實際運作的狀況就好。

  此外,對評測結果的分析使用也有很多問題。理想狀況是可以自動地對評測結果進行分析,但實際上很難做到這一點。對IDS的實際評估通常既包含客觀的也包含主觀的,這和IDS的原始檢測能力以及它報告的方式有關。分析人員要在IDS誤報時分析為什麼會出現這種誤報,在給定的測試網絡條件下,這種誤報是否合理等問題。評測結果的計分方式也很關鍵,如果計分不合理的話,得出的評測結果可信度也就不可能很高。比如,如果某個IDS檢測不出某種攻擊或對某種正常行為會産生虛警,則同樣的行為都産生同樣的結果,正确的處理方法是應該隻計一次,但這很難把握,一旦這種效果被多次重複考慮的話,該IDS的評測結果肯定不是很理想,但實際上該人侵檢測總體檢測效果可能很好。

  8、小結

  入侵檢測作為一門正在蓬勃發展的技術,出現的時間并不是很長;相應地對IDS進行評測出現得更晚。它肯定有很多不完善和有待改進的地方,這需要進一步的研究。其中幾個比較關鍵的問題是:網絡流量仿真、使用者行為仿真、攻擊特征庫的建構、評估環境的實作以及評測結果的分析。

  近幾年來,我國的入侵檢測方面的研究工作和産品開發也有了很大的發展。但對入侵檢測評估測試方面的工作還不是很多。各入侵檢測産品廠家基于各方面的原因,在宣傳時常常誇大其詞,而IDS的使用者對此往往又不是很清楚,是以迫切需要建立起一個可信的測試評估标準。這對開發者和使用者都有好處。