孟 楠,周成勝,趙 勛,王 斌,姜喬木
(1.中國信息通信研究院 安全研究所,北京 100191;2.廣州匯智通信技術有限公司,廣東 廣州 510639)
隨著互聯網、大數據、云計算等新興信息技術的快速發展,網絡規模呈現指數級、爆發式增長趨勢,社會各行各業開始廣泛地應用互聯網技術開展工作,網絡的穩定可靠運行對社會平穩運行和快速發展具有重要意義。
為保障網絡穩定可靠運行,需要通過部署網絡流量監測設備(如流量探針)對特定網絡出入口的流量進行多維度實時監測,將關鍵網絡節點的流量數據通過鏡像或分光的方式進行采集,并發送至網絡安全分析監測系統,然后對網絡流量行為、傳輸協議和數據內容進行深度包解析,通過與內置的安全威脅情報庫進行匹配,從而對惡意加密流量行為實現實時檢測和預警[1]。然而,針對網絡中的加密流量數據(如HTTPS協議流量),現有深度包探測技術難以實現數據內容的有效提取和分析,因此難以進行安全監測預警,只能通過關聯資源、種子站等外圍信息進行模糊分析[2]。針對上述問題,相關領域的研究者開展了針對加密網絡流量的異常行為檢測,通過分析流量中的結構化信息(不包含加密載荷),實現惡意加密流量行為檢測[3],采集的流量統計信息包括流量的上行、下行的瞬時流量大小或數據包數量,以及流量中各類傳輸協議的占比情況,同時還可以分析訪問源地址所屬的國家或地區[4]。基于網絡流量監測信息,可以實現對加密網絡流量中的異常行為和網絡攻擊進行實時檢測和追蹤溯源[5-7]。為了對不同協議下的惡意加密流量進行有效檢測,相關領域的研究者設計了一種基于隱馬爾可夫模型的惡意加密流量檢測方法,通過提取生物信息學上的基因序列特征進行比對分析,匹配關鍵基因子序列,實現惡意加密流量識別[5]。為了解決傳統機器學習算法需要大量標記數據,且難以識別未知惡意流量的問題,相關領域的研究者進一步設計了一種基于孿生神經網絡的惡意加密流量識別方法,實現端到端的單樣本檢測[6]。另外,針對單模型檢測算法對多粒度特征適用性差和復雜惡意加密流量檢測的誤報率高的問題,相關領域的研究者設計了一種基于Stacking與多特征融合的加密惡意流量檢測技術[7]。
然而,在現有的基于馬爾可夫模型、孿生神經網絡和復雜特征融合的惡意加密流量檢測算法中[5-7],當流量監測設備采集的數據維度較多時,實時處理海量的高維數據將會帶來極大的計算負擔。因此,有必要通過采用壓縮感知和稀疏編碼等降維分析方法,將測量數據從高維空間映射至低維空間,同時保留數據中的有效信息,從而實現處理復雜度的降低[8]。
主成分分析技術(Principal Component Analysis,PCA)是數據分析領域中一種有效的降維處理方法,由于具有計算簡便性和非參數特性,該方法被廣泛應用于高維數據特征提取和異常數據檢測應用[9]。在主成分分析技術中,首先將長時間采集的測量數據組合為數據矩陣。接著,通過計算測量數據的統計均值和方差,將測量數據進行標準化處理,再計算標準化處理數據的協方差矩陣。基于測量數據協方差矩陣,利用奇異值分解方法(Singular Value Decomposition,SVD)求解協方差矩陣的特征值和特征向量。通過計算特征值之間的占比情況,將數據空間劃分為模型空間和殘差空間,其中模型空間對應的特征向量就是測量數據的主成分分量。利用主成分分量重構狀態數據,可以實現高維數據的低維映射表示。同時,考慮到正常情況下測量數據的殘差分量趨近于0,可以利用實時測量數據的殘差分量判斷數據是否出現異常[10]。
在本文中,利用主成分分析技術,基于多維度監測的流量信息構建時間維度和空間維度的流量變化模型。通過計算流量模型預測結果與實際采集流量間的平方預測誤差,實時檢測網絡流量中的惡意加密流量。同時,通過構建不同國家和地區的網絡流量模型,實現惡意加密流量來源的追蹤溯源。
為了保障重點目標(如關鍵基礎設施)的正常網絡運行,防止DoS攻擊、DDoS攻擊和Infiltration攻擊等惡意網絡攻擊導致網絡通聯狀態異常,通常需要實時對重點目標網絡系統的出口流量進行多維度監測[11]。利用主流的高端網絡流量監測探針,可以每兩分鐘檢測一次網絡的出口流量信息,采集的流量可按照訪問重點目標的源IP所在的國家、省份或地區劃分,共分為263個地區,包含31個境內省份地區和232個境外國家或地區。在第k時刻,網絡流量監測探針采集的第i個地區信息如表1所示。

