《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 設(shè)計(jì)應(yīng)用 > 基于狀態(tài)機(jī)的入侵場(chǎng)景重構(gòu)關(guān)鍵技術(shù)研究
基于狀態(tài)機(jī)的入侵場(chǎng)景重構(gòu)關(guān)鍵技術(shù)研究
來(lái)源:微型機(jī)與應(yīng)用2010年第17期
馮學(xué)偉,王東霞,馬國(guó)慶,李 津
(北京系統(tǒng)工程研究所,北京 100101)
摘要: 分析了現(xiàn)有的各種安全事件關(guān)聯(lián)算法,提出了一種基于狀態(tài)機(jī)的攻擊場(chǎng)景重構(gòu)技術(shù)?;跔顟B(tài)機(jī)的攻擊場(chǎng)景重構(gòu)技術(shù)將聚類分析和因果分析統(tǒng)一起來(lái)對(duì)安全事件進(jìn)行關(guān)聯(lián)處理,為每一種可能發(fā)生的攻擊場(chǎng)景構(gòu)建一個(gè)狀態(tài)機(jī),利用狀態(tài)機(jī)來(lái)跟蹤、記錄攻擊活動(dòng)的發(fā)展過(guò)程,以此來(lái)提高關(guān)聯(lián)過(guò)程的實(shí)時(shí)性和準(zhǔn)確性。最后通過(guò)DARPA2000入侵場(chǎng)景測(cè)試數(shù)據(jù)集對(duì)所提出的技術(shù)進(jìn)行了分析驗(yàn)證。
Abstract:
Key words :

摘  要: 分析了現(xiàn)有的各種安全事件關(guān)聯(lián)算法,提出了一種基于狀態(tài)機(jī)的攻擊場(chǎng)景重構(gòu)技術(shù)?;跔顟B(tài)機(jī)的攻擊場(chǎng)景重構(gòu)技術(shù)將聚類分析因果分析統(tǒng)一起來(lái)對(duì)安全事件進(jìn)行關(guān)聯(lián)處理,為每一種可能發(fā)生的攻擊場(chǎng)景構(gòu)建一個(gè)狀態(tài)機(jī),利用狀態(tài)機(jī)來(lái)跟蹤、記錄攻擊活動(dòng)的發(fā)展過(guò)程,以此來(lái)提高關(guān)聯(lián)過(guò)程的實(shí)時(shí)性和準(zhǔn)確性。最后通過(guò)DARPA2000入侵場(chǎng)景測(cè)試數(shù)據(jù)集對(duì)所提出的技術(shù)進(jìn)行了分析驗(yàn)證。
關(guān)鍵詞: 入侵場(chǎng)景重構(gòu);聚類分析;因果分析;攻擊場(chǎng)景樹(shù);關(guān)聯(lián)狀態(tài)機(jī)

    隨著計(jì)算機(jī)網(wǎng)絡(luò)的普及和各種網(wǎng)絡(luò)應(yīng)用的不斷深入,網(wǎng)絡(luò)空間的安全問(wèn)題變得越來(lái)越突出,已經(jīng)成為制約網(wǎng)絡(luò)發(fā)展的主要因素之一[1]。對(duì)于一個(gè)復(fù)雜的大規(guī)模網(wǎng)絡(luò)而言,一個(gè)簡(jiǎn)單的攻擊指令就會(huì)觸發(fā)IDS等安全設(shè)備產(chǎn)生數(shù)百乃至上千的安全事件,依靠管理員人工分析這些事件無(wú)疑是一種災(zāi)難。如何從這些零散、龐雜的安全事件中提取出高層警報(bào),重構(gòu)出入侵場(chǎng)景已經(jīng)成為當(dāng)務(wù)之急。入侵場(chǎng)景重構(gòu)技術(shù)就是通過(guò)對(duì)IDS等安全設(shè)備產(chǎn)生的原始安全事件進(jìn)行關(guān)聯(lián)、分析,還原出攻擊者對(duì)整個(gè)網(wǎng)絡(luò)空間的攻擊、滲透過(guò)程,然后將這種高層的場(chǎng)景信息反映給管理員,將其從繁重的事件分析任務(wù)中解放出來(lái)。
    本文通過(guò)分析現(xiàn)有的一些關(guān)于安全事件關(guān)聯(lián)分析的研究成果,提出了一種基于狀態(tài)機(jī)的入侵場(chǎng)景重構(gòu)技術(shù),給出了對(duì)應(yīng)的關(guān)聯(lián)算法以及相關(guān)的一些重要概念,最后通過(guò)一個(gè)原型系統(tǒng)對(duì)所提出的重構(gòu)技術(shù)進(jìn)行了分析、驗(yàn)證。
