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