琚安康,郭淵博,李濤,葉子維
(戰(zhàn)略支援部隊信息工程大學密碼工程學院,河南 鄭州 450001)
根據(jù)近年來國家互聯(lián)網(wǎng)應(yīng)急中心發(fā)布的中國互聯(lián)網(wǎng)網(wǎng)絡(luò)安全報告,個人信息泄露、網(wǎng)絡(luò)釣魚等安全事件數(shù)量呈上升趨勢;網(wǎng)絡(luò)基礎(chǔ)設(shè)備、域名系統(tǒng)等基礎(chǔ)網(wǎng)絡(luò)和關(guān)鍵基礎(chǔ)設(shè)施依然面臨著較大的安全風險,網(wǎng)絡(luò)攻擊事件多有發(fā)生,針對重要信息系統(tǒng)的高強度、有組織的攻擊威脅形勢日益嚴峻,多步攻擊已經(jīng)成為網(wǎng)絡(luò)攻擊的主要方式[1]。
網(wǎng)絡(luò)攻擊是嘗試破壞資源完整性、保密性和可用性的行為集合。當攻擊行為具有獨立的、不可分解的攻擊目的時,被稱為單步攻擊。多步攻擊是將單步攻擊按照一定的邏輯關(guān)系進行排列,在特定的時間和空間中形成一個攻擊序列,從而實現(xiàn)僅用單步攻擊無法實現(xiàn)的攻擊意圖[2]。
與傳統(tǒng)攻擊方式相比,多步攻擊采用的手段更加豐富,不僅包括拒絕服務(wù)(DoS, denial of service)攻擊、Web滲透(如跨站腳本攻擊等)、掃描攻擊、暴力破解等常見攻擊方式,還包括隱蔽式木馬、新型僵尸網(wǎng)絡(luò)等新型攻擊手段。采用新型攻擊手段的多步攻擊以復(fù)雜網(wǎng)絡(luò)攻擊[3]和 APT(advanced persistent threat)[4]為典型代表,其造成的危害更加嚴重且檢測難度較大,是影響當前網(wǎng)絡(luò)安全狀況的重要因素。APT是一種具有高度復(fù)雜性、強隱蔽性的多步攻擊,其檢測問題已成為網(wǎng)絡(luò)安全領(lǐng)域關(guān)注的重點,也是近年來學術(shù)研究的熱點課題[3,5]。
告警關(guān)聯(lián)分析[6-8]、攻擊圖[9]等技術(shù)為多步攻擊檢測提供了很好的解決思路,但這些方法都建立在已知攻擊特征的檢測技術(shù)基礎(chǔ)上,依賴于多步攻擊模式的專家知識,針對未知特征的攻擊行為沒有很好的檢測效果。異常檢測技術(shù)是應(yīng)對APT等未知威脅的可行方法,但傳統(tǒng)單點檢測的方法只能發(fā)現(xiàn)某階段的局部異常事件,無法從局部異常事件還原出整體攻擊過程;同時,由于異常檢測技術(shù)本身誤報情況嚴重,如何降低誤報是異常檢測技術(shù)研究的關(guān)鍵問題。
GBAD(graph-based anomaly detection)在社區(qū)發(fā)現(xiàn)、模式識別等眾多領(lǐng)域得到廣泛應(yīng)用,在入侵檢測領(lǐng)域同樣有著諸多研究成果[10]。結(jié)合典型企業(yè)網(wǎng)絡(luò)環(huán)境與攻擊鏈模型,本文提出了一種通過檢測網(wǎng)絡(luò)通信異常來識別多步攻擊的方法。分別采用基于圖的異常分析和小波分析方法識別多步攻擊帶來的2類共4種網(wǎng)絡(luò)異常行為,并給出關(guān)聯(lián)重構(gòu)多步攻擊場景的方法,為檢測復(fù)雜網(wǎng)絡(luò)攻擊、APT等定制化多步攻擊提供方法。
本節(jié)首先給出典型企業(yè)網(wǎng)絡(luò)部署示例,并舉例說明企業(yè)網(wǎng)絡(luò)環(huán)境下的多步攻擊實施過程,在此基礎(chǔ)上給出基本定義和多步攻擊威脅模型。
企業(yè)網(wǎng)絡(luò)環(huán)境下多步攻擊場景可用擊殺鏈模型進行刻畫。擊殺鏈模型[11]是對攻擊行為的一種通用性描述,它最早由Jeffrey Carr于2008年提出,并在2013年經(jīng)Lockheed Martin公司優(yōu)化進而形成模型。擊殺鏈模型將攻擊概括為目標偵察、武器定制、投遞、利用、安裝、建立通道、行動實施等攻擊步驟。擊殺鏈實施過程如圖1所示。
圖1 擊殺鏈實施過程
擊殺鏈實施過程具體描述如下。攻擊者在采取攻擊行動之前,首先要對攻擊目標的相關(guān)情報進行收集,對目標網(wǎng)絡(luò)有一定的了解后,定制相應(yīng)的攻擊工具,開始實施攻擊行為。初始入侵階段采用社會工程、漏洞利用等方法,對目標網(wǎng)絡(luò)中的弱點主機滲透侵入,并以此建立立足點。對立足點主機實現(xiàn)持續(xù)控制后,通過立足點主機對內(nèi)網(wǎng)進行探測,分析網(wǎng)絡(luò)拓撲和可利用漏洞。之后向內(nèi)網(wǎng)中弱點主機植入惡意軟件,提升用戶權(quán)限,并逐步向內(nèi)網(wǎng)滲透。在收集獲取到目標數(shù)據(jù)后,將數(shù)據(jù)通過層層跳板外傳,最后清除日志掩飾攻擊行為。
典型企業(yè)網(wǎng)絡(luò)環(huán)境如圖2所示。攻擊者為獲取系統(tǒng)內(nèi)部敏感數(shù)據(jù),可通過下述步驟對數(shù)據(jù)進行竊取。1) 在攻擊之初,攻擊者對目標網(wǎng)絡(luò)進行掃描探測,滲透侵入DMZ(demilitarized zone)中的Web服務(wù)器,并以此作為繼續(xù)侵入內(nèi)部系統(tǒng)的立足點;2) 攻擊者以 Web服務(wù)器為立足點,逐步滲透侵入內(nèi)部關(guān)鍵數(shù)據(jù)節(jié)點;3) 攻擊者在關(guān)鍵數(shù)據(jù)節(jié)點加載惡意軟件,提升用戶權(quán)限并獲取關(guān)鍵數(shù)據(jù),然后通過遠程訪問服務(wù)在內(nèi)部數(shù)據(jù)節(jié)點與外部主機之間創(chuàng)建網(wǎng)絡(luò)隧道;4) 利用網(wǎng)絡(luò)隧道,將關(guān)鍵文件或數(shù)據(jù)傳輸至DMZ中的Web服務(wù)器,并通過各個跳板,將敏感數(shù)據(jù)傳輸至外部站點,最終實現(xiàn)數(shù)據(jù)竊取目的。
一般來說,在每一個活動步驟中,攻擊者雖然有意識地在目的達成后擦除系統(tǒng)日志等攻擊痕跡,設(shè)法偽裝自己,然而網(wǎng)絡(luò)通信行為必然會在各類網(wǎng)絡(luò)設(shè)備中留下行為痕跡,也會在網(wǎng)絡(luò)通信日志中留下活動記錄,并且攻擊者的網(wǎng)絡(luò)通信行為與正常用戶操作會有差別,這為檢測出攻擊行為提供了可能。另一方面,在企業(yè)內(nèi)部網(wǎng)絡(luò)環(huán)境中,由于業(yè)務(wù)邏輯較為固定,且在網(wǎng)絡(luò)邊緣部署內(nèi)容過濾產(chǎn)品分析網(wǎng)絡(luò)數(shù)據(jù)分組并對網(wǎng)絡(luò)內(nèi)容進行過濾,從而使進出網(wǎng)絡(luò)的訪問行為受限,因此通過檢測異常網(wǎng)絡(luò)通信行為來識別多步攻擊場景的方法是可行且有效的。
圖2 典型企業(yè)網(wǎng)絡(luò)環(huán)境
由于攻擊活動的實施會在網(wǎng)絡(luò)通信日志中留下記錄,且與企業(yè)網(wǎng)絡(luò)環(huán)境中正常業(yè)務(wù)邏輯有明顯區(qū)別,根據(jù)上述分析可以得出采用基于網(wǎng)絡(luò)圖的方法檢測多步攻擊網(wǎng)絡(luò)通信異常行為的檢測依據(jù):多步攻擊的發(fā)生,會在受攻擊主機、中間節(jié)點、受攻擊對象等各類網(wǎng)絡(luò)實體之間引入額外的通信流量,且攻擊活動會帶來與正常業(yè)務(wù)相區(qū)別的通信模式。
基于上述檢測依據(jù),本文提出基于檢測網(wǎng)絡(luò)通信異常行為的多步攻擊檢測方法,識別異常通信子圖并結(jié)合通信數(shù)據(jù)量的統(tǒng)計異常情況,確定異常主機并關(guān)聯(lián)分析得出多步攻擊事件,通過后續(xù)綜合分析得出多步攻擊場景,以發(fā)現(xiàn)系統(tǒng)潛在安全威脅,保護系統(tǒng)資源的完整性、保密性和可用性。
為便于后續(xù)描述,給出下述基本定義。
定義1 多步攻擊事件集。攻擊者為實現(xiàn)最終攻擊目的而實施的攻擊事件集,是由多個基本攻擊事件構(gòu)成的攻擊事件集合。
定義2 多步攻擊場景。具有特定攻擊目的并由攻擊者發(fā)起的一次有計劃的、完整的攻擊過程,通常由多步攻擊事件集按照一定邏輯關(guān)系排列構(gòu)成,是集合中各攻擊事件按照一定的時間或空間關(guān)系組成的攻擊序列。
在正常的工作狀態(tài)下,主機的網(wǎng)絡(luò)通信行為有著一定的規(guī)律性。例如,有些主機之間沒有直接通信關(guān)系、平時通信量較少或只有單向連接關(guān)系等;而在多步攻擊實施過程中,攻擊發(fā)起主機或受感染主機的網(wǎng)絡(luò)通信行為與正常業(yè)務(wù)主機的行為有所偏離[12]。4種最為常見的多步攻擊事件類型介紹如下。
1) 拒絕服務(wù)攻擊(DoS)。攻擊者通過控制僵尸網(wǎng)絡(luò)發(fā)動 DoS 攻擊,以達到致癱目標節(jié)點的目的,在攻擊發(fā)動階段會有多個IP向單個主機發(fā)起連接?;竟羰录g具有并列關(guān)系,其網(wǎng)絡(luò)通信行為呈現(xiàn)匯聚形態(tài)。
2) 掃描探測(scan)。攻擊者向內(nèi)網(wǎng)滲透的首要工作是掃描探測以查找弱點主機,掃描一定范圍的內(nèi)網(wǎng)節(jié)點,查找具有開放服務(wù)和可利用漏洞的弱點主機,在這一過程中,攻擊者會從單個主機向內(nèi)部網(wǎng)絡(luò)中多臺主機發(fā)起網(wǎng)絡(luò)通信?;竟羰录g具有并列關(guān)系,其網(wǎng)絡(luò)通信行為呈現(xiàn)發(fā)散形態(tài)。
3) 內(nèi)網(wǎng)滲透(penetrate)。攻擊者從立足點主機出發(fā),逐步向內(nèi)網(wǎng)遷移滲透,尋找存儲關(guān)鍵數(shù)據(jù)的目標主機,是由弱點主機一步一步探測并向目標主機遷移的過程?;竟羰录g具有依賴關(guān)系,其網(wǎng)絡(luò)通信行為呈現(xiàn)連續(xù)的發(fā)散形態(tài)。
4) 數(shù)據(jù)獲?。╣et)。在得到關(guān)鍵節(jié)點的高級權(quán)限后,攻擊者提取目標數(shù)據(jù)并通過跳板節(jié)點向網(wǎng)外傳輸,會帶來通信流量的數(shù)據(jù)異常。基本事件之間具有選擇關(guān)系,其網(wǎng)絡(luò)通信行為呈現(xiàn)明顯突發(fā)性變化。
在上述4種攻擊示例中,示例1)~示例3)都是特殊的通信子圖形式,通過對一定時間窗口內(nèi)的網(wǎng)絡(luò)通信情況進行分析,得出異常子圖并對其分析驗證;示例4)需要對2個節(jié)點之間的正常通信數(shù)據(jù)進行建模分析,找出通信行為統(tǒng)計規(guī)律,計算通信過程在各時刻的異常值,從而發(fā)現(xiàn)異常的數(shù)據(jù)通信。
與上述4種多步攻擊事件相對應(yīng)的網(wǎng)絡(luò)通信特征如圖3所示。其中,圖3(a)為in-star,即多條連接指向單個節(jié)點;圖3(b)為out-star,即單個節(jié)點發(fā)出多條連接;圖3(c)為k-path,即攻擊者向目標節(jié)點逐步滲透;圖3(d)為 red-edge,即通信邊的數(shù)據(jù)流量突發(fā)性異常。
圖3 4種網(wǎng)絡(luò)異常通信特征
攻擊鏈模型中各攻擊階段描述與圖3中對應(yīng)的異常通信特征如表1所示。
表1 各攻擊階段及異常通信特征
通過上述對 4種類型多步攻擊實施過程的分析,可以歸納出下述3種基本攻擊事件之間的邏輯關(guān)系。
1) 并列關(guān)系。多個單步攻擊以任意次序全部成功,才是下一步攻擊實施的前提。
2) 依賴關(guān)系。一個單步攻擊的成功是另一個單步攻擊實施的前提條件。
3) 選擇關(guān)系。多個單步攻擊中任意一個成功實施,即為另一個單步攻擊創(chuàng)造了前提。
上述3種關(guān)系概括了大多數(shù)多步攻擊實施過程中各原子事件的基本邏輯關(guān)系,在多步攻擊實施過程中,一個完整的多步攻擊可能是多種類型多步攻擊事件的組合。
上面給出了典型企業(yè)網(wǎng)絡(luò)環(huán)境及多步攻擊示例,在實際檢測過程中,需要先根據(jù)異常網(wǎng)絡(luò)通信行為檢測出多步攻擊事件,再將多步攻擊事件進行關(guān)聯(lián)分析,從而得出多步攻擊場景,最終達到檢測出多步攻擊的目的。
本文通過分析對應(yīng)于網(wǎng)絡(luò)圖的各類異常子圖模式,識別多步攻擊帶來的異常網(wǎng)絡(luò)通信行為。針對多步攻擊帶來的異常通信特征,采用基于圖的異常檢測方法,檢測滑動時間窗口內(nèi)的異常通信子圖;并基于小波變換的方法分析檢測網(wǎng)絡(luò)攻擊行為在持續(xù)控制階段、數(shù)據(jù)外傳階段產(chǎn)生的異常通信行為,然后通過對2種異常的關(guān)聯(lián)分析得出主機的異常值評分,并通過對各個異常事件的關(guān)聯(lián)重構(gòu)出多步攻擊場景。
本節(jié)首先介紹網(wǎng)絡(luò)通信模型的基本定義,在此基礎(chǔ)上給出基于網(wǎng)絡(luò)異常識別的多步攻擊檢測解決方案。
對網(wǎng)絡(luò)通信模型進行如下定義。整體網(wǎng)絡(luò)通信數(shù)據(jù)可表示在一個時間與通信圖的叉乘空間S=T×G內(nèi)[13],其中,通信圖(,)G=V E,節(jié)點集V包括網(wǎng)絡(luò)內(nèi)所有通信主機,邊集E包括所有具有網(wǎng)絡(luò)通信行為的通信邊。對于每條邊e∈E,在任意的離散時間點t∈{ 1,…,T},都可以得到一個數(shù)據(jù)過程Xe(t),時間T內(nèi)所有時間窗口Ω= { (s,s+ 1,…,k): 0 ≤s<k≤T},給出包含時間T內(nèi)的所有時間窗口集合的全集Γ= { {ω1,ω2,…,ωi,…,ωn}:ωi∈Ω}。通常只研究包含約束的時間窗口集合τ∈ΓR,將在一定的時間窗口τ內(nèi)的通信邊e表示為Xe(τ)。研究的整體數(shù)據(jù)空間可表示為S= { (ω,g) |ω∈Ω,g∈G},其中,ω為時間窗口,g是在該時間窗口內(nèi)的通信圖。
本節(jié)檢測第一類異常——異常子圖,對應(yīng)于圖3(a)~圖3(c)所示的3種異常。采用基于滑動時間窗口的異常通信子圖檢測算法,在特定時間窗口內(nèi)匹配與這3種異常相對應(yīng)的子圖模式,并根據(jù)匹配度計算異常值,異常值計算方法需滿足以下條件。
1) 在一定時間窗口內(nèi),某一節(jié)點的度大于正常情況,且入度遠大于出度,二者的值相差越多,異常值越大。
2) 在一定時間窗口內(nèi),某一節(jié)點的度大于正常情況,且出度遠大于入度,二者的值相差越多,異常值越大。
3) 若干個節(jié)點出度大于入度,且形成連續(xù)滲透的圖狀結(jié)構(gòu),時間上有先后約束關(guān)系。由于路徑過短不能反映出多步攻擊的實施特點,路徑過長的多步攻擊發(fā)生可能性較低,且可以被短路徑檢測結(jié)果涵蓋,綜合考慮實際攻擊案例,本文選擇異常路徑長度為3。
整體數(shù)據(jù)空間S= { (ω,g) |ω∈Ω,g∈G},其中,時間窗口ω與時間窗口內(nèi)的通信圖g在上文中已有定義,這里考察異常子圖集合S'?S。引入異常值函數(shù)f的定義,f:S→R,且 ?s'∈S',有|f(s')-其中c0為異常閾值,異常值函數(shù)f的計算過程遵照上述原則。
異常子圖生成算法思想為:對滑動時間窗口內(nèi)的通信圖g計算其異常值,若g滿足異常子圖模式且異常值大于設(shè)定閾值,則將其加入異常子圖列
與 Neil等[13-14]以天為時間單位進行異常分析的方法不同,由于以天為單位不符合多步攻擊帶來網(wǎng)絡(luò)通信的短時間變化,為更加細粒度地分析攻擊實施細節(jié),本文選取的時間窗口為7 200 s,即2 h;時間窗口每次滑動1 800 s,即30 min。
對于有n個通信節(jié)點、e條通信邊的通信圖G,檢測T時間內(nèi)的所有異常子圖(假設(shè)時間窗口為tw,每次滑動ts),其算法復(fù)雜度為表。此算法目的在于,檢測出在一定時間區(qū)間內(nèi)與特征模式相匹配的所有異常通信子圖,計算出相應(yīng)置信度和節(jié)點異常值,并生成異常子圖列表。異常子圖生成算法如算法1所示。
算法1 異常子圖生成算法
輸入(G,)Ω
輸出(graph_list)
本節(jié)檢測第二類異?!惓Mㄐ胚?,即圖3(d)所示的異常。使用泊松模型描述網(wǎng)絡(luò)突發(fā)量時存在較大誤差,現(xiàn)有研究表明,正常網(wǎng)絡(luò)流量具有自相似性,而網(wǎng)絡(luò)攻擊行為產(chǎn)生的異常流量會對網(wǎng)絡(luò)流量的自相似性產(chǎn)生明顯的影響[15]。Hurst指數(shù)是反映網(wǎng)絡(luò)流量長相關(guān)和自相似性的重要指標。因此,為有效地檢測出單個通信邊的數(shù)據(jù)量異常,本文采用小波分析的方法,求解正常通信流量的Hurst指數(shù),檢測出網(wǎng)絡(luò)通信中的異常點,返回異常通信邊列表edge_list。
小波變換通過將時域中的通信數(shù)據(jù)變換到小波域內(nèi)對數(shù)據(jù)進行預(yù)測,再將預(yù)測值轉(zhuǎn)換到時域中。目前,主要有3種利用小波變換求解Hurst指數(shù)的方法:能量法、小波分析法和譜估計法。本文選擇小波分析法進行求解,算法原理描述如下。
給定一個時間序列Xi,i= 1 ,2,… ,n,對其進行二進制小波變換。
其中,ψ(?)為母小波函數(shù),dX(j,k)為小波變換系數(shù),j為尺度參數(shù),k為平移參數(shù)。若Xi為二階平穩(wěn)過程,則
其中,f(v)和ψ(v)分別為Xi的功率譜和ψ(?)的傅里葉變換,而且
于是有
其中,c= lb[Cf C(H,ψ)],采用最小二乘法線性擬合得到的斜率為α= 2H- 1。
Mallat算法是計算離散柵格上小波變換的快速算法,其時間復(fù)雜度和空間復(fù)雜度均為O(N),其中N為待分析序列的長度,這里選取Mallat算法對通信序列進行離散小波變換,以實現(xiàn)求解Hurst參數(shù)過程中小波系數(shù)的快速提取。
3.1節(jié)~3.3節(jié)完成了對異常子圖和異常通信過程的建模分析,分別得出異常子圖列表 graph_list和異常通信邊列表edge_list。為降低誤報率,還需要采用異常關(guān)聯(lián)算法,將2類異常進行關(guān)聯(lián)分析,得出置信度和完整性更高的攻擊場景。異常關(guān)聯(lián)算法通過綜合評估多步攻擊事件異常值,得出節(jié)點異常值評分結(jié)果,進而生成異常列表以便于后續(xù)檢索分析,最后生成按置信度大小排列的多步攻擊場景列表,如算法2所示。
//對node_list進行歸約和聚合
correlate and aggregate node_list;
//關(guān)聯(lián)分析得出多步攻擊場景列表senoria_list;return node_list and senoria_list.
用戶可以以異常主機為索引進行檢索查詢和完善驗證,具體應(yīng)用過程如圖4所示。
圖4 應(yīng)用過程
為驗證所提方法,本文分別對LLDoS1.0數(shù)據(jù)集和LANL數(shù)據(jù)集開展實驗,驗證方法的有效性和擴展性,算法實現(xiàn)分別使用Python包NetworkX(版本號1.11)和PyWavlets(版本號0.5.2)。
目前,在入侵檢測技術(shù)的相關(guān)研究中,檢測數(shù)據(jù)源的問題一直比較突出。雖然目前文獻中已經(jīng)有學者研究討論了入侵檢測數(shù)據(jù)集陳舊的問題,然而,這些數(shù)據(jù)集仍然被近來的多數(shù)研究采用;同時也有課題組給出自己的數(shù)據(jù)集模擬生成方法,產(chǎn)生testbed數(shù)據(jù)集[16],針對生成的 testbed數(shù)據(jù)集開展實驗,以方便其他研究人員使用或參考生成滿足需求的測試數(shù)據(jù)集??傮w來說,現(xiàn)有的公開數(shù)據(jù)集不能滿足新型攻擊檢測及驗證需求,而模擬數(shù)據(jù)不能反映網(wǎng)絡(luò)攻擊的現(xiàn)實情況。當前在入侵檢測領(lǐng)域常用的數(shù)據(jù)集如表2所示。
其他較新的入侵檢測數(shù)據(jù)集有ISCX、MAWI、NSA Data Capture、Internet Storm Center等。然而即使在最近的文獻中,這些新數(shù)據(jù)集的使用率也并不高,原因在于沒有一個較權(quán)威的認證使其他研究者認可其可靠性,而KDD 99、DARPA 99等數(shù)據(jù)集雖然較老舊,但仍是大部分研究者選用的數(shù)據(jù)對象。
綜合考慮現(xiàn)有方法,本文選取了DARPA 2000 LLDoS1.0數(shù)據(jù)集和 LANL實驗室的公開測試數(shù)據(jù)集作為實驗對象。以較權(quán)威的DARPA 2000數(shù)據(jù)集中的 LLDoS1.0數(shù)據(jù)集檢驗方法的有效性;為檢驗大型網(wǎng)絡(luò)中未知特征的攻擊檢測效果,選取LANL數(shù)據(jù)集對方法的分析效率和擴展性進行進一步分析。
DARPA 2000數(shù)據(jù)集[16]是MIT Lincoln實驗室在2000年進行 IDS評測時獲得的數(shù)據(jù)集,具有較強的權(quán)威性和代表性。數(shù)據(jù)集包含2個多步攻擊場景,分別為LLDoS1.0和LLDoS2.0.2。為驗證本文方法的有效性,采用LLDoS1.0 Inside數(shù)據(jù)開展實驗,該數(shù)據(jù)中包括了漏洞探測、非法訪問、程序安裝以及攻擊發(fā)起等多種多步攻擊事件,LLDoS1.0數(shù)據(jù)集共包含5個階段的數(shù)據(jù):IPsweep、Probe、Breakin、Installation、Action。LLDos 1.0攻擊過程如圖5所示。
2種算法實現(xiàn)分別使用Python包NetworkX(版本號1.11)和PyWavlets(版本號0.5.2)。算法在實現(xiàn)中使用的核心函數(shù)是 degree_centrality(G) 、in_degree_centrality(G) 、out_degree_centrality(G) 、strategy_largest_first(G, color)、max_degree (int),其功能是對網(wǎng)絡(luò)圖G、節(jié)點集合中所包含子圖及節(jié)點出入度的排序輸出。通過對網(wǎng)絡(luò)通信圖的分析,得出異常子圖列表和異常通信邊的排序列表,經(jīng)過可視化分析后,由graphviz繪出檢測結(jié)果。
圖5 LLDoS1.0攻擊過程
異常子圖檢測算法實現(xiàn)過程如下。首先定義網(wǎng)絡(luò)圖對象G,分別讀取LLS_DDoS_1.0-inside.dump文件中的tcpdump記錄,按時間順序并將其加入G中(這里以IP地址為節(jié)點標識),其中G表示了在時間窗口內(nèi)的網(wǎng)絡(luò)圖連通情況(選取時間窗口為 30 s),分別計算時間窗口內(nèi)各個子圖的異常值,將異常值過高的子圖輸出。
經(jīng)過本文提出的檢測算法,得到異常子圖a(攻擊發(fā)起主機)和異常子圖b(受害主機)分別如圖6和圖7所示。然后,經(jīng)過異常值關(guān)聯(lián)分析得出多步攻擊事件,通過對網(wǎng)絡(luò)通信圖的分析,得出異常子圖列表和異常通信邊的排序列表,經(jīng)過可視化分析后,由graphviz繪出檢測結(jié)果,最終得到一個由原始攻擊組成的攻擊場景。
圖6 異常子圖a(攻擊發(fā)起主機)
圖7 異常子圖b(受害主機)
對 LLDoS1.0 inside_dump數(shù)據(jù)的實驗結(jié)果表明,此方法可有效檢測出探測滲透過程、異常數(shù)據(jù)通信(安裝)、DDoS實施過程3個攻擊事件,經(jīng)過關(guān)聯(lián)分析得出整體攻擊場景,如圖8所示。
圖8 LLDoS1.0攻擊場景
針對LLDoS1.0數(shù)據(jù)集的實驗結(jié)果與數(shù)據(jù)集中標注的攻擊情況一致,即與圖5表示的攻擊過程中漏洞探測、攻擊發(fā)起等步驟均一致,與攻擊場景吻合。此方法可有效檢測出探測滲透過程、異常數(shù)據(jù)通信、DDoS實施過程的多步攻擊事件,并經(jīng)過關(guān)聯(lián)分析得出整體攻擊場景。由上述檢測結(jié)果可知,針對多步攻擊檢測場景,本文所提方法可以有效檢測出可疑子圖和可疑通信邊,通過將各類異常子圖按照過程關(guān)聯(lián),可以得出整體多步攻擊場景。
為進一步驗證本文所提方法的擴展性,驗證其在大規(guī)模網(wǎng)絡(luò)中的應(yīng)用效果,選取LANL數(shù)據(jù)集的flows數(shù)據(jù)作為實驗對象,對所提方法的分析效率和擴展性2個方面進行測試。
對LANL數(shù)據(jù)集的flows數(shù)據(jù)實驗與上述實驗略微有所不同。因為LANL數(shù)據(jù)集是經(jīng)過匿名化和預(yù)處理的,數(shù)據(jù)格式規(guī)整,對數(shù)據(jù)集的具體描述如下。
LANL數(shù)據(jù)集[1]是2010年由Los Alamos National Laboratory在其內(nèi)部網(wǎng)絡(luò)數(shù)據(jù)采集而來,其中,flows數(shù)據(jù)分組包括29天內(nèi)由NetFlow記錄產(chǎn)生的通信數(shù)據(jù),共有426 045 096條數(shù)據(jù)記錄,一共包含12 027個主機節(jié)點,99 433條有效通信邊(用IP地址區(qū)分不同節(jié)點,不同的源IP和目的IP看作不同的通信邊),目前對此數(shù)據(jù)集發(fā)表的成果較少。
LANL數(shù)據(jù)集中的flows網(wǎng)絡(luò)流量數(shù)據(jù)采集自關(guān)鍵路由器上搜集的網(wǎng)絡(luò)流量數(shù)據(jù),其數(shù)據(jù)字段為:時間、持續(xù)時間、源主機、源端口、目的主機、目的端口、協(xié)議類型、數(shù)據(jù)分組數(shù)、字節(jié)數(shù)。網(wǎng)絡(luò)流量數(shù)據(jù)示例如圖9所示。
圖9 flows網(wǎng)絡(luò)流量數(shù)據(jù)示例
flows數(shù)據(jù)整體概況如圖10所示。
圖10 flows數(shù)據(jù)整體概況
算法實現(xiàn)基于核心函數(shù)graph. subgraph(nodes)、degree_centrality(G)、in_degree_ centrality(G)、out_degree_centrality(G)、strategy_ largest_ first(G,color)、max_degree (int),其功能是計算節(jié)點的出入度中心性、返回按度降序排列的節(jié)點列表以及計算圖中節(jié)點的最大連通度。
本文采用 PyWavelets對通信邊進行數(shù)據(jù)處理,將LANL數(shù)據(jù)集中前14天數(shù)據(jù)用作訓練集,后15天數(shù)據(jù)用作測試集,以C17693為例,異常通信邊的分析結(jié)果如圖11所示。
圖11 異常通信邊的分析結(jié)果(C17693)
由于 LANL網(wǎng)絡(luò)流量數(shù)據(jù)集中主機節(jié)點數(shù)較多,數(shù)據(jù)量相對較大,采用基于網(wǎng)絡(luò)圖的通信異常檢測方法分析檢測LANL網(wǎng)絡(luò)數(shù)據(jù)中的異常子圖,計算負擔較小,可以有效識別出網(wǎng)絡(luò)圖中的通信異常情況。圖12為一個異常子圖檢測結(jié)果示例。
上述檢測結(jié)果表示的多步攻擊場景是:C12304、C8735等主機對主機 C10202進行 DoS攻擊,導致服務(wù)器癱瘓并獲得主機 C10202的權(quán)限后,利用其作為內(nèi)部滲透的跳板主機,然后進入C6677,最后利用盜用的認證憑證登錄到C7490中獲取數(shù)據(jù)并將數(shù)據(jù)傳出。
圖12 LANL異常子圖檢測結(jié)果示例
針對以APT為代表的多步攻擊,本文提出了一種基于網(wǎng)絡(luò)通信異常識別的多步攻擊檢測方法。采用基于圖的異常檢測算法,檢測滑動時間窗口內(nèi)的異常通信子圖;并基于小波變換分析檢測網(wǎng)絡(luò)攻擊行為在持續(xù)控制階段、數(shù)據(jù)外傳階段產(chǎn)生的異常通信行為;然后對多源異常進行關(guān)聯(lián)分析,以異常主機為索引進行檢索查詢和完善驗證,進而重構(gòu)出多步攻擊場景。分別針對DARPA 2000LLDoS1.0數(shù)據(jù)集和LANL數(shù)據(jù)集開展實驗,驗證本文方法的有效性和擴展性。實驗結(jié)果表明,本文方法可以有效檢測出異常通信子圖和異常通信邊,并通過多源異常關(guān)聯(lián)分析,關(guān)聯(lián)得出DDoS、數(shù)據(jù)竊取等多步攻擊場景。采用基于通信異常識別的方法,不僅可以檢測出已知行為特征的網(wǎng)絡(luò)攻擊類型,對于未知特征的多步攻擊類型同樣具有檢測效果。本文提出的多步攻擊檢測方法,主要具有以下優(yōu)點。
1) 采集數(shù)據(jù)量小,減小對網(wǎng)絡(luò)帶寬的負擔。
2) 通過多維數(shù)據(jù)關(guān)聯(lián),提高檢測的準確度。
3) 整體方法采用異常檢測的思路,可應(yīng)對未知類型的多步攻擊威脅。
4) 適用于大規(guī)模網(wǎng)絡(luò)環(huán)境。
本文所提方法的意義在于檢測出攻擊帶來的網(wǎng)絡(luò)異常行為,但是由于LANL數(shù)據(jù)集適用性不足,實驗結(jié)果有以下不足:LANL的flows數(shù)據(jù)缺乏對網(wǎng)絡(luò)拓撲的說明,由于數(shù)據(jù)來源的局限性,在LANL數(shù)據(jù)集給出的redteam數(shù)據(jù)中,異常事件以認證授權(quán)異常事件為例,缺少其他異常行為的對比驗證數(shù)據(jù),實驗部分缺乏對異常檢測效果的說明驗證。
未來的工作有:1) 結(jié)合其他維度數(shù)據(jù)提高檢測準確度,比如可與主機進程數(shù)據(jù)、IDS告警數(shù)據(jù)、
防火墻日志、域名解析結(jié)果等信息結(jié)合分析,得出更全面更準確的多步攻擊場景,進一步提高檢測準確度;2) 由于實驗數(shù)據(jù)集本身的局限性,缺少對實驗結(jié)果的驗證,后續(xù)可通過對多步攻擊實例的分析,給出實際網(wǎng)絡(luò)環(huán)境的testbed數(shù)據(jù)集[18];3) 數(shù)據(jù)規(guī)模較大時功能受限,存在性能制約因素的影響,可與大數(shù)據(jù)平臺結(jié)合應(yīng)用,提高算法效率和可擴展性;4) 添加網(wǎng)絡(luò)通信量作為邊的權(quán)重,對檢測算法改進也是下一步研究工作的方向。