1 相關(guān)工作
    攻擊活動(dòng)觸發(fā)的安全事件之間存在兩種關(guān)系,一種是并行的冗余關(guān)系,另一種是串行的時(shí)序因果關(guān)系,入侵場(chǎng)景重構(gòu)的主要內(nèi)容就是分析各個(gè)安全事件之間的這兩種關(guān)系。
    當(dāng)前對(duì)冗余事件的研究主要集中在基于概率的統(tǒng)計(jì)分析方面:ALFONSO V[2]首次提出了基于概率聚類技術(shù)的安全事件關(guān)聯(lián)分析方法,隨后DEBAR H[3],DAIN O[4-5]等也對(duì)其進(jìn)行了研究?;诟怕示垲惖陌踩录P(guān)聯(lián)分析技術(shù)通過(guò)計(jì)算各個(gè)安全事件的概率相似度,進(jìn)而決定新產(chǎn)生的安全事件的聚類歸屬。通常屬于同個(gè)聚類的安全事件具有相似的屬性,通過(guò)選擇一個(gè)抽象的“元告警”作為該聚類的代表元,以此來(lái)達(dá)到去冗的效果。
    對(duì)串行事件的處理主要集中在基于規(guī)則的關(guān)聯(lián)分析方面。STEVEN C[6]等提出了一種基于專家系統(tǒng)的攻擊場(chǎng)景識(shí)別技術(shù),其主要思想是將攻擊場(chǎng)景描述為一系列的規(guī)則模塊,每個(gè)規(guī)則模塊代表著一個(gè)攻擊場(chǎng)景,安全事件報(bào)上來(lái)之后和規(guī)則模塊進(jìn)行匹配。BENJAMIN M和HERVE D提出了一種基于時(shí)序模式識(shí)別的攻擊場(chǎng)景識(shí)別技術(shù)[7],將網(wǎng)絡(luò)安全事件按照預(yù)定義的時(shí)序模型進(jìn)行關(guān)聯(lián)。在基于規(guī)則的安全事件關(guān)聯(lián)分析方面,具有里程碑意義的無(wú)疑是PENG Ning所領(lǐng)導(dǎo)的TIAA項(xiàng)目[8]和ONERA的FREDERIC C所領(lǐng)導(dǎo)的MIRADOR項(xiàng)目[9]。
    現(xiàn)有的安全事件關(guān)聯(lián)分析技術(shù)主要存在以下兩個(gè)問(wèn)題:(1)對(duì)安全事件的處理要么是進(jìn)行概率聚類,要么是基于因果規(guī)則進(jìn)行關(guān)聯(lián)分析,很少有研究將兩者結(jié)合起來(lái)處理安全事件。有結(jié)合起來(lái)的也是人為地將兩者割裂,先聚類去冗,然后因果分析,這樣做的合理性有待考究。(2)關(guān)聯(lián)分析的實(shí)時(shí)性差。尤其表現(xiàn)在基于規(guī)則的關(guān)聯(lián)分析方面,比如TIAA項(xiàng)目,其通常是設(shè)定一個(gè)時(shí)間片,一段時(shí)間之后去讀取數(shù)據(jù)庫(kù)中的安全事件,然后對(duì)其進(jìn)行計(jì)算分析。其實(shí)質(zhì)是一個(gè)離線系統(tǒng),而且如果時(shí)間片內(nèi)某一規(guī)則的安全事件有遺漏的話,其分析效果會(huì)大大降低。
