摘 要:首先對流量數據按應用層協議進行分類分析,采用小波分析對原始流量數據進行去噪處理,建立流量數據矩陣;然后采用主元分析(PCA)方法進行流量建模;在此基礎上,通過SPE統計量的控制圖能快速檢測出流量異常,結合SPE統計量的貢獻圖可以分析出導致異常的主要原因。實驗結果表明,小波去噪能降低異常檢測的誤警率,SPE貢獻圖可有效分析流量異常的原因。
關鍵詞:主元分析; 小波去噪; 平方預測誤差統計量; 貢獻圖
中圖分類號:TP393.1文獻標志碼:A
文章編號:1001-3695(2010)06-2222-04
doi:10.3969/j.issn.1001-3695.2010.06.064
Detecting traffic anomalies at application layer in metro area network
PEI Wei1, YUAN Xiao-fang1, WANG Dong1, DONG Zhi-chao1, XIE Gao-gang2
(1.College of Computer Communication, Hunan University, Changsha 410082, China; 2.Next Generation Internet Research Center, Institute of Computing Technology, Chinese Academy of Sciences, Beijing 100190, China)
Abstract:This paper constructed a traffic data matrix with the application layer metrics provided by the measurement system developed by ourselves. Applied wavelet analysis to deal with the noise of raw data, an
d then used PCA method to model the traffic. Experiments show that traffic anomalies can be effectively monitored with SPE statistic, and the main causes of the anomalies can be found out with contribution plot of SPE statistic.
Key words:principal component analysis(PCA); wavelet denoising; squared prediction error(SPE) statistic; contribution plot
0 引言
網絡流量異常指的是網絡的流量行為偏離其正常行為的情形,其特點是發作突然,先兆特征未知,可以在短時間內給網絡或網絡上的計算機帶來極大的危害。引起網絡流量異常的原因多種多樣,如網絡設備的不良運行、網絡過載、惡意的DDoS攻擊以及網絡入侵等。基于網絡應用層流量異常檢測與分析可以檢測何時有異常的網絡流量發生,更好地確定哪些數據流引發網絡異常并診斷異常類型,便于網絡及安全管理人員分析網絡異常原因,保證網絡安全。
近年來,國內外網絡流量異常檢測與分析的研究方法可以分為基于特征/行為的研究、基于流挖掘的研究和基于統計的研究[1]。基于特征/行為的研究局限在于只能檢測已知模式的網絡異常,基于流挖掘的研究執行效率有待進一步提高[2],基于統計的研究能克服以上不足,已經成為研究熱點。
基于統計的研究,文獻[2~4]使用子空間的方法檢測全網異常。文獻[3]提出基于PCA的子空間方法并應用于從鏈路上獲取的流量測量數據來診斷發生在全網的異常。文獻[2,4]擴展了子空間的方法用于分析多樣的數據集以檢測更廣泛的網絡異常。文獻[2]將子空間的方法作用于網絡層的字節數、包數、流數三種類型網絡流時間序列統計數據,檢測和分類不同的異常集。文獻[4]通過對全網包分布特征的分析檢測多種類型的全網異常。在上述文獻中,主要采用源—目的(origindestination, OD)流矩陣和相關統計分析方法進行網絡異常檢測,但OD流矩陣的獲取、計算方法非常復雜,代價高,所以該方法不能滿足異常檢測的實時性;PCA分析方法剛剛引入網絡流量異常檢測領域,上述文獻對檢測的誤警率未作考慮;同時上述文獻對異常類型的判斷方法也很復雜,不能簡單、直接指出異常產生的原因,對異常的處理沒有太大的實際指導意義。
本文通過筆者自主研發的高速網絡監測平臺[5,6]收集網絡流量數據,并按應用層協議進行分類,能夠迅速建立流量數據矩陣,滿足實時檢測;采用小波分析對流量數據進行去噪預處理,降低了異常檢測的誤警率;同時本文提出利用多元統計學中的SPE貢獻圖對異常進行分析,能夠簡捷、有效地從應用層角度定位異常的類型和原因,能定位到具體的應用層協議和程序,方便網絡管理人員對異常的處理。
1 主元分析和網絡流量異常檢測
主元分析是多元統計分析中常用的方法之一,能有效分析復雜的數據,符合網絡流量數據復雜、大量、彼此相關的特征。本文也是通過主元分析法進行網絡流量異常檢測與分析。
1.1 主元分析方法
主元分析(PCA),又稱主成分分析,其基本思想是在保持盡可能多的信息變化量的情況下,對由一個相互之間存在相關性的變量所組成的數據集進行降維以獲得互不相關的主元信號的過程[7]。其基本方法是根據數據變化的方差大小來確定變化方向的主次地位,按主次順序得到各主元素,這些主元素彼此之間是無關的[8]。
在實際應用中,需要先建立一個反映過程正常運行的主元模型。由于主元分析的結果受數據尺度的影響,在進行主元分析時,需要先將數據標準化,即將每個變量的均值減掉然后除以它的標準差。假設X∈Rn×m為收集到的正常流量數據,先將X作如下標準化:
Xs=[X-(1 1…1)TM]diag(1s1,1s2,…,1sm)(1)
對Xs進行主元分析可以得到
Xs=t1pT1+t2pT2+…+tmpTm(2)
如果用前k(k Xs=t1pT1+t2pT2+…+tkpTk+E=Xp+E(3) 文獻[9]介紹了多種選取主元個數k的方法,其中最常用的是特征值方差累積貢獻率(CPV)。通常取CPV(k)≥85%,其值越大,表示前k個主元綜合X的能量越強。 1.2 基于SPE控制圖的異常檢測 利用主元模型檢測測試數據時,常用到平方預測誤差(SPE)統計量,也被稱做Q統計量,對第i個采樣點來說有[8]: SPEi=eieTi=Xi(I-PkPTk)XTi(4) SPE統計量的控制限是建立在一定的假設基礎上的,當檢驗水平為α時(通常α的取值為95%),SPE控制限可按下式計算[10]: SPEα=θ1Cα2θ2h20θ1+1+θ2h0(h0-1)θ211/h0(5) SPE統計量刻畫了測量值對主元模型的偏離程度。當SPE統計量值超出其控制限時,可以判定此時刻網絡流量出現了異常。 2 網絡流量異常定位分析 文獻[2~4]通過主元分析方法和SPE控制圖對異常進行檢測,但對異常原因沒有進行分析。因為上述文獻采用OD流矩陣,結構復雜、變量過多,分析的計算量代價太大,即使得到某個OD流造成流量異常,對異常的處理也沒有太大的實際指導意義。本文提出基于貢獻圖的異常定位分析方法,將流量按應用層協議分類,數據矩陣結構簡單,易于通過貢獻圖進行異常分析,能夠簡捷、有效地從應用層的角度定位異常的類型和原因,便于大流量網絡異常的處理。 2.1 基于貢獻圖的異常定位分析 發現異常點后,可以通過貢獻圖[8]的分析,找出是哪些變量的變化引起了SPE統計量超出控制限。從式(4)中得出,第j個變量在第i時刻對SPE統計量的貢獻為 Qij=e2ij=(Xij-X∧ij)2(6) 通過對變量的貢獻圖的分析,可以找出是哪些變量的變化引起了SPE統計量超出控制限。將這些分析結果與相關知識結合(如變量對應的應用服務器等),將會比較容易地定位引起異常的原因:對SPE貢獻最大的變量,就是引起異常的主要原因;分析變量對應的應用層協議,能定位異常的類型。 2.2 檢測與分析的流程 在上述理論基礎上,網絡流量異常檢測與分析的流程描述如下: a)收集網絡應用層的流量數據,按照3.1節的方法,構造二維原始數據矩陣A; b)用Biorthogonal小波對建立主元模型的原始數據矩陣A作小波去噪處理,得到矩陣B; c)按式(1),對B作標準化處理,使每個變量的平均值為0,方差為1,得到矩陣C; d)計算C的協方差,得到協方差矩陣D; e)求解D的特征值和特征向量,并使其按特征值的大小順序排列; f)計算主元貢獻率和主元累積貢獻率,根據CPV(k)≥85%的要求,選取主元個數K值,確定主元模型; g)計算SPE統計量的值和控制限,檢測網絡流量是否有異常; h) 對超出控制限的點繪制SPE統計量的貢獻圖,分析產生流量異常的原因。 具體方法流程如圖 1所示。 3 實驗與結果分析 3.1 大流量數據的實時采集 通過自主開發的高速網絡監測平臺NetTurbo系統,采集國內某運營商城域網出口處流量作為本文應用層流量數據來源,如圖2所示。該平臺包含MPI部件,MPI是一種應用層流量識別與分類的方法,通過此種方法系統平臺可以實時監測和分析基于應用層的數據流數目、流大小、流的包組成等[6]。 本文將基于應用層對網絡流量數據進行分類,根據應用層協議定義、流量特性和NetTurbo系統的功能,所有應用程序可以分為七種類型[5],如表1所示。 表1 應用層分類 applicationexample applications traditionalHTTP, SSH, FTP, SMTP, POP, DNS, HTTPS, Telnet, SNMP, DHCP P2P file sharingBittorrent, eDonkey, Gnutella, KAD, Fasttrack, Freenet, Poco, Xunlei instant messengerICQ, MSN messenger, Napster, QQ, Skype, Yahoo Messenger, Google Talk gamesBalltefield 1942, Doom, Quake, Need for Speed, Unreal, Xbox Live, CounterStrike streaming mediaRTSP, PNM, MMS, QuickTime VoIPH.323, SIP, MEGACO, Google Talk, QQ uncategorizedVPN, Lotus Notes, Radius, pcAnywhere, Oracle, CodeRed, Nimda, Worm 基于上述分類,本文采用了如下9對18個變量組成數據矩陣:TCP、UDP、基本協議、P2P、VoIP、流媒體、即時通信、游戲、私有協議(各自的字節數和包數)。由于在這些變量之間存在著一定的相關性,使得利用較少的變量反映原來變量的信息成為可能,符合主元分析的要求。 考慮網絡流量存在日周期性,本文采集2006年12月4日~2006年12月5日,連續2×24 h的數據,每5 min取一次數據,其中前24 h為建模數據,后24 h為測試數據,分別形成288×18的矩陣數據。兩個數據流量如圖3、4所示。兩圖呈駝峰性日周期變化,圖3用于建立主元模型,圖4在四個不同時刻出現突兀,分別對應四個流量異常點,這正是后面要檢測和分析的觀測點。 3.2 小波去噪預處理降低誤警率 通過文獻[2~4]傳統的主元分析過程(沒有經過小波去噪預處理),得到SPE統計量的控制圖,如圖5所示。 從圖5 可以看出,有多點超出了控制限,對比測試數據圖4發現,第8、26、116和204時刻確實出現了流量異常,但其他超出控制限的時刻是出現了誤警,這正說明Lakhina等人[2~4]利用傳統主元分析方法檢測流量異常時存在不完善的地方。誤警原因分析:在圖3中,雖然網絡流量存在大量細微的突變,但這些突變不屬于正常流量數據,如果用這種流量數據進行建模就會出現誤差。所以本文利用小波分析對建模數據先進行去噪處理,使其更接近正常數據,從而提高主元模型正確性,減少誤警率。 文獻[11]對基于MATLAB小波去噪方法進行了研究,即利用函數wdencmp()可達到去噪目的。文獻[12]對六種常見小波函數的去噪效果進行了對比,得出Biorthogonal小波的去噪效果最好,而且計算速度較快。所以,本文采用Biorthogonal小波,在MATLAB環境下利用wdencmp函數對建模數據進行去噪處理,但對測試數據不作任何處理,具體的代碼如下: [thr,sorh,keepapp] = ddencmp(‘den’,‘wv’,xd); xd=wdencmp(‘gbl’,x,‘bior6.8’,5,thr,sorh,keepapp)。 建模數據流量經小波去噪后如圖6所示。 從圖6可以看出:去噪后的數據更為平滑,更接近正常數據,能更準確地建立主元模型。通過主元分析得到SPE控制圖,如圖9所示。對比圖5和9,小波去噪降低誤警率55.6%。 3.3 主元分析的實現和流量異常分析 在3.1節中得到兩個288×18 的流量數據矩陣,用小波分析對建模數據進行去噪處理,按照異常檢測與分析的步驟,首先建立主元模型,如表2所示。 表2 相關矩陣的特征值 主元序號特征值方差貢獻率方差累積貢獻率 18.65548.08248.082 23.19317.73965.821 31.7789.87675.697 41.4818.22983.926 50.9795.44089.366 60.6343.522 70.4972.761 80.2491.381 ……… 184.53E0072.52E006 求出數據相關矩陣(原始數據矩陣標準化后的協方差矩陣)的特征值和特征向量,并將特征值按大小順序排列。通過表2 和圖 7可以看出:當取最前面5個主元時,特征值方差累積貢獻率=89.366%>85%,故取k=5,對應的特征向量構成主元負荷矩陣,從而確定了主元模型。 然后取α=95%,利用式(5)在主元模型下計算SPE統計量的控制限:SPE=3.046 647;利用式(4)計算測試數據矩陣SPE統計量的值。繪制控制圖如圖8所示。 通過圖8可以看出,測試數據在第8、26、116和204時刻明顯出現異常,與實際情況完全一致,檢測率為100%,說明經過小波去噪預處理的主元分析方法能夠有效檢測流量異常。 異常發現后,正確分析異常產生的原因是有效處理異常的前提。文獻[2~4]沒有在這方面深入研究,本文提出貢獻圖方法分析產生異常的原因。利用式(6)計算幾個時刻下,18個變量各自對SPE統計量的貢獻率。如對于第204時刻繪制貢獻如圖9所示。 從圖9可以看出,在第204時刻對SPE統計量貢獻最大的變量依次為TCP包數、基本協議包數和TCP字節。進一步分析:TCP包由基本協議包等組成,基本協議的異常將引起TCP包的異常,可以得出基本協議的異常是流量異常的主要原因。P2P和流媒體在網絡流量中占很大比例,但從圖9也可以看出,這兩種協議對異常的貢獻率很低,不是引起流量異常的原因。 根據表1所示應用層的分類特征,本文對應用協議進一步細分,重復進行主元分析,通過貢獻圖可以將異常定位到具體的應用程序。例如對第204時刻,將基本協議細分為Basic_app_all、HTTP、SSH、FTP_ctrl、FTP_data、SMTP、POP3、DNS、HTTPS和Basic_others 10種具體的應用程序(Telnet、SNMP、DHCP數量太小,故未考慮),組成10對20個變量,取相同時間段的數據,構建兩個288×20 的矩陣數據,進行主元分析。得到SPE貢獻圖如圖10所示。 從圖10可以看出,變量4(HTTP的包數)和變量2(基本協議的總包數)對SPE統計量的貢獻率最大,出現了異常。進一步分析可以得出,HTTP包數的異常是最主要原因,從而提醒維護人員對Wed服務器的安全防范。 最后直接從數據庫原始數據分析,得出的結論和上述整個分析過程相同,驗證了貢獻圖分析方法能夠有效分析產生異常的原因。 3.4 效率分析 本文對城域網大流量數據按應用層協議進行分類采集,并只記錄各應用協議的包數和字節數,與傳統主元分析方法[2~4]采集OD流相比,能減少數據存儲和時間開銷。通過本文方法對流量異常檢測與分析的時間開銷如表3所示。 表3 計算效率分析 方法誤警率/%平均運行時間/s 本文方法(沒有小波去噪)55.60.352 329 本文方法00.395 133 采用本文方法(沒有小波去噪),每次檢測平均計算時間為0.352 329 s,完全適合在線檢測的要求。采用本文方法后,時間消耗增加了0.042 804 s,但誤警率降低了55.6%,也完全適合在線檢測的要求。 通過本文改進的主元分析過程,小波去噪預處理能夠明顯降低SPE控制圖的誤警率(對比圖5、8);SPE貢獻圖(圖9、10)分析方法能夠有效分析產生異常的原因,彌補了傳統主元分析方法的不足。 4 結束語 本文將網絡流量按應用層指標分類,能實時、迅速建立具有相關性的流量數據矩陣;主元分析法對流量數據矩陣進行分析,通過SPE控制圖可以檢測何時出現異常,本文實驗數據檢測率為100%;采用小波分析對建模數據進行去噪處理,能提高主元模型的準確度,降低SPE控制圖的誤警率,與沒有小波去噪的傳統主元分析方法相比,能降低誤警率55.6%;通過SPE貢獻圖可找出導致異常出現的主要原因,并定位到具體的應用層協議和程序上,彌補了傳統主元分析方法的不足,從而便于維護人員對網絡異常的發現和處理,保障網絡運行安全。 進一步的工作將在提高模型精度、多種指標模型對比檢測以及與流數據庫結合來定位產生異常的流信息等方面進行。 參考文獻: [1]楊雅輝.網絡流量異常檢測及分析的研究[J].計算機科學,2008, 35(5):108-112. [2]LAKHINA A, CROVELLA M, DIOT C. Characterization of networkwide anomalies in traffic flows [C]// Proc of the 4th ACM SIGCOMM. New York: ACM Press, 2004: 201-206. [3]LAKHINA A, CROVELLA M, DIOT C. Diagnosing networkwide traffic anomalies[C]// Proc of ACM SIGCOM. New York: ACM Press,2004: 219-230. [4]LAKHINA A, CROVELLA M, DIOT C. Mining anomalies using traffic feature distributions[C]// Proc of ACM SIGCOMM. New York: ACM Press,2005: 217-228. [5]XIE Gao-gang, ZHANG Guang-xing, YANG Jian-hua, et al. The survey on traffic of metro area network with measurement online[C]// Proc of the 20th International Teletraffic Congress. Berlin: Springer,2007: 666-677. [6]XIE Gao-gang, YANG Jian-hua, ISSARNY V, et al. An accurate and efficient 3phases measurement method for IP traffic flow on high speed link[C]// Proc of the 6th International Conference on Net working. Piscataway, NJ: IEEE Press,2007: 4651. [7]肖應旺.基于PCA的流程工業性能監控與故障診斷研究[D].無錫: 江南大學,2007. [8]張杰,陽憲惠.多變量統計過程控制[M].北京:化學工業出版社,2003:58-62. [9]LATTIN J M, CARROLL J D, GREEN P E. Analyzing multivariate data[M].北京: 機械工業出版社,2003: 112-117. [10]JACKSON J E. A user’s guide to principal components[M]. New York: WileryInterScience, 1991. [11]杜浩藩,叢爽.基于MATLAB小波去噪方法的研究[J].計算機仿真,2003, 20(7):119-122. [12]查顯杰,傅容珊,戴志陽,等.小波基函數選擇對SAR干涉圖去噪的影響[J].理論研究, 2008(2):17-19.