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