天天看點

網絡流量異常檢測綜述

作者:資訊安全與通信保密

摘 要

随着網絡攻擊的複雜化、自動化、智能化水準的不斷提高,網絡中不斷湧現出新的攻擊類型,這些未曾見過的新攻擊給基于特征碼的網絡攻擊檢測和響應帶來了極大挑戰。網絡流量異常檢測通過對網絡流量進行分析,可以檢測出與正常流量明顯不同的流量,因其不依賴于靜态特征碼,被看作檢測未知新攻擊的有效手段。研究人員針對異常網絡流量的檢測提出了許多方案,包括基于統計學習法、基于無監督機器學習的方案、基于監督機器學習的方案,從流量特點、特征工程到檢測模型,再到應用場景對這些方案進行了系統性綜述。

内容目錄:

1 網絡流量資料采集

1.1 連接配接的基本特征

1.2 連接配接的内容特征

1.3 流量統計特征

1.4 原始負載

2 檢測模型

2.1 統計模型

2.1.1 簡單統計模型

2.1.2 基于協方差矩陣的模型

2.1.3 基于隐馬爾可夫的模型

2.2 監督分類模型

2.3 無監督模型

2.3.1 基于聚類算法的模型

2.3.2 基于孤立森林的模型

2.3.3 基于自編碼器的模型

2.3.4 基于 LSTM 的模型

3 未來研究方向及挑戰

4 結 語

傳統的流量側攻擊檢測方案依賴于分析人員對攻擊流量進行分析而提取出的靜态特征碼。這種方案的檢測速度極快,但檢測準确率嚴重依賴于特征庫。如果一個攻擊的特征碼沒有被收錄進特征庫,該方案就無法檢測出攻擊。另外,一些攻擊會對其流量進行加密,在不解密的情況下是無法從負載中提取特征碼的,這就導緻傳統的基于特征碼的檢測方案無法對加密流量進行檢測。

正常情況下産生的網絡流量通信行為和攻擊行為下産生的網絡流量的通信行為具有明顯的不同,并且這種不同不會因負載資料被加密而消失。反過來,如果網絡中出現了與正常流量明顯不同的流量,是否就表明網絡中出現了攻擊行為?答案是不一定。因為網絡複雜多變的特性,一些原本正常的行為也會導緻網絡流量出現異于往常的變化。但是這種情況是相對較少的,如果對正常流量有一個良好的模組化,可以把這種情況控制在很小範圍内。是以當從網絡中檢測出異常流量時,有較大機率是攻擊行為産生的流量,後續可以通過其他手段進一步驗證其是否是一個攻擊行為。鑒于此,網絡流量異常檢測常被用于檢測非加密流量和加密流量中未知的新攻擊,其不依賴于傳統的靜态特征庫,通過對網絡流量通信行為進行分析,檢測出與正常流量明顯不同的流量,進而發現潛在的攻擊行為。

異常這個概念有許多不同的定義。Kafadar等人将其定義為一組看起來與其他資料不同的資料。Chandola 等人認為異常是和明确定義的正常行為相背離的資料模式。Lakhina等人将網絡中的異常定義為不常出現并且在網絡流量層面出現巨大的變化。通過這些定義,可以明顯看出如何定義正常态是進行異常檢測中的關鍵步驟。

許多安全研究人員在網絡流量異常檢測領域進行了研究,并且提出了許多切實可行的技術方案。通過對這些技術方案的研究可以發現,從網絡流量側進行異常檢測的方案無一例外都将采集什麼樣的流量資料和使用什麼樣的算法視為關鍵點。在這些方案中,流量資料和算法之間并不是緊緊耦合在一起的,實際上,一種流量資料需要用多種不同算法處理,同理,一種算法也可以處理不同種類的流量資料,技術人員可以根據實際應用場景将流量資料和算法進行自由組合以獲得最優的檢測方案。為達此目的,本文将從網絡流量資料采集和異常檢測算法模型這兩個次元對相關檢測技術進行綜述,同時對未來的研究方向和可能遇到的挑戰進行了預測。

01 網絡流量資料采集