2 基于狀態(tài)機(jī)的入侵場(chǎng)景重構(gòu)技術(shù)
    基于狀態(tài)機(jī)的入侵場(chǎng)景重構(gòu)技術(shù)將聚類分析和因果分析統(tǒng)一起來(lái),用于對(duì)安全事件進(jìn)行處理,還原出攻擊者的入侵過(guò)程。同時(shí)基于狀態(tài)機(jī)的安全事件關(guān)聯(lián)分析是一個(gè)在線實(shí)時(shí)的處理過(guò)程,這種工作方式可以極大地提高關(guān)聯(lián)過(guò)程的時(shí)效性。
    圖1為入侵場(chǎng)景重構(gòu)系統(tǒng)的結(jié)構(gòu)圖。整個(gè)系統(tǒng)的工作流程如下:首先需要根據(jù)專家知識(shí)以及參考范例等構(gòu)建一個(gè)靜態(tài)的入侵場(chǎng)景庫(kù),入侵場(chǎng)景庫(kù)中包含了各種各樣的攻擊場(chǎng)景,每一個(gè)攻擊場(chǎng)景都是一個(gè)樹(shù)狀結(jié)構(gòu),用于匹配產(chǎn)生的安全事件。有了入侵場(chǎng)景庫(kù)之后,預(yù)處理模塊將各個(gè)安全設(shè)備產(chǎn)生的事件標(biāo)準(zhǔn)化后提交給關(guān)聯(lián)引擎,關(guān)聯(lián)引擎按照LRU(最近最少使用)[10]策略在內(nèi)存中維護(hù)著一個(gè)狀態(tài)機(jī)隊(duì)列,隊(duì)列中的每一個(gè)狀態(tài)機(jī)代表著當(dāng)前網(wǎng)絡(luò)空間中正在發(fā)生的一種攻擊場(chǎng)景,這些狀態(tài)機(jī)是入侵場(chǎng)景庫(kù)中相應(yīng)攻擊場(chǎng)景樹(shù)的動(dòng)態(tài)表現(xiàn)。安全事件到達(dá)之后,關(guān)聯(lián)引擎將其與狀態(tài)機(jī)隊(duì)列中各狀態(tài)機(jī)的當(dāng)前狀態(tài)匹配,如果與某一狀態(tài)匹配成功,該狀態(tài)作相應(yīng)處理,并且將對(duì)應(yīng)狀態(tài)機(jī)調(diào)換到隊(duì)首位置,如果匹配成功的狀態(tài)是狀態(tài)機(jī)的葉子節(jié)點(diǎn),那么產(chǎn)生一個(gè)攻擊場(chǎng)景描述事件,并且將該狀態(tài)機(jī)從隊(duì)列中刪除;如果狀態(tài)機(jī)隊(duì)列中的各狀態(tài)機(jī)都沒(méi)有可以和安全事件成功匹配的當(dāng)前狀態(tài),那么關(guān)聯(lián)引擎就會(huì)去入侵場(chǎng)景庫(kù)尋找可以和其成功匹配的靜態(tài)攻擊場(chǎng)景樹(shù),找到后生成對(duì)應(yīng)的狀態(tài)機(jī),并且將其插入到隊(duì)列的隊(duì)首位置,置該狀態(tài)機(jī)的當(dāng)前狀態(tài)為根節(jié)點(diǎn)。后續(xù)安全事件到達(dá)時(shí)重復(fù)上述關(guān)聯(lián)過(guò)程。生成的攻擊場(chǎng)景描述事件應(yīng)該以友好的顯示方式呈現(xiàn)給管理員,并且管理員可以手動(dòng)修改入侵場(chǎng)景庫(kù),同時(shí)系統(tǒng)還應(yīng)該對(duì)關(guān)聯(lián)過(guò)程中的中間數(shù)據(jù)進(jìn)行備份。

