謝添丞,吳凌淳,林羽豐,高瑞瑋,楊國平,彭鈺寒,冉黎瓊,韓 楠
(1.成都信息工程大學 軟件工程學院,四川 成都 610225;2.成都信息工程大學 管理學院,四川 成都 610225)
網絡流量監控和分析(Network Traffic Monitoring and Analysis,NTMA)主要目的是了解互聯網服務對日常生活的影響。NTMA的主要功能是提供網絡流量視圖及檢測網絡異常,并且為監控系統提供網絡流量統計信息。NTMA應用范圍廣泛,能夠保證網絡服務穩定運行。通過收集關于流量工程和故障排除的歷史數據來維持網絡穩定運行,并找出網絡故障的根本原因。
流量監控與分析是一項復雜的工作,NTMA應用也面臨著許多嚴峻挑戰,如龐大的通信量、極高的傳輸速度、網絡流量數據源的復雜性、采集網絡流量數據方法的多樣性。隨著網絡結構復雜程度的不斷上升,設計多樣性的分布式應用程序變得困難,并需要高效的網絡服務運行機制在線分析大型流量。存儲成本的降低使得創建大規模的歷史數據集進行回顧性分析更容易被實現。
大數據說法最早出現在流量監測和分析,從數據的信息量、傳輸速率、多樣性以及準確性中提取出有價值的信息是大數據的目的,也是現在大數據面臨的挑戰。
當今學者常將大數據技術應用于NTMA[1],如分布式文件系統的Hadoop(HDFS)、大數據平臺的Spark和Hadoop、分布式機器學習和圖形處理引擎MLlib和Apache Giraph。這類技術為應用程序處理復雜的數據集,但不確定其是否充分利用并發掘了新興大數據技術的潛力。本文基于大數據方法的NTMA應用網絡以往研究成果的案例,討論了NTMA在大數據技術方面的開發程度,并介紹了目前大數據技術在NTMA應用中遇到的挑戰。
通過介紹近年來有關NTMA的文獻,旨在幫助相關研究者根據NTMA應用的領域與目的,選用適合的大數據技術方法,并簡述了使用大數據方法時NTMA所突出的問題以及有前景的研究方向。
通過大數據相關的文獻調查,大數據目前有了基本的定義。Hu等人[2]認為大數據不僅數據量大,還說明數據具有多樣性以及速度等其他特征,其定義可分為3類:屬性型定義、比較型定義和架構型定義。
架構型定義和比較型定義比較抽象,按照架構定義,大數據問題會在數據集到達傳統方法無法存儲和處理的程度時發生。比較型定義通過比較數據的屬性和傳統數據庫的能力描述大數據,2011年Mckinsey公司的研究報告將大數據定義為:規模超過了傳統數據庫軟件工具的捕獲、存儲、管理和分析能力的數據集。架構型定義通過數據的特征分析數據本身的過程來描述大數據,美國國家標準與技術研究院(NIST)對大數據的描述為:大數據是指數據的數量、獲取的速度以及數據的表示限制了使用傳統相關的數據庫方法進行有效分析的能力,需要使用具有良好可擴展性的新型方法來對數據進行高效的處理。
由上面定義可知,大數據的5個特征(5-V)為:數量、速度、多樣化、準確性和價值,這些特征是評判大數據性能的標準,其他針對大數據技術[2-4]和分析[5-6]的研究也利用5-V來評判大數據的質量。因此,大數據被概括為數據集很大(volunme),需要以高速率或實時(velocity)捕獲和分析,數據來源可能不同(variety),組合面向列的數據庫等結構化數據、服務器日志等非結構化數據以及XNL或JSON文檔等半結構化數據,數據具有不同屬性(veracity),數據分析給用戶和企業可以帶來價值(value)。
綜上所述,NTMA是大數據應用的一個例子,所以也具有5-V的特征,應對大數據挑戰而開發的方法也適用于NTMA技術。
Fayyad等人[7]對數據進行收集、選擇、預處理、轉換、挖掘、解釋和可視化這一系列的操作稱為數據挖掘(Knowledge Discovery and Data Mining,KDD)。文獻[5]將這些操作從系統的角度分為3組:輸入、分析和輸出。
數據輸入執行的是數據管理的過程,從原始數據的收集到數據以合適的格式交付給后續挖掘,它包括數據的預處理(即準備數據的初始步驟)、異構源的集成和偽數據的清理。
數據分析模塊接收處理后的數據并對其進行信息提取,該信息包括分類模型、隱藏模式以及數據間關系和規則等,可應用于統計建模分析和機器學習數據挖掘等領域。
數據輸出的過程中會將信息轉化為知識,如測量信息質量、以簡潔明了的方式顯示信息,并協助分析人員解釋結果。
圖1是根據數據挖掘的幾個階段來歸納NTMA。數據挖掘適用于任何數據分析,但大數據是每一個方法論的根本性挑戰,如需考慮數據的數量、處理速度和多樣性,數據管理在處理復雜的大數據任務時會發揮降低數據量和復雜性等關鍵性作用,并在分析速度和結果的方面表現優良,對大數據至關重要。