采集什麼樣的流量資料是異常檢測中一個非常重要的問題,不同的資料對網絡流量的刻畫角度和刻畫能力不同,需要根據實際應用場景和需要解決的問題來選擇合适的流量資料。根據 KDD’99 資料集 中關于特征的描述,網絡中的流量特征可以劃分為連接配接的基礎特征、連接配接的内容特征、流量統計特征 3 種類型。另外,随着深度學習技術的出現,資料包的原始負載也可以直接用來進行異常檢測。

1.1 連接配接的基本特征

連接配接的基本特征是一個傳輸控制協定 /網 際 協 議(Transmission Control Protocol/Internet Protocol,TCP/IP)族中不同層次、不同種類的協定所建立的連接配接的基礎屬性資訊,包括但不限于一個連接配接的持續時間、所使用的協定類型、發送的資料量、接收的資料量等。Jadidi 等人和 Bartos 等人 利用傳輸控制協定(Transmission Control Protocol,TCP)連接配接的基礎特征訓練模型進行異常檢測。

連接配接的基礎特征使用連接配接雙方在通信過程中的一些基礎資訊和行為資訊,并不包含通信内容相關的特征,是以對連接配接的描述不夠全面,但在加密流量檢測的場景中,主要依靠連接配接的基礎特征。

1.2 連接配接的内容特征

連接配接的内容特征是對連接配接中的負載資料進行分析,抽取出可能反映入侵行為的特征,包括但不限于在一個連接配接中通路系統敏感檔案和目錄的次數、登入失敗的次數、shell 指令出現的次數等。

連接配接的内容特征能夠從内容上刻畫攻擊,具有很高的準确度,但它需要該領域專家對攻擊進行分析後抽取與之相關的内容,人力成本較高,并且泛化能力有限,在加密流量場景中也無法使用。

1.3 流量統計特征

流量統計特征不再是針對單個連接配接,而是在一個指定時間視窗内或在指定數量的連接配接中抽取的可以反映攻擊行為的特征。可以統計指定時間視窗内和目前連接配接的目的 IP 位址相同的連接配接數量、和目前連接配接的源 IP 位址相同的連接配接數量、和目前連接配接具有相同服務類型的連接配接數量等,也可以統計前 n 個連接配接中和目前連接配接的目的 IP 位址相同的連接配接數量、前 n 個連接配接中和目前連接配接的目的 IP 位址及服務相同的連接配接數量等,還可以統計指定時間視窗内發往同一個目的 IP 位址的資料大小、建立連接配接數量、發送和接收資料包的個數等。Thottan 等人 、Fontugne等人和 Lim 等人從區域網路内主機的角度,統計指定時間視窗内一個主機和其他主機之間的流量特征,并進行異常檢測。

在協定層面采集資料的優勢在于可以展現每個協定的變化情況,能夠發現與特定協定關系密切的攻擊行為。相較于基于連接配接的特征,流量統計特征可以從更宏觀的角度描述網絡流量,反映多個連接配接之間的關聯關系,能夠用來發現複雜且持續的攻擊行為。

1.4 原始負載

随着深度學習的發展,封包中的原始負載也可以被用來作為訓練模型,進行異常檢測。深度學習模型能夠根據目标函數,通過梯度下降與反向傳播技術自動地從原始負載中提取出适用于目标任務的特征 。

利用原始負載特征不再需要特征工程,可以減少對領域專家的依賴,但是該方式需要大量的樣本資料,并且消耗大量的計算資源。另外,在負載被加密的情況下模型很難收斂到一個理想水準。

02 檢測模型

目前的檢測技術都有相應的使用場景和局限性,同時,很多檢測技術在本質上是同一類型的或是互補的,從一開始的基于統計的方案到後來的基于機器學習、深度學習的方案,其核心都是盡量準确地刻畫出正常流量和異常流量之間的差異。根據實際情況,可以采用正常流量、攻擊流量及正常流量和異常流量相結合的方式進行模組化。

檢測模型由算法組成,這些算法利用提取出來的特征向量學習到正常流量的規律或者正常流量和異常流量之間的差異。從總體上,這些模型可以分為統計模型、監督分類模型、無監督模型等,不同的資料量、資料類型及應用場景需要選擇不同的檢測模型。

2.1 統計模型

統計模型在異常檢測領域被廣泛使用,其主要應用場景是異常發生點的網絡資料會發生急劇的變化。統計模型需要有一個學習期,在學習期内會記錄下所提取到的流量資料,然後用來建立統計模型。