2.1 入侵場(chǎng)景庫(kù)及攻擊場(chǎng)景樹(shù)的定義
    定義1:入侵場(chǎng)景庫(kù)intrusionScenarioBase是一個(gè)集合intrusionScenarioBase={AttackScenario_1,AttackScenario_2,…,AttackScenario_i,…,AttackScenario_n},其中的每一個(gè)AttackScenario_i是由XML文件定義的攻擊場(chǎng)景樹(shù)。
    入侵場(chǎng)景庫(kù)定義了網(wǎng)絡(luò)空間中可能出現(xiàn)的各種各樣的攻擊場(chǎng)景,如圖2所示,其可以不斷地完善、豐富。入侵場(chǎng)景庫(kù)是一個(gè)預(yù)定義的靜態(tài)結(jié)構(gòu),其定義來(lái)源于專家知識(shí)和現(xiàn)有的一些參考范例及管理員的歷史積累。場(chǎng)景庫(kù)中的每一個(gè)元素都代表了一種可能的攻擊場(chǎng)景,對(duì)攻擊場(chǎng)景采用XML靜態(tài)文本進(jìn)行描述。
    定義2:攻擊場(chǎng)景樹(shù)AttackScenario_i是對(duì)攻擊者入侵過(guò)程進(jìn)行描述的一種樹(shù)型結(jié)構(gòu),通常由XML文檔靜態(tài)定義。場(chǎng)景樹(shù)中的每一個(gè)節(jié)點(diǎn)都代表著一個(gè)可匹配的規(guī)則,規(guī)則描述了發(fā)生此步攻擊的事件的特征。父子節(jié)點(diǎn)之間是“與”的關(guān)系,表示攻擊序列的時(shí)序推進(jìn),兄弟節(jié)點(diǎn)之間是“或”的關(guān)系,表示下步攻擊的可選方案。樹(shù)生長(zhǎng)的方向就是攻擊不斷深入的過(guò)程。攻擊場(chǎng)景樹(shù)的每一個(gè)節(jié)點(diǎn)都代表著一條規(guī)則,用于匹配安全設(shè)備產(chǎn)生的事件。規(guī)則之間有著并行的或者遞進(jìn)的關(guān)系。
    以圖2中的拒絕服務(wù)攻擊場(chǎng)景樹(shù)為例進(jìn)行說(shuō)明:

    (1)攻擊者首先會(huì)對(duì)目標(biāo)主機(jī)進(jìn)行端口掃描,查看目標(biāo)主機(jī)上都有哪些服務(wù)存活。
    (2)找到存活服務(wù)后,攻擊者有兩種攻擊方案,一種時(shí)直接對(duì)目標(biāo)服務(wù)進(jìn)行Syn洪范攻擊,致使目標(biāo)進(jìn)程拒絕服務(wù)。另一種是發(fā)現(xiàn)目標(biāo)主機(jī)存在Sadmind服務(wù)漏洞,攻擊者發(fā)起Sadmind緩沖區(qū)溢出攻擊,獲得目標(biāo)主機(jī)的訪問(wèn)權(quán)限。
    (3)利用獲得的訪問(wèn)權(quán)限,攻擊者在目標(biāo)主機(jī)上安裝用于進(jìn)行DDos攻擊的Mstream程序。
    (4)Mstream主控端和受控端進(jìn)行交互,準(zhǔn)備進(jìn)行DDos攻擊。
    (5)被控的傀儡主機(jī)一并對(duì)目標(biāo)主機(jī)進(jìn)行拒絕服務(wù)攻擊。
