◆黃婷 劉金鳳
基于機器學習的網絡異常流量分析檢測系統的研究與設計
◆黃婷 劉金鳳
(新疆喀什衛星管控站 新疆 844000)
當前網絡安全問題已成為網絡世界的重要課題,如何有效的檢測和響應則成為一項重大挑戰。實際上,為保持超前于高級網絡安全威脅的發展,網絡檢測、響應和取證解決方案必須要綜合多種方法,本文通過研究和設計一種網絡異常流量分析檢測系統,主要將機器學習的方法應用在網絡異常流量分析檢測,實現對網絡異常流量的有效分析和高準確率檢測,從而達到洞悉網絡中的惡意活動,并將可疑行為匹配到確認的威脅,提高對網絡異常流量的檢測目的。
網絡流量分析;機器學習;異常流量;檢測
隨著互聯網的高速發展,網絡中的傳輸數據飛速增長,因此而產生的網絡安全問題愈發嚴重,網絡中的惡意流量攻擊行為是其中最重要的一種。攻擊者通過使用主機將數據IP包發送到用戶主機進行端口試探,進行登錄密碼破解,或者在一段時間內的大量訪問,產生大量流量造成其他正常流量無法訪問,從而發起網絡攻擊。類似于這種的各種各樣的攻擊會給網絡用戶造成巨大的損失。
由于現今社會大力發展互聯網和物聯網技術,這些技術給人們帶來便利的同時,攻擊流量峰值一直在不斷攀升,數據量更是達到TB以上。因此,面對如此大量級的流量攻擊,網絡異常流量檢測、防御領域必然面臨更高、更新的要求。目前,常見的異常流量檢測方法都是在路由器旁邊部署檢測設備,檢測設備通過采集流量的IP包信息,然后通過似然比,小波分析等各種方式檢測出異常。但是這些方法都只是對某一個單一路由器或者主機進行檢測,沒有大數據處理能力的缺點。而且這種缺點隨著物聯網,互聯網的發展也越發明顯。隨著大數據時代的到來,利用大數據的思維解決傳統的問題,給解決異常流量預測的問題提供一種新的方向[1]。
本文著力于用大數據的思維研究異常流量檢測的問題,通過將機器學習的方法應用在網絡流量分析技術上,設計一種基于機器學習方法的網絡異常流量分析檢測系統,該系統能夠在網絡面臨大流量數據傳輸時及時高效檢測出其中的異常流量,為網絡異常流量分析檢測提供了一種新思路。
所謂機器學習,就是指計算機程序根據經驗來提高某個任務性能的行為,也就是指計算機能夠隨著經驗進行自我完善,獨立處理某一任務的能力[2]。
機器學習在網絡流量分析與監測中的應用主要是通過對訓練數據集進行建模,然后根據模型進行實時數據的檢測。機器學習的主要算法包括:模糊邏輯、貝葉斯方法、人工神經網絡、支持向量機、決策樹、聚類等。本文主要使用決策樹和聚類方法對網絡流量進行檢測。通過使用機器學習方法檢測網絡流量,可以使網絡流量分析檢測系統能夠自動識別出異常流量,并通過不斷自我學習完善,提高系統檢測異常流量的準確性和高效性。
網絡流量分析(NTA)的概念是Gartner于2013年首次提出的,它融合了傳統的基于規則的檢測技術,以及機器學習和其他高級分析技術,用以檢測企業網絡中的可疑行為,尤其是失陷后的痕跡。現代網絡流量分析法的基礎,是通過將網絡流量分解成正確的多種格式,利用基于安全用例的新的分析技術,保存正確的數據,從而實現完整的取證調查。同時,可將其他網絡威脅情報作為補充,洞悉惡意攻擊行為等活動,并將可疑行為匹配到確認的威脅行為,從而提高檢測結果的保真度[3]。
通過將機器學習的方法融合進網絡流量分析中,可以在面臨大流量的網絡數據時,仍然保持高效可靠的檢測效果。
通過分析用戶需求,可以知道異常流量分析與檢測系統首先要具備的功能就是快速高效的檢測出網絡中的異常流量[4]。它的核心模塊就是檢測模塊,除此之外,它還應包括:流量采集,日常運維,故障管理等功能模塊,如圖1所示。其中,流量采集模塊主要的功能是采集和存儲網絡中的數據流量,對流量數據進行預處理,使其能夠在流量監測模塊進行檢測;流量監測模塊則主要對網絡中的流量進行檢測,對于異常流量進行響應處理;日常運維模塊則主要對網絡設備狀態進行監控,并對網絡流量進行可視化監視,以及異常流量進行人工干預等;故障處理模塊主要在網絡中出現大量異常流量時進行快速響應處理,包括對異常流量的告警上報及阻斷等措施。

