胡潔 蔡瓊
摘 要:快速準(zhǔn)確地診斷流量異常是大型計(jì)算機(jī)網(wǎng)絡(luò)有效運(yùn)行的關(guān)鍵,然而其通常存在兩方面不足,一方面網(wǎng)絡(luò)流量數(shù)據(jù)無(wú)法進(jìn)行實(shí)時(shí)詳細(xì)的分析,另一方面,一些通用的檢測(cè)指標(biāo)診斷異常的能力較低。為了解決相關(guān)問(wèn)題,提出基于度分布的流量異常在線檢測(cè)方法。在該方案中,首先利用度分布配置流量特征,然后用熵來(lái)確定和反饋度分布的變化,通過(guò)改變熵的值,從而準(zhǔn)確區(qū)分一個(gè)網(wǎng)絡(luò)事件通過(guò)閾值時(shí)是否正常。該方案的測(cè)試結(jié)果表明,它對(duì)在線異常檢測(cè)是可行和有效的。
關(guān)鍵詞:異常檢測(cè);在線檢測(cè);度分布;熵;流量特征
DOIDOI:10.11907/rjdk.162346
中圖分類號(hào):TP309
文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào)文章編號(hào):16727800(2016)011018402
0 引言
異常流量相對(duì)于平穩(wěn)的網(wǎng)絡(luò)流量有著顯著變化,它來(lái)自于網(wǎng)絡(luò)中的擁塞和路由器上的資源過(guò)載。網(wǎng)絡(luò)運(yùn)營(yíng)商必須及時(shí)準(zhǔn)確地檢測(cè)異常流量,否則網(wǎng)絡(luò)無(wú)法有效、可靠地運(yùn)行[1]。研究人員采用了各種分析技術(shù),從基于體積分布的分析到基于網(wǎng)絡(luò)流量分布的分析來(lái)研究流量異常檢測(cè)。而最近研究表明,基于熵的異常檢測(cè)具有更好的效果。該方法是在流量分布中捕捉細(xì)粒度的模式,使用熵來(lái)跟蹤流量分布的變化具有兩方面優(yōu)勢(shì):①利用熵可以提高檢測(cè)靈敏度,異常事件的發(fā)生可能未表現(xiàn)出存儲(chǔ)量異常;②使用流量特征可以診斷信息異常事件的性質(zhì)(如區(qū)分蠕蟲、DDoS攻擊或掃描)[2]。
一般而言,大多數(shù)研究者認(rèn)為Flow頭的功能(如IP地址、端口和流量大?。┛勺鳛榛陟氐漠惓z測(cè)的備用選擇[3]。然而,端口和地址分布的兩兩相關(guān)性大于0.95,異常檢測(cè)到的端口和地址分布明顯重疊,這是產(chǎn)生深層流量模式的本質(zhì)原因。此外,異常掃描、DoS和P2P事件都不能通過(guò)端口和地址分布進(jìn)行精確檢測(cè),或只有在顯著的網(wǎng)絡(luò)流量異常事件發(fā)生時(shí)才能檢測(cè)出異常??紤]到端口和地址分布的有限作用,應(yīng)選擇流量分布作為基于熵的異常檢測(cè)指標(biāo)。
本文提出一種利用度分布提高端口和地址分布檢測(cè)能力的異常檢測(cè)機(jī)制。使用入度和出度分布來(lái)估算每個(gè)主機(jī)通信的目的/源IP地址,對(duì)于每個(gè)入度值(出度值),通過(guò)計(jì)算熵來(lái)診斷異常。其中,選擇目的/源IP地址作為唯一備用指標(biāo),而不是兩個(gè)地址和端口,不需要使用具有相同底層屬性的不同分布來(lái)增加計(jì)算開(kāi)銷。同時(shí),為了捕捉動(dòng)態(tài)網(wǎng)絡(luò)流量的本質(zhì),引入了一個(gè)固定時(shí)間寬度的滑動(dòng)窗口機(jī)制。
1 相關(guān)研究
網(wǎng)絡(luò)流量的異常檢測(cè)是保證網(wǎng)絡(luò)正常有效運(yùn)行的重要手段。網(wǎng)絡(luò)流量異常檢測(cè)技術(shù)自提出以來(lái),經(jīng)過(guò)多年發(fā)展,誕生了多種檢測(cè)方法,但這些方法通常都存在一定缺陷。因此,如何進(jìn)一步提高檢測(cè)準(zhǔn)確性、減少誤報(bào)率仍然是國(guó)內(nèi)外學(xué)者的研究熱點(diǎn)。其中,許多方法都集中在使用流量分布來(lái)診斷異常,如Thottan[4]使用單獨(dú)的MIB變量的統(tǒng)計(jì)分布來(lái)檢測(cè)網(wǎng)絡(luò)流量的突然變化。在各種異常統(tǒng)計(jì)檢測(cè)技術(shù)中,基于熵的方法已被證明在檢測(cè)異常的流量矩陣時(shí)間序列中的準(zhǔn)確性和效率。張航等[5]利用最大值和相對(duì)熵建立了一種基于行為的異常檢測(cè)方法。以最大熵為基礎(chǔ)的基線分布由預(yù)先標(biāo)記的訓(xùn)練數(shù)據(jù)構(gòu)成,但該基線適應(yīng)網(wǎng)絡(luò)流量動(dòng)態(tài)變化的機(jī)制仍然不清楚。本文提出一個(gè)機(jī)制,根據(jù)動(dòng)態(tài)網(wǎng)絡(luò)流量在測(cè)量期間的變化來(lái)構(gòu)建自適應(yīng)基線,并調(diào)整基線在一個(gè)特定的時(shí)間跨度內(nèi)。
在線檢測(cè)異常受大流量數(shù)據(jù)的實(shí)時(shí)統(tǒng)計(jì)影響。吳靜等[6]采用五元組流分布(即源地址、目的地址、源端口、目的端口、協(xié)議)進(jìn)行流量分析,導(dǎo)致內(nèi)存和處理能力的高開(kāi)銷。一些網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng),如FlowMatrix與Snort匹配數(shù)據(jù)包到一個(gè)預(yù)定義的規(guī)則集,使它們無(wú)法檢測(cè)未知異常[7]。本文認(rèn)為地址和端口具有高相關(guān)性,并使用地址作為獨(dú)特的度量來(lái)代替元組,用于檢測(cè)異常度分布的熵,不僅可減輕計(jì)算過(guò)程中在線分析階段的開(kāi)銷,而且在發(fā)現(xiàn)新的異常類型方面比常規(guī)方法效果更好。
2 基礎(chǔ)理論
大多數(shù)流量異常都有一個(gè)共同特點(diǎn),它們誘導(dǎo)流量頭特征分布的異常變化,如源地址、目的地址與端口,一般顯示出分散或集中分布的現(xiàn)象[8]。
例如,圖1顯示了3種類型攻擊的流量特征分布。圖1(a)顯示了一個(gè)典型的分布式拒絕服務(wù)(DDoS)攻擊。在這種情況下,大量主機(jī)發(fā)送信息到一個(gè)特定主機(jī)。同樣,許多網(wǎng)絡(luò)蠕蟲通過(guò)發(fā)送隨機(jī)探測(cè),即到隨機(jī)區(qū)域產(chǎn)生大量目的地IP地址,從而使受感染的計(jì)算機(jī)繼續(xù)感染其它脆弱的計(jì)算機(jī),如圖1(b)所示。在一些掃描事件中,一個(gè)源IP地址隨機(jī)掃描多個(gè)IP地址,如圖1(c)所示。
從以上分析得知,網(wǎng)絡(luò)流量發(fā)生異常時(shí),會(huì)使源/目的地址、源/目的端口分布出現(xiàn)變化(見(jiàn)表1)。接下來(lái)需要研究:①采用什么指標(biāo)可以準(zhǔn)確配置這些異常流量特征,并明確表明上述攻擊的發(fā)生;②如何有效地量化異常大小,并揭示非正常的流量行為。
3 診斷方法
3.1 系統(tǒng)模型
總體架構(gòu)包括3個(gè)主要功能部分:處理引擎(后端)、數(shù)據(jù)庫(kù)和WebGUI(前端)。處理引擎執(zhí)行顯式算法WebGUI和數(shù)據(jù)庫(kù)之間的通信。引擎主要實(shí)現(xiàn)以下幾方面任務(wù):①接收NetFlow記錄的數(shù)據(jù),如路由器、交換機(jī)、防火墻等,并以一個(gè)特定方式將數(shù)據(jù)通過(guò)緩沖存儲(chǔ)到數(shù)據(jù)庫(kù);②獲得相關(guān)參數(shù)后,可通過(guò)使用SQL查詢來(lái)計(jì)算熵值度分布的原始流量數(shù)據(jù);③根據(jù)測(cè)量期間的網(wǎng)絡(luò)狀態(tài)自動(dòng)調(diào)整檢測(cè)閾值。流量統(tǒng)計(jì)數(shù)據(jù)庫(kù)提供了結(jié)構(gòu)化存儲(chǔ),簡(jiǎn)化了熵值的分布程度計(jì)算。WebGUI前端可通過(guò)圖形方式顯示檢測(cè)結(jié)果。
3.2 算法設(shè)計(jì)
進(jìn)行在線流量分析時(shí),要提高異常檢測(cè)精度,減少計(jì)算時(shí)的開(kāi)銷,異常檢測(cè)的流程與算法必須是輕量級(jí)的。首先,設(shè)計(jì)一個(gè)數(shù)據(jù)源和數(shù)據(jù)庫(kù)之間的緩沖區(qū)進(jìn)行存儲(chǔ)和檢索。其次,考慮到許多攻擊一般只有幾分鐘時(shí)間,如DDoS攻擊一般只持續(xù)兩分鐘,因此要設(shè)置一個(gè)有限的時(shí)間段作為一個(gè)基本測(cè)量時(shí)間窗口的度量單位。
從概念上講,該算法可以分為3個(gè)階段:在第一階段,配置Netflow在特定時(shí)間段內(nèi)的頁(yè)面流量統(tǒng)計(jì),根據(jù)訓(xùn)練數(shù)據(jù)和預(yù)定義的閾值熵排除異常值,以便在測(cè)量期間準(zhǔn)確校準(zhǔn)基線。自適應(yīng)閾值在檢測(cè)過(guò)程中生效;第二階段為處理階段,滑動(dòng)時(shí)間窗口時(shí),計(jì)算該窗口中流量特征的熵值;第三階段為后處理階段,設(shè)置閾值為下一個(gè)檢測(cè)過(guò)程的計(jì)算均值熵和方差。該算法的偽代碼如下:
4 結(jié)語(yǔ)
本文介紹了基于度分布的流量異常在線檢測(cè)方法,該方法具有以下優(yōu)點(diǎn):①可以準(zhǔn)確、高效地使用流量頭特征捕捉細(xì)粒度的流量模式分布,不僅減少了在線處理時(shí)間,也提高了檢測(cè)能力;②利用熵可以提高檢測(cè)靈敏度的特點(diǎn)來(lái)發(fā)現(xiàn)已知或未知的流量異常,并將其量化;③具備一種可降低誤警率的自適應(yīng)閾值。下一步工作是進(jìn)一步分析流量異常特征,尋找診斷網(wǎng)絡(luò)異常的方法。此外,降低報(bào)警延遲也是需要考慮的問(wèn)題之一。
參考文獻(xiàn):
[1] 王秀英,邵志清,陳麗瓊.異常流量檢測(cè)中的特征選擇[J].計(jì)算機(jī)工程與應(yīng)用,2010(28):129131.
[2] 崔錫鑫,蘇偉,劉穎.基于熵的流量分析和異常檢測(cè)技術(shù)研究與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2013(5):126129.
[3] 鄭黎明,鄒鵬,韓偉紅.基于多維熵值分類的骨干網(wǎng)流量異常檢測(cè)研究[J].計(jì)算機(jī)研究與發(fā)展,2012(9):154163.
[4] THOTTAN M,JI C.Anomaly detection in IP networks[J].IEEE Transation on Signal Processing,2003,51(8):21912204.
[5] 趙飛翔,張航,何小海.基于多層分塊的異常行為檢測(cè)算法[J].科學(xué)技術(shù)與工程,2015(10):112116.
[6] 孟凡雪,劉衍珩,吳靜.基于分布式統(tǒng)計(jì)時(shí)間序列的網(wǎng)絡(luò)流量分析[J].計(jì)算機(jī)科學(xué),2010(7):116120.
[7] 唐謙,張大方.基于Snort的入侵檢測(cè)引擎比較分析[J].計(jì)算機(jī)工程與設(shè)計(jì),2005(11):2628.
[8] 劉仁山,孟祥宏.基于時(shí)間特征的網(wǎng)絡(luò)流量異常檢測(cè)[J].遼寧工程技術(shù)大學(xué)學(xué)報(bào):自然科學(xué)版,2013(4):114118.
(責(zé)任編輯:黃 ?。?