孫先亮,譚小波
(沈陽(yáng)理工大學(xué) 信息科學(xué)與工程學(xué)院,沈陽(yáng) 110159)
動(dòng)態(tài)網(wǎng)絡(luò)異常行為的檢測(cè)方法是國(guó)內(nèi)外研究的熱門(mén)課題。異常行為檢測(cè)技術(shù)是通過(guò)分析動(dòng)態(tài)網(wǎng)絡(luò)[1]的結(jié)構(gòu)特征,使用模型算法進(jìn)行結(jié)構(gòu)特征提取,再通過(guò)分類(lèi)算法判斷某一時(shí)刻上的網(wǎng)絡(luò)是否存在異常行為,找出網(wǎng)絡(luò)中與其他正常行為差異過(guò)大的異常行為[2]以進(jìn)行防范,降低網(wǎng)絡(luò)攻擊危害。
傳統(tǒng)的動(dòng)態(tài)網(wǎng)絡(luò)異常檢測(cè)方法包括基于節(jié)點(diǎn)特征分類(lèi)的方法、基于行為特征的方法和基于圖特征的方法等。姚濰等[3]提出了基于決策樹(shù)和樸素貝葉斯分類(lèi)算法結(jié)合的方法,首先使用決策樹(shù)進(jìn)行概率加權(quán)求和,然后使用樸素貝葉斯分類(lèi)算法進(jìn)行結(jié)果分類(lèi),并在KDD99數(shù)據(jù)集上進(jìn)行驗(yàn)證,結(jié)果表明該方法在準(zhǔn)確度上有一定提升,但效率不高。Yu H F等[4]提出了基于隨機(jī)游走的SybilGuard算法用以針對(duì)女巫攻擊。該算法可以在信任節(jié)點(diǎn)上進(jìn)行多次隨機(jī)游走,進(jìn)而找到所有的信任區(qū)節(jié)點(diǎn)進(jìn)行異常檢測(cè),但需要花費(fèi)大量的內(nèi)存和計(jì)算時(shí)間。Yoon M等[5]提出了基于異常等級(jí)(AnomRank)的異常檢測(cè)算法,首先將動(dòng)態(tài)圖中的異常分為異常S(AnomalyS)和異常W(AnomalyW)兩種類(lèi)型,然后根據(jù)該兩種類(lèi)型特征構(gòu)造節(jié)點(diǎn)異常評(píng)分函數(shù),通過(guò)評(píng)分函數(shù)進(jìn)行異常事件的區(qū)分。該方法效率上優(yōu)于其他算法,但精度不夠。Gahrooei M R等[6]提出了基于概率模型的方法,首先使用廣義線性模型(Generalized Lagrange Multipliers,GLM)對(duì)每個(gè)屬性圖進(jìn)行建模,再通過(guò)拓廣的卡爾曼濾波器調(diào)整參數(shù)并使用指數(shù)加權(quán)移動(dòng)平均值檢測(cè)圖流上的全局結(jié)構(gòu)變化,該方法雖然提高了準(zhǔn)確度,但會(huì)占用大量的內(nèi)存空間。
動(dòng)態(tài)網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)量巨大,結(jié)構(gòu)呈現(xiàn)出多種特征,表現(xiàn)在網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)隨時(shí)間不斷發(fā)生變化。傳統(tǒng)的異常行為檢測(cè)方法效率低或準(zhǔn)確度不高。本文提出一種基于長(zhǎng)短時(shí)記憶模型(Long short-term memory,LSTM)的動(dòng)態(tài)網(wǎng)絡(luò)異常行為檢測(cè)方法解決上述問(wèn)題。該方法首先采用基于中心網(wǎng)絡(luò)(Ego network,Egonet)特征提取方案計(jì)算出圖距離特征,其次使用增量并行式算法(Dynamic Parallel Anomaly Detections,DPADS)壓縮圖結(jié)構(gòu),計(jì)算圖結(jié)構(gòu)差異,最后使用LSTM算法進(jìn)行模型訓(xùn)練并完成異常行為檢測(cè)。
動(dòng)態(tài)網(wǎng)絡(luò)異常狀態(tài)表現(xiàn)為[7]:在連續(xù)的圖序列中,找到特定時(shí)間點(diǎn)對(duì)應(yīng)圖上顯著變化的節(jié)點(diǎn)、邊或子結(jié)構(gòu)。
本文提出Egonet網(wǎng)絡(luò)的動(dòng)態(tài)網(wǎng)絡(luò)模型特征提取方法提取圖距離特征。
節(jié)點(diǎn)的Egonet[8]定義為包括距離該節(jié)點(diǎn)一跳鄰居節(jié)點(diǎn)及連接這些節(jié)點(diǎn)的邊的子圖。
動(dòng)態(tài)Egonet網(wǎng)絡(luò)隨時(shí)間變化的結(jié)構(gòu)如圖1所示。
圖1 動(dòng)態(tài)Egonet網(wǎng)絡(luò)結(jié)構(gòu)圖
Egonet的動(dòng)態(tài)網(wǎng)絡(luò)模型提取距離特征的計(jì)算方法如下。
給定圖G=(Vi,Ei)和圖H=(Vj,Ej),兩圖最大公共子圖(Max Common Subgraph,MCS)為mcs(Vi,Vj),圖G與圖H的節(jié)點(diǎn)距離L1(G,H)定義為公共子圖中節(jié)點(diǎn)數(shù)與兩個(gè)圖當(dāng)中最大節(jié)點(diǎn)數(shù)max {|Vi|,|Vj|}的比值與1的差,其表達(dá)式為
(1)
同理,圖G與圖H的邊距離L2(G,H)定義為公共子圖中邊的數(shù)量與兩個(gè)圖當(dāng)中最大的邊數(shù)量max {|Ei|,|Ej|}的比值與1的差,其表達(dá)式為
(2)
以圖的點(diǎn)距離與邊距離構(gòu)成的圖距離特征可以有效衡量?jī)蓮垐D在結(jié)構(gòu)上的相似程度。
異常的子結(jié)構(gòu)(或子圖)是正常結(jié)構(gòu)的變異,即是正常圖邊和節(jié)點(diǎn)的增加或者缺失。通過(guò)計(jì)算圖G1轉(zhuǎn)化為G2的同構(gòu)圖的計(jì)算量,可以衡量G1和G2之間的結(jié)構(gòu)差異。
設(shè)圖G正常模式為S,由最小長(zhǎng)度原理(Minimum Description Length,MDL)判定[9],并通過(guò)最小化目標(biāo)函數(shù)找到最小描述長(zhǎng)度L為
L=min(L(G|S)+L(S))
(3)
式中:L(G|S)為使用S壓縮圖G后的描述長(zhǎng)度;L(S)為正常模式S的描述長(zhǎng)度。
設(shè)D(G1,Gn)表示圖G1與圖Gn之間的結(jié)構(gòu)差異,如果差異度為0,那么兩個(gè)圖為同構(gòu),否則為異構(gòu)。
設(shè)圖G任意一個(gè)子圖模式SA為異常結(jié)構(gòu),Dmax為SA到S的最大差異,且Pmax限定了SA為異常結(jié)構(gòu)的最大概率。那么有0 使用圖的正常模式,以根據(jù)最小長(zhǎng)度原理對(duì)原始圖進(jìn)行描述,并通過(guò)計(jì)算與其它圖之間的差異度和異常概率可以判斷其它圖結(jié)構(gòu)是否異常。 LSTM算法[10]最早由Sepp Hochreiter和Jurgen Schmidhuber提出,是一種對(duì)遞歸神經(jīng)網(wǎng)絡(luò)的改進(jìn)算法。其適用于學(xué)習(xí)時(shí)間序列上的動(dòng)態(tài)特征,針對(duì)異常行為所產(chǎn)生的特征變化能夠進(jìn)行有效捕捉,進(jìn)而實(shí)現(xiàn)異常行為檢測(cè);其主要思想是使用三個(gè)門(mén)限設(shè)計(jì)來(lái)解決長(zhǎng)期依賴(lài)問(wèn)題,增加了神經(jīng)元的記憶和遺忘功能;其結(jié)構(gòu)由輸入層、隱含層和輸出層構(gòu)成,核心在于記憶單元的設(shè)計(jì),由三個(gè)乘法門(mén)構(gòu)成。LSTM結(jié)構(gòu)如圖2所示。 圖2 LSTM結(jié)構(gòu)圖 (1)遺忘門(mén):決定是否需要遺忘之前儲(chǔ)存的信息。讀取輸入當(dāng)前時(shí)刻t的特征向量和上一層輸出特征向量,通過(guò)激活sigmoid函數(shù)判斷是否遺忘,0表示丟棄,1表示存儲(chǔ)。其計(jì)算公式為 ft=w(Wf*[ht-1,xt]+bf) (4) 式中:ft為遺忘門(mén)值;ht-1表示前一時(shí)刻隱含層狀態(tài);xt表示當(dāng)前時(shí)刻特征向量;w為系數(shù);Wf為待定系數(shù);bf為常量。 (2)輸入門(mén):判斷什么類(lèi)型的新信息需要進(jìn)行學(xué)習(xí),使用tanh函數(shù)計(jì)算候選值向量。其計(jì)算公式為 it=w(Wi*[ht-1,xt]+bi) (5) Ct=tanh(Wc*[ht-1,xt]+bc) (6) 式中:it表示記憶門(mén)值;Ct表示當(dāng)前記憶細(xì)胞值;Wi、Wc為待定系數(shù);bi、bc為常量。 將上一層的狀態(tài)值Ct-1與ft相乘確定要丟棄的信息,加上新的候選值得到新記憶細(xì)胞值為 Ct+1=(ft*Ct-1+it*Ct) (7) 式中:Ct+1表示新記憶細(xì)胞值;Ct-1表示上一層記憶細(xì)胞值。 (3)輸出門(mén):通過(guò)sigmoid激活函數(shù)獲取輸出狀態(tài),使用tanh函數(shù)計(jì)算輸出信息,得到結(jié)果ht。 ot=w(Wo*[ht-1,xt]+bo) (8) ht=ot*tanh(Ct+1) (9) 式中:ot表示輸出門(mén)值;Wo為待定系數(shù);bo為常量。 使用LSTM算法訓(xùn)練時(shí)間序列上的動(dòng)態(tài)網(wǎng)絡(luò)特征變化,通過(guò)圖距離特征和圖結(jié)構(gòu)差異度兩種特征做為輸入特征向量,判斷某一時(shí)刻的網(wǎng)絡(luò)結(jié)構(gòu)是否為異常結(jié)構(gòu)。具體步驟如表1所示。 表1 LSTM算法步驟 在Python3.7環(huán)境下進(jìn)行仿真實(shí)驗(yàn),測(cè)試該方法的性能。 IDS2018數(shù)據(jù)集來(lái)自于小規(guī)模局域網(wǎng)上模擬網(wǎng)絡(luò)攻擊過(guò)程中收集到的網(wǎng)絡(luò)攻擊數(shù)據(jù),攻擊的基礎(chǔ)設(shè)施有420臺(tái)計(jì)算機(jī)和30臺(tái)服務(wù)器。數(shù)據(jù)集包括捕獲的每臺(tái)計(jì)算機(jī)的網(wǎng)絡(luò)流量和系統(tǒng)日志,每一條數(shù)據(jù)由70多個(gè)特征構(gòu)成,每一條記錄有目的IP、源IP及持續(xù)時(shí)間等。包含拒絕服務(wù)(Denial of Servie,DOS)攻擊、端口掃描、滲透測(cè)試及僵尸網(wǎng)絡(luò)4種攻擊類(lèi)型。 以24h的數(shù)據(jù)作為訓(xùn)練集進(jìn)行實(shí)驗(yàn),其節(jié)點(diǎn)的數(shù)量情況如圖3所示,邊的數(shù)量情況如圖4所示。 圖3 節(jié)點(diǎn)數(shù)量 圖4 邊數(shù)量 本文方法使用的數(shù)據(jù)類(lèi)型均為數(shù)值型,需要對(duì)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理,使用Min-Max方法[11]將數(shù)據(jù)映射到(0,1)區(qū)間,如公式(10)所示。 (10) 式中:X為原始數(shù)據(jù);Xmax、Xmin分別為數(shù)據(jù)中每一個(gè)特征的最大值和最小值。 對(duì)于LSTM算法評(píng)價(jià)標(biāo)準(zhǔn)有4個(gè):準(zhǔn)確率(Accuracy)、召回率(Recall)、精確率(Precision)和調(diào)和平均值(F-Measure),計(jì)算公式為 (11) (12) (13) (14) 式中:TP表示正類(lèi)預(yù)測(cè)為正類(lèi)數(shù)目;FP表示負(fù)類(lèi)預(yù)測(cè)為正類(lèi)數(shù)目;TN表示負(fù)類(lèi)預(yù)測(cè)為負(fù)類(lèi)數(shù)目;FN表示正類(lèi)預(yù)測(cè)為負(fù)類(lèi)數(shù)目。本文選取準(zhǔn)確率和召回率作為異常行為檢測(cè)評(píng)價(jià)指標(biāo)。 實(shí)驗(yàn)采用10h的數(shù)據(jù)作為測(cè)試集驗(yàn)證模型的有效性。其節(jié)點(diǎn)、邊和異常數(shù)量如表2所示。 表2 測(cè)試集節(jié)點(diǎn)、邊及異常數(shù)量 將LSTM進(jìn)行30輪迭代訓(xùn)練,不斷更新參數(shù),尋找最優(yōu)解。經(jīng)過(guò)15輪訓(xùn)練后損失函數(shù)值基本不變,達(dá)到了最優(yōu),損失函數(shù)值變化如圖5所示。 圖5 損失函數(shù)值變化 訓(xùn)練模型后對(duì)測(cè)試集進(jìn)行準(zhǔn)確性評(píng)估,并與基于特征的支持向量機(jī)(Support Vector Machine,SVM)異常檢測(cè)方法、基于主成分分析(Principal Component Analysis,PCA)的異常檢測(cè)方法、基于圖卷積(Graph Convolution,GCN)和基于矩陣分解的動(dòng)態(tài)網(wǎng)絡(luò)異常檢測(cè)方法進(jìn)行對(duì)比,結(jié)果如圖6所示。 圖6 算法對(duì)比圖 由圖6可見(jiàn),本文提出的方法在準(zhǔn)確率和召回率上遠(yuǎn)超過(guò)基于SVM的異常檢測(cè)方法。與其他三種方法相比,準(zhǔn)確率提高了7%左右,召回率提高了5%左右,達(dá)到良好的檢測(cè)效果。 本文提出一種基于LSTM的動(dòng)態(tài)網(wǎng)絡(luò)異常行為檢測(cè)方法。該方法首先通過(guò)對(duì)動(dòng)態(tài)網(wǎng)絡(luò)結(jié)構(gòu)的變化特征進(jìn)行分析,并計(jì)算圖結(jié)構(gòu)距離特征表示動(dòng)態(tài)網(wǎng)絡(luò)的變化趨勢(shì);其次,使用DPADS算法通過(guò)MDL原理壓縮圖結(jié)構(gòu),并計(jì)算圖結(jié)構(gòu)之間的差異度,減少內(nèi)存消耗,提高檢測(cè)速度;最后使用LSTM算法對(duì)數(shù)據(jù)集進(jìn)行訓(xùn)練,完成異常行為檢測(cè)。實(shí)驗(yàn)結(jié)果表明,基于LSTM的動(dòng)態(tài)網(wǎng)絡(luò)異常行為檢測(cè)方法與其他異常檢測(cè)方法相比,準(zhǔn)確率提高了7%,召回率提高了5%。1.3 LSTM算法
2 仿真實(shí)驗(yàn)與結(jié)果分析
2.1 實(shí)驗(yàn)數(shù)據(jù)
2.2 數(shù)據(jù)預(yù)處理
2.3 評(píng)價(jià)標(biāo)準(zhǔn)
2.4 實(shí)驗(yàn)結(jié)果
3 結(jié)論