圖1 異常流量檢測系統框架
流量監測模塊作為該系統的核心部分,主要采用機器學習相關技術實現對網絡異常流量的檢測功能。它主要分為在線檢測部分和檢測模型訓練部分。如下圖2所示。以下是對流量監測模塊各個部分的簡單功能說明。
(1)實時檢測模塊
實時檢測模塊采用決策樹分類算法建立的檢測模型,用于檢測網絡數據中的已知攻擊行為的異常流量。模型訓練部分建立好檢測模型,傳遞給實時檢測模塊,網絡數據流量首先進入實時檢測模塊進行檢測,根據模型檢測出已知攻擊行為的異常流量;排除掉該部分可檢測出的異常流量,剩余不確定的流量則送入到流量感知模塊進行下一步的檢測。該部分能夠有效檢測出訓練庫中已知的各種異常流量數據,而當訓練庫缺乏某類異常流量數據進行建模時,則無法有效檢測出該類型流量,這就需要確定新類型的異常流量數據后及時對訓練數據庫進行有效的更新。
(2)流量感知模塊
在流量感知模塊中,使用了k-means聚類的方法進行流量數據的聚類,使正常數據和異常數據盡量區分開。在模型訓練部分,通過聚類算法將網絡流量數據分成差異較大的數據簇,再將每個數據簇的中心點與訓練數據庫的正常流量數據進行距離運算,根據事先設定好的異常流量閾值判定該數據簇是否為異常流量數據簇,從而達到異常流量的檢測目的。框架中,訓練模型部分用于生成正常流量數據簇模型,將在線檢測部分的不確定數據根據聚類結果來判別正常數據和異常數據,之后將確定為異常的流量數據送入異常流量數據集,改進實時監測模塊的檢測模型,在下一輪的數據檢測時能夠更好檢測出異常行為。利用決策樹分類和聚類方法的結合使用,可以更好檢測出網絡數據中的異常流量,提高系統異常流量檢測的性能。

圖2 流量監測模塊框架
該模塊主要是收集網絡中的流量數據,對其進行存儲和預處理。要實現檢測模塊對異常流量檢測的高效性,有賴于流量采集模塊對網絡中采集的數據流量進行高效準確的數據預處理。因此在該模塊中,主要使用網絡流量分析技術,通過監控網絡流量并獲取用于分析檢測的正確數據,對其進行預處理和特征選擇,解碼網絡流量,形成檢測模塊可快速檢測的數據,并保存到日志平臺和數據庫中。具體實現是通過部署在各子網的探針設備,在后臺服務器和數據庫中收集探針數據,對該網絡數據流量進行預處理,并形成相關數據集,送入檢測模塊進行檢測,并保留有效數據庫,保存在訓練數據庫中。
該模塊主要對網絡設備進行監控管理,并對采集的網絡流量數據進行可視化監控,方便維護管理人員進行相關操作。對于異常流量的人工判定,也在該部分進行操作處理。
在故障管理模塊中,主要是對異常流量數據的檢測結果進行響應機制處理。檢測模塊中的響應模塊對異常流量發生響應,應有具體的處理步驟,首先響應模塊向故障管理模塊發出報警,其次故障管理模塊對異常流量進行具體分析和處理,比如進行及時阻斷處理,或者進行日志上報處理等。
隨著互聯網和物聯網技術的發展,網絡中異常流量的檢測必然成為最主要的安全手段之一,如何面對大數據時代下的異常流量進行高效性的檢測,是今后將長期研究的問題。本文通過提出一種將機器學習算法和網絡流量分析技術相結合的方法,設計一套對網絡異常流量進行檢測的系統框架,使其面對大數據流量時也能保持高效準確的檢測,為網絡異常流量檢測問題提供了新的思路。
[1]鄭成興.網絡流量預測方法和實際預測分析[J].計算機工程與應用,2006,42(23):127-130.
[2](美)Brett Lantz著. 機器學習與R語言[M].李洪成,許金煒,李艦譯.北京:機械工業出版社,2015.
[3]郭濤.采用 NTA 打贏高級威脅之戰[J].網絡安全和信息化.2019.10:12-13頁.
[4]羅智慧.網絡安全流量分析關鍵技術研究[J].網絡安全技術與應用.2020(1):17-18.