表1 網絡流量監測探針采集信息匯總表
利用上述實時網絡流量監測信息,可以提取時間維度和空間維度的網絡流量行為特征,構建高維網絡流量信息矢量。
1.1.1 時間維度網絡流量監測模型
在第d天第m分鐘,基于時間維度的瞬時網絡流量監測模型可以表示為:
yINST(d,m)=[fUP(k),fDOWN(k),pUP(k),pDOWN(k),fTCP(k),fUDP(k),fOTHER(k),pTCP(k),pUDP(k),pOTHER(k)]T
(1)
其中,流量信息的采集時刻k可以表示為k=d×24×60+m,yINST(d,m)為10×1維的列向量。由于流量探針監測設備每兩分鐘采集一次流量信息,m的取值范圍為{0,2,4,6,…,24×60=1 440}。
第d天基于時間維度的網絡流量監測模型可以表示為:
(2)
則yDAY(d)為7 200×1維的列向量。
為了分析網絡流量在一天24 h內的變化情況,需要對歷史網絡流量監測數據的變化規律進行分析。在第d天,可以對前d-1天的歷史網絡流量監測數據進行統計分析,則基于時間維度的歷史網絡流量監測模型可以表示為:
YTEMP(d)=[yDAY(1),yDAY(2),…,yDAY(d-1)]
(3)
1.1.2 空間維度網絡流量監測模型
在第k個網絡流量信息采集時刻,對于第i個地區的瞬時網絡流量監測模型可以表示為:
yDIST(k,i)=[fOUT[district(i),k],fIN[district(i),k],pOUT[district(i),k],pIN[district(i),k]]T
(4)
其中1≤i≤263,yDIST(k,i)為4×1維的列向量。
在第k個網絡流量信息采集時刻,基于空間維度的網絡流量監測模型可以表示為:
(5)
則ySPAT(k)為1 052×1維的列向量。
為了分析網絡流量在空間維度的變化情況,需要對歷史網絡流量監測數據的變化規律進行分析。在第k個網絡流量信息采集時刻,可以對前k-1個時刻的歷史網絡流量監測數據進行統計分析,則基于空間維度的歷史網絡流量監測模型可以表示為:
YSPAT(k)=[ySPAT(1),ySPAT(2),…,ySPAT(k-1)]
(6)
根據1.1節的網絡流量監測模型,為了實現網絡流量變化規律的建模分析,需要對大量監測數據進行采集,其中時間維度的網絡流量測量模型每一時刻會生成一個7 200×1維的測量向量,空間維度的網絡流量測量模型每一時刻會生成一個1 052×1維的測量向量,高維度向量的特征提取和實時處理將帶來極大的計算負擔,同時可能出現過擬合效應,難以提取有效信息。
針對上述情況,有必要利用降維分析方法,壓縮網絡流量檢測數據的維度,提升實時數據處理效率,同時保留原有數據中包含的有效信息。
主成分分析技術是數據分析領域一種常用于數據降維分析的方法,通過對數據的信號空間進行特征分解,分析信號空間中權重占比較大的信號分量,分析數據樣本中潛在的時空變化規律。主成分分析技術一方面可將高維度向量壓縮為低維度向量,另一方面還可以保留原始信號中與真實信號相匹配的信號分量,將信號中的隨機噪聲剔除。主成分分析技術的主要應用領域分為兩類:(1)用于高維度向量的降維分析,降低數據處理的計算復雜度;(2)用于異常信號檢測,通過提取殘差空間對應的特征值和特征向量,將測量數據映射到殘差空間中,考慮到正常信號的測量噪聲通常較低,若測量數據在殘差空間投影幅值顯著升高,則可以判斷信號出現異常,進而通過多維度分析研判,確認信號異常的原因,如環境劇烈變化、設備故障、網絡攻擊等[12]。

