(電子科技大學 計算機科學與工程學院, 成都 610054)
摘 要:
網絡安全技術以防火墻、入侵檢測等為主,較少從網絡用戶行為角度考慮可能進行的破壞行為。針對此問題,對網絡流量NetFlow采集、統計,設計了表示用戶行為特征的數據結構及統計模式,獲得了行為的具體信息,建立了在一定時間粒度下的行為數據庫;并在行為數據庫的基礎上,設計出適用于用戶行為特征的聚類挖掘算法,定義了用戶行為距離,確定各個用戶的網絡行為模式。實驗表明,所設計算法可有效挖掘用戶的網絡行為,為管理、分析用戶行為提供了有效依據。
關鍵詞:NetFlow; 數據挖掘; 用戶行為; 行為距離
中圖分類號:TP3 文獻標志碼:A
文章編號:1001-3695(2009)02-0713-03
Mining algorithm design on user behavior based on NetFlow
LIU Xuan, ZHANG Feng-li, YE Li
(School of Computer Science Engineering, University of Electronic Science Technology of China, Chengdu 610054, China)
Abstract:Most of the existing network security technologies mainly focus on firewall, intrusion detect system(IDS), and give less consideration on network malicious behavior from user behavior angle In accordance with aforementioned problem, designed and defined the structure of user behavior feature and the pattern of statistics, set up user behavior’s database and got user behavior's detail information. The data were based on NetFlow collection and statistics.According to the information in database, designed the clustering algorithm to suit for the user behavior structure and define distance of user behavior, to establish user’s network behavior pattern. Experiment results indicate that the designed mining algorithm can mine user behavior effectively, which provide basis for management and analysis of user network behavior.
Key words:NetFlow; data mining; user behavior; distance of user behavior
0 引言
隨著計算機網絡技術的迅速發展和應用,計算機網絡對人類經濟、生活的沖擊是其他信息載體所無法比擬的,它的高速發展和全方位滲透,推動了整個社會的信息化進程。特別是 Internet已經從早期的小規模局域性互聯網,發展成為一個全球性信息服務平臺,網絡技術被廣泛應用于社會生活的各個領域。然而同樣是網絡的這些特點,也不可避免地帶來了系統的脆弱性,使用戶及網絡信息本身面臨嚴重的安全問題。
隨著系統的升級與漏洞的修補,入侵主機進而進行破壞的病毒攻擊方式在攻擊中所占比例逐漸減少,轉而改為惡意地消耗或占用系統或網絡有限的資源,進而破壞系統對外提供服務的能力。此類攻擊中,比較常見的有拒絕服務攻擊(denial of service, DoS)、分布式拒絕服務攻擊(distributed denial of ser-vice, DDoS)、蠕蟲病毒、端口掃描(port scanning)等。顯然,傳統的系統升級無法檢測并預防此類攻擊,為此本文提出了以檢測網絡數據流來檢測網絡異常和攻擊的方法。通過實時地檢測網絡數據流信息(如流量大小、變化趨勢以及變化速率),通過與歷史記錄模式匹配(判斷是否正常)或者與異常模式匹配(判斷是否被攻擊),讓網絡管理人員及時地發現并控制異常[1]。
然而實踐表明,僅僅依靠現有的網絡安全技術,諸如防火墻、入侵檢測、身份認證等,并不能阻止網絡中的所有攻擊,也無法確保系統的安全。其原因在于現有的安全技術大多將主要精力集中在“防外”,對外來攻擊進行響應;而對于內部網絡受外界未知攻擊后,產生的后果以及內網用戶可能進行的破壞性行為考慮得較少。因此,為提高系統安全性,在允許用戶正常使用網絡的同時,盡量限制其有害行為(被攻擊產生的后果或攻擊他人)是基本出發點;發現并定位用戶的網絡有害行為,然后進行適當的控制就是要完成的主要任務[2]。
本文將主要討論如何在獲取NetFlow流信息的情況下,確定表示用戶行為的描述結構,建立用戶行為數據庫,并設計新的聚類挖掘算法,挖掘、識別不同的用戶網絡行為。
1 NetFlow簡介
1.1 NetFlow概念
NetFlow由Cisco公司開發,Foundry公司的BigIron系列三層交換機和NetIron系列路由器也提供對該協議的支持。使用NetFlow技術,可以提供低成本、便于規模化部署的流量采集方案[3]。
網絡的流是一個單向數據報文的序列,該序列中的數據報文從網絡中的某個指定源端出發最終到達指定的目的端[4]。NetFlow是以“流”為采集單位的數據統計方法,也是一種在包過濾或安全服務等應用中高效處理訪問列表(access list)的方法。NetFlow協議的核心是對流緩存(flow cache)進行組織、管理,最終可提供遵循某種匯聚方法而得到“流”的統計數據。其處理方法為:在超時時間內,NetFlow利用標準的交換模式處理數據流的第一個IP包數據,生成NetFlow緩存,隨后同樣的數據基于緩存信息在同一個數據流中進行傳輸,不再匹配相關的訪問控制等策略;NetFlow緩存同時包含了隨后數據流的統計信息,即一個流(flow)是特定來源和目的單向流量信息,即源IP、目地IP、源port、目地port四個屬性相同的數據包為一個flow[5]。超時時間到達或者緩存充滿時,這些數據按一定的格式發送到網絡上指定的接收者。
NetFlow協議目前有1、5、6、7、8、9六個版本,版本之間的差異主要表現在對流采用的匯聚方法不同。以網絡監控或規劃為目的而部署的NetFlow要求獲得流的較多細節,因而常采用版本5。
1. 2 NetFlow數據格式
NetFlow協議的版本5采集到的流量數據很詳細,可以支持不同維度的統計分析,流量數據的內容如表1所示。
表1 NetFlow協議的版本5流量數據內容
參數意義
TimeStamp產生當前流量數據的時間戳
SrcIP流的源IP地址
InIf流入接口的編號(此接口的SNMP ID,使用16進制表示)
DstIP流的目的IP地址
NextHop流的下一跳IP地址
OutIf流出接口的編號
protocol協議號:1代表ICMP,6代表TCP,17代表UDP
PortFlag端口指示:指明隨后的端口是源端口還是目的端口(值為0表示是目的端口;值為1或者其他則為源端口)
portTCP/UDP端口號
rcAS源自治域號碼(如果不可用則為空白)
DstAS 目的自治域號碼(如果不可用則為空白)
SrcL2Overhead源的第二層封包開銷(Source layer 2 encapsulation overhead per packet)
DstL2Overhead目的端的第二層封包開銷(Destination layer 2 encapsulation overhead per packet)
bytes流內第三層的字節數量
packets流內的數據包數量
2 用戶行為結構設計
2. 1 NetFlow流量統計設計
對NetFlow數據進行統計,針對NetFlow v5流數據中多個數據項,統計對象包括源IP、數據包字節數、數據流目的子網、數據包數量、源端口、目的端口等。由于流量數據的采集本身是一個順序過程,需要指定起始時間Tbegin以及終止時間Tend,在T=Tbegin-Tend這個時間段內統計,T為一個基本的時間粒度,即數據的采集周期。
IP地址段有其地理分布規律,這種統計能夠直接反映某地區網絡負載狀況。作為路由調整、網絡擴容的決策依據,在本文中,以采集的用戶IP數據為基本統計對象,統計時間T內的一個或數個IP地址段的流量。一個IP對應于一個用戶,IP所表現出的特性即用戶表現出的行為特性。網絡的流是一個單向數據報文的序列,作為IP地址,既可以是源IP也可以是目的IP。為展現用戶行為所有特性,時間T內既統計源IP屬性也統計目的IP屬性,具體如下:
a)針對時間T內統計源IP屬性,包括:(a)數據包字節數;(b)數據包數量;(c)數據流目的子網個數;(d)源端口個數;(e)目的端口個數;(f)目的IP個數;(g)各協議所占總流量比例;(h)各源端口所占總流量比例;(i)各目的端口所占總流量比例。
b)針對時間T內統計目的IP屬性,包括:(a)數據包字節數;(b)數據包數量;(c)數據流來源子網個數;(d)源端口個數;(e)目的端口個數;(f)源IP個數;(g)各協議所占總流量比例;(h)各源端口所占總流量比例;(i)各目的端口所占總流量比例。
無論源IP或目的IP,在統計屬性中(a)~(f)稱為單值統計數據;(g)~(i)中,由于原始數據中個數很多,故采取TOPN分析的方法,即只提取前N個統計后的數值,以減少系統處理的開銷,(g)~(i)稱為多值統計數據。
2.2 用戶行為特征值設計
將統計后源IP與統計后目的IP關聯,將其全部統計屬性作為用戶行為特征值,即用戶行為數據結構。在此基礎上建立用戶在一定時間粒度下的行為數據庫,每條記錄由2P個屬性構成{X1s,X2s,…,Xps; x1d,X2d,…,Xpd}(s:源;d:目的),具體內容如表2所示。
表2 用戶行為特征值內容
源IP統計屬性{X1s, X2s,…, Xps}目的IP統計屬性{X1d, X2d,…, Xpd}
X1s數據包字節數X1d數據包字節數
X2s數據包數量X2d數據包數量
X3s數據流目的子網個數X3d數據流來源子網個數
X4s源端口個數X4d源端口個數
X5s目的端口個數X5d目的端口個數
X6s目的IP個數X6d源IP個數
{X7s, X8s,…, Xms}前N個協議所占總流量比例{X7d, X8d,…, Xmd}前N個協議所占總流量比例
{Xms+1, Xms+2,…, Xns}前N個源端口所占總流量比例{Xmd+1,Xmd+2, …,Xnd}前N個源端口所占總流量比例
{Xns+1, Xns+2,…, Xps}前N個目的端口所占總流量比例{Xnd+1, Xnd+2,…, Xpd}前N個目的端口所占總流量比例
3 用戶行為挖掘
3. 1 網絡用戶行為分析常用方法
1)正常行為的聚類分析方法
網絡的用戶行為表現出用戶的工作性質、愛好和興趣等信息,多個用戶對網絡的使用也存在許多共性,表現了網絡上的一種群體行為。正常行為的研究主要是以網絡用戶特征分析出不同的類或簇,在數據挖掘中稱之為聚類。聚類是在未知類或簇的數目及其特征的情況下對數據的分類。正常網絡行為也是豐富多樣的,且事先并不知道可以聚為多少個類[6]。
2)異常行為的分析方法
異常行為的數據也稱為孤立點(outlier)數據,在其表現形式上與正常行為有較大的差異,不符合數據的一般模型。異常行為的數據可能是測量或執行錯誤所導致,也可能是固有數據變異性的結果。在聚類分析正常數據時,需要使孤立點的影響最小化或者排除。但是在異常行為分析時,它可能導致重要隱藏信息的丟失,如在網絡的入侵監測行為分析時,異常點可能是一種網絡入侵行為,必須加以發現并立即制止。
孤立點的探測方法可以從整體上分為三類:統計學方法、基于距離的方法和基于偏移的方法[7]。在本文中應用基于距離的方法探測孤立點以發現異常行為,并設計了用戶行為距離公式。
3. 2 用戶行為距離公式
在聚類過程中,為計算用戶行為距離(相似度)定義了用戶行為距離公式。其定義如下:
其中:U1、U2為樣本點數據,分別為用戶行為數據庫中的一條記錄。
a)針對單值統計數據的用戶行為計算值為
b)針對多值匯總數據(前N個協議所占總流量比例、前N個源端口所占總流量比例、前N個目的端口所占總流量比例、前N個安全事件類型所占總流量比例)。以源IP統計屬性前N個協議所占總流量比例{X7s,x8s,…,Xms}為例,Xl是某網絡協議 Pl的統計流量Xlflow占總流量totalflow的比例,即
Xl=(Xlflow/totalflow)×100%
定如下:
a)若Pl∈{P7s,P8s,…,Pms}且Pl∈{Pl∈{P′7s,P′8s,…,P′ms},則計算Bl=(Xl-X′l)2;
b)若Pl{P7s,P8s,…,Pms}且Pl∈{P′7s,P′8s,…,P′ms},則計算Bl=(X′l-0)2。
c)若Pl∈{P7s,P8s,…,Pms}且Pl{P′7s,P′8s,…,P′ms},則計算Bl=(Xl-0)2;
設{P7s,P8s,…,Pms}∪{P′7s,P′8s,…,P′ms}個數為k,根據以上規定,針對源IP的協議的用戶行為計算值A2s=∑i=ki=1Bi。
針對其他多值統計數據與協議的用戶行為計算方法類同。設源IP的源端口、目的端口的用戶行為計算值分別為A3s、A4s;目的IP的協議、源端口、目的端口的用戶行為計算值分別為A2d、A3d、A4d,則用戶行為距離公式如下:
d(U1,U2)=A1+∑i=4i=2Ais+∑i=4i=1Aid
U1、U2的相似度與d(U1,U2)成反比,即d(U1,U2)越小,U1、U2的相似度越大;d(U1,U2)越大,U1、U2的相似度越小。從而可根據計算某樣本點行為模式與已確定行為模式樣本點間的用戶行為距離,推斷某樣本點所屬行為模式。
3. 3 具體實施步驟
在建立用戶在一定時間粒度下的行為數據庫的基礎上,確定用戶行為、比較用戶行為距離、觀測數據相似性,識別同組數據(網絡用戶行為)的信息,具體步驟如下:
a)為建立用戶行為數據庫,首先采集網絡流量NetFlow數據,具體數據表結構(圖1)如下:
(a)收集網絡流量NetFlow數據,將數據存入數據庫,形成基礎數據表為NetFlow數據源表;
(b)在基礎數據表NetFlow數據源表的基礎上,對流量進行初步統計,形成NetFlow的子網和端口統計數目表、NetFlow的基礎匯總表;
(c)在統計NetFlow數據源表的基礎上得出NetFlow的TOPN統計表,TOPN分析的對象,具體包含協議、源端口、目的端口、安全事件;
(d)(a)~(c)共同構成用戶行為數據庫。
b)在生成用戶網絡行為數據后,根據聚類算法確定各個用戶的網絡行為模式。各樣本間的距離由樣本點間的樣本距離公式進行計算,并通過樣本距離確定新樣本所屬行為模式,具體步驟如下:
(a)通過數據的采集分析得到用戶在指定時刻T,一定時間粒度內的數據集{i>>1|Xi1s,Xi2s,…,Xips; Xi1d,Xi2d,…,Xipd}。
(b)應用距離公式
d(U1,U2)=(X1s-X′1s)2+(X2s-X′2s)2+L+(Xpd-X′pd)2
計算新輸入數據點與已存在樣本的距離,生成距離信息{d1,d2,…,dn},從中選擇最小值dmin=min{d1,d2,…,dn}。
(c)在距離信息{d1,d2,…,dn}中選擇所有d≤D,并從樣本點分布空間中選擇半徑為D的超球體內的所有樣本點的行為模式。
其中:D=ndmin;dmin為輸入數據點與最近樣本點的距離;n為系數,n的選取為系統效率與結果正確性的折中。
(d)將最多樣本點的行為模式類型作為輸入數據的行為模式類型。
4 結束語
本文在深入研究NetFlow數據及網絡用戶行為特征的基礎上,構造了用戶行為距離公式,從用戶行為距離的角度分析、判斷用戶行為所屬模式類型,給出了一種網絡用戶行為的分析方式、用戶行為表示方法及其具體實施步驟。在實驗室的網絡監測系統的基礎上,在正常數據與異常數據混雜的情況下,高效、準確地挖掘出異常IP數據,并可及時報警。系統正處于研究初期,后期將在原有基礎上,將發現異常行為擴展為預測攻擊行為。
參考文獻:
[1]蔣琰.基于NetF1ow的網絡數據流量分析與異常檢測系統的研究與實現[D].上海:同濟大學, 2006.
[2]繆紅保,李衛.基于數據挖掘的用戶安全行為分析[J].計算機應用研究, 2005, 22(2):105-107.
[3]謝喜秋,梁潔,彭巍,等.網絡流量采集工具的分析和比較[J].電信科學,2002,18(4):62-66.
[4]Cisco. NetFlow services and applications[R/OL]. 1999. http://www.CISCO. com/go/netflow.
[5]肖志新,楊岳湘,楊霖.一個基于NetFlow的異常流量檢測與防護系統[J].微電子學與計算機, 2006, 23(5): 209-213.
[6]董富強,馬力,武波.一種基于Internet的用戶行為分類方法與模型的研究[J].現代電子技術, 2004, 22(7): 19-21.
[7]呂慶喆,言方榮,林金官. 兩種時間序列孤立點挖掘方法的比較[J]. 統計研究,2005(1):51-54.