圖1 數據挖掘過程
大數據挑戰(5-V)的方法需要在綜合分析框架中考慮整個數據挖掘過程,該框架應該包含允許實現覆蓋整個數據挖掘周期的應用程序邏輯的編程模型。利用并行和分布式計算框架是處理大數據集的一種常見方法,需要覆蓋所有數據挖掘階段,而這些框架仍有待被開發。
按照文獻[3-4]的分類方法區分了4種大數據處理系統:① 一般用途:處理大數據的平臺,一般不對數據特征和執行算法做假設;② SQL:專注于結構化和表格數據的可擴展處理平臺;③ 圖處理:專注于處理大型圖的平臺;④ 流式數據處理:流式數據處理持續輸入系統的大規模數據的平臺。
圖2用系統的例子描述了分類方法,MapReduce、Dryad、Flink、Spark屬于通用數據處理系統類[8],Hive、HAWQ、Apache Drill、Tajo屬于sql類,Pregel、GraohLab屬于圖形處理類,Storm和S4屬于流式數據處理類。

圖2 大數據處理系統
Hadoop是一般大數據平臺中應用最廣泛的處理器,圖3為Hadoop V2.0與Spark[9]的組成部分。

圖3 基于Spark的Hadoop 2.0棧
Hadoop V2.0由Hadoop內核、MapReduce和HDFS組成。YARN是提供對多線程并行作業的集群資源訪問的默認資源管理器,其他資源管理器(如Mesos)和執行引擎(如TEZ)也可為Spark使用。
為了解決MapReduce的局限性,在Hadoop V2.0后引入了Spark框架,該框架引入了內存分布式數據集,可以優化迭代工作負載。MapReduce則依賴于map/reduce的基本操作,應用在讀取并存儲到磁盤的數據。如迭代和實時的大數據應用,Spark已在非批處理場景中應用廣泛,可以解決map/reduce所不能解決的批處理問題。
谷歌的Sawzall[10]、雅虎的Pig Latin[11]、 Facebook的Hive[12]以及微軟的SCOPE[13]等高級語言和系統即將在Hadoop上運行。為了解決Hadoop原本的環境問題,引入了MapReduce的Mahout[14]和Spark的MLlib等一些庫。此外,系統還補充了針對特定處理模型的工具,如支持圖處理的GraphX和支持流處理的Spark Streaming。
除了Apache Hadoop發行版,Cloudera CDH、Hortonworks HDP和Map融合數據平臺等為數據處理和集群管理提供了不同的特性。
基于文獻[15]的網絡管理應用程序分類法對大數據方法處理NTMA的研究以管理應用為最終目的分為8類:流量預測、流量分類、故障管理、網絡安全、擁堵控制、流量路由、資源管理和Qos/QoE管理。
由于文獻[15]中的分類法適合描述網絡管理應用程序,但此類應用程序對NTMA的依賴程度很大,且使用大數據方法進行擁堵控制、流量路由、資源管理和Qos/QoE管理的文獻較少,所以以前四類為研究重點。針對這些類別問題的大規模數據集是不可用的,或者研究人員還不確定如何在這些場景中應用大數據方法,導致現在忽略了使用大數據方法研究出的成果。
表1展示了NTMA的應用程序類別,并已有了每個類別相對應的工作例子。