2.1.1 簡單統計模型

Rousseeuw 等人 利用 3σ 模型對網絡流量中的各個名額進行模組化。該模型首先計算曆史資料的均值和方差,然後利用均值上下波動 3個标準差的範圍區間作為正常流量名額的取值區間,超出該區間的則判定為定位異常。該方法的主要思想來自正态分布的置信區間,其優點是計算簡單,但隻能應用在流量變化比較平穩的場景中,在其他複雜場景中會存在過高的誤報,并且如果用來計算均值和方差的曆史資料中存在極端異常值,則檢測結果會出現較大偏差。

為了消除曆史資料中存在的異常值所帶來的影響,Vinutha 等人 利用分位數進行異常檢測。分位數是指将随機變量的機率分為幾個等分的數值點,常見的有二分位(即中位數)、四分位、百分位,一個四分位數箱體如圖 1 所示。

網絡流量異常檢測綜述

圖 1 四分位數箱體

利用四分位數進行異常檢測主要通過圖基檢驗,以四分位數為例,異常檢測的公式可以表示為:

網絡流量異常檢測綜述

式中:

網絡流量異常檢測綜述

分别為一分位點、二分位點、三分位點;x 為待檢測資料;k 為異常系數,當k = 3 時,表示極度異常;當 k =1.5 時,表示中度異常。

分位數方法采用的分位點和分位距具有對噪聲不敏感的優點,相較于均值方差的方法具有更強的魯棒性,但該方法也隻适用于資料變化較為平穩的網絡環境中。

2.1.2 基于協方差矩陣的模型

協方差矩陣是一個二階統計量,可以找出哪些變量對網絡異常影響最大。Yeung 等人使用協方差分析檢測網絡中的泛洪攻擊。利用該方法對網絡流量進行模組化,形成協方差矩陣樣本,以便利用時間序列樣本中包含的統計資訊來檢測泛洪攻擊。根據協方差矩陣的變化和關聯特征的差異去揭示正常流量和泛洪攻擊流量之間的差異。Xie 等人 借助随機變量,利用空間可預測性處理相鄰資料段集合,确定哪些資料段表現出了異常。為了降低計算複雜度,該方法使用與 Spearman秩相關系數和差分壓縮概念近似的樣本協方差矩陣。

協方差矩陣的方法适用于特征次元較低的場景,如果次元過高,計算複雜度會呈指數級增加。

2.1.3 基于隐馬爾可夫的模型

隐馬爾可夫模型可以對序列資料進行模組化,網絡流量中采集的一部分資料是時間序列格式的,用隐馬爾可夫模型可以實作對時間序列的異常檢測。

Bang 等人 提出了一種利用隐馬爾可夫模型在無線傳感器網絡中檢測長期演進(LongTerm Evolution,LTE)網絡信号異常的方案。首先,利用隐馬爾可夫模型對正常喚醒包生成過程的時空特征進行模組化,并設定一個對數機率門檻值。其次,将觀測到的時空特征帶入模型進行計算,如果得到的對數機率小于設定的對數機率門檻值,則将其判定為異常。

Stefanidis 等人 利用隐馬爾可夫模型對工控網絡中的指令互動進行模組化來檢測異常流量。首先,從正常工控流量中提取出關鍵的互動流程片段;其次,利用這些片段訓練得到隐馬爾可夫模型;最後,利用訓練好的隐馬爾可夫模型檢測出異常的指令互動過程。

利用隐馬爾可夫模型可以從行為序列的角度對流量進行分析,進而發現異常行為,但隐馬爾可夫模型在處理長序列時存在計算下溢的風險。另外,模型中隐狀态的數量一般需要由領域專家根據應用場景進行設定。

2.2 監督分類模型

監督分類模型需要将擷取的正常流量和異常流量進行訓練得到一個二分類器,再利用二分類器對未知資料進行分類。監督分類模型常見的應用模式是先線上下擷取大量正常流量和異常流量資料,資料經過預處理及特征提取之後會被用來訓練出一個分類模型,然後将訓練好的模型部署到産品中來檢測異常流量,其模式如圖 2 所示。

網絡流量異常檢測綜述

圖 2 線下訓練監督分類模型

