收稿日期:2007-12-07;
修回日期:2008-03-18
基金項目:國防預研基金重點資助項目(9140A26010306JB5201)
作者簡介:趙彬(1975-),男 四川瀘州人,博士研究生,主要研究方向為自動化安全管理(zbrick2002@yahoo.com.cn);
王亞弟,男,教授,主要研究方向為信息安全與計算機應用技術;
李立新,男,博士,主要研究方向為信息安全和計算機應用技術;
李鼎(1982-),男,碩士研究生,主要研究方向為信息安全策略.
(解放軍信息工程大學 鄭州 450004)
摘要:
高誤報和漏報率是入侵檢測系統面臨的主要問題。提出了一種利用關聯和風險評估的方法,利用構建的安全關聯模型,計算出每個安全事件(如告警事件、系統安全日志記錄等)的實時風險值,對風險值較高的事件給出新的警告,并擯棄那些風險值較低的事件,從而降低漏報和誤報率。實驗結果表明,利用這種方法實現的事件關聯系統能夠顯著降低檢測系統的誤報和漏報率。
關鍵詞:入侵檢測; 關聯; 風險評估; 誤報; 漏報
中圖分類號:TP309
文獻標志碼:A
文章編號:1001-3695(2008)10-3105-03
Reducing 1 positive and 1 negative by correlation and risk assessment
ZHAO Bin WANG Ya-di LI Li-xin LI Ding
(PLA Information Engineering University Zhengzhou 450004 China)
Abstract:
The main problems facing intrusion detection systems are high 1 positive rate and 1 negative rate. This paper proposed a correlation and risk assessment approach to solve these problems which exploited constructed security correlation model to compute real-time risk for every security event(such as alert operating system log record and so on) and gave out new alerts for high risk events while discard low risk ones so as to reduce 1 positive and 1 negative rate. The initial test results of event correlation system show that this approach dramatically reduces the rate of 1 positive and 1 negative rate of intrusion detection systems.
Key words:intrusion detection; correlation; risk assessment; 1 positive; 1 negative
入侵檢測是一種廣受歡迎的提高系統安全性的方法,其目的是以盡可能低的漏報和誤報率檢測出攻擊。傳統入侵檢測技術通常分為基于誤用的檢測和基于異常的檢測兩類。誤用檢測將當前行為與已知的攻擊簽名進行比較,如果匹配就產生告警。這種檢測方法能夠檢測到已知的攻擊,但對未知的新的攻擊卻無能為力,因此漏報率高。基于異常的檢測基于以下假設:攻擊特征與正常行為存在顯著的區別,它將當前行為特征與期望的值進行比較,如果不匹配就進行告警。如果攻擊明顯改變系統特征,異常檢測能夠檢測未知的攻擊或已知攻擊的變種,但這種方法常常具有較高的誤報率。較高的漏報和誤報率是目前入侵檢測技術發展的瓶頸,尤其是誤報率。相關數據顯示,入侵檢測系統的誤報率在90%以上。造成這種狀況的根本原因在于:這些檢測方法對攻擊的定義無論是攻擊模式還是異常計數器,通常都獨立于網絡上下文環境,這使得檢測的準確率大大降低。目前降低漏報和誤報率通常有兩種方法:a)對IDS自身進行完善,如狀態入侵檢測系統(stateful IDS SIDS)就在IDS簽名中添加了一些簡單的網絡上下文信息(如會話狀態)來減少誤報,但這些上下文信息不足以有效降低誤報率;b)利用關聯,它通過不同信息(如入侵告警和漏洞信息)間的聯系,對來自多個源的安全信息進行綜合分析和處理,以改善檢測能力。
目前,關聯方法正成為入侵檢測領域一個新的熱點課題,人們提出了許多關聯方法,如基于時間的關聯、基于漏洞的關聯、告警(間)關聯等。這些方法在一定程度上降低了檢測系統的漏報率,但這些方法及利用這些方法實現的關聯系統的實際效果并不是十分理想。這主要有以下兩方面的原因:a)沒有構建一個全面的、針對關聯的網絡上下文模型,沒有充分利用可用的信息進行關聯;b)不同上下文信息與入侵的相關程度有顯著的差別,而大多數這類系統并沒有加以準確的區分,使得關聯的準確性不高。
本文綜合采用關聯和風險評估的方法來降低誤報和漏報,它通過將安全事件(包括入侵告警和操作日志)與構建的網絡上下文模型進行關聯,并計算出每個安全事件的實時風險值,對風險值較高的事件給出警告,并擯棄那些風險值較低的事件,從而降低漏報和誤報率。
1構建安全關聯模型
關聯網絡模型是對與安全關聯相關的網絡上下文環境的抽象描述,是關聯系統設計的核心。一個好的關聯網絡模型應滿足以下特性:a)充分性,網絡模型應能夠描述網絡中的各種安全因素,為安全關聯提供充分的信息;b)抽象性,網絡模型應以形式化的方式來表示,獨立于具體安全信息格式。
目前用于安全關聯的模型并不多,Morin等人[1]提出的M2D2模型是形式化的告警關聯模型,它利用信息系統特征、漏洞、安全工具和事件信息,對不同IDS產生的告警進行關聯,以減少報警數量,并得出一些比單個告警更加有用的信息。M2D2模型能夠在一定程度上降低誤報率,但它并不完善,它利用的四類信息不足以有效降低誤報率,且對漏報無能為力。因此,人們必須開發更加全面的關聯模型。
圖1是筆者提出的關聯模型的UML類圖。在建模時,筆者采用了面向對象的概念和表示方式。本文定義了入侵告警(alert)、運行時網絡狀態信息(runtimeInfo)、日志事件(event-Log)、主機配置(host)、漏洞信息(vulnerability)、高級攻擊描述(hyperAttack)和安全策略(policy)七個與安全相關的信息類,并充分利用這些信息及其相互關系來實現降低誤報和漏報率的目標。將告警、運行時網絡狀態信息和日志事件統稱為安全事件。
定義1告警事件。它是由系統中部署的入侵檢測系統(如Snort)產生的入侵告警信息。每個告警事件包含告警產生的時間、攻擊源IP、目標IP、目標端口、攻擊類型、攻擊利用的CVE漏洞ID、嚴重性、可能性、風險值等屬性。所有告警構成告警集合AS,在類圖中用alert類來模擬。
利用告警的這些屬性,筆者能夠對告警各種統計分析和聚合,直接對告警進行關聯,減少告警的數量;另外,筆者還可利用這些信息與其他信息類進行有效關聯,減少誤報。需要說明的是,不同的IDS系統產生的告警格式并不完全相同,筆者需要對原始告警信息進行泛化處理,將其轉換成能夠統一處理的格式。
定義2高級攻擊描述。它是對攻擊類型的一般性描述,每個攻擊描述是一個三元組(TypeID,precondition,consequence)。其中:TypeID是攻擊類型標志;precondition是實施攻擊的前提;consequence是攻擊成功后的結果。后兩者由一組邏輯斷言的交集來表示。所有攻擊描述構成描述集HA,在類圖中用hyperAttack類來模擬。
高級攻擊描述不是利用攻擊的具體模式(scenario),而是利用實施攻擊的前提條件和攻擊成功后的結果來描述一個特定的攻擊類,因此它具有一般性,能夠描述所有這種類型的攻擊,包括未知的、新的攻擊。以DDoS攻擊為例,實施這類攻擊的前提是在代理主機上安裝攻擊代理程序(本文用邏輯斷言DDosAgentInstalled(host h)來表示),而攻擊的結果是目標主機的性能顯著下降(本文用邏輯斷言PerformanceDeduced(host-h)>50%來表示)。可以通過判斷攻擊類型的前提條件是否得到滿足(DDosAgentInstalled(h)為真),或檢查結果是否發生(PerformanceDeduced(host h)>50%)來確定攻擊的發生。筆者通過深入分析各類攻擊得到其高級描述。
定義3運行時網絡狀態。它是網絡監視系統(如網絡管理系統)動態維護的一組網絡狀態變量,包括主機CPU、RAM、磁盤空間、帶寬等資源的使用情況、活動的網絡連接等。在類圖中用runtimeInfo類來模擬。
由于攻擊者入侵必然會影響到主機的這些資源,可通過這些資源的使用情況來判斷主機是否遭到攻擊,如DoS攻擊、木馬攻擊等。本文通過斷言來表示從當前網絡的運行狀態檢索相關變量的值,如PerformanceDeduced(host h)返回主機h的性能降低的百分比。
定義4日志事件。它是對網絡和主機行為記錄的描述,包括行為的執行主體、對象、行為、時間等屬性。所有日志事件構成日志事件集EL,在類圖中用eventlLog類來模擬。
所有行為都會在網絡和系統中留下日志,因此分析日志事件對安全關聯非常有價值。本文開發專門的日志收集工具來收集網絡和主機系統日志,同樣也需要對原始日志事件進行泛化處理。
定義5漏洞信息。它是由漏洞評估系統(如NESSUS)產生的有關系統的漏洞信息,每條漏洞信息包含漏洞的CVE ID號、受該漏洞影響的主機列表、漏洞的嚴重程度等屬性。本文用VL來表示所有的漏洞信息,在類圖中用vulnerability類來模擬。
此信息主要用于基于漏洞的關聯。如果某個告警的目標主機存在與告警CVE ID相符的漏洞,則提升告警的可能性屬性,否則降低其可能性。
定義6主機配置。它是網絡中通信的實體(如個人工作站和服務器等)的軟/硬件配置,包括主機IP地址、MAC地址、運行的軟件(含軟件名、版本號、生產商等)信息,主動提供服務的端口號、主機安全策略、資產價值等屬性。在類圖中用host類來模擬。
資產的安全屬性可分為保密性(C)、完整性(I)和可用性(A),不同的屬性具有不同的價值,本文分別用斷言ValueC()、ValueI()和ValueA()來代表主機資產的這三種價值。主機配置信息對安全關聯至關重要,可利用自動描述與手工配置相結合的方法來獲得主機配置信息。
定義7安全策略。它包括策略主體、目標、允許執行的行為、違反策略的行為的嚴重性等屬性。在類圖中用Policy類來模擬。
安全策略是非常重要的主機配置信息,從一定意義上講,任何攻擊都是違反安全策略的行為,因此,通過檢查網絡行為與安全策略的一致性(本文用斷言policymatch()來表示)可有效檢測攻擊,減少漏報的情況。而現有的入侵檢測系統卻很少考慮安全策略的問題。比如對數據庫的訪問,本文的策略可能是允許管理員和Web服務器對其執行正常的操作,如果數據庫日志表明某個外網主機試圖發起對數據庫網絡端口的連接,此行為違反本文定義的策略,則該行為是入侵的可能性就很高。
2事件的風險評估
本文通過評估安全事件的重要性來判斷事件是否真實反映入侵,因此,準確衡量(評估)事件的重要性至關重要。在對事件重要性進行評估時,需要考慮事件本身的危害程度、事件影響的資產、事件發生的可能性等因素,這與傳統的風險評估非常類似。在借鑒信息系統風險評估的成熟方法和標準(如BS17799,ISO27001)的基礎上,結合上述的關聯模型,本文提出了事件實時風險的概念和評估方法,并將其作為評判事件重要性的惟一尺度。
定義8事件危害。事件危害C是安全事件的潛在影響,通過事件本身的嚴重性、違反策略的嚴重性、所利用漏洞的嚴重性、所影響資產的價值等因素來衡量。
假設安全事件e,e∈AS∪RS∪EL;事件對應的源主機為hs;目標主機為hd;事件嚴重性為se;事件違反策略的嚴重性為sp;所利用的漏洞的嚴重性為sv;所影響的資產安全屬性為a∈{C,I,A}。可通過下式來計算事件危害:
C(e)=valuea(hd)(sesv) if e∈AS
valuea(hd)(sesp) if e∈RS∪EL
定義9事件可能性。事件可能性P是指事件是入侵的概率,通過漏洞被利用的難易程度、告警的可靠性、告警來源、攻擊結果是否發生等因素來衡量。
假設安全事件e,e∈AS∪RS∪EL,高級攻擊描述a∈HA;斷言attacktype(e)返回事件對應的高級攻擊類型;斷言vul-nerabilityexist(e)判斷告警事件中引用的漏洞是否存在;斷言policymatch(e)返回事件違反的安全策略;斷言precondition(a)判斷攻擊a的前提是否滿足;consequence(a)判斷攻擊a的結果是否出現。如果事件違反策略,認為它就是攻擊;如果是入侵告警,若攻擊目標存在相應的漏洞,或是相應的攻擊前提得到了滿足,或攻擊結果得到了證實,就把它當做攻擊;如果是非告警事件,筆者檢查該事件是否使某個攻擊前提得到滿足,如果是,就將其當做攻擊。可通過下式來表示事件的可能性:
P(e)=1 if policymatch(e)≠
vulnerabilityexist(e)∪precondition(attacktype(e))∪consequence(attacktype(e)) if e∈AS
precondition(attacktype(e)) if e∈RS∪EL
根據上述定義,本文給出了事件實時風險的定義:
定義10事件實時風險。事件實時風險R是指在收到某個安全事件e(e∈AS∪RS∪EL)時產生的風險狀態,由事件所帶來的危害C及其發生的可能性P來衡量,即R(e)=C(e)P(e)。
通過以上方法,筆者能夠計算出每個安全事件的實時風險值。如果大于預先定義的閾值,則生成新的告警。這樣不僅能夠有效減少告警數量,還能夠檢測到入侵檢測系統忽略掉的攻擊行為,從而降低誤報和漏報。
3關聯系統實現
利用本文提出的關聯方法,筆者設計了一個安全事件關聯系統,系統體系框圖如圖2所示。系統分為三個層次:
a)最下層是事件收集層,負責各類安全事件、漏洞數據等信息的采集。本文綜合采用Syslog、SNMP、專用協議等多種數據采集方法來從不同源采集數據。
b)中間層是事件處理層,負責事件泛化和關聯處理,計算出事件實時風險值并生成新的準確率更高的告警信息。事件泛化將不同格式的同類事件(如入侵告警、主機日志、防火墻日志等),統一成標準的規格,這需要對原始事件的某些域(如嚴重性、時間等)等進行轉換,以便進行統一的處理。事件關聯和實時風險計算由關聯引擎完成,該引擎通過一些有限狀態機,結合數據庫操作來實現。配置數據庫中存儲系統配置信息,包括高級告警描述、主機配置、策略配置、漏洞信息。事件數據庫存儲采集到的原始事件和新生成的告警事件等信息。
c)最上層是用戶接口層,它已為管理員提供配置管理、風險監視和告警管理GUI。
初步的實驗結果表明,本文實現的事件關聯系統能夠降低IDS系統的誤報率(其中,Snort系統的誤報率降低83%,Bro系統的誤報率降低67%),能夠檢測出現有IDS不能檢測到的攻擊,如新的木馬攻擊、內部惡意用戶攻擊等。
4結束語
本文提出了一種利用關聯和事件風險評估來降低入侵檢測系統誤報和漏報的方法,它能夠顯著改善檢測系統的性能,提升系統安全水平。本文的主要工作包含以下幾方面:a)提出了一個滿足充分性和抽象性要求的安全關聯模型,該模型通過將安全事件與漏洞、系統配置、策略配置、高級攻擊描述、運行時狀態等信息關聯,能夠有效降低系統誤報和漏報;b)提出了事件實時風險的概念和評估方法,為準確評估事件的重要性提供了一種切實可行的方法;c)利用該模型和方法,實現了一個事件關聯系統。
本文的后期工作主要包括進一步完善事件風險評估方法,在現有事件關聯系統的基礎上,實現一個功能強大、能夠有效實現攻擊檢測和快速響應的網絡安全運維(security operation)管理系統。
參考文獻:
[1]MORIN B M′e L DEBAR H et al. M2D2: a formal data model for IDS alert correlation[C]//Proc of the 5th International Symposium on Recent Advances in Intrusion Detection. 2002:115-137.
[2]CVE dictionary[EB/OL].[2007-01-03].http://www.cve.mitre.org.
[3]ANDERSON H. Introduction to Nessus[EB/OL].(2003-10).http://www.securityfocus.com/infocus/1741.
[4]KARG D MUOZ J D GIL D et al. Open source security information management general system description[EB/OL].(2003-12).http://sourceforge.net/projects/os-sim/.
[5]STONEBURNER G GOGUEN A FERINGA A. Risk management guide for information technology system[R].[S.l.]:NIST SP 2002.
[6]NING P XU D. Alert correlation through triggering events and common resources[C]//Proc of the 20th Annual Computer Security Applications Conference. Washington DC: IEEE Computer Society 2004.