表1 NTMA應用領域
2.2.1 流量預測
流量預測可以作為流量工程的構建模塊,幫助定義并可以預測網絡連接未來狀態,可在網絡中部署更多內存以維持QoS的性能。
流量預測是一個時間序列的預測問題。經典的預測方法(ARIMA或SARIMA方法)和機器學習(神經網絡)通常是根據以前在同一鏈路上的測量來預測流量,但通常會因為網絡行為的變化使得預測變得更加困難。部署需要大量帶寬的新應用程序或其他類似操作將使網絡配置發生突然變化,為流量預測方法帶來了重大挑戰。
2.2.2 流量分類
流量分類是管理和監控網絡的關鍵步驟,其目的是識別產生流量的服務。相關運營商需要有關其服務的資料,如了解服務的要求及其對整體網絡性能的影響。
通過簡單地檢查網絡和傳輸協議中的信息流量分類就能很好地發揮作用,如通常可以通過檢查TCP/UDP端口號來識別互聯網服務。流量分類的復雜性在不斷上升,其一,互聯網服務的數量很大且不斷增加;其二,識別服務只能觀察網絡中的少量信息;其三,網絡服務都運行在少數加密協議(TCP上的HTTP)上而造成信息包中檢測不到信息,且聯網服務是動態地不斷更新。
人們提出了許多流量分類的方法,根據數據包分類策略可對數據進行以下幾個分組:① 數據檢測查找預定義消息[16]或協議,分析數據內容;② 有監督的機器學習法從流量中提取特征并在訓練階段建立模型,再將特征值與服務關聯;③ 無監督機器學習方法由于可在沒有之前歷史記錄的情況下對流量聚類,因此該學習方法適用于無訓練數據的服務;④ 行為方法基于終端節點[17]的行為來識別服務,檢測流量算法為運行特定服務的節點建立模型,該模型的功能包括識別客戶端連接服務器的類型、使用的數據速率以及與服務器鏈接的順序等。
2.2.3 故障管理
故障管理的功能是對網絡中的故障進行預測、檢測、隔離和修復,目標是將停機時間最小化。無論是根據測量結果分析及預測故障并及時做出反應以避免中斷,或是被動評估流量和系統日志以了解故障根源,故障管理都可以發現問題的根本原因。
在大型網絡中各式各樣的系統都可能會受到故障的影響,如故障的路由器可能會導致其他路由過載,從而在網絡中引發一連串的故障。系統日志會記錄各種網絡元素產生的故障問題,通常是通過異常檢測的方法識別流量中的異常情況或系統日志中的異常事件來檢測網絡故障。異常事件也可能由網絡安全漏洞或更換使用模式引起,為了提高可見的網絡元素數量,分析算法會同時對流量、系統日志和活動測量進行評估,并識別問題的根本原因。
2.2.4 網絡安全
許多NTMA被用于保護網絡安全,一般應用于檢測安全漏洞、病毒和惡意軟件,可通過隔離受感染的系統以降低損失。檢測惡意網絡活動主要有兩種方案:基于攻擊標志和基于異常檢測。
基于攻擊標志的檢測技術會建立一個自己的知識庫,存儲了病毒、惡意軟件或其他威脅的已知信息,對已知的攻擊可以詳細地報告出攻擊類型以及應對方案,并快速做出行動。但是對于未知的攻擊,該方案的效果就十分有限,而且知識庫必須不斷更新迭代以保證覆蓋大部分的攻擊方式。
基于異常檢測[18-19]的方法通常是預設一組正常的數值,如CPU利用率、磁盤利用率、內存利用率等,這些數值可以是人為定義,也可以是通過觀察機器在正常情況下運行的反應。再通過監控機器數值的實時動態,若發現機器數值于預設數值基線不同時則出發警報。這種檢測方法能提前預知威脅,但無法檢測干擾網絡的陰性攻擊,且對預設正常的數值要求較高,所以可能出現大量的誤報情況。
屬于上述方法的NTMA應用均受益于大數據方法,下面將舉例說明典型的大數據方法(5-V)在當今所面臨的挑戰。
以流分類為例,對動態數據包進行分類要考慮流量(volume)與時效性(velocity),且輸入的數據量通常很大,也會使用不同的方法對需要時效的網絡流量如Gbit/s流進行分類。
在數據的多樣性(variety)方面,隨著越來越多的數據被加密,可用于流量分類或故障管理算法的數據信息將變得越來越少?,F在使用的算法結合了DNS和流量檢測用于不同的數據源,如文獻[20]。異常檢測也常用于量軌跡、路由信息等多種數據源流,從而獲得不同的異常信號。
準確性(veracity)方面常體現在網絡安全中,需對攻擊樣本進行訓練以識別網絡中的攻擊。但是這種樣本的設計是有挑戰性的,雖然簡單的攻擊可以在測試中模擬,但復雜的攻擊往往很難被模擬。
在價值(value)方面,當網絡受到未被發現的攻擊所入侵時,網絡運行會產生巨大的損壞,所以在5-V的所有特性中價值是至關重要的。
隨著互聯網各類技術的不斷成熟,大數據也逐漸面臨著來自互聯網的挑戰,即互聯網的測量。世界上有50萬個網絡、16億個網站、30億的用戶、500億個網頁,每年要訪問高達1 ZB數據。文獻[21]指出為了解決數據收集系統的伸縮性,相關學者在設計用于高速數據采集工具上進行了大量的研究,以及如何在不影響數據質量的情況下減少數據大小。
互聯網的檢測可分為主動測量和被動測量。主動測量是向網絡發送數據并觀察互聯網的響應過程,由于主動測量固定了數據類型以及其發送與接收地址,所以常用于故障排除。被動測量是獨立于數據包和流量評估的,只能通過持續觀察且實時提取數據獲得信息。
這種架構的組件可以集成到路由器或專用的網絡監視器這類的單個設備,或部署在分布式架構中。由于大數據技術始終貫穿著NTMA應用,分布式架構在一般的網絡設置中很常見。收集器將收集需要采集的大數據監控數據以及記錄許多預處理功能,例如基于流量數據的監視中只需將每個通信流的數據導出到收集器。NTMA應用程序收集數據的方法分為基于包和基于流量兩種。
3.1.1基于包的方法
分析數據包會消耗大量資源,為NTMA應用程序提供了多種執行選擇。深度包檢測技術(DPI)既能允許數據包通過,也能拒絕數據包的請求。由于現有的硬件技術不達標[22-23],數據的傳輸速率成為了一大挑戰。但有一些技術可以以幾Gbit/s的速率執行DPI,同時還能存儲數據[24]。
為了使基于包的方法有突破性創新,網絡檢測團體提出了許多方案。其中最經典的方法是在數據采集前進行預處理,過濾和采樣操作設置在采集點上,以便導出小部分通過過濾采樣的包,也可以只導出包頭以替代完整的包內容。文獻[25]指出只收集每個流量的初始數據包就足以進行流量分類。
表2展示了一些實際部署中用不同方法在不同情況下捕獲包的跟蹤量,捕捉時間長達至少一小時。第一行表示在一個大約有2萬ADSL客戶連接的ISP網絡捕獲包跟蹤的大?。坏诙斜硎驹谟?.5萬名用戶使用的學生校園網捕獲包跟蹤的大小。這兩次捕捉行為都是在早上進行的,且均捕獲到了超過半個TB的信息。據表2第一行顯示,ISP跟蹤可以每小時獲得大約45 GB的報頭,說明保存到傳輸層的數據包報頭的策略只能減少部分數據量。表2最后一行顯示的是類似于文獻[25]的ISP網絡在一天中信息捕獲量的大小,雖然數據量顯著減少,但每天仍能保存超過600 GB的信息。

