文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2015)05-0116-03
0 引言
隨著移動(dòng)設(shè)備的普及,Internet網(wǎng)絡(luò)的數(shù)據(jù)量呈爆炸式增長(zhǎng),服務(wù)端的數(shù)據(jù)流量隨之增加。為了成功和有效地利用流量數(shù)據(jù),需要對(duì)數(shù)據(jù)進(jìn)行處理與分析。目前許多攻擊(如DDoS、PDoS)可對(duì)云端及網(wǎng)絡(luò)造成毀滅性打擊[1],因此對(duì)此類攻擊的檢測(cè)與阻止極為重要,通過異常流量檢測(cè)來檢測(cè)此類攻擊是一個(gè)重要方法[2]。
Hadoop是一種應(yīng)用極為廣泛的大規(guī)模分布式數(shù)據(jù)處理系統(tǒng)[3],其可有效地?cái)U(kuò)展數(shù)據(jù)存儲(chǔ)空間,采用平行化計(jì)算提高了數(shù)據(jù)的計(jì)算處理能力,并實(shí)現(xiàn)了MapReduce的云計(jì)算編程模型[4]。盡管已有較多的異常流量分析方案,但極少有基于云計(jì)算云端的異常流量檢查方案。
本文基于Hadoop平臺(tái)設(shè)計(jì)并構(gòu)建了云端流量監(jiān)控平臺(tái),采用HDFS存儲(chǔ)大量的流量信息與異常流量信息,使用MapReduce進(jìn)行分布式處理,提高了處理能力,較好地實(shí)現(xiàn)了對(duì)云端異常流量的監(jiān)控,從而可防止對(duì)云端的攻擊行為,提高了云端的安全性。
1 相關(guān)技術(shù)
基于隨機(jī)自相似過程[5]的異常流量檢測(cè)主要包括Hadoop、異常流量檢測(cè)以及自相似隨機(jī)過程三個(gè)部分。
1.1 Hadoop
Hadoop是一個(gè)開源的軟件平臺(tái),支持分布式數(shù)據(jù)存儲(chǔ)應(yīng)用[6]。Hadoop主要由分布式存儲(chǔ)(HDF:Hadoop分布式文件系統(tǒng))和分布式處理(MapReduce)兩部分組成。Hadoop框架分為MapReduce層和HDFS層[7]。
MapReduce是一種將大規(guī)模數(shù)據(jù)集并行運(yùn)算的編程模型。指定一個(gè)Map(映射)函數(shù),將一組鍵值對(duì)映射成一組新的鍵值對(duì);指定并發(fā)的Reduce(歸約)函數(shù),以保證所有映射的鍵值對(duì)共享相同的鍵組。
1.2 異常流量檢測(cè)(IDS)
IDS通過監(jiān)控網(wǎng)絡(luò)與目標(biāo)系統(tǒng)(檢測(cè)異常流量)來提高系統(tǒng)的安全性。異常流量檢測(cè)主要分為兩種類型:基于簽名的異常流量檢測(cè)系統(tǒng)(ST-IDS)[8]和基于異常的異常信息檢測(cè)系統(tǒng)(AT-IDS)[9]。ST-IDS利用已知的攻擊模型來檢測(cè)攻擊,通過預(yù)建立已知攻擊的簽名庫尋找相應(yīng)攻擊;AT-ID通過檢測(cè)超過預(yù)設(shè)閾值的不正常數(shù)據(jù)行為檢測(cè)異常流量。ST-IDS僅對(duì)已有攻擊有效,對(duì)一些新的攻擊效果欠佳,因此本文采用AT-IDS方案。
1.3 自相似隨機(jī)過程
許多自然與人造系統(tǒng)中均有LRD(Long-Range Dependence)的自相似過程,其中Internet網(wǎng)絡(luò)中的數(shù)據(jù)流量即為一種自相似隨機(jī)過程[10]。
目前,網(wǎng)絡(luò)流量已被嚴(yán)格定義為離散時(shí)間上的二階或近似二階統(tǒng)計(jì)的自相似過程。設(shè){X1,X2,…}表示廣義平穩(wěn)時(shí)間序列,其離散時(shí)間設(shè)為i=1,2,3…。設(shè)E[Xi]=EX,Var[Xi]=VarX,ρk=E[(Xi-EX)(Xi+k-EX)]/VarX分別表示該序列的均值、方差和滯后k偏自相關(guān)系數(shù)。
2 現(xiàn)有問題與本文方案
2.1 現(xiàn)有問題與本平臺(tái)方案
(1)大數(shù)據(jù)存儲(chǔ):流量的實(shí)時(shí)監(jiān)控將產(chǎn)生大量的流量數(shù)據(jù),本方案采用HDFS和HBase將流量數(shù)據(jù)進(jìn)行分布式存儲(chǔ)。
(2)處理能力:需要極強(qiáng)的處理能力。本方案采用平行架構(gòu)MapReduce。
(3)數(shù)據(jù)的變化性:需要存儲(chǔ)結(jié)構(gòu)化的數(shù)據(jù)、非結(jié)構(gòu)化的數(shù)據(jù)以及不同形式(文本、圖像、視頻等)的數(shù)據(jù)。本方案采用非關(guān)系數(shù)據(jù)庫來存儲(chǔ)各種數(shù)據(jù),如NoSQL。
2.2 本異常流量檢測(cè)與分析平臺(tái)
2.2.1 本平臺(tái)總體結(jié)構(gòu)與程序設(shè)計(jì)
圖1所示為L(zhǎng)AN環(huán)境下的本監(jiān)控平臺(tái)總體框架圖,主要模塊包括:數(shù)據(jù)收集模塊、存儲(chǔ)模塊、分析模塊和GUI模塊。本平臺(tái)基于Java語言實(shí)現(xiàn)。
(1)數(shù)據(jù)收集模塊:利用SNS(如微博)公開的API或分布式文件收集工具來收集網(wǎng)頁數(shù)據(jù)、微博數(shù)據(jù)以及系統(tǒng)日志信息。
(2)存儲(chǔ)模塊:對(duì)流量數(shù)據(jù)進(jìn)行管理,并將數(shù)據(jù)以文件形式或裸數(shù)據(jù)格式進(jìn)行存儲(chǔ)。
(3)分析模塊:將分布式的數(shù)據(jù)進(jìn)行分簇與聚類,對(duì)數(shù)據(jù)進(jìn)行摘要提取、預(yù)測(cè)分析、自然語言處理、文本處理等,基于MapReduce實(shí)現(xiàn)AT-IDS來檢測(cè)異常流量。
(4)GUI:將流量變化的實(shí)時(shí)狀態(tài)、統(tǒng)計(jì)結(jié)果以及控制界面友好地向用戶展示。
圖2為本平臺(tái)的詳細(xì)結(jié)構(gòu)圖,其主要功能是檢測(cè)與分析異常流量,同時(shí)也提供一些相關(guān)的附加功能,如網(wǎng)絡(luò)攻擊工具(可產(chǎn)生偽隨機(jī)數(shù)量的異常流量)。使用Jpcap分析網(wǎng)絡(luò)數(shù)據(jù)包,由于本平臺(tái)基于Java語言開發(fā),因此本平臺(tái)是系統(tǒng)不相關(guān)的,可運(yùn)行于Linux與Windows系統(tǒng)(只要安裝JVM即可)。Jpcap將網(wǎng)絡(luò)數(shù)據(jù)包的細(xì)節(jié)隱藏,將許多網(wǎng)絡(luò)數(shù)據(jù)包的類型和協(xié)議等信息提取成Java的類。Jpcap內(nèi)部實(shí)現(xiàn)了LibPcap系統(tǒng)庫的API,本平臺(tái)通過JNI來調(diào)用Jpcap,從而提高了JAVA的運(yùn)行速度。目前廣泛使用的AWT(窗口提取工具)和Swing的運(yùn)行速度較慢,因此采用SWT(Standard Widget Toolkit)建立GUI控制界面,提高了系統(tǒng)的運(yùn)行速度。
圖3為本平臺(tái)檢測(cè)、分析、傳輸、顯示異常流量的程序框圖。
2.2.2 Map/Reduce設(shè)計(jì)
圖4為本平臺(tái)的Map/Reducer程序,其功能是利用Map/Reduce將每天的流量信息以文件形式存儲(chǔ)于HDFS中。首先,使用Mapper周期性地從所有存儲(chǔ)流量信息的文件中提取流量的部分信息(目錄、數(shù)據(jù)包協(xié)議、數(shù)據(jù)包數(shù)量、數(shù)據(jù)包大小等);然后通過Reducer提取異常流量并保存(可通過數(shù)據(jù)包大小來判斷異常流量)。
3 試驗(yàn)與分析
3.1 流量變化界面展示
圖5為軟件實(shí)時(shí)流量監(jiān)控的流量變化界面,圖中所示曲線圖是監(jiān)控端口每秒鐘流量的變化。通過協(xié)議獲得每個(gè)數(shù)據(jù)包的大小與數(shù)據(jù)包總數(shù)量,然后進(jìn)行統(tǒng)計(jì)計(jì)算獲得每秒的總流量。將每秒的流量分為3種類型(正常流量、異常流量、混合流量)進(jìn)行存儲(chǔ),將每天的統(tǒng)計(jì)結(jié)果存儲(chǔ)于HDFS中。
3.2 對(duì)異常流量的監(jiān)控性能量
將DDoS攻擊注入局域網(wǎng),用來測(cè)試本平臺(tái)的異常流量檢測(cè)性能。使用2個(gè)本監(jiān)控平臺(tái)對(duì)同一個(gè)局域網(wǎng)中的同一個(gè)端口進(jìn)行監(jiān)控(共監(jiān)控10 h),對(duì)其中一個(gè)監(jiān)控平臺(tái)的輸入接口注入一段時(shí)間的DDoS攻擊。
圖6所示為10 h受攻擊的端口流量變化統(tǒng)計(jì)結(jié)果。圖中可明顯看出受攻擊端口的流量變化劇烈,可見本平臺(tái)可實(shí)時(shí)反應(yīng)出流量的狀態(tài),并可檢測(cè)出異常流量。
4 結(jié)束語
本文基于Hadoop設(shè)計(jì)并建立了云端流量監(jiān)控平臺(tái),采用HDFS存儲(chǔ)大量的流量信息與異常流量信息,使用MapReduce進(jìn)行分布式處理,提高了處理能力,較好地實(shí)現(xiàn)了云端的異常流量的監(jiān)控,從而可防止對(duì)云端的攻擊行為,提高了云端的安全性。通過對(duì)流量數(shù)據(jù)存儲(chǔ)、檢測(cè)與分析可成功檢測(cè)出有威脅的攻擊,保障了云端的安全。本平臺(tái)基于開源的Hadoop實(shí)現(xiàn),成本較低,并且基于Java語言實(shí)現(xiàn),可成功移植于各種主流操作系統(tǒng),因此具有廣泛適用性。
參考文獻(xiàn)
[1] 張永錚,肖軍,云曉春,等.DDoS攻擊檢測(cè)和控制方法[J].軟件學(xué)報(bào),2012,23(8):2058-2072.
[2] 陳鴻昶,程國(guó)振,伊鵬.基于多尺度特征融合的異常流量檢測(cè)方法[J].計(jì)算機(jī)科學(xué),2012,39(2):42-46.
[3] 趙曉永,楊揚(yáng),孫莉莉,等.基于Hadoop的海量MP3文件存儲(chǔ)架構(gòu)研究[J].計(jì)算機(jī)應(yīng)用,2012,32(6):1724-1726.
[4] 李玉林,董晶.基于Hadoop的MapReduce模型的研究與改進(jìn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2012,33(8):3110-3116.
[5] 高茜,馮琦,李廣俠.基于組合模型的自相似業(yè)務(wù)流量預(yù)測(cè)[J].計(jì)算機(jī)科學(xué),2012,39(4):123-126.
[6] 凃云杰,白楊.基于Hadoop和雙密鑰的云計(jì)算數(shù)據(jù)安全存儲(chǔ)策略設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2014,22(8):2629-2631.
[7] 廖彬,于炯,張?zhí)?,?基于分布式文件系統(tǒng)HDFS的節(jié)能算法[J].計(jì)算機(jī)學(xué)報(bào),2013,36(5):1047-1064.
[8] 方瑩.基于應(yīng)用層簽名特征的 P2P 流量識(shí)別[J].Computer Engineering and Applications,2012,48(3).
[9] 冶曉隆,蘭巨龍,郭通.基于主成分分析禁忌搜索和決策樹分類的異常流量檢測(cè)方法[J].計(jì)算機(jī)應(yīng)用,2013,33(10):2846-2850.
[10] 王建榮.基于自相似特性的片上網(wǎng)絡(luò)流量分析與建模[D].成都:電子科技大學(xué),2011.