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