2.2 關(guān)聯(lián)狀態(tài)機(jī)
    定義好各個(gè)攻擊場(chǎng)景樹(shù)、形成入侵場(chǎng)景庫(kù)后,關(guān)聯(lián)引擎將安全設(shè)備產(chǎn)生的事件實(shí)時(shí)地和各個(gè)攻擊場(chǎng)景進(jìn)行匹配,還原出攻擊者的入侵過(guò)程。在匹配時(shí),必須為每一個(gè)半匹配的攻擊場(chǎng)景維護(hù)一個(gè)狀態(tài)機(jī)。
    定義3:關(guān)聯(lián)狀態(tài)機(jī)是攻擊場(chǎng)景樹(shù)的一個(gè)映射,是關(guān)聯(lián)引擎在內(nèi)存中維護(hù)的一種樹(shù)型動(dòng)態(tài)結(jié)構(gòu)。每一個(gè)狀態(tài)都是一個(gè)十五元組state_i=(plugin_id,plugin_sid, src_ip,dst_ip,src_port,dst_port,protocal,timeout,occurrence,srcIP_
record,dstIP_record,srcPort_record,dstPort_record,eventCounter,startTime),前面9個(gè)屬性定義了該狀態(tài)可以處理的安全事件的特征,其意義與規(guī)則中相應(yīng)屬性的意義相同。srcIP_record、dstIP_record、srcPort_record、dstPort_record分別用于記錄該狀態(tài)已經(jīng)匹配過(guò)的安全事件的特征,eventCounter用于記錄已經(jīng)成功匹配的事件個(gè)數(shù),startTime用于記錄狀態(tài)生效時(shí)間。
    關(guān)聯(lián)狀態(tài)機(jī)是一個(gè)中間過(guò)程,用于實(shí)時(shí)地跟蹤、記錄安全事件和攻擊場(chǎng)景的匹配過(guò)程。timeout和occurrence是關(guān)聯(lián)狀態(tài)機(jī)的兩個(gè)核心屬性。timeout用于指出關(guān)聯(lián)引擎在每一個(gè)狀態(tài)的最多觀察時(shí)間,對(duì)應(yīng)于攻擊序列中一個(gè)攻擊步驟的持續(xù)時(shí)間。occurrence則指出在每一個(gè)狀態(tài)可以關(guān)聯(lián)的安全事件個(gè)數(shù),其本質(zhì)是對(duì)一個(gè)攻擊步驟產(chǎn)生的相同安全事件進(jìn)行聚類,體現(xiàn)了歸并的思想。timeout和occurrence二者是協(xié)同工作的,如果在給定的timeout時(shí)限內(nèi)關(guān)聯(lián)引擎成功匹配了occurrence次的安全事件,那么關(guān)聯(lián)狀態(tài)機(jī)就會(huì)發(fā)生狀態(tài)遷移,這也對(duì)應(yīng)著攻擊序列的漸進(jìn)。
    定義4:狀態(tài)機(jī)隊(duì)列是對(duì)當(dāng)前正在發(fā)生的各種攻擊場(chǎng)景的跟蹤、記錄,狀態(tài)機(jī)隊(duì)列中的每一個(gè)元素都是一個(gè)關(guān)聯(lián)狀態(tài)機(jī),描述對(duì)應(yīng)攻擊場(chǎng)景的實(shí)時(shí)推進(jìn)過(guò)程。
    以Dos攻擊場(chǎng)景為例說(shuō)明如何構(gòu)造一個(gè)關(guān)聯(lián)狀態(tài)機(jī)。假設(shè)第一個(gè)“PortScan”安全事件到來(lái),并且狀態(tài)機(jī)隊(duì)列l(wèi)ist為空。此時(shí)關(guān)聯(lián)引擎在入侵場(chǎng)景庫(kù)中查找哪一個(gè)攻擊場(chǎng)景的第一條規(guī)則要求安全事件為“PortScan”類型,發(fā)現(xiàn)攻擊場(chǎng)景“Dos Attack Scenario”滿足,此時(shí)關(guān)聯(lián)引擎為該攻擊場(chǎng)景在內(nèi)存中建立一個(gè)關(guān)聯(lián)狀態(tài)機(jī)“Dos”,并且將當(dāng)前狀態(tài)Curr_State設(shè)為根節(jié)點(diǎn),如圖3所示。

    當(dāng)前狀態(tài)為State_1,該狀態(tài)可以處理任何源到目的端口的掃描類事件,并且對(duì)已經(jīng)成功處理過(guò)的事件個(gè)數(shù)以及這些事件的相關(guān)屬性進(jìn)行記錄。如果在5 s內(nèi)成功處理的事件個(gè)數(shù)達(dá)到30個(gè),那么就會(huì)發(fā)生狀態(tài)遷移,當(dāng)前狀態(tài)變成State_2和State_3,如圖4所示。這一遷移過(guò)程對(duì)應(yīng)著Dos攻擊的第一階段結(jié)束,攻擊者可能要進(jìn)行下一階段的攻擊了。

    需要對(duì)當(dāng)前狀態(tài)成功處理過(guò)的安全事件的相關(guān)屬性進(jìn)行記錄。在記錄事件地址時(shí)有一個(gè)問(wèn)題:由于一個(gè)狀態(tài)可能處理的安全事件不止一個(gè),而這些安全事件的地址可能相同也可能不同,那么后續(xù)狀態(tài)對(duì)先前狀態(tài)地址引用的時(shí)候可能會(huì)發(fā)生混亂。為了解決這一問(wèn)題,本文對(duì)IP地址進(jìn)行聚析,其好處是可以突出攻擊的區(qū)域性,可以很直觀地反映出攻擊的源域和目的域,這在大規(guī)模網(wǎng)絡(luò)中非常有用。對(duì)可能出現(xiàn)的不同端口地址利用數(shù)組全部保存,如圖3的dstPort_record所示。
