謝添丞,吳凌淳,林羽豐,高瑞瑋,楊國平,彭鈺寒,冉黎瓊,韓 楠
(1.成都信息工程大學(xué) 軟件工程學(xué)院,四川 成都 610225;2.成都信息工程大學(xué) 管理學(xué)院,四川 成都 610225)
網(wǎng)絡(luò)流量監(jiān)控和分析(Network Traffic Monitoring and Analysis,NTMA)主要目的是了解互聯(lián)網(wǎng)服務(wù)對日常生活的影響。NTMA的主要功能是提供網(wǎng)絡(luò)流量視圖及檢測網(wǎng)絡(luò)異常,并且為監(jiān)控系統(tǒng)提供網(wǎng)絡(luò)流量統(tǒng)計信息。NTMA應(yīng)用范圍廣泛,能夠保證網(wǎng)絡(luò)服務(wù)穩(wěn)定運行。通過收集關(guān)于流量工程和故障排除的歷史數(shù)據(jù)來維持網(wǎng)絡(luò)穩(wěn)定運行,并找出網(wǎng)絡(luò)故障的根本原因。
流量監(jiān)控與分析是一項復(fù)雜的工作,NTMA應(yīng)用也面臨著許多嚴(yán)峻挑戰(zhàn),如龐大的通信量、極高的傳輸速度、網(wǎng)絡(luò)流量數(shù)據(jù)源的復(fù)雜性、采集網(wǎng)絡(luò)流量數(shù)據(jù)方法的多樣性。隨著網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜程度的不斷上升,設(shè)計多樣性的分布式應(yīng)用程序變得困難,并需要高效的網(wǎng)絡(luò)服務(wù)運行機制在線分析大型流量。存儲成本的降低使得創(chuàng)建大規(guī)模的歷史數(shù)據(jù)集進(jìn)行回顧性分析更容易被實現(xiàn)。
大數(shù)據(jù)說法最早出現(xiàn)在流量監(jiān)測和分析,從數(shù)據(jù)的信息量、傳輸速率、多樣性以及準(zhǔn)確性中提取出有價值的信息是大數(shù)據(jù)的目的,也是現(xiàn)在大數(shù)據(jù)面臨的挑戰(zhàn)。
當(dāng)今學(xué)者常將大數(shù)據(jù)技術(shù)應(yīng)用于NTMA[1],如分布式文件系統(tǒng)的Hadoop(HDFS)、大數(shù)據(jù)平臺的Spark和Hadoop、分布式機器學(xué)習(xí)和圖形處理引擎MLlib和Apache Giraph。這類技術(shù)為應(yīng)用程序處理復(fù)雜的數(shù)據(jù)集,但不確定其是否充分利用并發(fā)掘了新興大數(shù)據(jù)技術(shù)的潛力。本文基于大數(shù)據(jù)方法的NTMA應(yīng)用網(wǎng)絡(luò)以往研究成果的案例,討論了NTMA在大數(shù)據(jù)技術(shù)方面的開發(fā)程度,并介紹了目前大數(shù)據(jù)技術(shù)在NTMA應(yīng)用中遇到的挑戰(zhàn)。
通過介紹近年來有關(guān)NTMA的文獻(xiàn),旨在幫助相關(guān)研究者根據(jù)NTMA應(yīng)用的領(lǐng)域與目的,選用適合的大數(shù)據(jù)技術(shù)方法,并簡述了使用大數(shù)據(jù)方法時NTMA所突出的問題以及有前景的研究方向。
通過大數(shù)據(jù)相關(guān)的文獻(xiàn)調(diào)查,大數(shù)據(jù)目前有了基本的定義。Hu等人[2]認(rèn)為大數(shù)據(jù)不僅數(shù)據(jù)量大,還說明數(shù)據(jù)具有多樣性以及速度等其他特征,其定義可分為3類:屬性型定義、比較型定義和架構(gòu)型定義。
架構(gòu)型定義和比較型定義比較抽象,按照架構(gòu)定義,大數(shù)據(jù)問題會在數(shù)據(jù)集到達(dá)傳統(tǒng)方法無法存儲和處理的程度時發(fā)生。比較型定義通過比較數(shù)據(jù)的屬性和傳統(tǒng)數(shù)據(jù)庫的能力描述大數(shù)據(jù),2011年Mckinsey公司的研究報告將大數(shù)據(jù)定義為:規(guī)模超過了傳統(tǒng)數(shù)據(jù)庫軟件工具的捕獲、存儲、管理和分析能力的數(shù)據(jù)集。架構(gòu)型定義通過數(shù)據(jù)的特征分析數(shù)據(jù)本身的過程來描述大數(shù)據(jù),美國國家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)對大數(shù)據(jù)的描述為:大數(shù)據(jù)是指數(shù)據(jù)的數(shù)量、獲取的速度以及數(shù)據(jù)的表示限制了使用傳統(tǒng)相關(guān)的數(shù)據(jù)庫方法進(jìn)行有效分析的能力,需要使用具有良好可擴展性的新型方法來對數(shù)據(jù)進(jìn)行高效的處理。
由上面定義可知,大數(shù)據(jù)的5個特征(5-V)為:數(shù)量、速度、多樣化、準(zhǔn)確性和價值,這些特征是評判大數(shù)據(jù)性能的標(biāo)準(zhǔn),其他針對大數(shù)據(jù)技術(shù)[2-4]和分析[5-6]的研究也利用5-V來評判大數(shù)據(jù)的質(zhì)量。因此,大數(shù)據(jù)被概括為數(shù)據(jù)集很大(volunme),需要以高速率或?qū)崟r(velocity)捕獲和分析,數(shù)據(jù)來源可能不同(variety),組合面向列的數(shù)據(jù)庫等結(jié)構(gòu)化數(shù)據(jù)、服務(wù)器日志等非結(jié)構(gòu)化數(shù)據(jù)以及XNL或JSON文檔等半結(jié)構(gòu)化數(shù)據(jù),數(shù)據(jù)具有不同屬性(veracity),數(shù)據(jù)分析給用戶和企業(yè)可以帶來價值(value)。
綜上所述,NTMA是大數(shù)據(jù)應(yīng)用的一個例子,所以也具有5-V的特征,應(yīng)對大數(shù)據(jù)挑戰(zhàn)而開發(fā)的方法也適用于NTMA技術(shù)。
Fayyad等人[7]對數(shù)據(jù)進(jìn)行收集、選擇、預(yù)處理、轉(zhuǎn)換、挖掘、解釋和可視化這一系列的操作稱為數(shù)據(jù)挖掘(Knowledge Discovery and Data Mining,KDD)。文獻(xiàn)[5]將這些操作從系統(tǒng)的角度分為3組:輸入、分析和輸出。
數(shù)據(jù)輸入執(zhí)行的是數(shù)據(jù)管理的過程,從原始數(shù)據(jù)的收集到數(shù)據(jù)以合適的格式交付給后續(xù)挖掘,它包括數(shù)據(jù)的預(yù)處理(即準(zhǔn)備數(shù)據(jù)的初始步驟)、異構(gòu)源的集成和偽數(shù)據(jù)的清理。
數(shù)據(jù)分析模塊接收處理后的數(shù)據(jù)并對其進(jìn)行信息提取,該信息包括分類模型、隱藏模式以及數(shù)據(jù)間關(guān)系和規(guī)則等,可應(yīng)用于統(tǒng)計建模分析和機器學(xué)習(xí)數(shù)據(jù)挖掘等領(lǐng)域。
數(shù)據(jù)輸出的過程中會將信息轉(zhuǎn)化為知識,如測量信息質(zhì)量、以簡潔明了的方式顯示信息,并協(xié)助分析人員解釋結(jié)果。
圖1是根據(jù)數(shù)據(jù)挖掘的幾個階段來歸納NTMA。數(shù)據(jù)挖掘適用于任何數(shù)據(jù)分析,但大數(shù)據(jù)是每一個方法論的根本性挑戰(zhàn),如需考慮數(shù)據(jù)的數(shù)量、處理速度和多樣性,數(shù)據(jù)管理在處理復(fù)雜的大數(shù)據(jù)任務(wù)時會發(fā)揮降低數(shù)據(jù)量和復(fù)雜性等關(guān)鍵性作用,并在分析速度和結(jié)果的方面表現(xiàn)優(yōu)良,對大數(shù)據(jù)至關(guān)重要。
圖1 數(shù)據(jù)挖掘過程
大數(shù)據(jù)挑戰(zhàn)(5-V)的方法需要在綜合分析框架中考慮整個數(shù)據(jù)挖掘過程,該框架應(yīng)該包含允許實現(xiàn)覆蓋整個數(shù)據(jù)挖掘周期的應(yīng)用程序邏輯的編程模型。利用并行和分布式計算框架是處理大數(shù)據(jù)集的一種常見方法,需要覆蓋所有數(shù)據(jù)挖掘階段,而這些框架仍有待被開發(fā)。
按照文獻(xiàn)[3-4]的分類方法區(qū)分了4種大數(shù)據(jù)處理系統(tǒng):① 一般用途:處理大數(shù)據(jù)的平臺,一般不對數(shù)據(jù)特征和執(zhí)行算法做假設(shè);② SQL:專注于結(jié)構(gòu)化和表格數(shù)據(jù)的可擴展處理平臺;③ 圖處理:專注于處理大型圖的平臺;④ 流式數(shù)據(jù)處理:流式數(shù)據(jù)處理持續(xù)輸入系統(tǒng)的大規(guī)模數(shù)據(jù)的平臺。
圖2用系統(tǒng)的例子描述了分類方法,MapReduce、Dryad、Flink、Spark屬于通用數(shù)據(jù)處理系統(tǒng)類[8],Hive、HAWQ、Apache Drill、Tajo屬于sql類,Pregel、GraohLab屬于圖形處理類,Storm和S4屬于流式數(shù)據(jù)處理類。
圖2 大數(shù)據(jù)處理系統(tǒng)
Hadoop是一般大數(shù)據(jù)平臺中應(yīng)用最廣泛的處理器,圖3為Hadoop V2.0與Spark[9]的組成部分。
圖3 基于Spark的Hadoop 2.0棧
Hadoop V2.0由Hadoop內(nèi)核、MapReduce和HDFS組成。YARN是提供對多線程并行作業(yè)的集群資源訪問的默認(rèn)資源管理器,其他資源管理器(如Mesos)和執(zhí)行引擎(如TEZ)也可為Spark使用。
為了解決MapReduce的局限性,在Hadoop V2.0后引入了Spark框架,該框架引入了內(nèi)存分布式數(shù)據(jù)集,可以優(yōu)化迭代工作負(fù)載。MapReduce則依賴于map/reduce的基本操作,應(yīng)用在讀取并存儲到磁盤的數(shù)據(jù)。如迭代和實時的大數(shù)據(jù)應(yīng)用,Spark已在非批處理場景中應(yīng)用廣泛,可以解決map/reduce所不能解決的批處理問題。
谷歌的Sawzall[10]、雅虎的Pig Latin[11]、 Facebook的Hive[12]以及微軟的SCOPE[13]等高級語言和系統(tǒng)即將在Hadoop上運行。為了解決Hadoop原本的環(huán)境問題,引入了MapReduce的Mahout[14]和Spark的MLlib等一些庫。此外,系統(tǒng)還補充了針對特定處理模型的工具,如支持圖處理的GraphX和支持流處理的Spark Streaming。
除了Apache Hadoop發(fā)行版,Cloudera CDH、Hortonworks HDP和Map融合數(shù)據(jù)平臺等為數(shù)據(jù)處理和集群管理提供了不同的特性。
基于文獻(xiàn)[15]的網(wǎng)絡(luò)管理應(yīng)用程序分類法對大數(shù)據(jù)方法處理NTMA的研究以管理應(yīng)用為最終目的分為8類:流量預(yù)測、流量分類、故障管理、網(wǎng)絡(luò)安全、擁堵控制、流量路由、資源管理和Qos/QoE管理。
由于文獻(xiàn)[15]中的分類法適合描述網(wǎng)絡(luò)管理應(yīng)用程序,但此類應(yīng)用程序?qū)TMA的依賴程度很大,且使用大數(shù)據(jù)方法進(jìn)行擁堵控制、流量路由、資源管理和Qos/QoE管理的文獻(xiàn)較少,所以以前四類為研究重點。針對這些類別問題的大規(guī)模數(shù)據(jù)集是不可用的,或者研究人員還不確定如何在這些場景中應(yīng)用大數(shù)據(jù)方法,導(dǎo)致現(xiàn)在忽略了使用大數(shù)據(jù)方法研究出的成果。
表1展示了NTMA的應(yīng)用程序類別,并已有了每個類別相對應(yīng)的工作例子。
表1 NTMA應(yīng)用領(lǐng)域
2.2.1 流量預(yù)測
流量預(yù)測可以作為流量工程的構(gòu)建模塊,幫助定義并可以預(yù)測網(wǎng)絡(luò)連接未來狀態(tài),可在網(wǎng)絡(luò)中部署更多內(nèi)存以維持QoS的性能。
流量預(yù)測是一個時間序列的預(yù)測問題。經(jīng)典的預(yù)測方法(ARIMA或SARIMA方法)和機器學(xué)習(xí)(神經(jīng)網(wǎng)絡(luò))通常是根據(jù)以前在同一鏈路上的測量來預(yù)測流量,但通常會因為網(wǎng)絡(luò)行為的變化使得預(yù)測變得更加困難。部署需要大量帶寬的新應(yīng)用程序或其他類似操作將使網(wǎng)絡(luò)配置發(fā)生突然變化,為流量預(yù)測方法帶來了重大挑戰(zhàn)。
2.2.2 流量分類
流量分類是管理和監(jiān)控網(wǎng)絡(luò)的關(guān)鍵步驟,其目的是識別產(chǎn)生流量的服務(wù)。相關(guān)運營商需要有關(guān)其服務(wù)的資料,如了解服務(wù)的要求及其對整體網(wǎng)絡(luò)性能的影響。
通過簡單地檢查網(wǎng)絡(luò)和傳輸協(xié)議中的信息流量分類就能很好地發(fā)揮作用,如通常可以通過檢查TCP/UDP端口號來識別互聯(lián)網(wǎng)服務(wù)。流量分類的復(fù)雜性在不斷上升,其一,互聯(lián)網(wǎng)服務(wù)的數(shù)量很大且不斷增加;其二,識別服務(wù)只能觀察網(wǎng)絡(luò)中的少量信息;其三,網(wǎng)絡(luò)服務(wù)都運行在少數(shù)加密協(xié)議(TCP上的HTTP)上而造成信息包中檢測不到信息,且聯(lián)網(wǎng)服務(wù)是動態(tài)地不斷更新。
人們提出了許多流量分類的方法,根據(jù)數(shù)據(jù)包分類策略可對數(shù)據(jù)進(jìn)行以下幾個分組:① 數(shù)據(jù)檢測查找預(yù)定義消息[16]或協(xié)議,分析數(shù)據(jù)內(nèi)容;② 有監(jiān)督的機器學(xué)習(xí)法從流量中提取特征并在訓(xùn)練階段建立模型,再將特征值與服務(wù)關(guān)聯(lián);③ 無監(jiān)督機器學(xué)習(xí)方法由于可在沒有之前歷史記錄的情況下對流量聚類,因此該學(xué)習(xí)方法適用于無訓(xùn)練數(shù)據(jù)的服務(wù);④ 行為方法基于終端節(jié)點[17]的行為來識別服務(wù),檢測流量算法為運行特定服務(wù)的節(jié)點建立模型,該模型的功能包括識別客戶端連接服務(wù)器的類型、使用的數(shù)據(jù)速率以及與服務(wù)器鏈接的順序等。
2.2.3 故障管理
故障管理的功能是對網(wǎng)絡(luò)中的故障進(jìn)行預(yù)測、檢測、隔離和修復(fù),目標(biāo)是將停機時間最小化。無論是根據(jù)測量結(jié)果分析及預(yù)測故障并及時做出反應(yīng)以避免中斷,或是被動評估流量和系統(tǒng)日志以了解故障根源,故障管理都可以發(fā)現(xiàn)問題的根本原因。
在大型網(wǎng)絡(luò)中各式各樣的系統(tǒng)都可能會受到故障的影響,如故障的路由器可能會導(dǎo)致其他路由過載,從而在網(wǎng)絡(luò)中引發(fā)一連串的故障。系統(tǒng)日志會記錄各種網(wǎng)絡(luò)元素產(chǎn)生的故障問題,通常是通過異常檢測的方法識別流量中的異常情況或系統(tǒng)日志中的異常事件來檢測網(wǎng)絡(luò)故障。異常事件也可能由網(wǎng)絡(luò)安全漏洞或更換使用模式引起,為了提高可見的網(wǎng)絡(luò)元素數(shù)量,分析算法會同時對流量、系統(tǒng)日志和活動測量進(jìn)行評估,并識別問題的根本原因。
2.2.4 網(wǎng)絡(luò)安全
許多NTMA被用于保護網(wǎng)絡(luò)安全,一般應(yīng)用于檢測安全漏洞、病毒和惡意軟件,可通過隔離受感染的系統(tǒng)以降低損失。檢測惡意網(wǎng)絡(luò)活動主要有兩種方案:基于攻擊標(biāo)志和基于異常檢測。
基于攻擊標(biāo)志的檢測技術(shù)會建立一個自己的知識庫,存儲了病毒、惡意軟件或其他威脅的已知信息,對已知的攻擊可以詳細(xì)地報告出攻擊類型以及應(yīng)對方案,并快速做出行動。但是對于未知的攻擊,該方案的效果就十分有限,而且知識庫必須不斷更新迭代以保證覆蓋大部分的攻擊方式。
基于異常檢測[18-19]的方法通常是預(yù)設(shè)一組正常的數(shù)值,如CPU利用率、磁盤利用率、內(nèi)存利用率等,這些數(shù)值可以是人為定義,也可以是通過觀察機器在正常情況下運行的反應(yīng)。再通過監(jiān)控機器數(shù)值的實時動態(tài),若發(fā)現(xiàn)機器數(shù)值于預(yù)設(shè)數(shù)值基線不同時則出發(fā)警報。這種檢測方法能提前預(yù)知威脅,但無法檢測干擾網(wǎng)絡(luò)的陰性攻擊,且對預(yù)設(shè)正常的數(shù)值要求較高,所以可能出現(xiàn)大量的誤報情況。
屬于上述方法的NTMA應(yīng)用均受益于大數(shù)據(jù)方法,下面將舉例說明典型的大數(shù)據(jù)方法(5-V)在當(dāng)今所面臨的挑戰(zhàn)。
以流分類為例,對動態(tài)數(shù)據(jù)包進(jìn)行分類要考慮流量(volume)與時效性(velocity),且輸入的數(shù)據(jù)量通常很大,也會使用不同的方法對需要時效的網(wǎng)絡(luò)流量如Gbit/s流進(jìn)行分類。
在數(shù)據(jù)的多樣性(variety)方面,隨著越來越多的數(shù)據(jù)被加密,可用于流量分類或故障管理算法的數(shù)據(jù)信息將變得越來越少?,F(xiàn)在使用的算法結(jié)合了DNS和流量檢測用于不同的數(shù)據(jù)源,如文獻(xiàn)[20]。異常檢測也常用于量軌跡、路由信息等多種數(shù)據(jù)源流,從而獲得不同的異常信號。
準(zhǔn)確性(veracity)方面常體現(xiàn)在網(wǎng)絡(luò)安全中,需對攻擊樣本進(jìn)行訓(xùn)練以識別網(wǎng)絡(luò)中的攻擊。但是這種樣本的設(shè)計是有挑戰(zhàn)性的,雖然簡單的攻擊可以在測試中模擬,但復(fù)雜的攻擊往往很難被模擬。
在價值(value)方面,當(dāng)網(wǎng)絡(luò)受到未被發(fā)現(xiàn)的攻擊所入侵時,網(wǎng)絡(luò)運行會產(chǎn)生巨大的損壞,所以在5-V的所有特性中價值是至關(guān)重要的。
隨著互聯(lián)網(wǎng)各類技術(shù)的不斷成熟,大數(shù)據(jù)也逐漸面臨著來自互聯(lián)網(wǎng)的挑戰(zhàn),即互聯(lián)網(wǎng)的測量。世界上有50萬個網(wǎng)絡(luò)、16億個網(wǎng)站、30億的用戶、500億個網(wǎng)頁,每年要訪問高達(dá)1 ZB數(shù)據(jù)。文獻(xiàn)[21]指出為了解決數(shù)據(jù)收集系統(tǒng)的伸縮性,相關(guān)學(xué)者在設(shè)計用于高速數(shù)據(jù)采集工具上進(jìn)行了大量的研究,以及如何在不影響數(shù)據(jù)質(zhì)量的情況下減少數(shù)據(jù)大小。
互聯(lián)網(wǎng)的檢測可分為主動測量和被動測量。主動測量是向網(wǎng)絡(luò)發(fā)送數(shù)據(jù)并觀察互聯(lián)網(wǎng)的響應(yīng)過程,由于主動測量固定了數(shù)據(jù)類型以及其發(fā)送與接收地址,所以常用于故障排除。被動測量是獨立于數(shù)據(jù)包和流量評估的,只能通過持續(xù)觀察且實時提取數(shù)據(jù)獲得信息。
這種架構(gòu)的組件可以集成到路由器或?qū)S玫木W(wǎng)絡(luò)監(jiān)視器這類的單個設(shè)備,或部署在分布式架構(gòu)中。由于大數(shù)據(jù)技術(shù)始終貫穿著NTMA應(yīng)用,分布式架構(gòu)在一般的網(wǎng)絡(luò)設(shè)置中很常見。收集器將收集需要采集的大數(shù)據(jù)監(jiān)控數(shù)據(jù)以及記錄許多預(yù)處理功能,例如基于流量數(shù)據(jù)的監(jiān)視中只需將每個通信流的數(shù)據(jù)導(dǎo)出到收集器。NTMA應(yīng)用程序收集數(shù)據(jù)的方法分為基于包和基于流量兩種。
3.1.1基于包的方法
分析數(shù)據(jù)包會消耗大量資源,為NTMA應(yīng)用程序提供了多種執(zhí)行選擇。深度包檢測技術(shù)(DPI)既能允許數(shù)據(jù)包通過,也能拒絕數(shù)據(jù)包的請求。由于現(xiàn)有的硬件技術(shù)不達(dá)標(biāo)[22-23],數(shù)據(jù)的傳輸速率成為了一大挑戰(zhàn)。但有一些技術(shù)可以以幾Gbit/s的速率執(zhí)行DPI,同時還能存儲數(shù)據(jù)[24]。
為了使基于包的方法有突破性創(chuàng)新,網(wǎng)絡(luò)檢測團體提出了許多方案。其中最經(jīng)典的方法是在數(shù)據(jù)采集前進(jìn)行預(yù)處理,過濾和采樣操作設(shè)置在采集點上,以便導(dǎo)出小部分通過過濾采樣的包,也可以只導(dǎo)出包頭以替代完整的包內(nèi)容。文獻(xiàn)[25]指出只收集每個流量的初始數(shù)據(jù)包就足以進(jìn)行流量分類。
表2展示了一些實際部署中用不同方法在不同情況下捕獲包的跟蹤量,捕捉時間長達(dá)至少一小時。第一行表示在一個大約有2萬ADSL客戶連接的ISP網(wǎng)絡(luò)捕獲包跟蹤的大小;第二行表示在有1.5萬名用戶使用的學(xué)生校園網(wǎng)捕獲包跟蹤的大小。這兩次捕捉行為都是在早上進(jìn)行的,且均捕獲到了超過半個TB的信息。據(jù)表2第一行顯示,ISP跟蹤可以每小時獲得大約45 GB的報頭,說明保存到傳輸層的數(shù)據(jù)包報頭的策略只能減少部分?jǐn)?shù)據(jù)量。表2最后一行顯示的是類似于文獻(xiàn)[25]的ISP網(wǎng)絡(luò)在一天中信息捕獲量的大小,雖然數(shù)據(jù)量顯著減少,但每天仍能保存超過600 GB的信息。
表2 不同情況下捕捉到的包數(shù)量
如今,DPI在加密和限制性隱私策略[26]的領(lǐng)域下難以實現(xiàn),需要設(shè)計能在加密流量的情況下替代DPI進(jìn)行檢測的算法。
3.1.2 基于流量的方法
基于流的方法通過收集數(shù)據(jù)包處理數(shù)據(jù),導(dǎo)出每個流的所有流量[27]。網(wǎng)絡(luò)流量是有共同特征的數(shù)據(jù)包,由于數(shù)據(jù)是聚合的,分析流量記錄的NTMA應(yīng)用系統(tǒng)對傳輸?shù)囊筝^低。數(shù)據(jù)隱私因為加密而得到了更好地保護,但是信息丟失是不可避免的。2013年據(jù)Cisco統(tǒng)計網(wǎng)絡(luò)流量分析的方法有90%是基于流量的,剩下的10%是基于包的[28]。
Cisco NetFlow、sFlow和IPFIX (IP Flow Information Export protocol)等技術(shù)在流量監(jiān)測技術(shù)最為常見。NetFlow被廣泛用于各種NTMA應(yīng)用,如網(wǎng)絡(luò)安全[29]。sFlow十分依賴數(shù)據(jù)包的采樣,會從1 000個數(shù)據(jù)包中采樣1個,雖然使得NTMA的性能降低,但sFlow仍然是最適合檢測攻擊的技術(shù)。IPFIX操作靈活且功能齊全,常用于導(dǎo)出流量信息[30],其多用于NTMA應(yīng)用檢測SSH的攻擊。
基于流量的監(jiān)控會產(chǎn)生很大的數(shù)據(jù)集[21],表3是根據(jù)文獻(xiàn)[27]構(gòu)建的,展示了Cisco的NetFlow v5和NetFlow v9以及IPFIX三種方法在50 Gbit/s的流量輸出下測量的流量狀態(tài)。
表3 50 Gbit/s的流量輸出下不同方法測量的流量狀態(tài)
選用IPFIX方法可使基于流量方法的NTMA應(yīng)用程序輸出70 Mbit/s的數(shù)據(jù),這是一個數(shù)據(jù)挖掘點的輸出量,因此有多個數(shù)據(jù)挖掘點的NTMA應(yīng)用程序可能要面對Gbit/s級別的數(shù)據(jù)量輸入。
NTMA應(yīng)用程序通常需要處理歷史數(shù)據(jù),如表2所示,存儲來自挖掘點的流量數(shù)據(jù)所需的空間是隨時間線性增長的,據(jù)文獻(xiàn)[21]研究可知4年將消耗30 TB的內(nèi)存。
數(shù)據(jù)收集屬于數(shù)據(jù)挖掘,因為在不同的場景中獲取數(shù)據(jù)的方式會有很大的不同,所以比較依賴于問題域。數(shù)據(jù)提取是通過大數(shù)據(jù)框架提供的工具和方法將原始數(shù)據(jù)從數(shù)據(jù)源頭傳輸至預(yù)處理和分析模塊。由于數(shù)據(jù)從數(shù)據(jù)源輸出是未處理的狀態(tài),并且在后續(xù)階段大數(shù)據(jù)流量和大量分布式收集器將產(chǎn)生大量的數(shù)據(jù)進(jìn)行解析和預(yù)處理,所以如何處理這些數(shù)據(jù)成為一個巨大的挑戰(zhàn)。
現(xiàn)在互聯(lián)網(wǎng)上有許多處理大數(shù)據(jù)的工具:① Flume,是一個可以從各種數(shù)據(jù)源收集日志的分布式系統(tǒng);② Sqoop,能建立Hadoop與相關(guān)數(shù)據(jù)庫之間傳輸數(shù)據(jù)的通道;③ Kafka,可為在線的數(shù)據(jù)流提供分布式發(fā)布訂閱消息系統(tǒng)的平臺。這些工具具有靈活性,它們可以以分布式的方式處理多個數(shù)據(jù)流,并在將數(shù)據(jù)輸入框架后立即對新的數(shù)據(jù)流進(jìn)行預(yù)處理。
在NTMA技術(shù)領(lǐng)域,很少有人提出將流量測量用于NTMA的大數(shù)據(jù)框架。而NTMA所面臨的挑戰(zhàn)是將不同格式且來自于不同數(shù)據(jù)源的數(shù)據(jù)輸入至框架中,并且現(xiàn)在已經(jīng)取得了新的進(jìn)展。
Apache Spot是一個集成了網(wǎng)絡(luò)安全領(lǐng)域不同應(yīng)用模塊的開放平臺,其中模塊Kafka負(fù)責(zé)存儲收集到的原始數(shù)據(jù),并傳輸至基于python編譯的Spot Workers進(jìn)行解析和預(yù)處理。原始數(shù)據(jù)和經(jīng)過處理后的數(shù)據(jù)記錄都將存儲在大數(shù)據(jù)框架中。
網(wǎng)絡(luò)數(shù)據(jù)分析平臺PNDA是由Linux基金會開發(fā)的一個十分有前景的開源平臺,能對不同的數(shù)據(jù)源進(jìn)行管理并分析。該平臺會將數(shù)據(jù)自動保存在分布式文件系統(tǒng)中,因此不需要手動將數(shù)據(jù)強制放入特定的領(lǐng)域模塊。它還含有大數(shù)據(jù)框架的工具,如用于數(shù)據(jù)挖掘的Kafka模塊。
通過Spot和PNDA的研究表明,大數(shù)據(jù)框架只有在安裝了NTMA格式的插件才能提取其數(shù)據(jù),這些插件是使用Kafka等挖掘模塊的必要工具。
理論研究得出NTMA模塊可以使用大數(shù)據(jù)框架的通用存儲系統(tǒng),但實際上大數(shù)據(jù)框架的一些結(jié)構(gòu)會使得NTMA數(shù)據(jù)的存儲變得更加復(fù)雜。
3.3.1 通用系統(tǒng)
圖4展示了通用大數(shù)據(jù)系統(tǒng)[9, 31]的分類,大多數(shù)的大數(shù)據(jù)存儲系統(tǒng)致力于系統(tǒng)的可擴展性研究,提升多個服務(wù)器的性能達(dá)到增加系統(tǒng)容量的效果,而不是只升級單個服務(wù)器。這種研究雖然誕生了大型的分布式系統(tǒng),但隨之而來的也有許多如節(jié)點崩潰或者網(wǎng)絡(luò)故障等風(fēng)險。因此,大數(shù)據(jù)存儲[9, 15]的研究中表示一致性、可用性和容錯率是其重要的特征。
圖4 通用大數(shù)據(jù)存儲系統(tǒng)
在文件系統(tǒng)方面谷歌率先開發(fā)出了谷歌文件系統(tǒng)(GFS)[32],并且該文件系統(tǒng)擁有較高的可擴展性,即使運行在普通的服務(wù)器上也能展現(xiàn)出高容錯和高性能的狀態(tài),GFS的子程序Colossus[33]和Facebook Haystack也能達(dá)到這種效果。如今,GFS有了許多開源的衍生程序,例如Apache HDFS和Kosmosfs。
大型數(shù)據(jù)集要進(jìn)行更高層次的數(shù)據(jù)挖掘時其相關(guān)數(shù)據(jù)庫的性能會降低,而NoSQL數(shù)據(jù)庫則例外。與普通數(shù)據(jù)庫相比,NoSQL數(shù)據(jù)庫沒有固定的數(shù)據(jù)庫模式,并且可擴展性比其相關(guān)的數(shù)據(jù)庫更高。NoSQL數(shù)據(jù)庫有4種不同的類型:① 鍵值存儲數(shù)據(jù)庫通常使用Hash表存儲鍵值對,查找速度較快,其典型的代表有亞馬遜的Dynamo和Memcached;② 列存儲數(shù)據(jù)庫以列存儲數(shù)據(jù),可擴展性強,典型的代表有Cassandra[34]、HBase;③ 文檔型數(shù)據(jù)庫將數(shù)據(jù)存儲為Value的結(jié)構(gòu)化數(shù)據(jù),適用于任何數(shù)據(jù)結(jié)構(gòu),代表例子有MongoDB;④ 圖形數(shù)據(jù)庫存儲有邊與節(jié)點構(gòu)成的圖,可以使用高效的圖相關(guān)算法,如Titan。
NewSQL系統(tǒng)不僅具有NoSQL的數(shù)據(jù)存儲管理能力,并保存了相關(guān)數(shù)據(jù)模型和SQL查詢等功能屬性,谷歌Spanner就是運用NewSQL系統(tǒng)的典型代表。
3.3.2 基于大數(shù)據(jù)框架的NTMA數(shù)據(jù)存儲
互聯(lián)網(wǎng)是一個大型的分布式系統(tǒng),其關(guān)鍵技術(shù)在于如何存儲測量的集成式數(shù)據(jù)屬性。測量數(shù)據(jù)通常由其特有的平臺接收,并且大數(shù)據(jù)框架無法讀取導(dǎo)出的數(shù)據(jù)。盡管嘗試了文獻(xiàn)[35]這樣可擴展和靈活的方法,但仍未達(dá)到預(yù)期目標(biāo),因此需要特殊的存儲解決方案,或者將數(shù)據(jù)轉(zhuǎn)換為其他格式。
Libpcap、libtrace、libcoral、libnetdude和Scapy這些庫可以用于捕捉數(shù)據(jù)包并轉(zhuǎn)化為pcap格式進(jìn)行讀取和保存數(shù)據(jù)。由于pcap的蹤跡無法被分開單獨識別破解,分布式大數(shù)據(jù)文件和數(shù)據(jù)庫系統(tǒng)如HDFS或Cassandra通常無法讀取pcap文件的蹤跡。用于存儲基于流的測量格式也有類似的問題,如nfdump是一款用于NetFlow收集、存儲、過濾、統(tǒng)計分析的開源軟件,雖然其收集器會根據(jù)預(yù)先設(shè)定好的參數(shù)將文件分成若干個二進(jìn)制文件,但這些文件所占用的內(nèi)存特別大,且基于Hadoop的系統(tǒng)不能使用該方法。
如今一些文獻(xiàn)提出了解決該問題的新方法:① 將原始格式的測量數(shù)據(jù)加載到分布式系統(tǒng)中,并擴展系統(tǒng)框架處理傳統(tǒng)格式的文件;② 為處理網(wǎng)絡(luò)大數(shù)據(jù)提出新的存儲格式和工具;③ 將網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)化并導(dǎo)入傳統(tǒng)的大數(shù)據(jù)存儲系統(tǒng)。
Lee等人[1]開發(fā)了一種名為PcapInputFormat的Hadoop API,它能夠以數(shù)據(jù)原來的格式管理IP數(shù)據(jù)包和網(wǎng)絡(luò)流量記錄,常用于跟蹤數(shù)據(jù)包的文件?;贖adoop的NTMA應(yīng)用程序能在該API的作用下持續(xù)分析pcap及NetFlow蹤跡,該API還能處理未被轉(zhuǎn)換過的文件記錄并避免系統(tǒng)按順序讀取文件的性能損失。Ibrahim基于MapReduce和新引入API開發(fā)了類似的流量分析算法以解析Hadoop中的pcap文件。
Nagele建立了一個基于java的Hadooppcap庫[36],能夠快速且靈活地對pcap文件進(jìn)行分析,并引入一個能串并行互相轉(zhuǎn)化的寄存器,使得Hive能直接分析pcap數(shù)據(jù)。文獻(xiàn)[37]使用了相同的能串并行轉(zhuǎn)化的寄存器構(gòu)建了一個基于Hadoop的網(wǎng)絡(luò)安全平臺,該平臺常用于sFlow、Netflow、DNS測量和垃圾郵件捕獲。
BGP在選擇路由時總會有一定的誤差,但可以通過引入 BGPStream提供能連接來自API和應(yīng)用程序的實時BGP數(shù)據(jù)的工具和庫就可以將誤差降低,并可以高效地挖掘在線動態(tài)數(shù)據(jù)。
無論是HDFS、pcap還是NetFlow技術(shù),他們的預(yù)定義連接口都是一一對應(yīng)的。因此,對于選用何種測量格式和分析框架都要執(zhí)行類似的篩選方法。
近年來,許多作者提出了對大型網(wǎng)絡(luò)檢測更好的存儲方法和解決方案。文獻(xiàn)[38]提出用DBStream對數(shù)據(jù)流進(jìn)行持續(xù)計算分析,部分學(xué)者為了實現(xiàn)更高的存儲效率以及升級索引和檢索機制,優(yōu)化了pcap和基于流的解決方案。然而這些解決方案的方向都是基于大數(shù)據(jù)框架思想以及鍵值對數(shù)據(jù)庫和列數(shù)據(jù)庫,且系統(tǒng)通常是集成式,會缺乏可拓展性。
NTMA算法的使用通常需要被研究物的特征向量,因此需要對原始數(shù)據(jù)進(jìn)行預(yù)處理,將其轉(zhuǎn)換為特征向量。
許多方法在解決存儲格式的問題上會將數(shù)據(jù)特征提取到大數(shù)據(jù)框架中,NTMA算法則是需要從原始數(shù)據(jù)中提取出一組特征值用于基于包和基于流的分析。
目前已知的大型網(wǎng)絡(luò)測量常用方法是將離開數(shù)據(jù)采集點的原始數(shù)據(jù)與處理數(shù)據(jù)在加載到大數(shù)據(jù)框架之前進(jìn)行轉(zhuǎn)換。
文獻(xiàn)[39]提出將測量值從原始格式轉(zhuǎn)換為查詢優(yōu)化格式,極大地提高了網(wǎng)絡(luò)性能。文獻(xiàn)[40]提出了一個基于Hadoop的網(wǎng)絡(luò)分析框架,它是第一個將perfSONAR測試的數(shù)據(jù)導(dǎo)入Apache Avro系統(tǒng)的框架。文獻(xiàn)[41]在處理流日志時將二進(jìn)制的原始數(shù)據(jù)轉(zhuǎn)換成文本文件并加載到HDFS中。
Marchal等人[42]提出了“基于大數(shù)據(jù)架構(gòu)的大規(guī)模安全監(jiān)控”,該架構(gòu)使用的數(shù)據(jù)來自于DNS測量、NetFlow記錄和蜜罐技術(shù)收集的數(shù)據(jù)。作者將測量數(shù)據(jù)加載到Cassandra系統(tǒng)中,并部署了Hadoop API直接讀取二進(jìn)制測量格式。文獻(xiàn)[43]中IPFIX數(shù)據(jù)采集點將大量數(shù)據(jù)以JSON格式傳遞給Spark,以此使得Spark Streaming能監(jiān)控大量的IPFIX數(shù)據(jù)。
文獻(xiàn)[44]中,sFlow在Hadoop系統(tǒng)上收集并分析大型校園網(wǎng)記錄,通過使用Apache Flume提取興趣字段到Cassandra系統(tǒng)中。Sarlis等人提出了一個基于sFlow和NetFlow的網(wǎng)絡(luò)分析系統(tǒng),測量結(jié)果會被轉(zhuǎn)換為最優(yōu)的格式加載到HDFS和HBASE中,幫助加快測量速度。與使用Hive或Shark的基本分析實現(xiàn)相比,該系統(tǒng)可提速70%[45]。
針對大數(shù)據(jù)場景的研究中,Cisco提出了一個完整的解決方案——OpenSOC,其含有許多解析測量結(jié)果的功能并將結(jié)果加載到大數(shù)據(jù)框架中。Cisco還發(fā)布了使用Netflow和IPFIX的網(wǎng)絡(luò)安全綜合指南[46],可以保護大數(shù)據(jù)框架免受入侵、攻擊和已知威脅。
大數(shù)據(jù)框架中的一些數(shù)據(jù)庫可以用于進(jìn)行數(shù)據(jù)的特征提取和選擇,大部分庫都是只能在特定的環(huán)境中使用,小部分庫如Spark ML和Spark MLlib可以在所有環(huán)境中使用,然而能用于NTMA中特征提取和選擇的研究卻很少。
大多數(shù)研究所用的數(shù)據(jù)集太過老舊,如文獻(xiàn)[40]和文獻(xiàn)[47]。文獻(xiàn)[48]的工作是研究使用經(jīng)典數(shù)據(jù)集進(jìn)行攻擊病毒檢測和DM/ML測試的流量特征,且作者不贊成使用文獻(xiàn)[49]的數(shù)據(jù)集進(jìn)行試驗。
Abt等人[50]構(gòu)建了基于NetFlow特征檢測的僵尸網(wǎng)絡(luò)C&C通信,其準(zhǔn)確率和召回率均達(dá)到92%以上。文獻(xiàn)[51]提出使用Netflow特征檢測DDoS。文獻(xiàn)[52]的研究中,對IPFIX的記錄進(jìn)行特征選擇,得到了一組用于P2P流量分析的關(guān)鍵特征。很少有相關(guān)研究使用大型數(shù)據(jù)集,大部分人使用的都是針對特定問題而定制的小數(shù)據(jù)集。目前針對每一個特定的問題都有其對應(yīng)的解法,但是沒有一套整體的解決方案。
在數(shù)據(jù)分析方面,最重要的是如何將分析方法應(yīng)用于大型NTMA數(shù)據(jù)集。在數(shù)據(jù)管理方面,現(xiàn)在有可用于NTMA的通用框架。
分析算法大致分為兩類:統(tǒng)計算法和機器學(xué)習(xí)算法。機器學(xué)習(xí)可以根據(jù)如何訓(xùn)練模型進(jìn)一步分為有監(jiān)督、無監(jiān)督和半監(jiān)督。近年來,深度神經(jīng)網(wǎng)絡(luò)和強化學(xué)習(xí)等新的機器學(xué)習(xí)算法也經(jīng)常被使用。
大數(shù)據(jù)具有數(shù)據(jù)量大和高維數(shù)等特征,導(dǎo)致分析算法難以應(yīng)用到大數(shù)據(jù)領(lǐng)域,一些機器學(xué)習(xí)算法不能隨輸入數(shù)據(jù)的大小而線性擴展,需要調(diào)集大量系統(tǒng)資源處理大數(shù)據(jù)的數(shù)據(jù)集。這些問題有兩個解決方案:其一是對原始數(shù)據(jù)進(jìn)行進(jìn)一步的預(yù)處理,降低其復(fù)雜性;其二是使用并行算法,使用有效的近似方案代替原本的方案進(jìn)行數(shù)據(jù)處理。
目前已有幾種方法可以并行化統(tǒng)計算法和更改機器學(xué)習(xí)算法,文獻(xiàn)[53]也提出了一些統(tǒng)計算法的并行版本。Pébay等人[54]研究了并行統(tǒng)計算法。文獻(xiàn)[55]對并行神經(jīng)網(wǎng)絡(luò)進(jìn)行了描述,文獻(xiàn)[56]對深度學(xué)習(xí)的并行訓(xùn)練進(jìn)行了部分研究。
數(shù)據(jù)挖掘過程中應(yīng)用大數(shù)據(jù)技術(shù)可以使用非分布式框架進(jìn)行數(shù)據(jù)分析。文獻(xiàn)[57]使用Hadoop進(jìn)行實時入侵檢測,并使用MapReduce計算特征值,在經(jīng)過預(yù)處理簡化后的數(shù)據(jù)上使用經(jīng)典的機器學(xué)習(xí)算法。Vassio等人[58]采用集中式分類以及傳統(tǒng)的機器學(xué)習(xí)框架,使用大數(shù)據(jù)方法降低數(shù)據(jù)維數(shù)。Shibahara等人[59]部署了一種能通過神經(jīng)網(wǎng)絡(luò)對惡意url進(jìn)行分類并分析IP地址層次的系統(tǒng),其只使用MapReduce進(jìn)行特征值提取。
總體來說,基于大數(shù)據(jù)技術(shù)的NTMA的研究年代較近,成果不足,研究熱度不高,尚處于研究的初級階段。隨著互聯(lián)網(wǎng)技術(shù)愈發(fā)壯大,網(wǎng)絡(luò)環(huán)境對NTMA的需求也在日益增長。將大數(shù)據(jù)技術(shù)應(yīng)用于NTMA可以有效提升數(shù)據(jù)傳輸?shù)男阅埽疚娜媸崂砹舜髷?shù)據(jù)技術(shù)與NTMA應(yīng)用體系,并向流處理與批處理歸納了經(jīng)典的數(shù)據(jù)框架,展望了大數(shù)據(jù)技術(shù)在NTMA應(yīng)用領(lǐng)域中的前景,為網(wǎng)絡(luò)監(jiān)測工作打下堅實基礎(chǔ)。