表2 不同情況下捕捉到的包數量
如今,DPI在加密和限制性隱私策略[26]的領域下難以實現,需要設計能在加密流量的情況下替代DPI進行檢測的算法。
3.1.2 基于流量的方法
基于流的方法通過收集數據包處理數據,導出每個流的所有流量[27]。網絡流量是有共同特征的數據包,由于數據是聚合的,分析流量記錄的NTMA應用系統對傳輸的要求較低。數據隱私因為加密而得到了更好地保護,但是信息丟失是不可避免的。2013年據Cisco統計網絡流量分析的方法有90%是基于流量的,剩下的10%是基于包的[28]。
Cisco NetFlow、sFlow和IPFIX (IP Flow Information Export protocol)等技術在流量監測技術最為常見。NetFlow被廣泛用于各種NTMA應用,如網絡安全[29]。sFlow十分依賴數據包的采樣,會從1 000個數據包中采樣1個,雖然使得NTMA的性能降低,但sFlow仍然是最適合檢測攻擊的技術。IPFIX操作靈活且功能齊全,常用于導出流量信息[30],其多用于NTMA應用檢測SSH的攻擊。
基于流量的監控會產生很大的數據集[21],表3是根據文獻[27]構建的,展示了Cisco的NetFlow v5和NetFlow v9以及IPFIX三種方法在50 Gbit/s的流量輸出下測量的流量狀態。