通常來說,監督學習因為可以同時看到正常流量和異常流量,是以能夠更好地學習到正常流量和異常流量之間的差異,是以在異常檢測領域表現會更好,但事實卻不是這樣的。首先在現實場景中擷取正常流量是容易的,但是擷取異常流量是非常困難的,這就導緻異常流量樣本數量少,覆寫面小,這樣的資料訓練出來的樣本很容易出現過拟合的情況,在訓練集上有着很好的表現,但在測試資料上卻表現很差。Catania 等人 提出了一種對網絡流量進行自主标記的方法,來克服樣本類别不平衡的情況并用來減少訓練資料中的噪聲。

另外,流量資料和網絡環境密切相關,不同網絡環境中的正常流量之間都存在着巨大的差異,更何況異常流量資料,是以将在一個或幾個網絡環境下采集正常流量訓練出來的模型部署在其他網絡環境中必然會出現“水土不服”的情況。

為了克服監督模型離線訓練所存在的問題,Forestiero 等人 [20] 提出一種線上訓練的監督模型方案,利用現網流量資料進行訓練,再檢測現網流量資料。該方案的總體思路如圖 3 所示。

網絡流量異常檢測綜述

圖 3 線上訓練監督模型

先利用其他異常檢測技術對流量進行檢測,然後标注上對應的标簽,待打了标簽的資料達到一定量級之後就啟動監督模型的訓練,在訓練過程中會設定一個收斂條件,當訓練的名額達到收斂條件之後就自動停止訓練,之後便可以将訓練好的監督模型應用到檢測流程中。在使用監督模型進行預測時,首先需要設定一個置信度,即當監督模型預測流量為異常或正常的機率大于或等于該置信度時,才會将其标注為異常或正常,并且這些資料都會被用來更新模型,其他的流量資料會被暫存,待模型更新之後會用更新後的模型繼續對暫存的流量資料進行預測,将預測為異常或正常的機率大于或等于預測置信度的資料打上相應的标簽并從暫存區移除,疊代進行上述過程,直到暫存區沒有資料為止。

監督分類模型既可以是邏輯回歸、支援向量機、随機森林、梯度提升樹等傳統的機器學習模型,也可以是卷積神經網絡(Convolutional Neural Network,CNN)、長短時記憶網絡(LongShort Term Memory,LSTM)、深度殘差網絡等深度學習模型。傳統機器學習模型參數少,對樣本資料量要求不高,資源消耗小,訓練速度快,但是學習能力沒有深度學習模型強,需要依賴人工經驗進行特征提取。深度學習模型需要對大量資料進行訓練,資源消耗較大,但該模型學習能力強,可以直接利用原始資料實作端到端的學習。

Liu 等人提出了一種通過利用原始的封包 負 載 訓 練 CNN 和 循 環 神 經 網 絡(RecurrentNeural Network,RNN)模型來進行異常檢測的方案。在該方案中,不再有特征工程階段,模型的輸入都是原始負載經過簡單處理後的資料。CNN 模型的輸入是對負載進行分詞、詞嵌入後處理後的矩陣,RNN 模型的輸入是由負載的前n 個字元的 ASCII 值組成的序列。這種利用深度學習模型自動從原始負載中提取特征并進行分類的模型雖然可以取得不錯的效果,但前提是需要有大量不同種類、不同來源的樣本資料對模型進行訓練,否則模型很容易陷入過拟合的困境。是以在實際應用中,深度學習模型在訓練資料上可以取得不錯的效果,但是在實際應用時效果卻比較差。

2.3 無監督模型

無監督模型不需要訓練資料,主要利用線上資料進行學習和檢測,是以其适用範圍很廣。這種技術有一個前提假設,就是正常流量要遠遠多于異常流量,如果該假設不成立,則無監督模型會有很多誤報。無監督模型也需要一個學習期,系統會使用學習期内的資料訓練模型,在該階段内模型是不具備檢測能力的,當學習期結束後,就可以利用模型進行異常流量的檢測。在網絡流量異常檢測領域常用的無監督模型包括聚類、孤立森林、自編碼器等。

2.3.1 基于聚類算法的模型

聚類算法是一種典型的無監督學習算法,輸入隻有特征向量,沒有标簽,其主要目的是将相似的樣本自動歸類到一個類簇中 。常用的聚類算法有 K-means、DBSCAN 等。聚類算法依賴于相似度計算方法,不同的相似度及算法得到的聚類結果也會有所不同,常用的相似度計算方法是歐式距離和闵可夫斯基距離。二維空間上的資料聚類如圖 4 所示。

