孫偉,張鵬,何永全,3,邢麗超,3
(1.北京交通大學計算機與信息技術學院,北京 100044;2.中國科學院信息工程研究所,北京 100093;3.中國科學院大學網絡空間安全學院,北京 100049)
網絡空間測繪技術應用于網絡空間的多個領域,對網絡空間的高效管理、資源的合理分配及有效的安全監(jiān)測和防護都有著十分重要的意義。美國國家安全局(NSA,National Security Agency)和英國政府通訊總部(GCHQ,the Government Communications Headquarters)聯(lián)合開展的“藏寶圖”計劃,聚焦于邏輯層捕獲路由及自治系統(tǒng)的數據,試圖繪制出一張“近乎實時的、交互式的全球互聯(lián)網地圖”。Spring 等[1]的Rocket Fuel 首次全面探測了大型互聯(lián)網服務提供商(ISP,Internet service provider)拓撲,在掃描工具方面有業(yè)內常用的功能強大的Nmap[2]。由著名安全專家John Matherly 于2009 年創(chuàng)建的Shodan,是全球第一個網絡空間安全搜索引擎。Shodan 每月在大約5 億個服務器上不停地搜集信息,主要針對服務器、網絡攝像頭、交換機、路由器等網絡基礎設備進行掃描。
網絡空間測繪不僅在傳統(tǒng)互聯(lián)網上應用前景廣闊,在內部網絡中應用價值也很高。本文的內部網絡主要是指某行業(yè)依托政務外網建設的系統(tǒng)網和與互聯(lián)網邏輯隔離的大型企業(yè)網。內部網絡的組件數量可以達到40 萬臺,會產生大量基于網絡事件的數據,包括來自防火墻和入侵檢測系統(tǒng)的警報、各種軟件系統(tǒng)的日志文件、來自互聯(lián)網的路由信息等,這些數據可被收集用于網絡安全分析。由于網絡具有分布式的特性,攻擊網絡及其資源的證據常常嵌入在分散的事件之中。此外,對網絡的攻擊可能涉及多個步驟。因此,攻擊的證據也通常隨時間推移而分散。隨著大量分布式的事件不斷產生,一個關鍵的挑戰(zhàn)是如何跨空間和時間去關聯(lián)這些分布的事件以檢測和跟蹤各種攻擊場景。
傳統(tǒng)的入侵檢測系統(tǒng)僅使用單個事件作為檢測攻擊的特征,產生了較高的誤報率。從大量的網絡事件中挖掘更多的證據以獲得更高的檢測精度是十分必要的。為此,本文提出利用貝葉斯網絡模型進行跨空間的事件關聯(lián)和利用卡爾曼濾波器線性模型進行跨時間的事件關聯(lián)的方法。基于該方法實現了一個進程查詢系統(tǒng),該系統(tǒng)可以根據用戶的高層過程描述來掃描和關聯(lián)分布的網絡事件。本文的主要貢獻如下。
1)使用結合了空間和時間的聯(lián)合事件場景特征來描述和區(qū)分各種攻擊,而不是使用單個事件作為特征。隨著更多的證據從分布式事件中挖掘出來,該方法能夠提高檢測準確度,尤其是在一個有噪聲的網絡環(huán)境中。
2)提出了為各種攻擊場景構建場景特征的方法。該方法采用2 種技術:一種是基于因果關系分析,使用專家知識來構建場景特征的技術;另一種是使用數據挖掘從大量訓練數據中提取特征的技術。
3)基于上述方法實現了一個進程查詢系統(tǒng)。實驗分析表明,該系統(tǒng)在不明顯增加計算開銷的情況下,能夠顯著減少內網攻擊檢測的誤報率。
計算機網絡由許多組件組成,如路由器、交換機、Web 服務器、郵件服務器、數據庫服務器、DNS(domain name server)服務器、IDS(intrusion detection system)和防火墻等。此外,計算機網絡是動態(tài)的系統(tǒng),每隔一段時間,這些組件就會產生大量基于事件的數據。一般而言,所有這些事件都可以由網絡數據分析中心收集,而攻擊的痕跡通常分散在這些事件中。如果沒有高效的關聯(lián)算法,在這個龐大且充滿噪聲的事件空間中識別攻擊的蹤跡基本上是很難的。與其他模式識別問題一樣,需要一個攻擊場景特征(或模式)來將這個攻擊與其他攻擊和正常網絡活動區(qū)分開。檢測的準確性取決于提取場景特征的準確性以及收集到事件的準確性。因此,一個關鍵的挑戰(zhàn)是如何描述各種各樣的攻擊場景。
圖1 說明了一個攻擊的證據是如何在空間和時間上分布的?;谝蚬P系,一個攻擊可以同時影響多個觀測空間的事件。例如CodeRed 和Nimda等蠕蟲會生成和掃描隨機IP 地址,以搜索IP 空間中易受攻擊的目標。由于許多IP 地址未分配給網絡或未被網絡使用,這種主動探測過程可能在網絡路由中生成大量ICMP(Internet control message protocol)不可達的分組[3],密集的蠕蟲傳播過程也會影響互聯(lián)網的延遲情況。此外,蠕蟲攻擊可能導致不穩(wěn)定的Internet 邊界網關協(xié)議路由(BGP,border gateway protocol)[4]。基于這些因果關系,至少有3 個獨立的觀測空間來感知蠕蟲攻擊:ICMP 不可達分組的數量、網絡延遲、BGP 路由穩(wěn)定性。因此,本文使用這3 個指標作為組合特征,而不是使用單個事件進行蠕蟲攻擊檢測,從而在空間上關聯(lián)事件并檢測蠕蟲攻擊。
圖1 時間和空間上攻擊的證據分布
此外,攻擊也會影響跨時間的事件。例如,蠕蟲按傳染病模型在互聯(lián)網上傳播時,其生命周期中經歷多個階段:突破、傳播、消除。在此動態(tài)過程中,ICMP 不可達分組的數量遵循時間模式,而該時間模式可用作蠕蟲檢測的時間特征。實際上,上面討論的每個觀測空間都可以通過其特定的時間模式獨立地感知蠕蟲攻擊。因此,本文將使用一個過程模型來描述時間特征[5],通過將每個觀測空間中的時間事件與過程模型相關聯(lián)來檢測攻擊。下面,分別介紹基于空間序列和基于時間序列的分布網絡事件關聯(lián)方法。
關聯(lián)的速度和準確度是事件關聯(lián)系統(tǒng)中2 個重要的性能。事件關聯(lián)的一種經典方法是基于規(guī)則的分析,即關聯(lián)系統(tǒng)不斷使用一組預定義規(guī)則集來評估到來的觀察結果,直到得出結論。因此,關聯(lián)能力僅取決于規(guī)則集的深度和規(guī)模。設計正確的規(guī)則集需要大量的專業(yè)知識。遵循規(guī)則集的嚴格路徑,觀察結果需要對照眾多條件邏輯檢查,導致基于規(guī)則的系統(tǒng)通常不能很好地擴展。同時,基于規(guī)則的系統(tǒng)本質上是無狀態(tài)的,并且不能很好地處理動態(tài)數據的關聯(lián)。下面將討論如何提高事件關聯(lián)的速度和準確度。
基于空間序列的關聯(lián)將同時來自多個觀測空間或傳感器的事件關聯(lián)起來,以檢測攻擊場景。將一個攻擊場景表示為s,假設有一組包含m個攻擊場景的集合S={s1,s2,…,sm}和一組包含n個觀測空間的集合O={o1,o2,…,on}。每個觀測空間都可以作為攻擊場景中一個獨立的指標。基于空間序列的事件關聯(lián)是關于如何關聯(lián)n個指標來檢測和區(qū)分m個攻擊場景。
圖2 表示具有3 個攻擊場景和4 個觀測空間的因果關系圖,其中有向邊表示因果關系。例如,如果發(fā)生攻擊s1,則會導致o1和o3中的異常觀察結果,然而這種攻擊不會影響o2和o4中的觀測結果?;谶@些因果關系,構建如表1 所示的codebook相關矩陣,其中1 和0 分別表示用特定閾值分類的“異?!焙汀罢!庇^察。因此,本文可以將來自多個觀測空間的事件與相關矩陣進行比較,以檢測和區(qū)分這些攻擊。每個攻擊場景必須在此相關矩陣中具有可區(qū)分的場景特征,需要專家知識來構建場景特征和相關矩陣。相關矩陣的大小可以減小,但是為了達到區(qū)分的目的,場景特征相距必須是最小漢明距離[6]。
圖2 事件的因果關系
表1 事件的相關矩陣
將相關矩陣定義為OS={osij}是該矩陣的元素,其中1≤i≤n且1≤j≤m。在codebook 方法中,osij=1 或0,即觀察結果分為“異常”或“正?!薄_@種二進制表示沒有提供太多關于“異?!庇^察結果強度的信息。相反,osij可能是一個實值,例如ICMP不可達分組的數量或特定系統(tǒng)調用osij的數量。在這種情況下,認為關聯(lián)問題可以表示為如式(1)所示的整數規(guī)劃問題。
其中,H=(h1,h2,…,hm)T是假設向量,VO=(v1,v2,…,vm)T是來自m個觀察空間的觀測向量。上面的整數規(guī)劃問題是關于如何組合攻擊場景,以便解釋真實的觀察。例如,H=(0,1,1,0,…,0)T表示攻擊場景s2和s3同時發(fā)生,碼本方法無法檢測這種攻擊場景的組合問題。如果本文將一個觀測空間視為一條信號通道,則觀察到的事件通常包括來自攻擊的信號和來自網絡環(huán)境的噪聲信號。本文的整數規(guī)劃方法可以同時檢測多個攻擊場景實例,并且可以在觀察的信噪比強的環(huán)境中工作。盡管如此,仍需要專家知識來獲取osij值,并且這些值必須在各種攻擊場景進行標準化。
如上所述,確定性方法在有噪聲的環(huán)境中不能很好地工作,網絡噪聲源自正常的網絡活動。例如,主要路由器故障可能會生成許多ICMP 不可達的分組,忘記密碼可能導致多次登錄失敗的警報。問題是如何根據有所偏倚的觀察結果來檢測攻擊情景。將在觀測空間op中的觀測值表示為vi(1≤i≤n),op屬于觀測空間集合O。根據專家知識和統(tǒng)計數據,假設先驗概率已知,如式(2)所示。
其中,1≤j≤m,1≤i≤n。也就是說,由攻擊引起的觀察值的分布是已知的。根據貝葉斯定理,可以計算出后驗概率,如式(3)所示。
現在的問題是如何關聯(lián)來自多個觀測空間的觀測結果。本文使用op和oq分別表示2 個觀測空間,它們均屬于觀測空間集合O,并且有來自op和oq的觀察,可以得到聯(lián)合后驗概率,如式(4)所示。
如果觀測空間op和oq是相互獨立的,也就是說,一個觀測空間中的事件不會導致另一個觀測空間中的事件,反之亦然,則式(4)可以寫成式(5)所示形式。
實際上,如果只想識別導致當前觀測的最可能的攻擊,可以使用式(6)來比較不同攻擊場景的可能性。
然而,在大多數情況下,p(sj)和p(sl)這樣的概率是未知的,并且必須假設它們具有相同的分布。在該假設下,將選定的閾值與式(6)中的先驗概率的比值相評估,以確定攻擊場景?;诖碎撝?,Neyman-Pearson 檢測理論[5]可用于得出相關的誤報率和誤檢率。如果增加觀察空間的數量,本文方法可以使攻擊場景更加容易區(qū)別。
事件的多層因果關系可以用貝葉斯網絡表示[7]。貝葉斯網絡是有向無環(huán)圖,其中,節(jié)點是隨機變量,邊表示源點對終點施加的直接因果影響。在貝葉斯網絡中,聯(lián)合概率作為因素計入一組條件概率集中,該條件概率可以沿網絡中的因果關系路徑順序地計算。例如Benferhat 等[8]已經使用貝葉斯網絡模型來檢測分布式拒絕服務(DDoS,distributed denial of service)攻擊。空間關聯(lián)的另一種方法是使用Dempster-Shafer 理論,該理論可以結合來自多個觀測空間的可信度。
基于概率的關聯(lián)方法可以在有噪聲的環(huán)境中很好地工作。然而,獲得先驗概率和條件概率存在困難,這使該方法實際上不如確定性關聯(lián)方法可行。
在時間上,許多攻擊涉及多個步驟,攻擊的證據往往分散在事件中。計算機網絡本身是動態(tài)系統(tǒng),網絡事件是其動態(tài)活動的可觀測量。攻擊或正常網絡行為的時間特征可以被描述為確定的或隨機的動態(tài)過程。過程模型描述了對象的狀態(tài)轉換,該狀態(tài)轉換根據特定的已知定律隨時間演變。例如,可以用狀態(tài)轉移方程、馬爾可夫模型、有限狀態(tài)機等來描述過程模型?!盃顟B(tài)”是基于時間關聯(lián)中一個重要概念。
基于時間序列的關聯(lián)致力于及時關聯(lián)觀察到的事件以檢測攻擊,并且可以將其形式化為一個目標跟蹤問題。來自雷達和聲納信號處理的目標跟蹤算法可以應用于基于時間序列的事件關聯(lián)。如果已知攻擊的動態(tài)過程,則基于時間序列的關聯(lián)可以通過跟蹤事件是否遵循該攻擊過程來檢測此攻擊。如果已知正常網絡行為的過程,則基于時間序列的關聯(lián)可以通過跟蹤事件是否遵循正常網絡行為的過程來檢測未知攻擊,也被稱為“攻擊檢測”。
以前的許多工作都使用有限狀態(tài)機來描述攻擊或軟件行為的確定性過程,根據狀態(tài)轉換序列評估事件以檢測攻擊。文獻[9]使用狀態(tài)轉換圖來精確識別侵入階段,并僅顯示成功侵入所必須發(fā)生的關鍵事件。文獻[10]使用有色Petri-Nets 來描述攻擊的時間特征。這些方法都模擬了攻擊的時間特征或侵入過程。
目前,許多異常檢測工作已經模擬了正常軟件行為或網絡行為的過程以檢測未知攻擊。文獻[11]使用運行程序執(zhí)行的短序列系統(tǒng)調用作為時間特征來檢測異常軟件行為。文獻[12]使用審計日志來捕獲程序的行為,并將該規(guī)范用作檢查行為的oracle。眾所周知,程序執(zhí)行的80%通常只發(fā)生在其代碼的20%中,程序中的熱路徑通常代表該程序的主要行為。
已知攻擊的動態(tài)過程的檢測方法需要攻擊的專家知識來構建時間特征。已知正常網絡行為的過程的檢測方法可以基于訓練過程自動構建軟件行為的時間特征,但是這種方法無法檢測攻擊的具體類型。
在確定性相關中,動態(tài)過程的狀態(tài)是在沒有噪聲的環(huán)境下被觀察和跟蹤的。在有噪聲的環(huán)境中,觀測結果通常會被網絡噪聲污染。將動態(tài)過程的狀態(tài)表示為x,觀察結果表示為r。將從開始到時間t的狀態(tài)x表示為x1:t=x1,x2,…,xt,相關的觀察結果r表示為r1:t=r1,r2,…,rt。由于動態(tài)過程中的幾個狀態(tài)可能導致相同的觀察結果并且存在噪聲,狀態(tài)本身也是不可觀察的,因此只能基于觀察結果來估計狀態(tài)。在時間t,基于時間序列的關聯(lián)的一個任務是將直到t的觀察結果相關聯(lián)來估計當前狀態(tài)xt,即p(xt|r1:t)。用貝葉斯濾波器[13]遞歸地計算這個后驗概率,有
如果關于該過程的以下假設成立:1)過程模型的狀態(tài)轉換具有馬爾可夫性質,即當前狀態(tài)xt僅依賴于先前狀態(tài)xt-1而不依賴于任何更早的狀態(tài);2)觀察結果rt僅取決于當前狀態(tài)xt,但不依賴于任何早期狀態(tài)和觀察。
線性卡爾曼濾波器[14]模型和隱馬爾可夫模型(HMM,hidden Markov model)[15]是滿足這2 個假設的強大模型。對于這些特定模型,諸如卡爾曼濾波器和維特比算法等有效的關聯(lián)算法可以從式(7)導出??柭鼮V波器中使用的線性模型的描述如式(8)和式(9)所示。
其中,w和z是高斯噪聲,D和L是常數矩陣??柭鼮V波器使用觀察到的r1:t來估計潛在的未知xt。在離散情況下,隱馬爾可夫模型使用一個狀態(tài)轉移矩陣和一個發(fā)射矩陣分別代替式(8)和式(9)。
將攻擊場景表示為s,并假設有一組m個攻擊過程模型的集合S={s1,s2,…,sm}。這里的檢測問題是確定哪個攻擊正在產生這些觀察結果r1:t=r1,r2,…,rt?;谑?6)的分析,比較各種攻擊情形的可能性p(r1:t|sj),并用式(10)所示的不等式識別攻擊。
其中,A和B是2 個閾值。如果rt大于A,得出攻擊是sj的結論;如果rt小于B,得出攻擊是sk的結論;如果rt小于A但大于B,將繼續(xù)接收新的觀察結果,直到rt超過閾值A或B。雖然概率p(r1:t|sj)可以遞歸計算并從式(7)導出,但在大多數情況下并不知道概率分布的分布公式(例如,如何計算p(r1:t|sj),在文獻[12]中被稱為HMM 的“問題1”)。因此,不能使用Neyman-Pearson檢測理論來得出相關的誤報率和誤檢率。將誤報率表示為α=ps=sk(rt>A),即攻擊是sk但是rt>A。類似地,將誤報率表示為β=ps=sj(rt<B)。根據順序分析的結果[16],得到不等式1?β≥Aα和β≤ (1?α)B。
卡爾曼濾波器線性模型和HMM 都已應用于模擬動態(tài)攻擊過程或正常軟件行為?;趥魅静∧P秃蛯焖賯鞑サ娜湎x觀察數據,文獻[17]使用線性模型來描述蠕蟲傳播的動態(tài)過程,并使用卡爾曼濾波器實時預測蠕蟲傳播。文獻[18]使用訓練數據學習HMM,表示正常的軟件行為。然而,在通常情況下,獲得這些模型的準確參數是比較困難的,因此,本文的方法是基于無參數的時間序列模型。
由于內網攻擊的證據通常分散在跨空間和時間分布的事件上,單純依賴基于空間序列或者時間序列的事件關聯(lián)都存在不足,因此將空間和時間事件關聯(lián)集成在一起進行入侵檢測非常重要。假設一個攻擊過程可以在3 個觀測空間觀察。每個觀察空間都可以沿著時間序列將其事件與過程模型相關聯(lián)。在每個時間t,來自這3 個觀測空間的事件應該在空間上相關,則有以下2 種方法可以對時空序列的事件進行關聯(lián)。
如圖3 所示,多個觀察空間可以獨立地沿時序關系關聯(lián)事件。每個時序關聯(lián)的結果可以指示該特定觀察空間的“正?!被颉爱惓!毙袨?。利用來自多個觀測空間的結果,如第3 節(jié)所述,可以使用一種碼本或整數規(guī)劃方法在空間上將這些時間關聯(lián)結果相關聯(lián)。
圖3 事件的時空相關性
動態(tài)過程中的幾個狀態(tài)可能導致相同的觀察結果。因此,隱藏狀態(tài)是無法觀察的。例如,HMM具有發(fā)射矩陣。在基于時間序列的關聯(lián)中,觀察序列可能源自隱藏狀態(tài)序列的多個假設。通過多個觀測空間,在每個時間t,理論上本文可以使用碼本方法來區(qū)分隱藏狀態(tài)而不是攻擊場景。只要在表1所示的相關矩陣中添加足夠的具有可區(qū)分特征的觀測空間,就可以使每個狀態(tài)都可觀察到。在這種情況下,一個時間關聯(lián)過程可以直接將觀察序列映射到狀態(tài)序列。但是,在大多數情況下,不需要對每個觀察結果區(qū)分出每個狀態(tài),因為可以根據過程模型的狀態(tài)轉移性質來得出隱藏狀態(tài)的序列。
將動態(tài)攻擊過程的狀態(tài)表示為x,并將到時間t的狀態(tài)x表示為x1,x2,…,xt。假設有2 個觀測空間op和oq來檢測這個攻擊過程,將op直至時間t的觀測結果表示為rp1:t=(rp1,rp2,…,rpt),并且將oq直至時間t的觀測結果表示為rq1:t=(rq1,rq2,…,rqt)。如果具有后驗概率p(st|rp1:t,rp1:t),則在每個時間t,空間上分布和時間上分布的事件可以相互關聯(lián)在一起。根據式(4)和式(7),通常很難計算聯(lián)合概率。但如果2 個觀測空間是獨立的,則通過以下3 個步驟計算p(st|rp1:t,rp1:t)。
步驟1在每個時間t,對于每個觀測空間,根據式(7),關聯(lián)時間事件并分別計算p(st|rp1:t)和p(st|rq1:t)。
步驟2根據式(5),本文關聯(lián)空間事件,并用步驟1得出的p(st|rp1:t)和p(st|rq1:t)計算p(st|rp1:t,rq1:t),其中p(st)可以遞歸計算。
步驟 3p(st|rp1:t,rq1:t)代替p(st|rq1:t)和p(st|rq1:t)。令t=t +1并轉到步驟1。
理論上,即使觀測空間op和oq是依賴的,也可以在式(9)所示的測量方程中增加另一個維度,并通過一個時間關聯(lián)過程來關聯(lián)事件,即
其中,H如式(1)所示。在離散的情況下,正如5.1節(jié)所述,多個觀測空間可以幫助區(qū)分隱藏狀態(tài)并導出HMM 中的稀疏發(fā)射矩陣。對于檢測問題,可以使用式(10)中討論的方法。
隨著從分布式事件中挖掘出更多的證據,本文利用時間和空間模式的聯(lián)合特征提升檢測準確性并降低誤報率。這種方法需要足夠的知識來建立聯(lián)合特征,為此本文實現了一個進程查詢系統(tǒng)來掃描和關聯(lián)分布的事件。進程查詢系統(tǒng)允許用戶在高抽象級別上精細過程特征,并將特征作為查詢提交給關聯(lián)系統(tǒng)。系統(tǒng)根據特征實時掃描和關聯(lián)分布式事件,當前的進程查詢系統(tǒng)僅支持基于時間序列的關聯(lián)。如圖4 所示,進程查詢系統(tǒng)由以下3 個主要組件組成:用戶界面、關聯(lián)引擎和面向消息的中間件(MOM,message oriented middleware)。主題包括事件發(fā)布主題和事件訂閱主題,其中事件以主題發(fā)布到MOM 中,例如網絡延遲。通過前端用戶界面,用戶可以定義具有高級抽象的過程特征,例如隱馬爾可夫模型。
圖4 進程查詢系統(tǒng)架構
事件訂閱以主題方式將MOM 消息提交給后端關聯(lián)引擎。關聯(lián)引擎解析查詢并使用用戶在MOM中訂閱的事件。用戶定義的過程模型調用多假設跟蹤算法以掃描和關聯(lián)傳入事件。在事件關聯(lián)期間,該算法遞歸地計算新的事件與現有事件假設相關的概率。新的事件被添加到具有最大似然的假設中,并且更新假設集。提交的過程模型用于計算新的事件與現有事件假設相關的條件概率。
在由異構的服務器和工作站組成的測試床上對該系統(tǒng)進行實驗。測試床是一個隔離區(qū)(DMZ,demilitarized zone),由4 個服務器(host1~host4)組成,每個服務器運行RedHat Linux 系統(tǒng)和Apache HTTP server。在另一個網絡上的第五臺服務器充當外部攻擊主機,它發(fā)起一個拒絕服務(DoS,denial of service)攻擊。每個服務器都配備了一個連續(xù)運行的用戶空間傳感器。該傳感器除了收集系統(tǒng)狀態(tài)外,它還監(jiān)視httpd、bash 和sh 進程。傳感器的狀態(tài)提取模塊每4 s 輪詢一次所有被監(jiān)控的進程和系統(tǒng)指標。傳感器的評估模塊在5 個樣本的窗口上平滑這些連續(xù)的指標數據。
系統(tǒng)運行在一臺本地Sun Fire 210 服務器上,服務器上有雙核1 GHz UltraSPARC III 處理器和Solaris 9,并且通過TCP socket 監(jiān)聽主機的觀察結果。進程查詢引擎還監(jiān)聽來自網絡入侵檢測傳感器(Snort)的觀察結果,Snort 監(jiān)視DMZ 上的網絡流量。因此,實驗中有2 個獨立的觀測空間。
系統(tǒng)向Web 用戶界面實時報告結果,該界面顯示觀察結果和相關的分數的軌跡。分數是一種定量度量,它介于0.0~1.0 之間,反映了一個提交的進程模型被攻擊的概率。因此,分數是對與事件關聯(lián)模型相關的每個主機狀態(tài)間接的和實時的度量。通過提交多個流程模型,可以有效地監(jiān)控多個場景中的每個主機。
監(jiān)控過程會記錄每個被監(jiān)控主機的分數和相應進度條的變化,其根本目標是評估在多階段攻擊中系統(tǒng)減少誤報的能力,方法是將來自雙方空間的觀察結果關聯(lián)起來,并計算反映每個主機相對狀態(tài)的跟蹤分數。
實驗利用Apache Web 服務器版本2.0.40~2.0.52 中的一個漏洞,該漏洞允許攻擊者通過向服務器大量發(fā)送專門制作的HTTP GET 請求來引發(fā)DoS。這會導致大量CPU 和內存的消耗,并可能使整個服務器癱瘓,最終導致DoS。因為Apache 服務器在受到攻擊時從不關閉連接,所以如果及時阻止父服務器進程httpd,并使用備份的Web 服務器,那么可以通過短時間的中斷來阻止攻擊。模擬攻擊序列如下。
1)攻擊者使用nmap 從外部攻擊主機發(fā)起對4臺DMZ 服務器的非對稱隱身端口掃描,以識別潛在的易受攻擊的目標。
2)攻擊者等待所有掃描結果,并注意到每個服務器都在監(jiān)聽端口8 000。
3)攻擊者等待30 s,并對一臺服務器(host3)發(fā)起Apache DoS 攻擊,監(jiān)聽端口8 000。
4)攻擊者等待30 s 并終止攻擊。
在這個實驗中,系統(tǒng)只加載時空事件關聯(lián)模型,場景特征的構建方法在上述模擬攻擊序列下,并且未進行任何干涉,模擬攻擊200 次,收集200臺受攻擊主機和600 臺未受攻擊而正常運行的計算機隨時間演化的狀態(tài)序列集合,人工分析這個演化序列集合來構建正常主機和受到攻擊主機的場景特征。
通過傳感器的數據收集和在線分析得到場景特征后,本實驗使用進程查詢系統(tǒng)來進行攻擊檢測實驗。圖5 中的時間序列顯示了在大約10 min 內,每個主機的最高分數的變化??v坐標是受攻擊的可能性,由事件關聯(lián)模型為每個服務器確定。
圖5 顯示了模型在模擬人工DoS 攻擊前、攻擊中和攻擊后的分類和識別性能。本文將服務器狀態(tài)區(qū)分為平常狀態(tài)、可疑狀態(tài)和受攻擊狀態(tài)。其中,平常狀態(tài)下服務器正常運行;可疑狀態(tài)下服務器仍在正常運行但疑似已經受到攻擊,即其受攻擊可能性開始增長,且增長速度較快;受攻擊狀態(tài)表示服務器受到攻擊并且無法正常運行,受攻擊可能性超過了0.9。最初,每個服務器的狀態(tài)估計是平常狀態(tài)。掃描啟動后不久(實驗開始280 s),每個服務器都轉換到可疑狀態(tài)。當396 s 向host3發(fā)起DoS 攻擊時,其分數突然增加,迅速將其轉移到受攻擊狀態(tài)。其他3 個服務器繼續(xù)正常運行,并保持在可疑狀態(tài)。在415 s,也就是DoS 攻擊開始19 s 后,host3被攻擊的可能性增加到0.95。在此階段,管理員或自主修復機制可以通過終止相關的httpd 進程來降低host3被攻擊的程度。
圖5 進程查詢系統(tǒng)評估4 臺服務器受攻擊的可能性
圖6 顯示了同一時間段內報告給進程查詢引擎的主機觀測結果的累計增長情況。從圖6 可以看出,在實際DoS 攻擊開始之前,這4 個服務器如何生成類似級別的主機觀察結果。最明顯的是,攻擊發(fā)起后不久,受攻擊服務器(host3)的累計的主機觀察值突然顯著增加。圖5 對這一趨勢的識別顯示了簡單的、短期的主機行為異常與可疑的網絡偵察活動之間存在明顯的相關性。在這次實驗中,傳感器提供了重要的指標,這些指標驅動受攻擊服務器的狀態(tài)評估為受攻擊狀態(tài),從而能夠在攻擊仍在進行時將其快速檢測出來。
關于場景特征的構建問題,系統(tǒng)提供了基于專家知識和基于數據挖掘這2 種方法,并分別使用這2 種場景特征來進行攻擊檢測實驗,模擬攻擊方法如上所述。
圖6 由每個被監(jiān)控主機的傳感器生成的主機觀察結果,并報告給進程查詢引擎
對于基于數據挖掘的方法,系統(tǒng)不僅使用上述收集到的狀態(tài)序列集合,還使用了這600 臺主機和對應網絡的資源隨時間變化的情況,其中收集方法為從開始到700 s 內,每10 s 收集一次。對于某次攻擊模擬在400 s 時收集的資源情況如表2 所示。通過使用數據挖掘系統(tǒng),得到具有時間和空間模式的聯(lián)合特征。
表2 某次攻擊模擬在400 s 時的資源分布情況
系統(tǒng)分別使用上述2 種特征,設置報警閾值為0.95(即受攻擊的可能性超過0.95),誤報率和漏報率如表3 所示。
表3 誤報率和漏報率
由表3 可知,使用這2 種特征構建方法,進程查詢系統(tǒng)在誤報率上相差不是很大。而對于漏報率,基于數據挖掘的方法比基于專家知識的方法低很多。因此,可以證明隨著從分布式事件中挖掘出更多的證據,使用具有時間和空間模式的聯(lián)合特征可以降低誤報率和漏報率。
本文提出了基于時空事件關聯(lián)的內網攻擊檢測方法,并基于該方法實現了一個可以根據用戶對動態(tài)進程的高層描述對大量分布的事件進行關聯(lián)查詢的進程查詢系統(tǒng)。實驗表明,該系統(tǒng)在不增加明顯計算開銷的情況下,能夠顯著減少內網攻擊檢測的誤報率。未來會在更大的網絡范圍來評估該系統(tǒng)運行時的穩(wěn)定性和檢測性能。