(7)
對樣本協方差矩陣進行特征分解,可以表示為[13]:
Cx=UΣxUT
(8)
其中,Σx=diag(λ1,λ2,…,λN)為N×N維的對角矩陣,且滿足λ1≥λ2≥…≥λN≥0;矩陣U=[u1,u2,…,uN]為N×N維的酉矩陣,滿足UUT=I。在以上公式中,λi表示矩陣Cx的第i個特征值,ui表示特征值λi對應的特征向量,也稱為數據向量x的第i個主成分,1≤i≤N。第i個主成分的貢獻率表示為:
(9)
前i個主成分的累計貢獻率表示為:
(10)
為了實現數據降維分析和異常檢測,需要對數據進行空間劃分和主成分提取。根據文獻[14],可以將數據向量x的信號空間劃分為模型空間(model space)和殘差空間(residual space),則式(8)的特征分解過程可以變形為:
(11)
其中,UM表示模型空間對應的特征向量,ΣM=diag(λ1,λ2,…,λI)表示模型空間對應的特征值,UR表示殘差空間對應的特征向量,ΣR=diag(λI+1,λI+2,…,λN)表示殘差空間對應的特征值。I表示主成分數量,根據如下主成分累計貢獻率的判定準則確定MI≥ρ,MI-1<ρ,0≤ρ≤1,ρ表示預先設定的判決門限。
基于式(11)中的數據空間劃分準則,可以計算數據向量x落在模型空間和殘差空間的投影分量,模型空間投影分量可以表示為:
(12)
殘差空間投影分量可以表示為:
(13)
利用1.1節的實時流量監測模型,可以從時間和空間維度挖掘分析網絡流量變化規律,利用歷史統計的多維流量信息進行流量特征提取,再對網絡中存在的異常加密流量行為進行實時檢測和預警。
通過分析挖掘一天24 h內網絡流量的升降變化規律,判斷流量高峰期和低谷期,并分析各個時間段的歷史流量瞬時測量值的峰值、均值、中位數、方差、標準差等多維度特征,從而建立流量時間維度的變化模型。當某一時刻網絡瞬時流量顯著偏離正常時間變化模型時,可以判斷出現異常加密網絡流量行為[15],從而進行進一步的網絡攻擊分析研判,采取流量清洗、黑洞路由等處置措施。
在第d天,針對式(3)表示的基于時間維度的歷史網絡流量監測模型,可以構建歷史網絡流量監測數據矩陣YTEMP(d)的協方差矩陣:
CTEMP(d)=[YTEMP(d)-μYTEMP(d)11×D]·
[YTEMP(d)-μYTEMP(d)11×D]T/(d-1)
(14)

利用基于時間維度的歷史網絡流量監測數據協方差矩陣,可以根據式(11)構建測量數據時間維度的模型空間和殘差空間,即:

(15)
在第d天第m分鐘,基于時間維度的瞬時網絡流量監測模型可以表示為:
(16)
其中,由于第m分鐘之后的網絡流量信息還無法獲取,因此利用歷史數據的均值進行預測和填充,第mF(m+2≤mF≤1 440)分鐘的網絡流量信息預測結果可以表示為:
(17)
測量數據時間維度的殘差空間投影分量可以表示為:
y′DAY(d,m)
(18)
根據文獻[16],可以構建平方預測誤差(Squared Prediction Error,SPE),如下:
(19)
當平方預測誤差超過預設門限時,可以判定第m分鐘網絡流量出現異常,即異常加密網絡流量行為的判決規則如下:
(20)

利用2.1節中基于時間維度主成分分析的惡意加密流量行為檢測方法,可以對網絡中的惡意加密流量行為進行實時檢測,判斷當前時刻是否存在網絡攻擊(如DDoS攻擊)。
為了對網絡攻擊進行溯源,需要判斷攻擊來源所屬的國家或地區。為了實現攻擊來源省份追溯,本研究進一步設計了一種基于空間維度主成分分析的惡意加密流量行為檢測方法,通過提取每一時刻各個國家和地區流量的多維統計結果,分析各個國家和地區的流量相對比較結果,建立空間維度的網絡流量行為模型。當某個地區或國家的網絡流量出現異常急劇上升,則可以判斷網絡攻擊的主要來源為該國家或地區。
針對式(6)中基于空間維度的歷史網絡流量監測模型,可以構建歷史網絡流量監測數據矩陣YSPAT(k)的協方差矩陣:
CSPAT(k)=[YSPAT(k)-μYSPAT(k)11 052×K]·
[YSPAT(k)-μYSPAT(k)11 052×K]T/(k-1)
(21)
利用基于空間維度的歷史網絡流量監測數據協方差矩陣,可以根據式(11)構建測量數據空間維度的模型空間和殘差空間,即:
(22)
在第k個網絡流量信息采集時刻,測量數據空間維度的殘差空間投影分量可以表示為:
(23)
根據文獻[16],可以構建每個地區district(i)流量監測數據的平方預測誤差(SPE)如下:
(24)
當Edistrict(i)(k)超過預設門限時,可判定在第k個網絡流量信息采集時刻,地區district(i)的網絡流量出現異常,例如來自地區district(i)的主機對重點目標發起了DDoS攻擊,即惡意加密流量行為的判決規則如下:
(25)

利用第2節提出的基于時空主成分分析的惡意加密流量檢測方法,本節設計了一種可以用于現網部署的算法實現流程,如圖1所示。

