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