網絡流量異常檢測綜述

圖 4 聚類

Pu 等人采用了基于聚類算法的混合方法進行異常檢測。其思路是首先在學習期内積累流量資料,待資料積累完畢利用聚類算法對這些資料進行聚類,最終聚成兩個類簇,其中資料量小的類簇稱為異常類簇。觀測到新的流量資料時,計算該資料所歸屬的類簇,如果歸屬于正常類簇,則将流量資料判定為正常;如果歸屬于異常類簇,則将流量資料判定為異常,然後使用該流量資料更新類簇。

聚類算法比較依賴于資料之間的距離度量,如果資料之間的距離度量不能很好地反映資料之間的相似性,則基于聚類算法的模型的誤報和漏報較多。

2.3.2 基于孤立森林的模型

孤立森林是一個基于內建的模型,不同于其他一些算法通過距離、密度等去描述資料之間的相似度或疏離度,它通過使用孤立樹的二叉搜尋樹去孤立樣本點來檢測異常值。孤立森林是由多棵孤立樹組成的,孤立森林中包含的孤立樹越多,模型穩定性越好,但預測時的計算量也越大。

Li 等人利用孤立森林進行異常檢測,可以以很低的誤報率實作異常檢測。其思想是随機選擇一定量的樣本作為孤立樹的根節點,然後遞歸地在孤立樹的節點上随機選擇一個特征次元将結點一分為二,直到所有節點隻有一個樣本,或者節點不可再分,或者節點的深度達到給定門檻值。因為異常資料的數量很少,并且和大部分正常資料之間存在較大疏離性,是以異常資料會被更早地孤立出來,也就是說異常資料離根節點更近,正常資料離根節點更遠。Tao 等人 提出了一種基于孤立森林和 Spark 的大規模并行網絡流量異常檢測算法,該算法充分利用了孤立森林的并行特性和 Spark 分布式處理能力,能夠快速地處理海量流量資料,同時因為處理的資料量的擴大,模型的檢測準确率也得到了很大的提升。

利用孤立森林進行異常流量檢測的優點是具有線性時間複雜度,可以在海量的資料集上進行訓練,并且由于每棵孤立樹都是獨立的,非常适合通過并行的模式部署在大規模分布式系統上來加速運算。但是孤立森林在特征次元特别高的場景下并不是特别适用,主要是因為在這種情況下會有很多元度的資訊并沒有被利用到,導緻算法的可靠性降低。另外,高維空間中可能存在大量噪聲次元或無關次元,這會降低模型的檢測能力。

2.3.3 基于自編碼器的模型

自編碼器是一種無監督學習模型,是神經網絡的一種,通過一個編碼器将輸入特征向量映射到另一個編碼特征空間中的一個向量,然後再用一個解碼器将編碼特征空間中的向量還原回來。通過這樣一個過程使其學習到輸入資料的分布規律,進而使得符合訓練資料分布規律的資料經過編碼再還原出來之後和原始資料之間的誤差是相對較小的,不符合訓練資料分布規律的資料經過編碼再還原出來之後和原始資料之間的誤差會很大。是以基于自編碼器的這種特性可以進行異常流量檢測。

Qiu 等人采用自編碼器對正常流量進行模組化,然後利用正常流量模型去檢測異常,該方案取得了不錯的效果。首先,線上下設計一個自編碼器,用收集到的流量資料訓練這個自編碼器;其次,将線下訓練好的自編碼器模型部署到相關産品中,用學習期内的資料再次微調這個自編碼器模型,直到檢測準确率達到預期準确率或者模型收斂為止,用訓練好的自編碼器對學習期内的資料進行編碼、還原,并統計還原誤差的均值

網絡流量異常檢測綜述

和方差

網絡流量異常檢測綜述

;最後,将自編碼器應用到異常流量檢測中,對于輸入的資料,如果自編碼器還原誤差大于

網絡流量異常檢測綜述

則将其判定為異常。

雖然自編碼器具有很強的拟合能力,但前提是需要利用大量資料進行訓練,使其能夠學習到資料的分布規律。如果資料量比較少,模型容易出現過拟合的情況,即訓練資料的重構誤差比較小,其他資料的重構誤差比較大,導緻誤報比較多。

