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