表3 50 Gbit/s的流量輸出下不同方法測量的流量狀態
選用IPFIX方法可使基于流量方法的NTMA應用程序輸出70 Mbit/s的數據,這是一個數據挖掘點的輸出量,因此有多個數據挖掘點的NTMA應用程序可能要面對Gbit/s級別的數據量輸入。
NTMA應用程序通常需要處理歷史數據,如表2所示,存儲來自挖掘點的流量數據所需的空間是隨時間線性增長的,據文獻[21]研究可知4年將消耗30 TB的內存。
數據收集屬于數據挖掘,因為在不同的場景中獲取數據的方式會有很大的不同,所以比較依賴于問題域。數據提取是通過大數據框架提供的工具和方法將原始數據從數據源頭傳輸至預處理和分析模塊。由于數據從數據源輸出是未處理的狀態,并且在后續階段大數據流量和大量分布式收集器將產生大量的數據進行解析和預處理,所以如何處理這些數據成為一個巨大的挑戰。
現在互聯網上有許多處理大數據的工具:① Flume,是一個可以從各種數據源收集日志的分布式系統;② Sqoop,能建立Hadoop與相關數據庫之間傳輸數據的通道;③ Kafka,可為在線的數據流提供分布式發布訂閱消息系統的平臺。這些工具具有靈活性,它們可以以分布式的方式處理多個數據流,并在將數據輸入框架后立即對新的數據流進行預處理。
在NTMA技術領域,很少有人提出將流量測量用于NTMA的大數據框架。而NTMA所面臨的挑戰是將不同格式且來自于不同數據源的數據輸入至框架中,并且現在已經取得了新的進展。
Apache Spot是一個集成了網絡安全領域不同應用模塊的開放平臺,其中模塊Kafka負責存儲收集到的原始數據,并傳輸至基于python編譯的Spot Workers進行解析和預處理。原始數據和經過處理后的數據記錄都將存儲在大數據框架中。
網絡數據分析平臺PNDA是由Linux基金會開發的一個十分有前景的開源平臺,能對不同的數據源進行管理并分析。該平臺會將數據自動保存在分布式文件系統中,因此不需要手動將數據強制放入特定的領域模塊。它還含有大數據框架的工具,如用于數據挖掘的Kafka模塊。
通過Spot和PNDA的研究表明,大數據框架只有在安裝了NTMA格式的插件才能提取其數據,這些插件是使用Kafka等挖掘模塊的必要工具。
理論研究得出NTMA模塊可以使用大數據框架的通用存儲系統,但實際上大數據框架的一些結構會使得NTMA數據的存儲變得更加復雜。
3.3.1 通用系統
圖4展示了通用大數據系統[9, 31]的分類,大多數的大數據存儲系統致力于系統的可擴展性研究,提升多個服務器的性能達到增加系統容量的效果,而不是只升級單個服務器。這種研究雖然誕生了大型的分布式系統,但隨之而來的也有許多如節點崩潰或者網絡故障等風險。因此,大數據存儲[9, 15]的研究中表示一致性、可用性和容錯率是其重要的特征。

