起源
1、1980年,James P. Anderson的《計算機安全威脅監控與監視》(《Computer Security Threat Monitoring and Surveillance》)
第一次詳細闡述了入侵檢測的概念;提出計算機系統威脅分類;提出了利用審計跟蹤數據監視入侵活動的思想;此報告被公認為是入侵檢測的開山之作。
2、1984年到1986年,喬治敦大學的Dorothy Denning和 SRI/CSL的Peter Neumann研究出了一個實時入侵檢測系統模型--IDES(入侵檢測專家系統)
3、1990年,加州大學戴維斯分校的L. T. Heberlein等人開發出了NSM(Network Security Monitor)
該系統第一次直接將網路流作為審計數據來源,因而可以在不將審計數據轉換成統一格式的情況下監控異種主機
入侵檢測系統發展史翻開了新的一頁,兩大陣營正式形成:基於網路的IDS和基於主機的IDS
4、1988年之後,美國開展對分散式入侵檢測系統(DIDS)的研究,將基於主機和基於網路的檢測方法集成到一起。DIDS是分散式入侵檢測系統歷史上的一個里程碑式的產品。
5、從20世紀90年代到現在,入侵檢測系統的研發呈現出百家爭鳴的繁榮局面,並在智慧型化和分散式兩個方向取得了長足的進展。
原理
入侵檢測可分為實時入侵檢測和事後入侵檢測兩種。
實時入侵檢測在網路連線過程中進行,系統根據用戶的歷史行為模型、存儲在計算機中的專家知識以及神經網路模型對用戶當前的操作進行判斷,一旦發現入侵跡象立即斷開入侵者與主機的連線,並收集證據和實施數據恢復。這個檢測過程是不斷循環進行的。而事後入侵檢測則是由具有網路安全專業知識的網路管理人員來進行的,是管理員定期或不定期進行的,不具有實時性,因此防禦入侵的能力不如實時入侵檢測系統。
通信協定
IDS系統組件之間需要通信,不同的廠商的IDS系統之間也需要通信。因此,定義統一的協定,使各部分能夠根據協定所制訂的標準進行溝通是很有必要的。IETF 目前有一個專門的小組 IDWG(IntrusionDetection WorkingGroup)負責定義這種通信格式,稱作Intrusion Detection ExchangeFormat。目前只有相關的草案,並未形成正式的RFC文檔。儘管如此,草案為IDS各部分之間甚至不同IDS系統之間的通信提供層協定,其設計多其他功能(如可從任意端發起連線,結合了加密、身份驗證等)。
CIDF模型
(CIDF)闡述了一個入侵檢測系統(I DS)的通用模型。它將一個入侵檢測系統分為以下組件:
事件產生器(Event generators)
事件分析器(Event analyzers)
回響單元(Response units )
事件資料庫(Event databases )
CIDF將IDS需要分析的數據統稱為事件(event),它可以是網路中的數據包,也可以是從系統日誌等其他途徑得到的信息。
分類
(1)按 入侵檢測 的手段、IDS的入侵檢測模型可分為基於網路和基於主機兩種。
1)基於主機模型
也稱基於系統的模型,它是通過分析系統的審計數據來發現可疑的活動,如記憶體和檔案的變化等。其輸入數據主要來源於系統的審計日誌,一般只能檢測該主機上發生的入侵。
這種模型有以下優點:
一是性能價格比高:在主機數量較少的情況下,這種方法的性能價格比可能更高。
二是更加細緻:這種方法可以很容易地監測一些活動,如對敏感檔案、目錄、程式或連線埠的存取,而這些活動很難在基於協定的線索中發現。
三是視野集中:一旦入侵者得到了一個主機用戶名和口令,基於主機的代理是最有可能區分正常的活動和非法的活動的。
四是易於用戶剪裁:每一個主機有其自己的代理,當然用戶剪裁更方便了。
五是較少的主機:基於主機的方法有時不需要增加專門的硬體平台。
六是對網路流量不敏感:用代理的方式一般不會因為網路流量的增加而丟掉對網路行為的監視。
2)基於網路的模型
即通過連線在網路上的站點捕獲網上的包,並分析其是否具有已知的攻擊模式,以此來判別是否為入侵者。當該模型發現某些可疑的現象時也一樣會產生告警,並會向一個中心管理站點發出“告警”信號。
基於網路的檢測有以下優點:
一是偵測速度快:基於網路的監測器通常能在微秒或秒級發現問題。而大多數基於主機的產品則要依靠對最近幾分鐘內審計記錄的 分析。
二是隱蔽性好:一個網路上的監測器不像一個主機那樣顯眼和易被存取,因而也不那么容易遭受攻擊。由於不是主機,因此一個基於網路的監視器不用去回響ping,不允許別人存取其本地存儲器,不能讓別人運行程式,而且不讓多個用戶使用它。
三是視野更寬:基於網路的方法甚至可以作用在網路的邊緣上,即攻擊者還沒能接入網路時就被制止。
四是較少的監測器:由於使用一個監測器就可以保護一個共享的網段,所以你不需要很多的監測器。相反地,如果基於主機,則在每個主機上都需要一個代理,這樣的話,花費昂貴,而且難於管理。但是,如果在一個交換環境下,每個主機就得配一個監測器,因為每個主機都在自己的網段上。
五是占資源少:在被保護的設備上不用占用任何資源。
這兩種模型具有互補性,基於網路的模型能夠客觀地反映網路活動,特別是能夠監視到主機系統審計的盲區;而基於主機的模型能夠更加精確地監視主機中的各種活動。基於網路的模型受交換網的限制,只能監控同一監控點的主機,而基於主機模型裝有IDS的監控主機可以對同一監控點內的所有主機進行監控。
(2)按入侵檢測的技術基礎可分為兩類:一種基於標誌的入侵檢測(signature-based),另一種是基於異常情況的入侵檢測(anomaly-based)。
對於基於標識的檢測技術來說,首先要定義違背安全策略的事件的特徵,如網路數據包的某些頭信息。檢測主要判別這類特徵是否在所收集到的數據中出現,這有些類似防毒軟體的工作原理。
而基於異常的檢測技術則是先定義一組系統“正常”情況的數值,如CPU利用率、記憶體利用率、檔案校驗和等(這類數據可以人為定義,也可以通過觀察系統、並用統計的辦法得出),然後將系統運行時的數值與所定義的“正常”情況比較,得出是否有被攻擊的跡象。這種檢測方式的核心在於如何精確定義所謂的“正常”情況。
往往兩種檢測方法所得出的結論會有非常大的差異。基於標誌的檢測技術的核心是維護一個知識庫。對於已知的攻擊,它可以詳細、準確的報告出攻擊類型,但是對未知攻擊卻效果有限,而且知識庫必須不斷更新。基於異常的檢測技術則無法準確判別出攻擊的手法,但它可以(至少在理論上可以)判別更廣范、甚至未發覺的攻擊。如果條件允許,兩者結合的檢測會達到更好的效果。
(3) 按輸入入侵檢測系統的數據的來源來分,可以分為三類:
1) 基於主機的入侵檢測系統:其輸入數據來源於系統的審計日誌,一般只能檢測該主機上發生的入侵;
2) 基於網路的入侵檢測系統:其輸入數據來源於網路的信息流,能夠檢測該網段上發生的網路入侵;
3) 採用上述兩種數據來源的分散式入侵檢測系統:它能夠同時分析來源於系統的審計日誌和來源於網路的信息流,這種系統一般由多個部件組成。
(4)按入侵檢測所採用的技術方法又可將其細分為下面四種方法:
一是基於用戶行為機率統計模型的入侵檢測方法:
這種入侵檢測方法是在對用戶歷史行為建模或在早期的證據或模型的基礎上,實時檢測用戶對系統的使用情況,根據系統內部保存的用戶行為機率統計模型進行檢測,當發現有可疑的用戶行為發生時,立即保持跟蹤並監測、記錄該用戶的行為。系統要根據每個用戶以前的歷史行為,生成每個用戶的歷史行為記錄庫,當用戶改變他們的行為習慣時,這種異常就會被檢測出來。
二是基於神經網路的入侵檢測方法:
這種方法是利用神經網路技術來進行入侵檢測。這種方法對用戶行為具有學習和自適應功能,能夠根據實際檢測到的信息有效地加以處理並做出是否有入侵行為的判斷。但該方法還不成熟,目前還沒有出現較為完善的產品。
三是基於專家系統的入侵檢測技術:
該技術根據安全專家對可疑行為的分析經驗來形成一套推理規則,然後在此基礎上建立相應的專家系統,由此專家系統自動進行對所涉及的入侵行為進行分析。該系統可以隨著經驗的積累而不斷自我學習,並進行規則的擴充和修正。
四是基於模型推理的入侵檢測技術:
該技術根據入侵者在進行入侵時所執行的某些行為程式的特徵,建立一種入侵行為模型,根據這種行為模型所代表的入侵行為特徵來判斷用戶執行的操作是否是屬於入侵行為。當然這種方法也是建立在對當前已知的入侵行為程式的基礎之上的,對未知的入侵方法所執行的行為程式的模型識別需要進一步的學習和擴展。
以上幾種方法每一種都不能保證能準確地檢測出變化多端的入侵行為。因此在網路安全防護中要充分衡量各種方法的利弊,綜合運用這些方法才能有效地檢測出入侵者的非法行為。
流程
(1)入侵檢測的第一步:信息收集
收集的內容包括系統、網路、數據及用戶活動的狀態和行為。收集信息需要在計算機網路系統中不同的關鍵點來進行,這樣一方面可以儘可能擴大檢測範圍,另一方面從幾個信源來的信息的不一致性是可疑行為或入侵的最好標識,因為有時候從一個信源來的信息有可能看不出疑點。
入侵檢測利用的信息一般來自以下四個方面:
1)系統日誌
黑客經常在系統日誌中留下他們的蹤跡,因此,充分利用系統日誌是檢測入侵的必要條件。日誌檔案中記錄了各種行為類型,每種類型又包含不同的信息,很顯然地,對用戶活動來講,不正常的或不期望的行為就是重複登錄失敗、登錄到不期望的位置以及非授權的企圖訪問重要檔案等等。
2)目錄以及檔案中的異常改變
網路環境中的檔案系統包含很多軟體和數據檔案,包含重要信息的檔案和私有數據檔案經常是黑客修改或破壞的目標。
3)程式執行中的異常行為
網路系統上的程式執行一般包括作業系統、網路服務、用戶啟動的程式和特定目的的套用,例如資料庫伺服器。每個在系統上執行的程式由一到多個進程來實現。每個進程執行在具有不同許可權的環境中,這種環境控制著進程可訪問的系統資源、程式和數據檔案等。一個進程出現了不期望的行為可能表明黑客正在入侵你的系統。黑客可能會將程式或服務的運行分解,從而導致運行失敗,或者是以非用戶或非管理員意圖的方式操作。
4)物理形式的入侵信息
這包括兩個方面的內容,一是未授權的對網路硬體連線;二是對物理資源的未授權訪問。
(2)入侵檢測的第二步:數據分析
一般通過三種技術手段進行分析:模式匹配,統計分析和完整性分析。其中前兩種方法用於實時的入侵檢測,而完整性分析則用於事後分析。
1)模式匹配
模式匹配就是將收集到的信息與已知的網路入侵和系統誤用模式資料庫進行比較,從而發現違背安全策略的行為。該方法的一大優點是只需收集相關的數據集合,顯著減少系統負擔,且技術已相當成熟。它與病毒防火牆採用的方法一樣,檢測準確率和效率都相當高。但是,該方法存在的弱點是需要不斷的升級以對付不斷出現的黑客攻擊手法,不能檢測以前從未出現過的黑客攻擊手段。
2)統計分析
統計分析方法首先給系統對象(如用戶、檔案、目錄和設備等)創建一個統計描述,統計正常使用時的一些測量屬性(如訪問次數、操作失敗次數和延時等)。測量屬性的平均值將被用來與網路、系統的行為進行比較,任何觀察值如果超過了正常值範圍,就認為有入侵發生。其優點是可檢測到未知的入侵和更為複雜的入侵,缺點是誤報、漏報率高,且不適套用戶正常行為的突然改變。具體的統計分析方法如基於專家系統的、基於模型推理的和基於神經網路的分析方法,這在前面入侵檢測的分類中已經提到。下面只對統計分析的模型做以介紹。
入侵檢測5種統計模型為:
操作模型:該模型假設異常可通過測量結果與一些固定指標相比較得到,固定指標可以根據經驗值或一段時間內的統計平均得到,舉例來說,在短時間內多次失敗的登錄很有可能是嘗試口令攻擊;
方差:計算參數的方差並設定其置信區間,當測量值超過置信區間的範圍時表明有可能是異常;
多元模型:即操作模型的擴展,它通過同時分析多個參數實現檢測;
馬爾柯夫過程模型:即將每種類型的事件定義為系統狀態,用狀態轉移矩陣來表示狀態的變化,當一個事件發生時,如果在狀態矩陣中該轉移的機率較小則該可能是異常事件;
時間序列分析:即將事件計數與資源耗用根據時間排成序列,如果一個新事件在該時間發生的機率較低,則該事件可能是入侵。
統計方法的最大優點是它可以“學習”用戶的使用習慣,從而具有較高檢出率與可用性。但是它的“學習”能力有時也會給入侵者以機會,因為入侵者可以通過逐步“訓練”使入侵事件符合正常操作的統計規律,從而透過入侵檢測系統。
3)完整性分析
完整性分析主要關注某個檔案或對象是否被更改,這經常包括檔案和目錄的內容及屬性,它在發現被修改成類似特洛伊木馬的應用程式方面特別有效。其優點是不管模式匹配方法和統計分析方法能否發現入侵,只要是有入侵行為導致了檔案或其他對象的任何改變,它都能夠發現。缺點是一般以批處理方式實現,不用於實時回響。
性能標準
根據Porras等的研究,給出了評價IDS性能的三個因素:
·準確性(Accuracy):指IDS從各種行為中正確地識別入侵的能力,當一個IDS的檢測不準確時,就有可能把系統中的合法活動當作入侵行為並標識為異常(虛警現象)。
·處理性能(Performance):指一個IDS處理數據源數據的速度。顯然,當IDS的處理性能較差時,它就不可能實現實時的IDS,並有可能成為整個系統的瓶頸,進而嚴重影響整個系統的性能。
·完備性(Completeness):指IDS能夠檢測出所有攻擊行為的能力。如果存在一個攻擊行為,無法被IDS檢測出來,那么該IDS就不具有檢測完備性。也就是說,它把對系統的入侵活動當作正常行為(漏報現象)。由於在一般情況下,攻擊類型、攻擊手段的變化很快,我們很難得到關於攻擊行為的所有知識,所以關於IDS的檢測完備性的評估相對比較困難。
在此基礎上,Debar等又增加了兩個性能評價測度:
·容錯性(Fault Tolerance):由於IDS是檢測入侵的重要手段/所以它也就成為很多入侵者攻擊的首選目標。IDS自身必須能夠抵禦對它自身的攻擊,特別是拒絕服務(Denial-of-Service)攻擊。由於大多數的IDS是運行在極易遭受攻擊的作業系統和硬體平台上,這就使得系統的容錯性變得特別重要,在測試評估IDS時必須考慮這一點。
·及時性(Timeliness):及時性要求IDS必須儘快地分析數據並把分析結果傳播出去,以使系統安全管理者能夠在入侵攻擊尚未造成更大危害以前做出反應,阻止入侵者進一步的破壞活動,和上面的處理性能因素相比,及時性的要求更高。它不僅要求IDS的處理速度要儘可能地快,而且要求傳播、反應檢測結果信息的時間儘可能少。
評估步驟
前面已經討論了IDS測試評估的性能指標,具體測試主要就是圍繞這些指標來進行。大部分的測試過程都遵循下面的基本測試步驟:
·創建、選擇一些測試工具或測試腳本。這些腳本和工具主要用來生成模擬的正常行為及入侵,也就是模擬IDS運行的實際環境。
·確定計算環境所要求的條件,比如背景計算機活動的級別。
·配置運行IDS。
·運行測試工具或測試腳本。
·分析IDS的檢測結果。
美國加州大學的Nicholas J.Puketza等人把測試分為三類,分別與前面的性能指標相對應,即入侵識別測試(也可以說是IDS有效性測試)。資源消耗測試、強度測試。入侵識別測試測量IDS區分正常行為和入侵的能力,主要衡量的指標是檢測率和虛警率。資源消耗測試(Resource Usage Tests)測量IDS占用系統資源的狀況,考慮的主要因素是硬碟占用空間、記憶體消耗等。強度測試主要檢測IDS在強負荷運行狀況下檢測效果是否受影響,主要包括大負載、高密度數據流量情況下對檢測效果的檢測。
評估指標
在分析IDS的性能時,主要考慮檢測系統的有效性、效率和可用性。有效性研究檢測機制的檢測精確度和系統檢測結果的可信度,它是開發設計和套用IDS的前提和目的,是測試評估IDS的主要指標,效率則從檢測機制的處理數據的速度以及經濟性的角度來考慮,也就是側重檢測機制性能價格比的改進。可用性主要包括系統的可擴展性、用戶界面的可用性,部署配置方便程度等方面。有效性是開發設計和套用IDS的前提和目的,因此也是測試評估IDS的主要指標,但效率和可用性對IDS的性能也起很重要的作用。效率和可用性滲透於系統設計的各個方面之中。
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的檢測可信度。
2、 IDS本身的抗攻擊能力
和其他系統一樣,IDS本身也往往存在安全漏洞。若對IDS攻擊成功,則直接導致其報警失靈,入侵者在其後所作的行為將無法被記錄。因此IDS首先必須保證自己的安全性。IDS本身的抗攻擊能力也就是IDS的可靠性,用於衡量IDS對那些經過特別設計直接以IDS為攻擊目標的攻擊的抵抗能力。它主要體現在兩個方面:一是程式本身在各種網路環境下能夠正常工作;二是程式各個模組之間的通信能夠不被破壞,不可仿冒。此外要特別考慮抵禦拒絕服務攻擊的能力。如果IDS本身不能正常運行,也就失去了它的保護意義。而如果系統各模組間的通信遭到破壞,那系統的報警之類的檢測結果也就值得懷疑,應該有一個良好的通信機制保證模組間通信的安全並能在出問題時能夠迅速恢復。
3、其他性能指標
延遲時間。檢測延遲指的是在攻擊發生至IDS檢測到入侵之間的延遲時間。延遲時間的長短直接關係著入侵攻擊破壞的程度。
資源的占用情況。即系統在達到某種檢測有效性時對資源的需求情況。通常,在同等檢測有效性的前提下,對資源的要求越低,IDS的性能越好,檢測入侵的能力也就越強。
負荷能力。IDS有其設計的負荷能力,在超出負荷能力的情況下,性能會出現不同程度的下降。比如,在正常情況下IDS可檢測到某攻擊但在負荷大的情況下可能就檢測不出該攻擊。考察檢測系統的負荷能力就是觀察不同大小的網路流量、不同強度的CPU記憶體等系統資源的使用對IDS的關鍵指標(比如檢測率、虛警率)的影響。
日誌、報善、報告以及回響能力。日誌能力是指檢測系統保存日誌的能力、按照特定要求選取日誌內容的能力。