(江西師范大學(xué) 計(jì)算機(jī)信息工程學(xué)院, 南昌 330022)
摘 要:提出了一種分布式報(bào)警聚合模型,由本地和網(wǎng)絡(luò)組件構(gòu)成,本地組件將傳統(tǒng)IDS上報(bào)的原始報(bào)警轉(zhuǎn)換為基于IDMEF模型的統(tǒng)一報(bào)警信息格式,網(wǎng)絡(luò)組件接收統(tǒng)一格式的IDMEF報(bào)警,采用基于分類(lèi)和屬性相似度的報(bào)警聚合方法聚合重復(fù)報(bào)警信息為超報(bào)警,模型中設(shè)計(jì)了多種消息內(nèi)容用于滿(mǎn)足本地組件和網(wǎng)絡(luò)組件間通信需求,使得整個(gè)網(wǎng)絡(luò)可以信息共享,根據(jù)該模型可以較經(jīng)濟(jì)地搭建一個(gè)分布式入侵檢測(cè)系統(tǒng)。
關(guān)鍵詞:報(bào)警;聚合;相似度
中圖分類(lèi)號(hào):TP39308 文獻(xiàn)標(biāo)志碼:A
文章編號(hào):10013695(2009)01032505
Design and implementation of distributed IDS alert aggregation model
GUO Fan,YE Jihua,YU Min
(College of Computer Information Engineering, Jiangxi Normal University, Nanchang 330022, China)
Abstract:The article proposed a distributed alert aggregation model, composed of local component and network component. Local components transform raw alerts originating from traditional IDS to IDMEFbased alerts with uniform format, which were sent to network components. Network components aggregate similar alerts into a metaalert, using an aggregation algorithm based on feature similarity computation. Multiple kinds of messages were proposed to meet the demands of the communication between the components and realized information share in the whole network. It′s economical to construct a distributed IDS under the model.
Key words:alert; aggregation; similarity
隨著網(wǎng)絡(luò)的普及,入侵監(jiān)測(cè)系統(tǒng)(intrusion detection systems,IDS)作為網(wǎng)絡(luò)安全系統(tǒng)的一個(gè)重要組成部分,受到越來(lái)越多的人關(guān)注。IDS被認(rèn)為是防火墻之后的第二道閘門(mén),希望在無(wú)法完全阻止入侵時(shí),能盡快實(shí)時(shí)檢測(cè)出入侵,以便及時(shí)作出響應(yīng)。傳統(tǒng)的集中式IDS根據(jù)數(shù)據(jù)來(lái)源的不同分為基于主機(jī)和基于網(wǎng)絡(luò)的IDS,如著名的免費(fèi)軟件Snort[1]等。但是隨著網(wǎng)絡(luò)攻擊手段向分布式和協(xié)同方向發(fā)展,難以發(fā)現(xiàn)這些復(fù)雜的分布式協(xié)同攻擊,分布式IDS可以發(fā)現(xiàn)整個(gè)網(wǎng)絡(luò)范圍內(nèi)的入侵,因此成為目前的研究熱點(diǎn)。
一次分布式協(xié)作攻擊可能會(huì)引起多個(gè)采集單元同時(shí)產(chǎn)生報(bào)警(重復(fù)報(bào)警),大量的重復(fù)報(bào)警可能會(huì)湮沒(méi)真正有用的信息。另外,不同采集單元的報(bào)警格式可能也并不相同。報(bào)警聚合的目的是將這些重復(fù)報(bào)警聚合成為一條超報(bào)警,從而減少報(bào)警的數(shù)量,使得安全管理員可以關(guān)注真正的安全威脅。所有的分布式IDS基本上遵循一個(gè)基本標(biāo)準(zhǔn),即公共入侵檢測(cè)框架模型[2](common intrusion detection framework,CIDF),將IDS分為四個(gè)基本組件,即事件產(chǎn)生器(數(shù)據(jù)采集單元)、事件分析器(數(shù)據(jù)分析單元)、響應(yīng)單元以及事件數(shù)據(jù)庫(kù)。本文提出一種分布式IDS報(bào)警聚合模型,該模型將傳統(tǒng)IDS看做是采集單元,通過(guò)增加格式轉(zhuǎn)換模塊,將上報(bào)的報(bào)警轉(zhuǎn)換為基于IDMEF(intrusion detection message exchange format)模型的統(tǒng)一報(bào)警信息格式,該格式對(duì)模型中的alert類(lèi)擴(kuò)展而成。數(shù)據(jù)分析單元采用基于分類(lèi)和屬性相似度的報(bào)警聚合方法對(duì)各IDS上報(bào)的IDMEF信息匯聚。本文還設(shè)計(jì)了多種消息內(nèi)容用于滿(mǎn)足模型中采集單元和分析單元的通信需求。使用該模型能較為迅速并經(jīng)濟(jì)地搭建一個(gè)性能良好的分布式IDS系統(tǒng)。
1 相關(guān)工作
本文引用穆成坡等人[3]提出的一些術(shù)語(yǔ),報(bào)警聚合指將由同一安全事件產(chǎn)生的大量性質(zhì)相同或者相近的報(bào)警合并成一個(gè)報(bào)警。原始報(bào)警指直接由IDS產(chǎn)生沒(méi)有經(jīng)過(guò)處理的報(bào)警。超報(bào)警指綜合多個(gè)原始報(bào)警所產(chǎn)生的報(bào)警。報(bào)警聚合可有效減少報(bào)警數(shù)量,使得攻擊事件可以清晰呈現(xiàn)。報(bào)警聚合可認(rèn)為是報(bào)警關(guān)聯(lián)的一個(gè)預(yù)處理過(guò)程。
基于分層的分布式IDS體系結(jié)構(gòu)最早由EMERALD[4]系統(tǒng)提出,整個(gè)系統(tǒng)物理上分為三層,每層可接受更高一層的管理和控制。AAFID[5]也對(duì)網(wǎng)絡(luò)分層,但是其基于自治代理的分布式IDS框架分別定義了三個(gè)重要的部件,即代理(agent)、收發(fā)器(transceiver)和監(jiān)視器(monitor)。每臺(tái)主機(jī)上的惟一收發(fā)器負(fù)責(zé)監(jiān)督和控制該主機(jī)上所有的代理,對(duì)代理上報(bào)的分析結(jié)果和報(bào)警信息進(jìn)行關(guān)聯(lián)和匯聚,向一個(gè)或多個(gè)監(jiān)視器報(bào)告結(jié)果以避免由于單個(gè)監(jiān)視器故障導(dǎo)致的單點(diǎn)失效,監(jiān)視器負(fù)責(zé)檢測(cè)整個(gè)網(wǎng)絡(luò)范圍的入侵。AAFID和EMERALD這兩種系統(tǒng)的數(shù)據(jù)采集單元采用軟件代理的思想,每個(gè)代理對(duì)應(yīng)某類(lèi)行為的檢測(cè),即使某個(gè)代理不工作,那么也僅僅是損失了一部分功能而已,可以認(rèn)為是微模式。馬恒太等人[6]提出了一種基于agent的分布式IDS框架,它與AAFID不同在于沒(méi)有中央控制節(jié)點(diǎn),實(shí)現(xiàn)了數(shù)據(jù)收集、入侵檢測(cè)以及實(shí)時(shí)響應(yīng)的分布化。由于該模型沒(méi)有信息融合匯聚點(diǎn),很難檢測(cè)出攻擊者的分布式協(xié)同攻擊。
本文提出的分布式報(bào)警聚合架構(gòu)是一種巨模式,即充分利用基于網(wǎng)絡(luò)的傳統(tǒng)集中式IDS(它們已經(jīng)能比較好地檢測(cè)出中小型網(wǎng)絡(luò)的入侵行為),通過(guò)對(duì)它們產(chǎn)生的報(bào)警信息進(jìn)行關(guān)聯(lián)和匯聚并及時(shí)傳播給網(wǎng)絡(luò)中相關(guān)節(jié)點(diǎn)。在分析單元部分依據(jù)AAFID的思想采用自治代理+匯聚節(jié)點(diǎn)的模式作為關(guān)聯(lián)和匯聚組件。一種自治代理負(fù)責(zé)處理一種集中式IDS的數(shù)據(jù)關(guān)聯(lián)和匯聚(相當(dāng)于該IDS的后臺(tái)),不能處理的數(shù)據(jù)發(fā)給匯聚節(jié)點(diǎn)進(jìn)一步分析,處理后的數(shù)據(jù)也通過(guò)匯聚節(jié)點(diǎn)傳播到其他匯聚點(diǎn)。一個(gè)匯聚節(jié)點(diǎn)管理多個(gè)自治代理,通過(guò)一個(gè)子網(wǎng)內(nèi)放置若干不同集中式IDS做數(shù)據(jù)采集單元可以綜合各個(gè)IDS的優(yōu)點(diǎn)。匯聚節(jié)點(diǎn)之間的信息傳播使用基于訂閱的方式來(lái)減少通信負(fù)載。分析單元采用自治代理的好處在于可以比較方便地與底層各種集中式IDS進(jìn)行接口,同時(shí)可以將通信功能與分析功能邏輯上分離開(kāi)來(lái),具有很強(qiáng)的自適應(yīng)性和靈活性,同時(shí)具備AAFID[5]提到的其他優(yōu)點(diǎn)。
報(bào)警聚合算法用于比較不同報(bào)警信息的部分屬性值,將具有相似屬性的報(bào)警組合為一條超報(bào)警。Valdes等人[7]提出了報(bào)警聚合需要比較的通用報(bào)警屬性為源IP和端口,目標(biāo)IP和端口,以及報(bào)警時(shí)間等,它將每類(lèi)屬性的比較結(jié)果賦予0~1的一個(gè)小數(shù),屬性值的比較依賴(lài)預(yù)定義的配置。通過(guò)為每類(lèi)屬性賦予不同權(quán)重并結(jié)合屬性相似度值,最終判斷兩個(gè)報(bào)警是否可聚合。其主要貢獻(xiàn)在于提出了一種報(bào)警聚合算法框架,但并未就具體的屬性比較和權(quán)重賦值展開(kāi)討論。Debar等人[8]提出的ACC算法中包含了屬性相似度的計(jì)算,但是其僅考慮完全匹配的屬性,也沒(méi)有考慮時(shí)間屬性,因此其聚合算法很不完善。Aurel等人[9]在MIRADOR項(xiàng)目中提出的CRIM框架中包含了報(bào)警聚合算法,提出的屬性分類(lèi)法可對(duì)各屬性進(jìn)行分類(lèi),并將所有屬性值分為四大類(lèi),但是并未對(duì)每類(lèi)屬性的具體計(jì)算方法進(jìn)行深入討論。穆成坡等人[10]提出一種基于模糊綜合評(píng)判的方法,該方法實(shí)際也是基于文獻(xiàn)[7]提出的框架,但是在最終判決時(shí)引入了模糊矩陣,并且將從事件中提取的特征也作為待比較的屬性之一,實(shí)驗(yàn)結(jié)果較好,但是實(shí)驗(yàn)?zāi)P椭杏?jì)算的屬性?xún)H包括報(bào)警時(shí)間和源IP。Oliver等人[11]提出基于攻擊者的攻擊意圖來(lái)對(duì)報(bào)警進(jìn)行分類(lèi),在此基礎(chǔ)上進(jìn)行報(bào)警聚合與關(guān)聯(lián),從而可最終發(fā)現(xiàn)攻擊者的攻擊意圖乃至各種分布式協(xié)同攻擊。本文綜合文獻(xiàn)[7,9,11]的思想,設(shè)計(jì)并實(shí)現(xiàn)了一種基于分類(lèi)和相似度的報(bào)警聚合算法,并在DARPA99數(shù)據(jù)集上獲得了較好的實(shí)驗(yàn)結(jié)果。
2 模型體系結(jié)構(gòu)
整個(gè)系統(tǒng)可以劃分為兩大組件,即本地組件和網(wǎng)絡(luò)組件(匯聚節(jié)點(diǎn)),如圖1所示。本地組件包括:a)傳統(tǒng)IDS指已經(jīng)存在的基于網(wǎng)絡(luò)的IDS如Snort,網(wǎng)絡(luò)組件可管轄多個(gè)不同傳統(tǒng)IDS,因?yàn)楦鱾€(gè)IDS的檢測(cè)能力以及偏重方向不同,有的入侵可能Snort檢測(cè)不出來(lái),其他IDS卻能檢測(cè)出來(lái),所以在單個(gè)網(wǎng)絡(luò)組件管轄的網(wǎng)絡(luò)內(nèi)放置多個(gè)不同IDS將綜合各IDS的優(yōu)點(diǎn),獲得最大的性能;b) 后臺(tái)轉(zhuǎn)換模塊負(fù)責(zé)將報(bào)警信息轉(zhuǎn)換為標(biāo)準(zhǔn)的IDMEF格式信息,每種IDS均有自己的后臺(tái)轉(zhuǎn)換模塊;c) 本地聚合模塊負(fù)責(zé)對(duì)單一IDS上報(bào)的報(bào)警進(jìn)行聚合,因?yàn)榛诰W(wǎng)絡(luò)的IDS可能有大量的偽報(bào)警和重復(fù)報(bào)警,在上報(bào)至網(wǎng)絡(luò)組件之前在本地先作預(yù)處理,可以提高網(wǎng)絡(luò)組件的性能,使其專(zhuān)注于發(fā)現(xiàn)網(wǎng)絡(luò)上的協(xié)同攻擊,而簡(jiǎn)單的攻擊檢測(cè)就盡量放到本地完成;d)響應(yīng)模塊接收網(wǎng)絡(luò)組件發(fā)來(lái)的響應(yīng)動(dòng)作命令,可修改目標(biāo)主機(jī)的配置,對(duì)攻擊作出及時(shí)響應(yīng);e)通信模塊主要完成與網(wǎng)絡(luò)組件的信息交換,包括控制命令和報(bào)警信息。
網(wǎng)絡(luò)組件主要包括:a) 聚合模塊從通信模塊中得到經(jīng)過(guò)預(yù)處理的超報(bào)警信息,應(yīng)用基于分類(lèi)和屬性相似度的報(bào)警聚合方法,檢測(cè)其所管轄范圍內(nèi)的網(wǎng)絡(luò)入侵行為,將得到的檢測(cè)結(jié)果以及產(chǎn)生的響應(yīng)動(dòng)作傳遞給本地組件或其他網(wǎng)絡(luò); b)通信模塊不僅與本地組件進(jìn)行通信,還與其他網(wǎng)絡(luò)組件進(jìn)行信息共享;c) 響應(yīng)模塊根據(jù)報(bào)警分析結(jié)果,作出整個(gè)網(wǎng)絡(luò)范圍內(nèi)的相應(yīng)決策。
圖1中有一虛線(xiàn)框起來(lái)的備份單元,該單元與網(wǎng)絡(luò)組件的模塊相同,即作為匯聚節(jié)點(diǎn)信息的冗余備份,避免單點(diǎn)失效,實(shí)時(shí)備份匯聚節(jié)點(diǎn)的所有需要存儲(chǔ)的信息,一旦匯聚節(jié)點(diǎn)因物理故障或安全問(wèn)題導(dǎo)致崩潰,則備份單元將成為新的匯聚節(jié)點(diǎn),管理所有本地組件并與其他匯聚點(diǎn)通信,增加了整個(gè)分布式系統(tǒng)的可靠性和健壯性。
21 通信模塊
本模型通信的需求主要體現(xiàn)在報(bào)警信息、響應(yīng)動(dòng)作、配置命令的傳播上。在匯聚點(diǎn)通信agent中采用基于訂閱(subscription)模式的通信模型來(lái)完成多個(gè)agent的通信和協(xié)作,使用事件管理服務(wù)模塊(EMS)來(lái)實(shí)現(xiàn)基于訂閱的通信方式。在這種模式中,事件管理服務(wù)模塊相當(dāng)于消息的發(fā)送方,而訂閱者(subscriber) 相當(dāng)于接收方,在該模型中提供了一個(gè)事件管理服務(wù)(event manage service,EMS)。 訂閱者將感興趣的事件向EMS 申請(qǐng)注冊(cè),EMS 用一張注冊(cè)/訂閱信息表專(zhuān)門(mén)維護(hù)這些訂閱的事件信息。EMS 在注冊(cè)信息表中查找對(duì)該信息感興趣的訂閱者,然后將消息發(fā)送給它們。圖2描述了該通信模式的邏輯結(jié)構(gòu)。
通信agent中的消息發(fā)布采用多播方式,對(duì)所有注冊(cè)/訂閱同一事件,通知每一位subscriber。事件服務(wù)模塊(EMS)是不同agent間通信和協(xié)作的基礎(chǔ)。由于網(wǎng)絡(luò)agent接收不同本地agent的消息,同時(shí)又要與匯聚點(diǎn)agent相互協(xié)調(diào),事件的注冊(cè)和發(fā)布需要遵循一定的協(xié)議來(lái)滿(mǎn)足通用性要求。EMS需要處理以下五種消息:a)注冊(cè)/注銷(xiāo)。Subscriber 需要提供自己的IP 和注冊(cè)/注銷(xiāo)的事件。EMS收到請(qǐng)求后,修改相應(yīng)的注冊(cè)服務(wù)信息表。b)發(fā)布。EMS需要注明發(fā)布的事件ID、事件相關(guān)數(shù)據(jù)。可以發(fā)布的事件有特征庫(kù)更新、策略更新、響應(yīng)方式更新、報(bào)警。c)通知和反饋。所有subscriber 處于同一多播組。ES在發(fā)布事件時(shí),多播組中所有的主機(jī)均可以接收到事件,即所有活動(dòng)的subscriber均可以接收到這一事件。接收到事件通知的subscriber向EMS發(fā)送反饋消息,相應(yīng)agent由此修改subscriber的狀態(tài),將其對(duì)應(yīng)的事件修改為已更新, 并記錄更新時(shí)間。
在匯聚點(diǎn)通信agent中,所有agent邏輯上形成樹(shù)結(jié)構(gòu),形成一片森林,本地agent通信必須通過(guò)網(wǎng)絡(luò)agent。通信機(jī)制采用基于訂閱的通信模式,結(jié)合樹(shù)型結(jié)構(gòu)來(lái)達(dá)到快速高效傳播告警信息、攻擊意圖和響應(yīng)動(dòng)作的目的。比起傳統(tǒng)的分布式環(huán)境下的通信模式,如應(yīng)答式、RPC等,基于subscription 的通信模式具有很好的時(shí)間、空間的松耦合性。在時(shí)間上,它無(wú)須通信雙方同時(shí)參與消息傳遞過(guò)程。這樣就消除了同步不同實(shí)體相互通信的負(fù)擔(dān)。空間上,消息發(fā)送方和接收方不必知道對(duì)方的信息和狀態(tài),減少了信息維護(hù)的難度,并消除了每個(gè)實(shí)體均要保存其他相關(guān)實(shí)體的信息的開(kāi)銷(xiāo)。這為實(shí)體間的相互協(xié)作帶來(lái)很大的靈活性。
22 消息內(nèi)容詳細(xì)設(shè)計(jì)
各組件之間交互的信息內(nèi)容設(shè)計(jì)主要基于IDMEF標(biāo)準(zhǔn)。IDMEF 是 IETF的入侵檢測(cè)工作組( IDWG) 制定的標(biāo)準(zhǔn)草案,其目標(biāo)之一是滿(mǎn)足報(bào)警之間的關(guān)聯(lián)需求并用于檢測(cè)分布式協(xié)同攻擊。目前絕大部分IDS產(chǎn)品均支持IDMEF格式,IDMEF關(guān)注的主要是alert和heartbeat消息。根據(jù)分布式入侵檢測(cè)模型架構(gòu),各個(gè)agent之間要交互的信息比較多,IDMEF定義不足以滿(mǎn)足需求,因此對(duì)IDMEF進(jìn)行了擴(kuò)展,定義了訂閱、通知、指令等消息,以支持系統(tǒng)中數(shù)據(jù)上報(bào)、響應(yīng)指令、協(xié)作分析等要求。下面具體描述五種消息內(nèi)容:
a)報(bào)告(report)消息。報(bào)告是集中式IDS提交的消息,用于反映IDS的上報(bào)數(shù)據(jù),主要包括alert、heartbeat、auditData。Alert是在集中式IDS檢測(cè)到入侵行為后,主動(dòng)向本地匯聚agent提交的報(bào)警信息,用于描述特定的攻擊事件(event)。Heartbeat是集中式IDS向分析器報(bào)告自身處于運(yùn)行狀態(tài),需要定時(shí)發(fā)送。AuditData用于挖掘檢測(cè)規(guī)則和進(jìn)行異常檢測(cè)的安全審計(jì)數(shù)據(jù)。
b)訂閱(subscription)消息。通信agent通過(guò)訂閱消息向其他組件發(fā)布請(qǐng)求,訂閱可以是獲取本地組件中提交的狀態(tài)(heartbeat)、安全審計(jì)記錄、或協(xié)作請(qǐng)求消息(assistReq)。當(dāng)出現(xiàn)大范圍的分布式攻擊行為時(shí),通信agent向其他本地匯聚agent組件發(fā)出assistReq請(qǐng)求,訂閱與此次攻擊有關(guān)的所有信息。其他通信agent通過(guò)對(duì)協(xié)作請(qǐng)求中包含的事件信息,結(jié)合自身監(jiān)控范圍內(nèi)的安全事件,進(jìn)行相關(guān)分析,發(fā)布相關(guān)信息,從而幫助確定攻擊行為。AssistReq通知所包含的數(shù)據(jù)項(xiàng)包括:createTime、currentTime、sender、receiver、event、additionalData。
c)通知(notification)消息。通知是分布式入侵檢測(cè)系統(tǒng)中最普遍應(yīng)用的消息,檢測(cè)組件之間通過(guò)通知交換攻擊事件消息(attack),本地匯聚agent狀態(tài)消息(heartbeat)和網(wǎng)絡(luò)agent對(duì)請(qǐng)求協(xié)作消息的回復(fù)(assistResp)。Attack用于通信agent之間的攻擊事件通知,當(dāng)網(wǎng)絡(luò)關(guān)聯(lián)和匯聚agent最終確認(rèn)一次攻擊時(shí),無(wú)論是由其集中式IDS檢測(cè)到的攻擊和網(wǎng)絡(luò)IDS檢測(cè)到的攻擊,還是對(duì)警報(bào)數(shù)據(jù)的關(guān)聯(lián)分析結(jié)果,該匯聚點(diǎn)通信agent均可以使用attack類(lèi)型的通知消息向其他通信agent通報(bào),網(wǎng)絡(luò)通信中agent接收到通知消息后,可以根據(jù)自身的安全策略,或轉(zhuǎn)交網(wǎng)絡(luò)匯聚agent處理。 AssistResp是assistReq的回復(fù)消息,用于返回協(xié)作請(qǐng)求消息,與assistReq數(shù)據(jù)項(xiàng)大致相同,增加assessment項(xiàng),表示發(fā)送方匯聚agent對(duì)該事件的評(píng)估。
d)廣告(advertisement)消息。一旦確認(rèn)攻擊事件,通信agent可使用廣告消息向整個(gè)系統(tǒng)廣播攻擊事件。廣告使用通知的attack消息,但內(nèi)容比通知簡(jiǎn)單,僅需要表示幾個(gè)關(guān)鍵的信息,或是攻擊事件的摘要。
e)指令(instruction)消息。指令是響應(yīng)agent向其控制的集中式IDS發(fā)送的消息,主要功能是控制數(shù)據(jù)收集組件的啟動(dòng)、停止和對(duì)網(wǎng)絡(luò)入侵行為作出的響應(yīng)。根據(jù)模型定義operation和response兩種數(shù)據(jù)類(lèi)型。Operation是由響應(yīng)agent組件向集中IDS發(fā)出的操作指令,有啟動(dòng)(OPER_SRUN)、停止(OPER_STOP)、查詢(xún)數(shù)據(jù)狀態(tài)(OPER_STOR)等類(lèi)型。Response是通信agent根據(jù)分析結(jié)果對(duì)響應(yīng)agent發(fā)出的響應(yīng)消息,可以是切斷連接、阻塞IP或端口和殺死異常進(jìn)程等類(lèi)型,分別用RESP_RESET、RESP_BLOCK、RESP_KILL表示。
3 報(bào)警聚合
本文提出的報(bào)警聚合算法是一種基于分類(lèi)和相似度的報(bào)警聚合方法。首先根據(jù)文獻(xiàn)[11]的攻擊意圖分類(lèi)法,根據(jù)報(bào)警屬性中attackclass的值,將報(bào)警分為發(fā)現(xiàn)(discovery)、掃描(scan)、拒絕服務(wù)(DoS)、權(quán)限提升(escalation)四類(lèi)。例如IP Sweep屬于發(fā)現(xiàn)類(lèi)報(bào)警,端口掃描屬于掃描類(lèi)活動(dòng),SYNflood屬于拒絕服務(wù)類(lèi)報(bào)警,緩沖區(qū)溢出屬于權(quán)限提升類(lèi)報(bào)警。攻擊意圖分類(lèi)簡(jiǎn)化了聚合算法,因?yàn)橹挥袕膶儆谕活?lèi)別的報(bào)警才有可能被聚合在一起。參照文獻(xiàn)[9]提出的報(bào)警屬性分類(lèi)方法可將屬性值分為四類(lèi),分別是類(lèi)別屬性(categorical)、數(shù)值屬性(numerical)、時(shí)間屬性(temporal)和字符串屬性(character)。IP地址和端口等屬于類(lèi)別屬性,數(shù)據(jù)包大小等屬于數(shù)值屬性,報(bào)警時(shí)間等屬于時(shí)間屬性,數(shù)據(jù)包中的格式串等屬于字符串屬性,依據(jù)不同屬性分類(lèi)使用不同計(jì)算方法計(jì)算相似度。
31 報(bào)警分類(lèi)分析
屬性相似度在不同的報(bào)警分類(lèi)下有不同的考慮方法。
a)發(fā)現(xiàn)類(lèi)報(bào)警主要是攻擊者要探詢(xún)某些IP、域名或者網(wǎng)絡(luò)是否存在。通常會(huì)在較短時(shí)間內(nèi)發(fā)出大量查詢(xún)信息,因此源IP地址需要較大程度上精確匹配,目標(biāo)IP至少需要網(wǎng)絡(luò)地址匹配,查詢(xún)時(shí)間間隔比較短。對(duì)于發(fā)現(xiàn)類(lèi)報(bào)警主要考慮這三種屬性值;另外還可以通過(guò)字符串屬性來(lái)判斷其查詢(xún)的域名是否類(lèi)似等。
b)掃描類(lèi)報(bào)警往往通過(guò)端口掃描和漏洞掃描工具進(jìn)行。此類(lèi)報(bào)警主要是目標(biāo)IP地址精確匹配,原IP地址網(wǎng)絡(luò)匹配(因?yàn)橛袝r(shí)其會(huì)發(fā)出一些偽造的IP地址包),格式串也很重要,因?yàn)橥环N工具發(fā)出的數(shù)據(jù)包往往有一些相同的特征在里面。時(shí)間屬性也需要重視,有的掃描會(huì)在短時(shí)間內(nèi)發(fā)出大量包,但是有的掃描比較隱蔽,如可能隔幾分鐘或發(fā)出一個(gè)包,可以將時(shí)間間隔設(shè)置得比較大來(lái)聚合這類(lèi)掃描報(bào)警,這就需要?jiǎng)討B(tài)調(diào)節(jié)時(shí)間。
c)拒絕服務(wù)類(lèi)報(bào)警。通常由大量主機(jī)協(xié)同進(jìn)行,因此源IP地址的匹配上無(wú)意義。主要考慮的是目標(biāo)IP和端口精確匹配,時(shí)間間隔很短,攻擊數(shù)據(jù)包通常也是類(lèi)似的,因此數(shù)據(jù)包大小和格式串的匹配有時(shí)占一定權(quán)重。
d)權(quán)限提升類(lèi)報(bào)警。一般是針對(duì)某一網(wǎng)絡(luò)內(nèi)所有主機(jī)或者單個(gè)目標(biāo)主機(jī)以自動(dòng)方式運(yùn)行遠(yuǎn)程攻擊程序,因此主要考慮目標(biāo)網(wǎng)絡(luò)與目標(biāo)端口的精確匹配。通常源IP地址即為攻擊者IP,因?yàn)楣舫绦蛳嗤瑪?shù)據(jù)包特征必然相同,同時(shí)時(shí)間間隔也很小。
32 屬性相似度計(jì)算
對(duì)于數(shù)值屬性和字符串屬性,無(wú)論報(bào)警屬于哪一類(lèi),兩個(gè)屬性值的比較結(jié)果要么為1要么為0,兩者完全相同則為1,否則為0。時(shí)間屬性和分類(lèi)屬性的計(jì)算,則需要根據(jù)不同的報(bào)警類(lèi)別設(shè)置不同的計(jì)算方法。本文對(duì)IP地址、端口以及報(bào)警時(shí)間等屬性進(jìn)行詳細(xì)分析。
IP的比較基于CIDR的格式來(lái)分析,IPv4地址由32 bit二進(jìn)制數(shù)組成,設(shè)有兩個(gè)IP地址ipaddr1和ipaddr2,r表示兩個(gè)IP地址從高位開(kāi)始相等的位數(shù),則r為0表示兩個(gè)地址完全不同,r為32表示兩個(gè)地址完全相同,r值在一定程度上表示了兩個(gè)IP地址從屬于同一個(gè)子網(wǎng)的概率。對(duì)于不同的報(bào)警,r會(huì)有最小閾值,如發(fā)現(xiàn)類(lèi)和權(quán)限提升類(lèi)報(bào)警的源IP地址需要精確匹配,那么源IP地址比較時(shí),r的期望值可以設(shè)置得比較大,掃描類(lèi)報(bào)警僅考慮網(wǎng)絡(luò)匹配,那么r的期望值就設(shè)置得小一些,拒絕服務(wù)類(lèi)攻擊則不考慮源IP地址的比較。相似度的計(jì)算方法為
if r≤re then sim=0;
else sim=r/32;
如果兩個(gè)待比較報(bào)警的端口屬性均只有一個(gè)值,那么只需直接比較值即可,否則考慮集合比較方法。設(shè)alert2為新報(bào)警,alert1為待比較報(bào)警,那么如果alert2中的端口均在alert1中,顯然比較結(jié)果為1,如果均不在 alert1中,比較結(jié)果為0,其他情況下,令集合set1={alert1}∩{alert2},n=|set1|,total=min( |alert1|,|alert2|),則比較結(jié)果為sim=n/total,表示兩個(gè)集合的相似程度由兩個(gè)端口集合的重疊度決定。
報(bào)警屬性中可能有兩種時(shí)間屬性,即產(chǎn)生報(bào)警的時(shí)間和檢測(cè)到攻擊實(shí)際發(fā)生的時(shí)間。只有在系統(tǒng)負(fù)荷很重情況下,產(chǎn)生報(bào)警時(shí)間可能會(huì)比攻擊實(shí)際發(fā)生時(shí)間有所延遲。通常情況下,只考慮報(bào)警產(chǎn)生時(shí)間。對(duì)每類(lèi)報(bào)警的不同需求分別設(shè)置不同的時(shí)間區(qū)間[Tmin,Tmax],兩個(gè)報(bào)警的時(shí)間差只有落在區(qū)間之內(nèi)才具備參考價(jià)值。具體算法如下:
if |t1-t2| else if |t1-t2|>Tmax then sim = 0; else sim=(Tmax-|t1-t2|) / (Tmax-Tmin); 聚合算法的目標(biāo)是判決兩個(gè)報(bào)警是否可聚合,因此還需要綜合考慮各屬性相似度值,通過(guò)給各分類(lèi)報(bào)警的不同屬性以不同權(quán)重,筆者采用文獻(xiàn)[2]提出的方法: sim=(Wk simk)/(Wk) 總的相似度值為各屬性相似度的加權(quán)平均,這里k代表了參加最終評(píng)判的所有報(bào)警屬性。 33 聚合算法 聚合的最終結(jié)果將產(chǎn)生若干超報(bào)警,超報(bào)警代表了一類(lèi)原始報(bào)警,因此每當(dāng)有新報(bào)警newalert來(lái)臨時(shí),系統(tǒng)將newalert與所有的超報(bào)警比較,將其加入相似度最大的超報(bào)警。如果與所有超報(bào)警均不相似,則自行成為一條新的超報(bào)警。每條超報(bào)警均有其最長(zhǎng)時(shí)限,當(dāng)新來(lái)的報(bào)警生成時(shí)間超出了其最長(zhǎng)時(shí)限,則不用計(jì)算與該超報(bào)警的相似度。 每次報(bào)警聚合,超報(bào)警的相關(guān)屬性需要合并或者更新,如報(bào)警時(shí)間、IP地址、端口、數(shù)據(jù)包大小、數(shù)據(jù)包格式串等。可以采用兩種方式進(jìn)行報(bào)警聚合判決,一是直接將超報(bào)警與新報(bào)警進(jìn)行聚合,還有就是將新報(bào)警與超報(bào)警代表的報(bào)警類(lèi)中若干原始報(bào)警進(jìn)行比較,如原始報(bào)警可以選擇時(shí)間最近的一些報(bào)警,也可以隨機(jī)選擇一些報(bào)警。超報(bào)警中的屬性值范圍比較大,特別是當(dāng)其代表的報(bào)警數(shù)量很多時(shí),進(jìn)行判定花費(fèi)的時(shí)間將很長(zhǎng),因此本文選擇使用最近的五條報(bào)警與新報(bào)警進(jìn)行比較,取平均值作為最終的相似度。所有的超報(bào)警按照其原始報(bào)警所屬類(lèi)別分為四大類(lèi),當(dāng)新報(bào)警newalert來(lái)臨時(shí),其判決算法如下: a)根據(jù)newalert的類(lèi)別得知其所在的報(bào)警類(lèi)別,進(jìn)入相關(guān)超報(bào)警集合,對(duì)其中每條超報(bào)警metaalert。如果新報(bào)警的時(shí)間超出了metaalert的時(shí)限,則進(jìn)入下一條metaalert;否則取其中時(shí)間最近的五條原始報(bào)警,分別調(diào)用3.2節(jié)中的計(jì)算式得到五個(gè)相似度值,計(jì)算出平均值simav。該值即為metaalert與newalert的相似度。 b)取所有simav中的最大值simmax。如果simmax>Tsim(事先設(shè)定的閾值),則加入相應(yīng)超報(bào)警,將其所有屬性與超報(bào)警合并;否則newalert成為新的超報(bào)警。 算法還包含一些具體的實(shí)現(xiàn)細(xì)節(jié),如何具體設(shè)置各個(gè)屬性在不同分類(lèi)下的權(quán)重,時(shí)間屬性的區(qū)間具體設(shè)置多少,IP地址的最小期望如何精確設(shè)置,這些往往依賴(lài)于經(jīng)驗(yàn);需要事先對(duì)所有的原始報(bào)警進(jìn)行手工分類(lèi),以確定它們屬于哪個(gè)報(bào)警類(lèi)別;需要對(duì)所有的超報(bào)警按時(shí)間排序來(lái)避免不必要的比較;超報(bào)警該如何與新報(bào)警進(jìn)行合并等。圖3描述了整個(gè)算法的體系結(jié)構(gòu)框圖。 整個(gè)算法的輸入包括三部分,即新報(bào)警、預(yù)定義的相似度計(jì)算函數(shù)庫(kù)和預(yù)先定義的一些閾值如IP地址的最小期望值與時(shí)間區(qū)間等。當(dāng)然針對(duì)不同的報(bào)警分類(lèi)以及不同的屬性有不同的值,這些配置以?xún)?nèi)存變量的形式存在于運(yùn)行時(shí)系統(tǒng)中。本文并沒(méi)有考慮如何使配置自適應(yīng)網(wǎng)絡(luò)流量的實(shí)際變化,所以算法模型中設(shè)置了運(yùn)行時(shí)配置接口模塊,管理員在依據(jù)第三方模塊得出統(tǒng)計(jì)結(jié)果后,可利用該接口動(dòng)態(tài)修改這些配置,從而使整個(gè)聚合模塊達(dá)到最佳性能。 報(bào)警分類(lèi)模塊存儲(chǔ)有所有IDS報(bào)警的分類(lèi)信息,按照?qǐng)?bào)警的attackclass名進(jìn)行哈希表查找。接收到新報(bào)警后,查找新報(bào)警所屬類(lèi)別,從超報(bào)警集合中取出相應(yīng)類(lèi)別超報(bào)警鏈表,并將分類(lèi)信息送到相似度報(bào)警模塊。整個(gè)超報(bào)警集合由四張鏈表組成,分別對(duì)應(yīng)不同報(bào)警類(lèi)別,每張鏈表按最長(zhǎng)時(shí)限由大到小順序排列,這樣可以減少需要比較的超報(bào)警數(shù)量。相似度比較模塊是算法的核心模塊,根據(jù)不同報(bào)警分類(lèi)取不同的函數(shù),獲得不同的配置信息。將新報(bào)警與超報(bào)警中的時(shí)間最新的五個(gè)報(bào)警進(jìn)行相似度比較,取其平均值得到相似度。報(bào)警聚合判決模塊負(fù)責(zé)收集所有的相似度,并尋找其中最大值,依賴(lài)事先定義的閾值判決是否可以與某個(gè)超報(bào)警聚合,并將結(jié)果送入聚合模塊。聚合模塊只可能有兩種輸出:a)輸出一個(gè)新的超報(bào)警,其中只包含了新的報(bào)警;b)將新報(bào)警加入到可以合并的超報(bào)警中,并將新報(bào)警的屬性值全部合并到超報(bào)警的相關(guān)屬性中。 前面探討是在數(shù)據(jù)采集點(diǎn)上進(jìn)行的報(bào)警聚合,從模型中可看出報(bào)警聚合模塊存在于數(shù)據(jù)采集節(jié)點(diǎn)和匯聚節(jié)點(diǎn),即對(duì)于匯聚點(diǎn)而言,所有報(bào)上來(lái)的報(bào)警其實(shí)均是超報(bào)警,匯聚點(diǎn)的聚合模塊是將各個(gè)IDS上報(bào)的超報(bào)警再聚合成為超超報(bào)警。數(shù)據(jù)采集點(diǎn)和中間匯聚點(diǎn)在報(bào)警聚合功能上的區(qū)別在于,數(shù)據(jù)采集點(diǎn)保存了所有的原始報(bào)警,當(dāng)需要閱讀超報(bào)警中所包含的全部原始報(bào)警時(shí),可以很輕易地全部找出來(lái),因?yàn)樗性紙?bào)警均在采集點(diǎn)的內(nèi)存或磁盤(pán)文件中。對(duì)于匯聚點(diǎn)而言,原始報(bào)警已經(jīng)是來(lái)自各個(gè)IDS的超報(bào)警了,因此如果要獲得原始報(bào)警,則需要制定附加協(xié)議用來(lái)將原始報(bào)警從采集點(diǎn)傳遞到匯聚節(jié)點(diǎn)上或使用分布式數(shù)據(jù)庫(kù)來(lái)保存所有的原始報(bào)警,匯聚節(jié)點(diǎn)從數(shù)據(jù)庫(kù)中取原始報(bào)警即可。 34 超報(bào)警信息格式設(shè)計(jì) 為滿(mǎn)足報(bào)警聚合算法的需要,對(duì)IDMEF模型中的alert 類(lèi)的一些子類(lèi)增加了部分關(guān)鍵屬性來(lái)描述原始報(bào)警和超報(bào)警: a)Analyzer子類(lèi)標(biāo)明分布式IDS中產(chǎn)生該報(bào)警的IDS。惟一標(biāo)志號(hào)analyzerid 為分布式IDS中所有的采集單元進(jìn)行統(tǒng)一編號(hào)。 b)CreateTime 子類(lèi)標(biāo)明報(bào)警生成的實(shí)際時(shí)間。筆者使用ntpstamp時(shí)間戳屬性來(lái)更加準(zhǔn)確地標(biāo)志報(bào)警事件,因?yàn)楦鱅DS可能在1 s內(nèi)生成眾多的報(bào)警,為每個(gè)報(bào)警設(shè)置一個(gè)惟一的時(shí)間戳(按時(shí)間先后增量)就不會(huì)造成混淆。 c)Classification子類(lèi)用于標(biāo)志報(bào)警的分類(lèi)屬性。Category屬性標(biāo)志了報(bào)警的類(lèi)別,還包含了reference子類(lèi)標(biāo)明該報(bào)警的參考來(lái)源,包括url和name屬性。 d)AdditionalData 子類(lèi)提供了附加數(shù)據(jù)平臺(tái),alertset屬性標(biāo)明該報(bào)警是否超報(bào)警,以及是由哪些報(bào)警(報(bào)警消息ID列表)聚合而成,data屬性提供字符串信息供各個(gè)IDS自行解析。 每條報(bào)警消息(alertid)由analyzerid 和sequence兩部分組成,sequence標(biāo)明每個(gè)IDS生成的報(bào)警序號(hào),通常從一開(kāi)始,兩者之間由下劃線(xiàn)“_”連接。Category分類(lèi)屬性標(biāo)明報(bào)警從屬于發(fā)現(xiàn)類(lèi)、掃描類(lèi)、拒絕服務(wù)類(lèi)還是權(quán)限提升類(lèi)。如果是普通報(bào)警則alertset值為空,否則其值包含所有與其聚合的其他報(bào)警ID,并且其中所有的報(bào)警消息ID按照相應(yīng)ntpstamp的增量排序。 4 實(shí)驗(yàn) 為使不同IDS提供的報(bào)警之間能進(jìn)行有效報(bào)警聚合,每個(gè)IDS必須實(shí)現(xiàn)各自的后臺(tái)信息轉(zhuǎn)換格式,并在采集點(diǎn)和匯聚點(diǎn)上實(shí)現(xiàn)報(bào)警聚合模塊。在Snort 2.4.2和Redhat Linux 9.1平臺(tái)下實(shí)現(xiàn)了IDMEF格式轉(zhuǎn)換模塊以及報(bào)警聚合模塊原型,IDMEF格式轉(zhuǎn)換模塊與Snort的alert_full模式下的告警輸出函數(shù)一起同時(shí)被調(diào)用,即可同時(shí)輸出文本模式報(bào)警和IDMEF格式原始報(bào)警。報(bào)警聚合模塊原型可同時(shí)滿(mǎn)足采集點(diǎn)聚合和匯聚點(diǎn)聚合的要求,即既可以對(duì)原始報(bào)警聚合,也可以對(duì)超報(bào)警進(jìn)行聚合。 實(shí)驗(yàn)數(shù)據(jù)采用Darpa99[12]第三周內(nèi)網(wǎng)攻擊數(shù)據(jù),實(shí)驗(yàn)在Redhat Linux 9.1操作系統(tǒng)和Snort2.4.2軟件平臺(tái)下完成。實(shí)驗(yàn)在離線(xiàn)狀態(tài)下分別實(shí)現(xiàn),首先在Snort2.4.2平臺(tái)上應(yīng)用格式轉(zhuǎn)換模塊對(duì)五天的原始攻擊數(shù)據(jù)進(jìn)行分析,生成一個(gè)IDMEF格式報(bào)警信息文件,該文件中報(bào)警按時(shí)間遞增排序,然后應(yīng)用聚合模塊對(duì)報(bào)警進(jìn)行聚合,形成超報(bào)警信息文件。對(duì)匯聚點(diǎn)聚合模塊的驗(yàn)證是通過(guò)對(duì)兩個(gè)超報(bào)警信息文件中的超報(bào)警進(jìn)行聚合來(lái)完成的,兩個(gè)超報(bào)警信息文件代表兩個(gè)采集點(diǎn)上報(bào)的超報(bào)警,這里兩個(gè)采集點(diǎn)均運(yùn)行Snort2.4.2,兩個(gè)超報(bào)警信息文件中的報(bào)警除analyzerid不同(一為001,一為002)外,其余均相同。 表1列出了每天的報(bào)警個(gè)數(shù)以及報(bào)警種類(lèi);表2統(tǒng)計(jì)了分類(lèi)后每天每類(lèi)原始報(bào)警的數(shù)目以及聚合后報(bào)警數(shù)目。 五天報(bào)警數(shù)據(jù)經(jīng)統(tǒng)計(jì)共有59種報(bào)警類(lèi)型,報(bào)警的分類(lèi)信息在配置文件中預(yù)先配置,由IDMEF格式轉(zhuǎn)換模塊和應(yīng)用聚合模塊讀入并分析。從表2中可以看出,discover類(lèi)報(bào)警聚合后,可以消除50%~60%左右的重復(fù)報(bào)警;scan類(lèi)大部分在33%~35%,只有周四達(dá)到了60%多,主要是因?yàn)楫?dāng)天有SNMP的兩個(gè)定時(shí)掃描報(bào)警(共有1 270條),被聚合模塊聚合成為一條超報(bào)警;權(quán)限提升類(lèi)報(bào)警的重復(fù)報(bào)警在25%~30%;該周數(shù)據(jù)沒(méi)有DoS類(lèi)攻擊,因此表2中未列出。從實(shí)驗(yàn)結(jié)果可以看出,報(bào)警聚合取得了良好的效果,如果對(duì)每條報(bào)警的屬性權(quán)重指派進(jìn)行進(jìn)一步的微調(diào)還可以達(dá)到更好的效果。 實(shí)驗(yàn)還驗(yàn)證了超報(bào)警中的alertset屬性是否包含了全部的原始報(bào)警信息ID,以及匯聚節(jié)點(diǎn)是否可以對(duì)來(lái)自?xún)蓚€(gè)采集點(diǎn)的超報(bào)警進(jìn)行再聚合,并且生成的超超報(bào)警中alertset屬性是否包含全部的超報(bào)警信息ID,從而可遞歸查找到相應(yīng)的原始報(bào)警。 5 結(jié)束語(yǔ) 本文提出了一種分布式報(bào)警聚合模型,由本地和網(wǎng)絡(luò)組件構(gòu)成,本地組件將IDS上報(bào)的原始報(bào)警轉(zhuǎn)換為基于IDMEF模型的統(tǒng)一報(bào)警信息格式。在經(jīng)過(guò)聚合模塊采用基于分類(lèi)和屬性相似度的報(bào)警聚合處理后,網(wǎng)絡(luò)組件對(duì)各IDS上報(bào)的IDMEF超報(bào)警進(jìn)行再聚合。該模型不僅設(shè)計(jì)了超報(bào)警的信息格式,并設(shè)計(jì)了多種消息內(nèi)容用于滿(mǎn)足模型中本地組件和網(wǎng)絡(luò)組件間通信需求,可以較好地搭建一個(gè)分布式入侵檢測(cè)系統(tǒng)。未來(lái)工作包括:a)目前工作集中在基于網(wǎng)絡(luò)的IDS,基于主機(jī)的部分還沒(méi)有考慮;b)報(bào)警聚合后還需要進(jìn)一步地將有關(guān)報(bào)警進(jìn)行關(guān)聯(lián),以發(fā)現(xiàn)攻擊者的真實(shí)意圖。 參考文獻(xiàn): [1] ROESCH W.Snort user manual 2.0.0[EB/OL].[20060523].http://www.snort.org/docs/snort_htmanuals/htmanual_261/. [2]PORRAS P.The common intrusion detection framework architecture[EB/OL].[19990910].http://gost.isi.edu/cidf/drafts/architecture.txt. [3]穆成坡,黃厚寬,田盛豐. 入侵檢測(cè)系統(tǒng)報(bào)警信息聚合與關(guān)聯(lián)技術(shù)研究綜述[J].計(jì)算機(jī)研究與發(fā)展,2006,43(1):18. [4]PORRAS P,NEUMANN P G.EMERALD:event monitoring enabling response to anomalous live disturbances[C]//Proc of the 20th National Information System Security Conference.1997:353365. [5]SPAFFORD E H,ZAMBONI D.Intrusion detection using autonomous agents[J].Computer Networks,2000,34:547570. [6]馬恒太,蔣建春,陳偉峰,等.基于agent的分布式入侵檢測(cè)系統(tǒng)模型[J].軟件學(xué)報(bào),2000,11(10):13121319. [7]VALDES A, SKINNER K. Probabilistic alert correlation[C]//Proc of the 4th International Symposium on Recent Advance in Intrusion Detection.Berlin:SpringerVerlag,2001:5468. [8]DEBAR H, WESPI A.Aggregation and correlation of intrusiondetection alerts[C]//Proc of the 4th International Symposium on Recent Advance in Intrusion Detection.Berlin:SpringerVerlag,2001:85103. [9]AUREL F,CUPPENS F.Using an intrusion detection alert similarity operator to aggregate and fuse alerts[C]//Proc of the 4th Conference on Security and Network Architectures.2005. [10]穆成坡,黃厚寬,田盛豐. 基于模糊綜合評(píng)判的入侵檢測(cè)報(bào)警信息處理[J].計(jì)算機(jī)研究與發(fā)展,2005,42(10):16791685. [11]OLIVER D, ROBERT C. Fusing a heterogeneous alert stream into scenarios[C]//Proc of ACM Workshop on Data Mining for Security Applications.2001:113. [12]MIT Lincoln Labs. 1999 DARPA intrusion detection evaluation[EB/OL].(1999).http://www.ll.mit.edu/IST/ideval/index.html.