楊 青
(蘇州信息職業技術學院計算機科學與技術系,江蘇 蘇州 215200)
隨著時代的發展,計算機科學與人類的生活越發緊密,高效全能的網絡為人們的生活帶來便捷。計算機科學對大眾的普及,使用戶數據量激增,與此同時網絡犯罪活動也出現在大眾視野中。為保證網絡系統的安全性,對基于大數據環境下網絡數據的監管是十分重要的[1-2]。
目前,對網絡數據進行檢測大多基于統計學相關理論進行建模,建模方法直接影響對數據檢測效果,用得比較多的方法有兩種:神經網絡、支持向量機。運用神經網絡原理檢測數據的眾多方法有一個共性,就是要求網絡異常數據樣本達到一個特定的數量,如果異常樣本數量較小則檢測效果就不明顯。因此采用神經網絡原理建模對網絡數據進行檢測,存在應用范圍受限和神經網絡結構不確定的問題。支持向量機不存在異常數據樣本數量的問題,而且學習效果更好,故在數據流量檢測方面應用得更多。
由于網絡數據量的激增以及受計算機硬件的限制,傳統的數據處理平臺已無法對海量數據進行高效、全面的處理,因而云計算平臺應運而生。該平臺可利用網絡上一切可利用的資源,化整為零,將一個大的問題化為若干個小問題予以解決,能高效率地達到目標。目前人們對云計算平臺的研究越來越深入[3-5]。
為了取得較好的網絡異常數據檢測效果,本文利用云計算技術對大數據環境下的網絡異常流量檢測方法進行研究,并對檢測效果進行測試。
網絡異常流量大致分為以下幾種類型:Alpha Anomaly、DDos、Port Scan、Network Scan、Worms和Flash Crowd。對這些典型的異常流量類型的區分可從目的端口總數(特征一)、目的IP地址(特征二)、源端口總數(特征三)、源IP地址(特征四)、流計數(特征五)、字節數(特征六)以及分組數(特征七)等特征來進行區分。各典型異常數據流量類型詳細區分特征如下。
1)Alpha Anomaly異常流量:高速點對點的數據傳輸動作,可通過特征六和七來對其進行檢測。
2)DDos異常流量:分布式拒絕服務攻擊動作,可通過特征二、四、五、七來對其進行檢測。
3)Port Scan異常流量:對主機的非安全區域或者安全性較差區域進行掃描動作,可通過特征三、四、七來對其進行檢測。
4)Network Scan異常流量:采用多個網絡地址對同一個主機端口進行掃描動作,可通過特征一、二、四、五、七來對其進行檢測。
5)Worms異常流量:Worms在事實上屬于Network Scan的一種特殊例子,通過本身的安全漏洞來進行復制,可通過特征二、三來對其進行檢測。
6)Flash Crowd異常流量:較多數量的不正常用戶對訪問某一資源的申請動作,可通過特征一、二、四、五、七來對其進行檢測。
云計算平臺依其良好的實用性和適用性迅速占領市場。目前,市面上的云計算平臺種類繁多,其中應用最廣的是apache的開源分布式平臺Hadoop,它具有價格低、容錯性高等優點[6]。Hadoop云計算平臺主要由文件系統(HDFS)、數據庫(Hbase)、分布式并行計算(Map Reduce)三大部分組成[7-8]。
作為云計算平臺中用于并行處理的核心模塊Map Reduce,其作用就是將一個傳統的數據處理任務分為多個任務,分散處理,合作完成,以此來提高計算效率。Map Reduce模型結構如圖1所示。

圖1 Map Reduce模型結構
Map Reduce編程的核心內容是對Map和Reduce函數進行特定動作定義。Map和Reduce函數任務會因動作目的的不同而有所不同,但是核心任務都是對數據值的讀取以及運算。Input Format類是作為Map函數的動作基礎而存在的,由于Map函數的作用對象是key/value對形式的數據樣本,所以Input Format類的主要任務就是將輸入樣本轉換為key/value對。Hadoop云計算平臺通過查詢,若發現tasktracker模塊處于空閑狀態時,平臺會統一算法調度,把相應的數據Split分配到Map動作中,與此同時也會將Split內所有信息一并上傳處理,之后采用create Record Reader方法讀取數據信息,并將數據轉化為key/value對的形式,為Map操作奠定基礎。tasktracker處于工作狀態時程序則進入等待[9]。
目前,應用較廣的分析軟件LibSVM是由臺灣大學林智仁教授等開發的,其主要有兩個用途:SVM模式識別、回歸分析。John C. Platt于1988年提出了SMO算法,通過采用此方法對LibSVM進行了二次規劃優化,優化后的LibSVM工作效率更高,尤其在SVM模式識別時求解效果更好,得到了廣大學者的一致認可。
隨著訓練樣本基礎數據越來越多和訓練樣本時間呈指數形式的激增,在單機工作的條件下,運用二次規劃算法對訓練樣本進行處理仍較困難。這也是訓練樣本規模增大帶來的問題[10]。
為了攻克這一難題,加快SVM算法的求解速度,筆者對Hadoop云計算平臺上的SVM算法進行研究,使其運算效率更高,耗時更短。
SVM算法的核心思想是尋找出每一個訓練數據所對應的決策函數,即訓練數據的支持向量來對其進行分析。由于支持向量具有稀疏性的特征,并且在整個數據向量集中支持向量所占的比例極少,因此可以以此為突破口,對數據實現并行SVM算法。在計算的整個過程中,并行處理實質上就是對訓練數據進行切分,分塊采用SVM算法進行求解,以此來實現運算時間的減少,提高運算效率。基于Hadoop的SVM算法示意圖如圖2所示。