圖4 通用大數據存儲系統
在文件系統方面谷歌率先開發出了谷歌文件系統(GFS)[32],并且該文件系統擁有較高的可擴展性,即使運行在普通的服務器上也能展現出高容錯和高性能的狀態,GFS的子程序Colossus[33]和Facebook Haystack也能達到這種效果。如今,GFS有了許多開源的衍生程序,例如Apache HDFS和Kosmosfs。
大型數據集要進行更高層次的數據挖掘時其相關數據庫的性能會降低,而NoSQL數據庫則例外。與普通數據庫相比,NoSQL數據庫沒有固定的數據庫模式,并且可擴展性比其相關的數據庫更高。NoSQL數據庫有4種不同的類型:① 鍵值存儲數據庫通常使用Hash表存儲鍵值對,查找速度較快,其典型的代表有亞馬遜的Dynamo和Memcached;② 列存儲數據庫以列存儲數據,可擴展性強,典型的代表有Cassandra[34]、HBase;③ 文檔型數據庫將數據存儲為Value的結構化數據,適用于任何數據結構,代表例子有MongoDB;④ 圖形數據庫存儲有邊與節點構成的圖,可以使用高效的圖相關算法,如Titan。
NewSQL系統不僅具有NoSQL的數據存儲管理能力,并保存了相關數據模型和SQL查詢等功能屬性,谷歌Spanner就是運用NewSQL系統的典型代表。
3.3.2 基于大數據框架的NTMA數據存儲
互聯網是一個大型的分布式系統,其關鍵技術在于如何存儲測量的集成式數據屬性。測量數據通常由其特有的平臺接收,并且大數據框架無法讀取導出的數據。盡管嘗試了文獻[35]這樣可擴展和靈活的方法,但仍未達到預期目標,因此需要特殊的存儲解決方案,或者將數據轉換為其他格式。
Libpcap、libtrace、libcoral、libnetdude和Scapy這些庫可以用于捕捉數據包并轉化為pcap格式進行讀取和保存數據。由于pcap的蹤跡無法被分開單獨識別破解,分布式大數據文件和數據庫系統如HDFS或Cassandra通常無法讀取pcap文件的蹤跡。用于存儲基于流的測量格式也有類似的問題,如nfdump是一款用于NetFlow收集、存儲、過濾、統計分析的開源軟件,雖然其收集器會根據預先設定好的參數將文件分成若干個二進制文件,但這些文件所占用的內存特別大,且基于Hadoop的系統不能使用該方法。
如今一些文獻提出了解決該問題的新方法:① 將原始格式的測量數據加載到分布式系統中,并擴展系統框架處理傳統格式的文件;② 為處理網絡大數據提出新的存儲格式和工具;③ 將網絡數據轉化并導入傳統的大數據存儲系統。
Lee等人[1]開發了一種名為PcapInputFormat的Hadoop API,它能夠以數據原來的格式管理IP數據包和網絡流量記錄,常用于跟蹤數據包的文件。基于Hadoop的NTMA應用程序能在該API的作用下持續分析pcap及NetFlow蹤跡,該API還能處理未被轉換過的文件記錄并避免系統按順序讀取文件的性能損失。Ibrahim基于MapReduce和新引入API開發了類似的流量分析算法以解析Hadoop中的pcap文件。
Nagele建立了一個基于java的Hadooppcap庫[36],能夠快速且靈活地對pcap文件進行分析,并引入一個能串并行互相轉化的寄存器,使得Hive能直接分析pcap數據。文獻[37]使用了相同的能串并行轉化的寄存器構建了一個基于Hadoop的網絡安全平臺,該平臺常用于sFlow、Netflow、DNS測量和垃圾郵件捕獲。
BGP在選擇路由時總會有一定的誤差,但可以通過引入 BGPStream提供能連接來自API和應用程序的實時BGP數據的工具和庫就可以將誤差降低,并可以高效地挖掘在線動態數據。
無論是HDFS、pcap還是NetFlow技術,他們的預定義連接口都是一一對應的。因此,對于選用何種測量格式和分析框架都要執行類似的篩選方法。
近年來,許多作者提出了對大型網絡檢測更好的存儲方法和解決方案。文獻[38]提出用DBStream對數據流進行持續計算分析,部分學者為了實現更高的存儲效率以及升級索引和檢索機制,優化了pcap和基于流的解決方案。然而這些解決方案的方向都是基于大數據框架思想以及鍵值對數據庫和列數據庫,且系統通常是集成式,會缺乏可拓展性。
NTMA算法的使用通常需要被研究物的特征向量,因此需要對原始數據進行預處理,將其轉換為特征向量。
許多方法在解決存儲格式的問題上會將數據特征提取到大數據框架中,NTMA算法則是需要從原始數據中提取出一組特征值用于基于包和基于流的分析。
目前已知的大型網絡測量常用方法是將離開數據采集點的原始數據與處理數據在加載到大數據框架之前進行轉換。
文獻[39]提出將測量值從原始格式轉換為查詢優化格式,極大地提高了網絡性能。文獻[40]提出了一個基于Hadoop的網絡分析框架,它是第一個將perfSONAR測試的數據導入Apache Avro系統的框架。文獻[41]在處理流日志時將二進制的原始數據轉換成文本文件并加載到HDFS中。
Marchal等人[42]提出了“基于大數據架構的大規模安全監控”,該架構使用的數據來自于DNS測量、NetFlow記錄和蜜罐技術收集的數據。作者將測量數據加載到Cassandra系統中,并部署了Hadoop API直接讀取二進制測量格式。文獻[43]中IPFIX數據采集點將大量數據以JSON格式傳遞給Spark,以此使得Spark Streaming能監控大量的IPFIX數據。
文獻[44]中,sFlow在Hadoop系統上收集并分析大型校園網記錄,通過使用Apache Flume提取興趣字段到Cassandra系統中。Sarlis等人提出了一個基于sFlow和NetFlow的網絡分析系統,測量結果會被轉換為最優的格式加載到HDFS和HBASE中,幫助加快測量速度。與使用Hive或Shark的基本分析實現相比,該系統可提速70%[45]。
針對大數據場景的研究中,Cisco提出了一個完整的解決方案——OpenSOC,其含有許多解析測量結果的功能并將結果加載到大數據框架中。Cisco還發布了使用Netflow和IPFIX的網絡安全綜合指南[46],可以保護大數據框架免受入侵、攻擊和已知威脅。
大數據框架中的一些數據庫可以用于進行數據的特征提取和選擇,大部分庫都是只能在特定的環境中使用,小部分庫如Spark ML和Spark MLlib可以在所有環境中使用,然而能用于NTMA中特征提取和選擇的研究卻很少。
大多數研究所用的數據集太過老舊,如文獻[40]和文獻[47]。文獻[48]的工作是研究使用經典數據集進行攻擊病毒檢測和DM/ML測試的流量特征,且作者不贊成使用文獻[49]的數據集進行試驗。
Abt等人[50]構建了基于NetFlow特征檢測的僵尸網絡C&C通信,其準確率和召回率均達到92%以上。文獻[51]提出使用Netflow特征檢測DDoS。文獻[52]的研究中,對IPFIX的記錄進行特征選擇,得到了一組用于P2P流量分析的關鍵特征。很少有相關研究使用大型數據集,大部分人使用的都是針對特定問題而定制的小數據集。目前針對每一個特定的問題都有其對應的解法,但是沒有一套整體的解決方案。
在數據分析方面,最重要的是如何將分析方法應用于大型NTMA數據集。在數據管理方面,現在有可用于NTMA的通用框架。
分析算法大致分為兩類:統計算法和機器學習算法。機器學習可以根據如何訓練模型進一步分為有監督、無監督和半監督。近年來,深度神經網絡和強化學習等新的機器學習算法也經常被使用。
大數據具有數據量大和高維數等特征,導致分析算法難以應用到大數據領域,一些機器學習算法不能隨輸入數據的大小而線性擴展,需要調集大量系統資源處理大數據的數據集。這些問題有兩個解決方案:其一是對原始數據進行進一步的預處理,降低其復雜性;其二是使用并行算法,使用有效的近似方案代替原本的方案進行數據處理。
目前已有幾種方法可以并行化統計算法和更改機器學習算法,文獻[53]也提出了一些統計算法的并行版本。Pébay等人[54]研究了并行統計算法。文獻[55]對并行神經網絡進行了描述,文獻[56]對深度學習的并行訓練進行了部分研究。
數據挖掘過程中應用大數據技術可以使用非分布式框架進行數據分析。文獻[57]使用Hadoop進行實時入侵檢測,并使用MapReduce計算特征值,在經過預處理簡化后的數據上使用經典的機器學習算法。Vassio等人[58]采用集中式分類以及傳統的機器學習框架,使用大數據方法降低數據維數。Shibahara等人[59]部署了一種能通過神經網絡對惡意url進行分類并分析IP地址層次的系統,其只使用MapReduce進行特征值提取。
總體來說,基于大數據技術的NTMA的研究年代較近,成果不足,研究熱度不高,尚處于研究的初級階段。隨著互聯網技術愈發壯大,網絡環境對NTMA的需求也在日益增長。將大數據技術應用于NTMA可以有效提升數據傳輸的性能,本文全面梳理了大數據技術與NTMA應用體系,并向流處理與批處理歸納了經典的數據框架,展望了大數據技術在NTMA應用領域中的前景,為網絡監測工作打下堅實基礎。