圖1 基于時空主成分分析的惡意加密流量檢測算法流程圖
首先,通過時間維度主成分分析方法,對歷史網絡流量的變化規律進行分析歸納和統計,構建流量變化模型。面向現網實時采集的網絡流量信息,根據流量變化模型對網絡流量時間維度的變化情況進行線性預測,再計算流量模型預測結果與實際流量數據的平方預測誤差SPE,當某一時刻SPE幅值過大時,判斷該時刻網絡流量中出現惡意加密流量行為(如DDoS攻擊)。
當某一時刻觀測到網絡流量中出現惡意加密流量行為時,接下來進一步利用空間維度主成分分析方法對惡意加密流量行為的來源進行追蹤溯源。利用歷史沉淀的空間維度網絡流量監測數據,構建空間維度的網絡流量變化模型。面向出現惡意加密流量行為的瞬時網絡流量監測信息,根據空間維度流量變化模型,對各個國家和地區訪問目標地址的網絡流量進行線性預測,再計算模型預測結果與實際測量數據的平方預測誤差SPE。當某一國家或地區流量的SPE幅值過大時,則判斷該國家或地區的網絡流量中出現惡意加密流量行為,即該國家或地區為網絡攻擊的來源地。
基于時空主成分分析的惡意加密流量行為檢測過程可以總結為算法1。利用所提出的分析算法,可以實現惡意加密流量實時檢測和追蹤溯源。
算法1:基于時空主成分分析的惡意加密流量行為檢測算法
(1)輸入參數
①時間維度的瞬時網絡流量監測數據yINST(d,m),d≥1,m≥1;
②空間維度的瞬時網絡流量監測數據ySPAT(k),k≥1。
(2)系統初始化
③利用式(14)構建初始時刻的時間維度網絡流量監測數據協方差矩陣CTEMP(3);
④利用式(21)構建初始時刻的空間維度網絡流量監測數據協方差矩陣CSPAT(3)。
(3)時間維度網絡流量變化模型構建
⑤ for (d= 4 toD,d++)do
⑥ 構建歷史網絡流量監測數據協方差矩陣:
CTEMP(d)=[(d-2)CTEMP(d-1)+
⑦利用式(15)構建測量數據時間維度的模型空間和殘差空間,得到模型空間的投影矩陣UTEMP,M(d)。
(4)時間維度惡意加密流量行為檢測
⑧ for (m= 2 to 1 440,m=m+2)do
⑨ 利用式(19)計算每一時刻流量的時間維度平方預測誤差ETEMP(d,m)。
⑩ ifETEMP(d,m)>φTEMPdo
(5)空間維度網絡流量模型構建
(6)空間維度惡意加密流量行為檢測
(7)輸出參數
在現有的基于馬爾可夫模型、孿生神經網絡和復雜特征融合的惡意加密流量檢測算法中,隨著流量監測設備的統計信息維度的增加,惡意加密流量檢測算法的計算復雜度呈指數級上升[5-7]。因此,為了降低計算復雜度,現有算法只能通過降低時空特征變量yDAY(d)和ySPAT(k)的維度實現整體計算復雜度的下降。然而,降低時空特征變量的維度將導致信息量的損失,最終導致惡意加密流量檢測性能的下降。
為了保證時空特征變量中所包含的信息量盡可能完整,同時實現計算復雜度的降低,算法1采用了時空主成分分析方法,其中,步驟⑦和步驟分別利用主成分分析方法提取了時間維度和空間維度的模型空間成分分量,實現了主成分分量的保留和擾動噪聲分量的過濾。
與現有的惡意加密流量檢測算法相比,本文提出的基于時空主成分分析的惡意加密流量檢測算法可以支持在流量監測設備統計數據維度較高的情況下,實現更高的檢測準確率和更低的計算復雜度,可適用于多源異構網絡安全監測系統同時部署運行和協同分析的場景。
本文基于實時采集的多維度網絡流量監測信息,利用時空主成分分析技術,提出了一種針對惡意加密流量行為的實時檢測預警和溯源追蹤方法。首先,從時間維度對歷史積累網絡流量監測信息進行主成分分析,構建一天24 h內網絡流量的變化模型,將數據空間劃分為模型空間和殘差空間。通過計算模型預測流量與實際監測流量之間的平方預測誤差,從而構建惡意加密流量檢測判決準則,判定網絡流量中出現惡意加密流量的時刻。接著,從空間維度對網絡中發現的惡意加密流量進行溯源追蹤,利用歷史積累的各國家和地區的網絡流量監測數據,分析各國家和地區的流量相對比較情況,構建空間維度的網絡流量行為變化模型。通過計算各個國家和地區的模型預測流量與實際監測流量之間的平方預測誤差,對惡意加密流量行為的來源地進行追蹤溯源。最后本文設計了一種可以用于現網部署的算法實現流程,并分析了相比其他已有算法帶來的能力提升。