圖2 基Hadoop的SVM算法示意圖
應用于Hadoop云計算平臺的SVM算法主要包含以下幾點內容:
1)向平臺傳遞信息。
向Hadoop云計算平臺傳遞信息時,應用SVM算法從文件系統HDFS中獲取信息數據,通過數據集群配置技術對信息數據分析處理,同時對工作的Map和Reduce操作過程進行分類處理并輸入所有步驟中的節點信息。
2)Map動作過程。
運用Map函數將文件系統HDFS的圖像信息樣本讀入整機系統中時,首先改變block中的文件參數類型;其次通過遺傳算法對轉換的動作參數進行優化處理;再次運用svm_train函數對數據樣本進行分析轉換,獲得key/value對形式的支持向量;最終將得到的結果傳遞至Reduce,進行Reduce操作。
3)Reduce動作過程。
運用Reduce函數對上一步Map動作過程得到的支持向量進行分類排序,最終將排序的結果儲存到特定的文件夾中[11-12]。
下面通過實驗對本文研究的檢測方法以及單機平臺進行網絡異常流量檢測的效果進行對比。
單機網絡異常流量檢測平臺以及基于大數據的網絡異常流量檢測方法中主機和各個節點均使用相同配置的計算機。
從Mitlincoln實驗室和LBNL實驗室中調取實測數據作為檢測訓練的源數據,再從源數據庫中選取典型異常流量各200條數據樣本,一半作為訓練用的數據樣本,一半作為測試用的數據樣本。
網絡異常流量檢測過程如圖3所示。

圖3 網絡異常流量檢測過程
為了對所有網絡流量檢測的識別方法作出客觀的評價,現一般采用反饋率(recall)和準確率(precision)這兩個參量來衡量檢測方法的好壞。具體表達式如下:
(1)
(2)
式中:TP為已經準確識別動作A特征的樣本數量;FN為沒有識別動作A特征的樣本數量;FP為被錯誤識別動作A特征的樣本數量。
使用本文提出的網絡異常流量檢測方法和常規的單機網絡異常流量檢測方法的測試結果如圖4和圖5所示。

圖4 本文檢測方法測試結果

圖5 常規單機檢測方法測試結果
圖4和圖5中橫軸測試樣本代號和縱軸數字含義表1和表2。

表1 圖4和圖5的橫坐標含義

表2 圖4和圖5的縱坐標含義
使用本文提出的網絡異常流量檢測方法和常規的單機網絡異常流量檢測方法對測試數據進行檢測,得到的評價指標對比見表3。

表3 兩種方法的評價指標 %
從表3可以看出,本文提出的檢測方法的平均準確率相比常規單機檢測方法提高了17.08%,誤報率降低了65.7%,具有較好的檢測性能,能夠滿足目前大數據環境下對網絡異常流量檢測的要求。
在當前大數據環境下,檢測模型不僅要滿足準確率的要求,同時還要具有一定的檢測實時性。通過多次實驗,對本文提出的網絡異常流量檢測方法和常規的單機網絡異常流量檢測方法進行檢測耗時對比,結果如圖6所示。

圖6 檢測耗時對比
由圖可以看出,使用本文提出的網絡異常流量檢測方法的檢測耗時僅為常規的單機網絡異常流量檢測方法的8.81%,說明本文提出的檢測方法相比常規方法具有更好的實時性。主要原因是本文使用的檢測方法是建立在基于大數據的云計算平臺上,能夠將大數據中的異常網絡流量檢測任務分配給多個子任務計算平臺進行。
利用云計算技術對大數據環境下的網絡異常流量檢測方法進行研究,并對網絡流量異常檢測效果進行測試,研究結果表明,本文提出的方法準確率更高、誤報率更低,具有較好的檢測性能,能夠滿足目前大數據環境下對網絡異常流量檢測的要求。