2.3 關(guān)聯(lián)算法
    基于狀態(tài)機(jī)的入侵場(chǎng)景重構(gòu)系統(tǒng)要求能夠?qū)Π踩O(shè)備產(chǎn)生的事件實(shí)時(shí)處理,重構(gòu)出入侵者的滲透過(guò)程。下面詳細(xì)介紹基于狀態(tài)機(jī)的安全事件關(guān)聯(lián)算法。
    輸入:狀態(tài)機(jī)隊(duì)列l(wèi)ist。
    輸出:攻擊場(chǎng)景描述信息ScenarioInfo;更新后的狀態(tài)機(jī)隊(duì)列l(wèi)ist。
    (1)j=eventRead();  /*讀取預(yù)處理后的實(shí)時(shí)安全事件,如果沒(méi)有,產(chǎn)生阻塞*/
    (2)IF(list==null){
          i=0;
          while(i<intrusionScenarioBase.size){
           IF(Match(j,AttackScenario_i.firstRule))  /*在入侵場(chǎng)景庫(kù)中尋找和j一致的攻擊場(chǎng)景*/
              break;
           i++;
          }
          IF(i=intrusionScenarioBase.size)
             return;  /*沒(méi)有一致攻擊場(chǎng)景,缺少預(yù)定義的知識(shí)*/
          StateMachine=makeStateMachine(AttackScenario_i);
/*為匹配攻擊場(chǎng)景構(gòu)建狀態(tài)機(jī)*/
         StateMachine.CurrentStateSet().add(root);  /*根節(jié)點(diǎn)為當(dāng)前狀態(tài)*/
         StateMachine.CurrentStateSet().process(j);  /*所有當(dāng)前狀態(tài)處理事件j,此時(shí)僅僅是根節(jié)點(diǎn)狀態(tài)處理事件j */
         list.addStateMachine(StateMachine);
       }
    (3)ELSE {
         k=0;
         while(k<list.size){
           IF(list.getStateMachine(k).CurrentStateSet().process(j)==true){            /*如果狀態(tài)機(jī)k可以處理事件j */
           IF(the states processing j are leaf nodes of StateMachine_k){  /*如果能夠處理j的狀態(tài)是狀態(tài)機(jī)的葉子節(jié)點(diǎn)*/
             ScenarioInfo=generateAttackScenarioInfo(list.getStateMachine(k));            /*生成攻擊場(chǎng)景描述信息*/
             delete the leaf states from StateMachine_k.CurrentStateSet();  /*從當(dāng)前狀態(tài)集刪除已產(chǎn)生過(guò)場(chǎng)景描述信息的葉節(jié)點(diǎn)狀態(tài)*/
               }
         toTheFirstStateMachine(list.getStateMachine(k));  /*按照LRU策略將其置換到list的隊(duì)首位置*/    
         break;
           }
           k++;
        }
        IF(k==list.size){
           go to intrusionScenarioBase and do the same thing as list==null except that add the new StateMathine to the head of the list;
         }
       }
    (4)goto (1);
    在關(guān)聯(lián)算法中需要特別注意的是:每一個(gè)狀態(tài)機(jī)的當(dāng)前狀態(tài)可能不止一個(gè)。如在圖3中State_2和State_3合起來(lái)構(gòu)成了當(dāng)前狀態(tài)集CurrentStateSet。對(duì)安全事件處理的時(shí)候,CurrentStateSet中的每一個(gè)狀態(tài)都會(huì)參與,如果能成功處理事件,其計(jì)數(shù)器加1;如不能,則不做任何動(dòng)作。如果安全事件和某一狀態(tài)機(jī)當(dāng)前狀態(tài)集中的若干狀態(tài)匹配成功,并且這些匹配成功的狀態(tài)中有k個(gè)狀態(tài)是該狀態(tài)機(jī)的葉子節(jié)點(diǎn),則調(diào)用函數(shù)generateAttackScenarioInfo()生成k個(gè)攻擊場(chǎng)景描述信息,每一個(gè)攻擊場(chǎng)景描述信息詳細(xì)記錄了從該狀態(tài)機(jī)的根節(jié)點(diǎn)到相應(yīng)葉節(jié)點(diǎn)的狀態(tài)變遷路徑以及沿途狀態(tài)的屬性信息,隨后將這k個(gè)葉子狀態(tài)從該狀態(tài)機(jī)的當(dāng)前狀態(tài)集CurrentStateSet中刪除。狀態(tài)機(jī)隊(duì)列中的各個(gè)狀態(tài)機(jī)按照LRU策略維護(hù),也就是說(shuō)如果某一個(gè)狀態(tài)機(jī)的當(dāng)前狀態(tài)集剛成功處理了實(shí)時(shí)產(chǎn)生的安全事件j,則將該狀態(tài)機(jī)置換到隊(duì)首位置,這樣做的目的是為了增強(qiáng)關(guān)聯(lián)的實(shí)時(shí)性。因?yàn)楦鶕?jù)臨近原則,下一安全事件和該狀態(tài)機(jī)成功匹配的可能性最大。
    為了實(shí)時(shí)地維護(hù)狀態(tài)機(jī)隊(duì)列l(wèi)ist,必須還有一個(gè)單獨(dú)線程負(fù)責(zé)監(jiān)控它,不斷查看隊(duì)列中各個(gè)狀態(tài)機(jī)的當(dāng)前狀態(tài),如果在timeout時(shí)限內(nèi)成功處理的事件個(gè)數(shù)eventCounter等于occurrence,則發(fā)生狀態(tài)遷移,并且更新對(duì)應(yīng)狀態(tài)機(jī)的當(dāng)前狀態(tài)組CurrentStateSet,如果在timeout時(shí)限臨界時(shí)eventCounter仍小于occurrence,表示該狀態(tài)超時(shí),將其從對(duì)應(yīng)狀態(tài)機(jī)的當(dāng)前狀態(tài)組CurrentStateSet中刪除。如果某一狀態(tài)機(jī)的當(dāng)前狀態(tài)集CurrentStateSet為空,則將其從list中刪除。
