賴蔚蔚
(廣東電網公司惠州供電局,廣東 惠州 516003)
基于基線算法的電力企業信息網異常流量檢測的實現
賴蔚蔚
(廣東電網公司惠州供電局,廣東 惠州 516003)
主要提出了一種基于基線算法的電力企業信息網的異常流量檢測。該方法利用思科的NetFlow采集工具NetFlow Collector(NFC),每5 min采集一次設備通過UDP傳送過來的NetFlow原始數據,然后通過利用通訊端口、時間、流量(字節數或封包數目)3個維度的信息,通過篩選、去除偏離值、計算基線數值、實際值與基線數值比較等方式,檢查當前網絡是否存在異常流量。
基線算法;異常流量;基線分析;網絡安全
隨著計算機和通信技術的發展,電力企業網絡的規模越來越大,復雜性也在不斷提升,各種應用業務也越來越廣泛,因此發生各種故障的可能性也越大,各式各樣的異常流量也隨之而來。異常流量的產生不僅會影響網絡的正常運行、降低工作效率,更有可能造成企業機密信息的泄露,影響企業的發展。因此,異常流量檢測成為電力企業面臨的一大難題。
主流的流量采集技術主要有基于鏡像(閥在線)交通的協議分析技術、分布式監測技術(基于硬件探針監測技術)、基于NetFlow的監測技術和基于SNMP的監測技術4種。相對于NetFlow的監測技術,其他技術各有短板。流量鏡像只能應用在單條鏈路,全網監測不適宜采用。硬件探針監測技術受接口速率上限的限制。SNMP技術主要收集一些設備狀態信息和相應的流量信息。由于信息的單調和一些誤差的存在,使得后期的數據分析只能在網絡2、3層的信息以及設備的狀態消息上進行。而NetFlow監測技術是屬于統籌部署方案,不依賴某條鏈路,同時它采集數據的效率高,網絡應用范疇大,成本相比較也更低,有較高的性價比。
異常流量檢測技術主要有Top N、流量模型、模式匹配、Dark IP等。本文提出的是基于基線的流量檢查方法,其主要目的是設計一種針對異常流量檢測具有高度可行性的通用機制,而不是僅針對特定一種蠕蟲所產生的異常流量的精確化方法,不管什么原因產生的流量,網管人員都可以利用此通用的檢測機制檢測異常流量的信息流。基于基線的方法主要是通過建立一個基于時間的流量常態模型,通過檢測網絡的各種設備及協議流量,設置基于各時間段的動態流量基線。若在同一個時間段中,監測數據與設定的基線存在偏差,則系統會給出異常警告,并且隨著時間積累,告警等級會逐步升級。
思科公司的NetFlow是在IOS體系下引入的一種交換技術。它是利用源IP地址、目標IP地址、TOS字節、第3層協議類型等7個具有段標識的屬性,同時在被思科路由器所支持的前提下,對不同類型的Flow進行快速精確的區分,然后進行跟蹤、計量和分析,得到其時間、類型和大小等信息。
NetFlow服務可以提供一些其他高效優質的服務,如與路由器配合的最優交換路徑下的數據統計,路由器與交換機信息交互的最大限額下的高效數據統計,以及用戶、協議、端口和服務類型等多類型數據統計。此外,NetFlow還可以部署在網絡的任何位置作為可尋徑的設備,并且在某種程度上通過數據包過濾實現一些安全性服務措施。
NetFlow因采用特殊的交換技術,對路由器的影響較小。其查詢過程只針對第一個分組進行,當Flow被識別區分以后,后面的分組默認為其一部分,這樣面向連接基礎的處理,回避了訪問列表的操作,從而實現了小影響下的數據采集。
通過進一步分析NetFlow的字段說明,更能體現其優越性。如表1所示,可以發現flow record中有源/目的IP地址、傳輸層源、目的端口號等具有數據流標識的信息,包含對這些對數據安全相關的數據tcp flags,與地址相關的數據如源地址、目的地址、源自治號和目的自治號等,NetFlow提供了很多關于數據的細節,它能詳細分析數據的各種信息。
表1 NetFlow字段說明
綜上所述,NetFlow技術因其特殊的形式架構,不反復對每個數據包進行搜索,而是對數據流進行分析,改進了以往流量監控低效、對設備影響高等不利因素,因此更加適合大型網絡。
基線分析是一種多時間段平均法,其思想是把一個時間段有限細分,計算每個細分中變量的平均值,將其值連接起來,即為參考基線,它表征著一個系統的常態值,應用在流量監控上,則反映了正常的流量變化情況。
本文采用基線分析的方法,監測:
(1) 知名端口(1024以下的端口號)的某些特定端口(黑名單方式),即一些已公布的跟異常流量有關的端口,如一些蠕蟲病毒(沖擊波病毒使用的135端口);
(2) 其他所有非知名端口(1024以上的端口號),排除掉某些特定應用(如一些企業內部通訊軟件之類)的端口(白名單方式)。
通過對符合上述條件的端口的歷史記錄和當前記錄進行基線分析,執行如下步驟:
(1) 讀取NetFlow記錄并執行統計;
(2) 從歷史記錄表數據計算基線值;
(3) 確定動態臨態值;
(4) 找出受感染主機。
具體過程形式描述如下:
2.1 選定基線分析NetFlow記錄并執行統計
從NetFlow采集的信息流中,找到目的端口(dstport)的字段進行分析,判斷其是否為基線統計所需要的目標對象。如果是知名端口,先檢查該目的端口是否屬于黑名單端口,如果是,則將該端口的流量記錄進行統計,并寫入歷史表供以后基線計算使用;如果是非知名端口,先檢查該目的端口是否屬于白名單端口,如果不是,則將所有相關端口的流量記錄作為整體(以端口號-1表明這些整體的端口)進行統計。
網絡異常可以包括3個廣義的類型:濫用異常、閃現擁擠異常和操作異常,而企業內部最常見的是濫用異常,具體包括的內容如表2所示。
表2 網絡濫用異常種類說明
表2展示了各種異常流量與封包數目(Packets)或者字節數(Bytes)的對應關系,以蠕蟲感染為例分析,當蠕蟲感染時,就網絡流量而言,會有大量的數據封包數目或數據字節,然而蠕蟲所散布的字節數與正常信息相比較會小很多,由此可知蠕蟲感染的情況下,網絡中封包的數量統計會明顯增加,而字節統計不會有明顯變化。所以這時候統計封包數目這個字段值比較有用,可以更有效地檢測網絡是否有蠕蟲病毒這種異常流量。相反,對于閃現擁擠,例如一些下載行為,封包數目或字節數均會增加,但下載的流量值對網絡的運行有著更重要的影響,所以這時候統計字節數這個字段值,更能反映網絡是否有異常的不符合要求的流量。
2.2 從歷史記錄表數據計算基線值
公司或組織的群體成員具有相似的行為特性,則其網絡流量也具有高度的一致性,即隨著組織成員的作息,網絡流量具有周期性規律和尖峰發布情況。根據這一特性,我們將算法分為工作日與非工作日兩種。
工作日:以5 min為單位,取前20個工作日當前分鐘對應的某端口的采樣點,求出它們的平均值和標準差,并利用格拉布斯準則剔除壞值,之后再利用。
非工作日:以5 min為單位,取前8個非工作日當前分鐘對應的某端口采樣點,剔除最大5%和最小5%的數據,然后取平均值,得出當前小時基線。
以工作日為例,具體步驟描述如下:
(1) 對每個符合條件的端口的前20個工作日該設備的流量值進行排序,得出如下序列:
綜上,僅有文獻[6]對集裝箱駁運及拖運的經濟性進行了比較,但該文獻未能考慮運輸時間及服務水平對路徑經濟性的影響.本文基于以上背景,以深圳西部港水上“巴士”為研究對象,分析其現存問題,并通過與其他出口路徑經濟性的比較分析,探討提高集裝箱物流運轉速度、提升水上“巴士”滿載率及運營效率的對策建議.
{X1i,X2i,…,X20i,ij?{1,2,…,20},
X1i≤X2i≤…≤X20i}
(2) 去除最大和最小的5%,即去掉最大和最小的值,剩下如下序列:
{X1i,X2i,…,X19i,ij?{1,2,…,20},
X1i≤X2i≤…≤X19i}
2.3 確定動態臨態值
設Th為一個時間段細分的基線閾值,b1為基線值。b1值越大,Th應越大,即b1正比于Th。則有:
Th=K×b1
假設K為一大于1的常數,K值根據歷史數據進行經驗性適度調整。簡單分析有,K值越大,感染行為愈容易確定,但是它同時會導致漏判率增加,使得一些蠕蟲病毒不容易被發現;反之,K值越小,感染行為則愈加敏感,同時也會導致誤判率增加,有些正常的信息流也會被誤判為異常流量。本文所建立的一個系統初步將K值設為2,即當前值比基線值大一倍時才發現異常警報。
2.4 找出異常流量來源
當某一時間段細分中的所監控的流量超過第3步所描述的臨界值時,此時間段則被稱為異常時段,追蹤這一時間段的記錄進行進一步分析,根據NetFlow記錄,找出產生異常流量的主機。主要步驟是通過分析NetFlow原始記錄,對該時段、該端口的字節數或封包數目進行top排序,從而找出出現問題的主機IP及使用的端口,再進行進一步的處理。
圖1是某工作日10:00—11:35的一段真實流量和計算的基線值的非知名端口流量值,屬于正常情況,不存在報警情況。
圖1 非知名端口流量值1
圖2是某工作日14:00—15:35的一段真實流量和計算的基線值的非知名端口流量值,實際值超過基線值2倍以上,屬于異常情況,需要報警,并需要通過原始NetFlow記錄分析產生大流量的IP及端口,并分析原因。
圖2 非知名端口流量值2
圖3是某工作日16:00—17:35的關于TCP端口135的一段真實流量和計算的基線值。此端口為沖擊波使用的端口,字節數為48。從圖中我們可以看出,16:45時135端口的流量值出現了突增,之后恢復正常,可能是某機器感染了沖擊波病毒,當該機器想感染其他機器時,被防火墻封了而讓流量值恢復正常。
圖3 知名端口(135端口)流量值
本文提出了一種基于基線算法的企業異常流量檢測的方法,同時提出了多時間段細分、多通訊端口監控的基線,在此動態基線的基礎上,分別對工作日和非工作日的流量數據進行基線分析,從而達到檢測異常流量的目的。根據實驗結果分析該方法的優點如下:
(1) 分析的數據來源均為標準化的。本文所分析的數據均采用思科公司已列為RFC標準草案的NetFlow標準,且已在設備中廣泛應用。雖然其他廠家,如華為、Juniper等都有提出基于自己設備的NetFlow格式,但都與思科的類似,所以數據來源的使用上具有通用性,實現了標準化的要求。
(2) 采取基線分析方法具有單一化。本文提出的基于基線分析異常流量監測方法具有高度的單一性,按照工作日和非工作日的多時間段細分進行分析,監測中只采用基線作為分析的唯一準則,免去了其他方法監測等的繁瑣復雜,不會隨著異常流量產生原因的不同而使用不同的檢測方法,這種整體機制使得分析方法呈現高度的單一性。
(3) 網絡檢測盡量簡易化。本文所提出的監測方法,雖然在精準度上有些許欠缺,無法保證完全監測出異常流量,但是由于其高度的單一化機制,使得監測方法得到很大的簡化,對于一個大企業復雜龐大的網絡來說是非常有用的,效率會有所提高,且具有更高更好的實時性。
但是,本文提出的初始基線生成方法相對簡單,而基線的臨界倍數對算法的準確性有很大的影響,后續需要做到保持在同樣的時間復雜度下改善生成基線算法,以更有效地去檢測異常流量。
[1]王衛東.電信IP骨干網絡異常流量分析及其檢測[J].網絡安全技術與應用,2007(9)
[2]王海龍.大規模網絡流量異常分析[D].國防科學技術大學,2006
[3]滕云.利用NetFlow技術構建網絡異常監測及分析系統[J].廣西通信技術,2007(3)
[4]Andrew S.Tanenbaum.計算機網絡[M].第4版.北京:清華大學出版社,2004
[5]馬艷春,肖創柏.基于動態基線分析方法的網絡蠕蟲檢測機制的研究[J].華北科技學院學報,2008(1)
[6]鄒柏賢.一種網絡異常實時檢測方法[J].計算機學報,2003(8)
2014-11-10
賴蔚蔚(1978—),男,廣東河源人,碩士研究生,高級工程師,研究方向:電力信息化。