2.3.4 基于 LSTM 的模型

LSTM 是一種特殊的循環神經網絡,主要用來處理序列資料,解決了長序列資料訓練過程中的梯度消失和爆炸的問題,是以在長序列資料上也有很好的效果。網絡流量中有很多長序列資料,使用基于 LSTM 的模型可以更好地學習到這類資料的分布情況。

Li 等人提出了一種單分類 LSTM 模型,實作了端到端的異常流量檢測。該模型用 LSTM網絡将流量資料映射到一個标量空間,用一個自定義的損失函數和預設邊界值訓練模型,然後根據模型的輸出值不斷更新邊界值并再次訓練模型,直至模型收斂。該模型對資料噪聲具有較強的魯棒性,可以進行線上訓練。在設定的學習期内模型使用部署在網絡環境中的流量資料進行訓練,待模型收斂後,即可用來進行異常檢測。首先用訓練好的 LSTM 網絡層将網絡流量資料映射到标量空間的一個值,然後用該值和學習到的邊界值進行比較,如果小于或等于邊界值則判定為正常,否則判定為異常。

另外,上述方案中的 LSTM 網絡可以替換為門控循環單元(Gate Recurrent Unit,GRU)網絡。GRU 是 LSTM 的一個簡化版本,與 LSTM 的效果相當,但更易于計算。

基于 LSTM 的無監督模型通過對序列形式的正常網絡流量資料進行模組化,以實作異常檢測。因為 LSTM 模型強大的學習能力,使得這類模型往往具有很好的表現。但是,由于模型比較複雜,所需的訓練資料量和計算資源比較大,模型的訓練周期比較長。

03 未來研究方向及挑戰

本文所研究的方法還是依賴領域專業人員對網絡流量進行深入分析後提取出來的特征向量去進行異常檢測,這個過程會損失網絡流量的一些資訊,同時也需要根據不同的應用環境去選擇使用不同的特征組合。如何減少對人的依賴,并且能夠将網絡流量除負載内容外的相關資訊以一種準确、全面、易于算法分析的方式表示出來,是今後需要着重研究的一個方向。在這個方向上所面臨的主要問題是計算量會比較大,在一些對性能要求比較高的場景中可能需要借助于硬體加速裝置。

04 結 語

本文從網絡流量資料采集和檢測模型兩個方面對異常網絡流量檢測進行了深入的研究。網絡流量資料采集從連接配接的基礎特征、連接配接的内容特征、流量統計特征、原始負載 4 個方面進行了探讨,每種類型的特征對網絡流量的刻畫能力是不同的,都有其适用的場景,需要根據實際應用場景選擇合适的特征。異常流量的檢測模型有統計模型、監督分類模型和無監督模型 3 種類型,目前的主要研究方向是利用無監督模型對正常流量進行模組化,然後将背離模型的流量識别為異常。

在這個過程中,深度學習模型因其強大的表征學習能力越來越受到研究人員的重視,在一些場景中,傳統的特征工程已被深度學習模型中的特征提取層所取代,隐馬爾可夫模型也正逐漸被 LSTM/GRU 等模型所取代。由于網絡流量複雜多變的特性,在異常網絡流量檢測領域沒有哪種模型是萬能的,隻有了解每種模型的特點及其适用的場景和側重點,并靈活、綜合地運用多種模型,方能更有效地解決異常網絡流量檢測問題。

引用格式:吳迪鋒 , 孫昊翔 , 曹浪 , 等 . 網絡流量異常檢測綜述 [J]. 資訊安全與通信保密 ,2022(8):101-111.

作者簡介 >>>

吳迪鋒,男,學士,資深安全咨詢顧問,主要研究方向為網絡安全檢測模型分析與應用、網絡安全異常流量檢測、網絡安全風險評估;

孫昊翔,男,學士,進階安全咨詢顧問,主要研究方向為網絡安全、滲透測試、漏洞挖掘;

曹 浪,男,學士,軟體工程師,主要研究方向為滲透測試、主機安全風險評估模型;

譚 天,男,碩士,進階工程師,主要研究方向為安全檢測引擎、AI 安全。

選自《資訊安全與通信保密》2022年第8期(為便于排版,已省去參考文獻)

繼續閱讀