3 實(shí)驗(yàn)分析
    本文實(shí)現(xiàn)了一個(gè)原型系統(tǒng),對(duì)所提出的入侵場(chǎng)景重構(gòu)技術(shù)進(jìn)行了分析、驗(yàn)證。通過(guò)在網(wǎng)絡(luò)中回放DARPA2000入侵場(chǎng)景評(píng)測(cè)數(shù)據(jù)集[11]對(duì)系統(tǒng)進(jìn)行測(cè)試,DARPA2000數(shù)據(jù)集是DARPA資助MIT林肯實(shí)驗(yàn)室構(gòu)造的入侵場(chǎng)景關(guān)聯(lián)評(píng)測(cè)數(shù)據(jù)集,其被廣泛地應(yīng)用于驗(yàn)證各種安全事件關(guān)聯(lián)算法的有效性[8,12]。
    實(shí)驗(yàn)中針對(duì)DDos攻擊定義兩種場(chǎng)景樹(shù),一種就是圖2中的Dos Attack Scenario,另一種是對(duì)每步攻擊都定義一個(gè)場(chǎng)景樹(shù),通過(guò)這兩種方式來(lái)驗(yàn)證所提出的基于狀態(tài)機(jī)的入侵場(chǎng)景重構(gòu)技術(shù)。
    (1)單步攻擊場(chǎng)景檢測(cè)。林肯實(shí)驗(yàn)室給出的DARPA2000數(shù)據(jù)集總共有649 787個(gè)數(shù)據(jù)包,實(shí)驗(yàn)對(duì)其進(jìn)行分割,分別得到5個(gè)攻擊步驟各自對(duì)應(yīng)的測(cè)試數(shù)據(jù)集。以第二階段的緩沖區(qū)溢出獲取目標(biāo)主機(jī)權(quán)限攻擊為例進(jìn)行測(cè)試。經(jīng)過(guò)分割后得到該階段的數(shù)據(jù)集總共有12 515個(gè)數(shù)據(jù)包,利用TCP-replay工具在網(wǎng)絡(luò)中回放該數(shù)據(jù)集,以Snort、Snare和Ossec為主要底層安全設(shè)備監(jiān)控網(wǎng)絡(luò)空間,產(chǎn)生原始安全事件。實(shí)驗(yàn)從2010-1-4 14:08:45開(kāi)始,到14:13:50時(shí)整個(gè)回放過(guò)程結(jié)束,關(guān)聯(lián)引擎對(duì)上報(bào)上來(lái)的原始安全事件進(jìn)行實(shí)時(shí)分析處理,最終產(chǎn)生圖5所示的攻擊場(chǎng)景描述信息。

    經(jīng)過(guò)分析發(fā)現(xiàn):Snort等安全設(shè)備總共產(chǎn)生了89個(gè)原始安全事件,關(guān)聯(lián)引擎對(duì)這些事件分析處理后產(chǎn)生了10個(gè)攻擊場(chǎng)景描述信息,去冗率達(dá)到了88.76%,關(guān)聯(lián)效率高;回放過(guò)程開(kāi)始于2010-1-4 14:08:45,在2010-01-04 14:10:13時(shí)產(chǎn)生了第一個(gè)場(chǎng)景描述信息,響應(yīng)延遲不到2 min,關(guān)聯(lián)實(shí)時(shí)性強(qiáng);攻擊場(chǎng)景描述信息中包含了攻擊的名稱,攻擊發(fā)生的時(shí)間、地點(diǎn),攻擊危害的簡(jiǎn)單評(píng)估值等管理員所關(guān)心的安全屬性,關(guān)聯(lián)信息豐富。
    (2)五步攻擊場(chǎng)景完整檢測(cè)。對(duì)于完整的五步攻擊,整個(gè)數(shù)據(jù)包的回放過(guò)程要持續(xù)3 h 15 min左右,因此,Dos Attack Scenario場(chǎng)景樹(shù)中各個(gè)節(jié)點(diǎn)的timeout屬性需要經(jīng)過(guò)仔細(xì)推敲才能確定。實(shí)驗(yàn)從2010-1-4 15:10:00開(kāi)始回放整個(gè)數(shù)據(jù)包,到2010-1-4 18:24:13左右整個(gè)回放過(guò)程結(jié)束。最終關(guān)聯(lián)引擎給出了圖6所示的Dos攻擊場(chǎng)景描述信息。

    分析圖6發(fā)現(xiàn),關(guān)聯(lián)引擎給出的攻擊場(chǎng)景描述信息較完整地記錄了入侵者對(duì)網(wǎng)絡(luò)空間的滲透過(guò)程。攻擊者202.77.162.213在2010-1-4 16:03:00左右開(kāi)始了對(duì)目標(biāo)主機(jī)131.84.1.31的攻擊過(guò)程,整個(gè)DDos攻擊過(guò)程持續(xù)了大概1 h 20 min,中間用到了傀儡主機(jī)172.16.112.10,
172.16.115.20和172.16.112.50。DDos攻擊的威脅值達(dá)到了9(最高為10),攻擊場(chǎng)景圖如圖7所示。   

     本文提出了一種基于狀態(tài)機(jī)的入侵場(chǎng)景重構(gòu)技術(shù),將聚類分析和因果分析統(tǒng)一起來(lái)對(duì)安全事件進(jìn)行關(guān)聯(lián)分析,還原出攻擊者對(duì)網(wǎng)絡(luò)空間的滲透過(guò)程,將管理員從瑣碎的事件分析任務(wù)中解放出來(lái)。實(shí)驗(yàn)表明,基于狀態(tài)機(jī)的入侵場(chǎng)景重構(gòu)技術(shù)在實(shí)際的工作中是有效可行的。下一步工作是繼續(xù)豐富入侵場(chǎng)景庫(kù),并且開(kāi)發(fā)出用戶界面,將關(guān)聯(lián)結(jié)果更友好地呈現(xiàn)給管理員。
參考文獻(xiàn)
[1] EOM Jung-ho, HAN Young-Ju, PARK Seon-Ho. Active cyber attack model for network system’s vulnerability assessment[C]. 2008 International Conference on Information Science and Security, 2008.
[2] ALFONSO V, KEITH S. Probabilistic Alert Correlation[C]. Proc. of the 4th International Symposium on Recent Advances in Intrusion Detection. Springer-Verlag, 2001.
[3] DEBAR H, WESPI A. Aggregation and correlation of intrusion detection alerts[C]. Proceeding of the 4th International Symposium on Recent Advances in Intrusion Detection(RAID). 2001.
[4] DAIM O, CUNNINGHAM R K. Building Scenarios from a heterogeneous alert stream[C]. Proceeding of the IEEE SMC Information Assurance Workshop. NY, 2001.
[5] DAIN O, CUNNINGHAM R K. Fusing a heteorgeneous alert stream into scenarios[A]. Proceedings of the 2001 ACM Workshop on Data Mining for Security Applications[C], 2001:1-13.
[6] STEVEN C, ULF L, MARTIN F. Modeling multistep cyber attacks for scenario recognition[C]. Proc of Third DARPA Information Survivability Conference and Exposition. Washington, 2003.
[7] BENJAMIN M, HERVE D. Correlation of intrusion symptoms: an application of chronicles[C]. Proc. of the 6th International Symposium on Recent Advances in Intrusion Detection, Pittsburgh, PA. USA: Springer-Verleg, 2003.
[8] NING P, CUI Y. Techniques and tools for analyzing intrusion alerts[J]. ACM Transactions on Information and System Security, 2004,7(2):274-318.
[9] FREDERIC C, ALEXANDRE M. Alert Correlation in a Cooperative Intrusion Detection Framework[C]. Proc. of IEEE Symposium on Security and Privacy, Oakland,   California, USA, 2002.
[10] 湯小丹.計(jì)算機(jī)操作系統(tǒng)(第三版)[M].西安:西安電子科技大學(xué)出版社,2007.
[11]  2000 DARPA Intrusion Scenario Specific Data Sets[OL]. [2008-01-24]. http://www.ll.mit.edu/IST/ideval/data/2000/2000_data_index.html.
[12]  韋勇,連一峰,馮登國(guó).基于信息融合的網(wǎng)絡(luò)安全態(tài)勢(shì)評(píng)估模型[J].計(jì)算機(jī)研究與發(fā)展,2009,46(3):353-362.
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。