朱光明,盧梓杰,馮家偉,張向東,張鋒軍,牛作元,張 亮
(1.西安電子科技大學 計算機科學與技術學院,陜西 西安 710071;2.西安電子科技大學 通信工程學院,陜西 西安 710071;3.中國電子科技集團公司第三十研究所,四川 成都 610041)
隨著互聯(lián)網(wǎng)在各個領域的運用越來越廣泛,網(wǎng)絡技術的不斷發(fā)展,以及大數(shù)據(jù)、物聯(lián)網(wǎng)等新技術的出現(xiàn)和發(fā)展,網(wǎng)絡攻擊行為和威脅也在隨之增加,網(wǎng)絡安全成為越來越尖銳的問題。最具威脅性的高級持續(xù)性威脅(Advanced Persistent Threat,APT)攻擊[1]一般是由專業(yè)的高級持續(xù)性威脅組織發(fā)起,主要目的是獲取目標的關鍵信息,長期綜合運用多種攻擊手段對特定目標進行滲透活動。高級持續(xù)性威脅攻擊通常包括5個主要階段:偵察、建立立足點(初始訪問)、橫向移動、數(shù)據(jù)泄露、持久化[2]。高級持續(xù)性威脅攻擊具有3個重要特征,分別是[11]:①高級。實施攻擊的人運用的專業(yè)知識、方法和工具都是高級的。②持續(xù)性。通常一個高級持續(xù)性威脅活動會持續(xù)很長一段時間,短的幾個月,長的甚至幾年,而且成功入侵之后,會對目標進行持久化的監(jiān)視和數(shù)據(jù)竊取。③隱蔽性。高級持續(xù)性威脅會運用防御繞過技術來躲避目標系統(tǒng)的防御部署,通過信息收集、釣魚等方式逐漸滲透。
近年來,機器學習越來越多地被用于網(wǎng)絡安全的研究當中,比如檢測網(wǎng)絡環(huán)境中可能會受到的威脅和攻擊。機器學習具有快速處理數(shù)據(jù)的能力,面對傳統(tǒng)入侵檢測系統(tǒng)難以檢測到的攻擊,它們能挖掘出攻擊數(shù)據(jù)與正常數(shù)據(jù)的區(qū)別[3]。在大量的攻擊行為中,最難以檢測的攻擊就是高級持續(xù)性威脅攻擊,它涉及較長時間內的多個攻擊步驟,對其調查需要分析大量日志以識別其攻擊步驟。由于每天網(wǎng)絡流量的數(shù)量過于龐大,網(wǎng)絡分析師僅憑入侵檢測系統(tǒng)難以全面且持續(xù)地應對攻擊行為。
國內外的研究人員在高級持續(xù)性威脅攻擊檢測的研究上做了很多重要工作。在這些工作中,較為關鍵的是相關數(shù)據(jù)的采集和數(shù)據(jù)集的構建。加拿大網(wǎng)絡安全研究所(Canadian Institute for Cybersecurity,CIC)和新不倫瑞克大學(University of New Brunswick,UNB)提出了CICIDS 2017數(shù)據(jù)集,該數(shù)據(jù)集涵蓋了11種常見的攻擊方式,通過機器學習算法進行評估[4]。2018年,加拿大網(wǎng)絡安全研究所進一步提出了CICIDS 2018數(shù)據(jù)集[5],這次實驗環(huán)境部署在亞馬遜云上,攻擊方和被攻擊方都包含了多臺計算機。CICIDS 2018數(shù)據(jù)集包含了7種攻擊場景,收集了每臺計算機的網(wǎng)絡流量和系統(tǒng)日志。除此之外,還有新不倫瑞克大學提出的UNSW-NB15(University of New South Wales-Network Benchmark 15)數(shù)據(jù)集[12]和NSL-KDD(Network Security Laboratory-Knowledge Discoveny and Data mining)數(shù)據(jù)集[13]、美國國防高級研究計劃局(Defense Advanced Research Projects Agency,DARPA)提出的DARPA TC(Transparent Computing)數(shù)據(jù)集[14]等。但遺憾的是,這些數(shù)據(jù)集大多數(shù)只收集了高級持續(xù)性威脅攻擊偵察階段和建立立足點階段的異常數(shù)據(jù),沒有包含完整的高級持續(xù)性威脅多階段攻擊數(shù)據(jù)。缺少完整多階段的開源高級持續(xù)性威脅數(shù)據(jù)是近年來開展科研工作的一大難點。直到2020年,MYNENI等人提出了DAPT 2020(Dataset for APT 2020)數(shù)據(jù)集[6],該數(shù)據(jù)集比前兩個數(shù)據(jù)集涵蓋了更多的高級持續(xù)性威脅攻擊階段,是第1個捕獲高級持續(xù)性威脅所有階段網(wǎng)絡行為的數(shù)據(jù)集。這些數(shù)據(jù)集的不斷推陳出新,極大地推動了高級持續(xù)性威脅攻擊自動檢測和防御的研究工作,填補了開源高級持續(xù)性威脅數(shù)據(jù)集的空缺。
得益于這些開源數(shù)據(jù)集,越來越多的研究人員在此基礎上提出了異常檢測算法。Holmes[15]是基于靜態(tài)規(guī)則集的模式匹配算法,實驗對象是DARPA TC數(shù)據(jù)集。Unicorn[16]是一個實時的異常檢測系統(tǒng),它的核心是基于異常的圖形草圖聚類算法,實驗對象是DARPA TC數(shù)據(jù)集。LI等人[17]提出的基于注意力圖神經(jīng)網(wǎng)絡的深度自編碼模型,則屬于基于學習的方法。這些方法由于采用了未包含完整的多階段高級持續(xù)性威脅攻擊數(shù)據(jù)集,因此更偏向于傳統(tǒng)的異常檢測。DAPT 2020的原作者在數(shù)據(jù)集上測試了傳統(tǒng)的單類支持向量機(Support Vector Mchines,SVM)模型和棧式自動編碼模型的性能,訓練的時候只采用了良性數(shù)據(jù);測試數(shù)據(jù)的時候檢測異常的原理是,通過比較輸入與重建輸出的差異大小是否超過閾值來判定是否屬于異常數(shù)據(jù)。由于他們忽略了高級持續(xù)性威脅攻擊的上下文具有關聯(lián)性,單獨地對每個網(wǎng)絡流進行重建誤差判斷,最終只得到了平均不到70%的準確率和不到30%的召回率。DIJK等人[18]對DAPT 2020數(shù)據(jù)集所有高級持續(xù)性威脅階段的異常流量檢測進行了實驗,在DAPT論文算法的基礎上提出了一種通過分析網(wǎng)絡流量的有效載荷來成功檢測高級持續(xù)性威脅數(shù)據(jù)泄露階段的方法,準確率和召回率都有了較大程度的提升;但他們依舊沒有從網(wǎng)絡流的上下文聯(lián)系方面著手,局限于單個流量數(shù)據(jù)包的異常檢測方法。國內周杰英等人采用UNSW-NB15數(shù)據(jù)集,提出了融合隨機森林和梯度提升樹的入侵檢測方法[7]。張興蘭等人提出了一種可變融合的隨機注意力膠囊網(wǎng)絡入侵檢測模型,在NSL-KDD和UNSW-NB15數(shù)據(jù)集上實驗,得到了很高的準確率[8]。劉景美等人提出了基于信息增益的自適應分箱特征選擇的快速網(wǎng)絡入侵檢測算法,主要解決傳統(tǒng)入侵檢測系統(tǒng)查全率較低以及基于深度學習的入侵檢測訓練用時過長的問題[9]。
傳統(tǒng)的入侵檢測算法,如模式/特征匹配、機器學習等,能識別不同尋常的訪問或對安全內部網(wǎng)絡的攻擊,但是大多數(shù)無法有效檢測高級持續(xù)性威脅攻擊,因為它們通常被設計為檢測單個(已知)的攻擊模式或方法,而不是涉及多個相互連接的惡意威脅[4]。另外,它們沒有考慮對高級持續(xù)性威脅最重要的保密性、完整性和持久性方面進行建模,既不能識別也不能利用高級持續(xù)性威脅多個階段的相關性。
高級持續(xù)性威脅攻擊一般會在目標系統(tǒng)中留下操作痕跡,目前的研究工作收集高級持續(xù)性威脅攻擊數(shù)據(jù)主要從兩個方面入手,一個是網(wǎng)絡流量抓包,另一個是分析系統(tǒng)日志。筆者針對網(wǎng)絡流抓包記錄的高級持續(xù)性威脅行為,提出了基于因果圖序列的高級持續(xù)性威脅攻擊檢測算法。首先,利用因果圖對網(wǎng)絡數(shù)據(jù)包序列進行建模,將網(wǎng)絡環(huán)境的互聯(lián)網(wǎng)協(xié)議(Internet Protocol,IP)節(jié)點之間的數(shù)據(jù)流關聯(lián)起來,建立攻擊和非攻擊行為的上下文序列;然后,將序列數(shù)據(jù)歸一化,使用基于長短期記憶網(wǎng)絡的深度學習模型進行序列二分類;最后,基于序列分類結果對原數(shù)據(jù)包進行惡性甄別。筆者在DAPT 2020數(shù)據(jù)集的基礎上構建了新的數(shù)據(jù)集,并對文中算法進行了驗證。
基于因果圖序列的高級持續(xù)性威脅攻擊檢測算法的基本流程如圖1所示,包含3個步驟:
圖1 算法流程
步驟1 利用網(wǎng)絡流數(shù)據(jù)構建數(shù)據(jù)流圖,在數(shù)據(jù)流圖的輔助下,梳理出攻擊路徑,詳見2.2節(jié)內容;
步驟2 以攻擊路徑為參照,構造出攻擊序列的正樣本和負樣本,并對序列進行歸一化,詳見2.3節(jié)內容;
步驟3 基于序列分類結果對原始網(wǎng)絡流數(shù)據(jù)進行分類,進行惡意數(shù)據(jù)識別,詳見2.4節(jié)內容。
數(shù)據(jù)流圖:數(shù)據(jù)流圖是從網(wǎng)絡流量特征數(shù)據(jù)中提取處理出來的數(shù)據(jù)結構,用于確定各網(wǎng)絡節(jié)點的連接關系,確定網(wǎng)絡流量的流向。數(shù)據(jù)流圖由代表源互聯(lián)網(wǎng)協(xié)議地址和目的互聯(lián)網(wǎng)協(xié)議地址的節(jié)點組成,以有向邊相連,代表數(shù)據(jù)的流向。
節(jié)點:數(shù)據(jù)流圖中的節(jié)點表示數(shù)據(jù)集網(wǎng)絡環(huán)境中的一臺主機節(jié)點,以互聯(lián)網(wǎng)協(xié)議地址地址作為標識。
邊:數(shù)據(jù)流圖中的一條邊就表示數(shù)據(jù)集中一個數(shù)據(jù)包,連接了源互聯(lián)網(wǎng)協(xié)議地址和目的互聯(lián)網(wǎng)協(xié)議地址,表示了兩個主機節(jié)點的一次數(shù)據(jù)傳輸。邊以源互聯(lián)網(wǎng)協(xié)議地址、目的互聯(lián)網(wǎng)協(xié)議地址、時間戳的組合作為標識。由于節(jié)點之間會有多次傳輸,因此每兩個節(jié)點之間會有多條邊。
將所有網(wǎng)絡流數(shù)據(jù)包按上述原則生成節(jié)點和邊,可以構建一個復雜的數(shù)據(jù)流因果圖。圖2數(shù)據(jù)流圖中只展示了部分攻擊節(jié)點之間的連接,且兩個節(jié)點之間只顯示一條連接;箭頭表示流向。
圖2 數(shù)據(jù)流圖
由數(shù)據(jù)流圖確定數(shù)據(jù)集中的流量路徑,配合原數(shù)據(jù)集的高級持續(xù)性威脅攻擊階段標簽和數(shù)據(jù)包的正常和惡性標簽,按照時間戳順序和高級持續(xù)性威脅的階段先后順序,構造出序列數(shù)據(jù)。根據(jù)組成序列的數(shù)據(jù)包中是否包含良性數(shù)據(jù)包來判定該序列是否是完整的攻擊序列,以此來給所有序列進行標簽標定。構建序列的目的是為了引入高級持續(xù)性威脅攻擊的上下文關系,幫助模型捕捉高級持續(xù)性威脅攻擊的隱蔽性特征表示,提高異常識別的準確率和查全率。
2.3.1 惡性序列構建
在DAPT 2020數(shù)據(jù)集中,不是所有高級持續(xù)性威脅攻擊都能完成全部階段的攻擊。有些攻擊只完成偵察階段,有些完成了偵察階段和建立立足點階段。按照數(shù)據(jù)流圖中的路徑和高級持續(xù)性威脅攻擊階段,分析出攻擊網(wǎng)絡流最多包含5個階段:偵察、建立立足點、兩次橫向移動、數(shù)據(jù)泄露。因此,構建的攻擊路徑序列的長度也是不定的,最大長度為5。
構建惡性序列分為3個基本步驟:
(1) 在所有流量包中單獨分離出帶惡性標簽的流量包。由于原本的DAPT 2020數(shù)據(jù)集跨越的時間段為5天,周一模擬日常使用產(chǎn)生的流量,周二到周五每天只模擬一個階段的高級持續(xù)性威脅攻擊,4天剛好對應4個高級持續(xù)性威脅階段,這對構建惡性序列提供了很大的便利。
(2) 惡性流量涉及到的互聯(lián)網(wǎng)協(xié)議地址數(shù)量比較少,可以依據(jù)因果圖梳理出所有可能成立的攻擊路徑。
(3) 攻擊路徑中的每一步都可以在周二到周五的一天中找到對應的源互聯(lián)網(wǎng)協(xié)議地址、目的互聯(lián)網(wǎng)協(xié)議地址以及對應高級持續(xù)性威脅階段的數(shù)據(jù)包,在這些數(shù)據(jù)包中選出一條數(shù)據(jù)。以此類推,就能組合出一條完整攻擊鏈路對應的序列數(shù)據(jù)。這些序列里數(shù)據(jù)包的時間戳,也符合先后順序。
表1所示是一個長度為5的惡性序列,實際訓練的時候會刪去源互聯(lián)網(wǎng)協(xié)議地址、目的互聯(lián)網(wǎng)協(xié)議地址、時間戳、活動和階段,只保留源端口、目的端口、協(xié)議號和其他的統(tǒng)計特征,如:流持續(xù)時間,正向包/反向包的數(shù)量、大小、標準差,流字節(jié)率(每秒傳輸?shù)臄?shù)據(jù)包數(shù)),流包速率(每秒傳輸?shù)陌鼣?shù))等。
表1 一個惡性序列的構成
2.3.2 良性序列構建
良性序列在惡性序列的基礎上構建,方法是使用良性數(shù)據(jù)包替換掉惡性序列中的一個或多個惡性數(shù)據(jù)包。替換的條件是這些良性數(shù)據(jù)的源互聯(lián)網(wǎng)協(xié)議地址和目的互聯(lián)網(wǎng)協(xié)議地址要和被替換的惡性數(shù)據(jù)保持一致,而且重新組合的序列需要滿足時間戳順序。例如將表1中帶有“建立立足點”標簽的數(shù)據(jù)包替換成帶有“良性”標簽的良性數(shù)據(jù)包,源互聯(lián)網(wǎng)協(xié)議地址是206.207.50.50,目的互聯(lián)網(wǎng)協(xié)議地址是192.168.3.29,時間戳處在上下兩個數(shù)據(jù)包之間。由于替換之后的序列不再符合高級持續(xù)性威脅攻擊鏈路的完整性,因而將它們標記為良性序列。
2.3.3 序列數(shù)據(jù)歸一化
使用CICflowmeter工具對抓取到的網(wǎng)絡流數(shù)據(jù)包進行特征提取,輸出的特征一共有83個維度,包含了網(wǎng)絡流身份標識號碼、源互聯(lián)網(wǎng)協(xié)議地址、源端口、目的互聯(lián)網(wǎng)協(xié)議地址、目的端口、時間戳以及其它統(tǒng)計特征??紤]到網(wǎng)絡流身份標識號碼、源互聯(lián)網(wǎng)協(xié)議地址、目的互聯(lián)網(wǎng)協(xié)議地址、時間戳等特征對檢測模型的構建并無太大價值,去掉這些特征后,最終保留了79維特征。為了減小不同特征值之間的大小差異,避免不同數(shù)據(jù)之間數(shù)量級差距過大的干擾,對序列的數(shù)值特征進行歸一化處理,將所有特征值映射到[0,1] 之間。
為了從輸入的數(shù)據(jù)中挖掘出攻擊序列和非攻擊序列的差別,文中采用了序列分類模型,通過添加多個網(wǎng)絡層線性堆疊來構建模型。在實驗中,我們還引入了其它論文中的模型,比較它們檢測異常流量的表現(xiàn),以此體現(xiàn)出所提算法的優(yōu)勢。下面將詳細介紹模型的設計,以及實驗中引用的對比模型。
2.4.1 序列分類模型
如圖3所示,除了輸入層和輸出層,分類模型由5層網(wǎng)絡構成,分別是卷積層、池化層、隨機失活層(Dropout層)、LSTM層、全連接層。
圖3 順序模型
模型使用:①用正則化的 Dropout 層以減少過擬合并改善泛化誤差。②用具有最大池化的 Conv1D 層來處理序列,輸入數(shù)據(jù)維度為[Lmax,Dw],Lmax為序列的最大長度,Dw為詞向量的維度。③用具有 Sigmoid 激活的全連接層來預測這些序列的攻擊相關概率[10]。
在實驗用到的模型中,長短期記憶網(wǎng)絡(Long Short-Term Memory,LSTM)發(fā)揮了重大作用。長短期記憶網(wǎng)絡是循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network,RNN)的一個變種,長短期記憶網(wǎng)絡的廣泛應用證明了它對不同任務中的基于序列的學習是有效的。門控循環(huán)單元(Gate Recurrent Unit,GRU)是長短期記憶網(wǎng)絡的一種變體。長短期記憶網(wǎng)絡使模型能夠自動學習區(qū)分攻擊序列和非攻擊序列。該模型還包括一個卷積層,它有助于我們的模型捕獲高級持續(xù)性威脅攻擊的隱蔽性和動態(tài)性。
該模型是二分類模型,輸入的數(shù)據(jù)是上文提取的網(wǎng)絡交互序列。需要注意的是,前面提取的序列數(shù)據(jù)并不是定長的,序列長度從1到5分布。但是模型只接受輸入維度大小相同的序列,所以筆者對序列進行了填充,統(tǒng)一序列長度為5,特征維度為79。模型最后輸出的數(shù)據(jù)是一個實數(shù),表示該序列屬于類別1的概率;若大于0.5則判定為攻擊(惡性)序列,小于等于0.5則判定為非攻擊(良性)序列。
2.4.2 基于序列預測結果的數(shù)據(jù)包分類
通過序列分類模型實現(xiàn)對序列的分類,基于序列分類結果可以回歸用于生成序列的原始網(wǎng)絡流量的分類。具體方法如下:
原始數(shù)據(jù)中,每一條網(wǎng)絡流數(shù)據(jù)包可能多次出現(xiàn)在不同的序列中。遍歷所有序列的類別概率,并賦予序列里包含的網(wǎng)絡流數(shù)據(jù)包相同的類別概率。比如,某序列的預測概率為0.9,那么該序列包含的網(wǎng)絡流數(shù)據(jù)包也被賦予0.9的概率。隨著遍歷的進行,也不斷更新各個網(wǎng)絡流數(shù)據(jù)包的類別概率。更新的原則是:如果某網(wǎng)絡流數(shù)據(jù)包跟隨序列被預測為惡性數(shù)據(jù)(即概率大于0.5),那么之后只有遇到更大的惡性類別概率時才會更新它的概率值;反之,如果某網(wǎng)絡流數(shù)據(jù)包跟隨序列被預測為良性數(shù)據(jù)(即概率小于等于0.5),那么之后只有遇到更小的良性類別概率時才會更新它的概率值;最終獲得基于序列分類結果的網(wǎng)絡流數(shù)據(jù)包的類別概率。
3.1.1 DAPT 2020數(shù)據(jù)集
DAPT 2020數(shù)據(jù)集是由亞利桑那州立大學和美國海軍研究實驗室共同設計提出的,和CICIDS 2017、CICIDS 2018數(shù)據(jù)集一樣,首先從自主設計的網(wǎng)絡環(huán)境中模擬日常使用和高級持續(xù)性威脅攻擊,然后抓取網(wǎng)絡流數(shù)據(jù)包。使用CICflowmeter工具提取數(shù)據(jù)包流量特征,考慮到網(wǎng)絡流身份標識號碼、源互聯(lián)網(wǎng)協(xié)議地址、目的互聯(lián)網(wǎng)協(xié)議地址、時間戳等特征對檢測模型的構建并無太大價值,去掉這些特征后最終保留了79維特征。
對比其它開源的高級持續(xù)性威脅數(shù)據(jù)集,DAPT 2020數(shù)據(jù)集多了橫向移動和數(shù)據(jù)泄露兩個攻擊階段。這是第一個具有較為完整的高級持續(xù)性威脅攻擊的開源數(shù)據(jù)集,用到的技術也比較豐富[6]。表2說明了DAPT 2020數(shù)據(jù)集高級持續(xù)性威脅的時間分布和各階段用到的攻擊技術。
表2 數(shù)據(jù)集中高級持續(xù)性威脅攻擊的時間分布和各階段用到的技術
3.1.2 實驗數(shù)據(jù)集構建
DAPT 2020原始數(shù)據(jù)數(shù)量龐大,如果直接用原始數(shù)據(jù)來構建數(shù)據(jù)流圖,建成的數(shù)據(jù)流圖將極其復雜,每兩個節(jié)點之間將會有大量平行邊。這是由于原始數(shù)據(jù)中多次出現(xiàn)了兩個網(wǎng)絡協(xié)議地址之間在短時間內頻繁進行數(shù)據(jù)交換的情況。過于復雜的數(shù)據(jù)流圖會影響梳理攻擊路徑,所以筆者采取了適當?shù)睾喜⒕W(wǎng)絡流數(shù)據(jù)的操作。
如果兩個網(wǎng)絡協(xié)議地址的短期內多次進行了數(shù)據(jù)交換,我們會設置一個定長時間30 s,將30 s內的同類型流量數(shù)據(jù)做合并,合并的條件是源網(wǎng)絡協(xié)議地址、目的網(wǎng)絡協(xié)議地址、標簽要相同。其它統(tǒng)計特征的合并,共有4種合并方式,分別是取最大值、取最小值、取平均值、取總和。需要根據(jù)每個特征的含義,來選擇合適的合并操作。這樣可以得到一個新的適合實驗的數(shù)據(jù)集,其統(tǒng)計如表3所示。在此基礎上,按照第2節(jié)所述方法生成訓練和測試的序列數(shù)據(jù),最終訓練集序列數(shù)量為192 022,測試集序列數(shù)量為59 533。
表3 不同種類的網(wǎng)絡流數(shù)據(jù)包合并前后數(shù)量對比
3.2.1 實驗參數(shù)
文中算法(命名為CGSeq-LSTM)模型用到的參數(shù)如表4所示,經(jīng)過處理后網(wǎng)絡流序列特征維度為79,序列長度為5,則輸入到卷積層的數(shù)據(jù)維度為[5,79]。經(jīng)過卷積層、池化層、Dropout層的處理后,進入循環(huán)網(wǎng)絡層。無論采取何種循環(huán)網(wǎng)絡,該層節(jié)點數(shù)都是256。
表4 文中算法模型參數(shù)
3.2.2 對比指標
在文中實驗的數(shù)據(jù)中,存在有類別不平衡的問題,良性數(shù)據(jù)比惡意數(shù)據(jù)數(shù)量多很多。如果采用準確率作為評價指標,那么可能會出現(xiàn)一種情況:即使所有數(shù)據(jù)都預測為良性,這樣仍然有98%的準確率。顯然這是不合適的,所以要考慮其它評價指標。
在不平衡數(shù)據(jù)分類中,受試者工作特征(Receiver Operating Characteristic,ROC)曲線、準確率-召回率(Precision-Recall,PR)曲線都是比較常用的指標。受試者工作特征曲線是以假正例率(False Positive Rate,FPR)為橫軸,以真正例率(True Positive Rate,TPR)為縱軸做出的曲線。受試者工作特征曲線有個很好的特性:當測試集中的正負樣本的分布變化時,受試者工作特征曲線能夠保持不變。而準確率-召回率曲線是以準確率(Precision)和召回率(Recall)這兩個變量做出的曲線,其中召回率為橫坐標,準確率為縱坐標。受試者工作特征曲線和準確率-召回率曲線一樣,一個閾值對應曲線上的一個點,不同的閾值對應不同假正例率、真正例率或準確率、召回率值。
曲線下面積(Area Under Curve,AUC)被定義為受試者工作特征曲線或準確率-召回率曲線下的面積,取值范圍一般在0.5和1之間。使用曲線下面積值作為評價標準是因為很多時候曲線并不能清晰地說明哪個分類器的效果更好,而作為一個數(shù)值,對應曲線下面積更大的分類器效果更好。
3.2.3 對比算法
以下的對比算法是引用了DAPT 2020論文里的算法或者對其改進后的算法。
(1) 基于連續(xù)包序列的有監(jiān)督分類
為了與前面的基于因果圖構建序列的算法作對比,文中設置了基于連續(xù)時間戳構造序列的有監(jiān)督分類算法作為對比實驗。所有網(wǎng)絡流數(shù)據(jù)按時間戳排序后,設置滑動窗口,大小為5,滑動步長為1,每次生成一個包含5個連續(xù)時間戳數(shù)據(jù)包的序列,以第3個數(shù)據(jù)包的標簽作為整體序列的標簽。與基于攻擊路徑構建序列的算法一樣,使用同樣的訓練模型,最后比較這兩個在測試集的表現(xiàn)。該算法被命名為Seq-LSTM。
(2) 基于長短期記憶網(wǎng)絡和自動編碼器的半監(jiān)督分類
文中引用了DAPT 2020數(shù)據(jù)集作者采用的半監(jiān)督模型,作為實驗的對比參照。常規(guī)的堆疊式自動編碼器(Stacked Auto-Encoder,SAE)已被用于許多研究工作,但是由于堆疊式自動編碼器的輸入層只接受單個網(wǎng)絡數(shù)據(jù)包作為輸入,因此它無法檢測上下文異常,這是檢測高級持續(xù)性威脅攻擊所欠缺的。為了解決這個問題,使用了一個堆疊的自編碼器,它使用長短期記憶網(wǎng)絡層而不是堆疊式自動編碼器的隱藏全連接層,改進后的堆疊式自動編碼器稱為LSTM-SAE。多層長短期記憶網(wǎng)絡可以在時間序列分析中起到比較好的效果,把多個連續(xù)的時間戳的網(wǎng)絡流數(shù)據(jù)包先經(jīng)過多層編碼,然后再經(jīng)過多層解碼,最后達到重構輸入數(shù)據(jù)的目的。
這個模型檢測異常的原理是,通過對大量的正常良性數(shù)據(jù)進行訓練,獲得重構模型;測試集中同時包含良性數(shù)據(jù)和攻擊過程惡性數(shù)據(jù),輸入數(shù)據(jù)經(jīng)過模型的計算重構后,如果與原始數(shù)據(jù)差距比設定的閾值大,就判定為惡性。這種半監(jiān)督模型有一個優(yōu)點,它們適用于網(wǎng)絡流數(shù)據(jù)的數(shù)據(jù)不平衡的情況。
為了驗證所提高級持續(xù)性威脅檢測模型的有效性,設計了兩組實驗。
實驗1文中算法自我對比,分析不同的循環(huán)網(wǎng)絡和不同的數(shù)據(jù)處理方式對模型的高級持續(xù)性威脅攻擊檢測效果的影響。
實驗2文中算法模型與其他方法的分類效果進行對比分析。
3.3.1 文中算法自我對比
(1) 不同循環(huán)網(wǎng)絡的性能對比
觀察圖4和表5可以發(fā)現(xiàn),對比于門控循環(huán)單元(GRU)和循環(huán)神經(jīng)網(wǎng)絡(RNN),長短期記憶網(wǎng)絡(LSTM)在文中模型的預測中更具有優(yōu)勢,長短期記憶網(wǎng)絡網(wǎng)絡的受試者工作特征曲線的曲線下面積達到0.948,準確率-召回率曲線的曲線下面積是0.531,都是3者中最高的。門控循環(huán)單元的預測效果比長短期記憶網(wǎng)絡稍差,標準循環(huán)神經(jīng)網(wǎng)絡的預測效果最差,受試者工作特征曲線的曲線下面積(ROC-AUC)只有 0.809,準確率-召回率曲線的曲線下面積(PR-AUC)只有0.439。
(a) 受試者工作特征曲線
(b) 準確率-召回率曲線
長短期記憶網(wǎng)絡是循環(huán)神經(jīng)網(wǎng)絡的一個優(yōu)秀的變種模型,繼承了大部分循環(huán)神經(jīng)網(wǎng)絡模型的特性;同時長短期記憶網(wǎng)絡解決了循環(huán)神經(jīng)網(wǎng)絡的長期依賴問題,并且緩解了循環(huán)神經(jīng)網(wǎng)絡在訓練時反向傳播帶來的“梯度消失”問題。文中實驗也表明,在所提模型中,長短期記憶網(wǎng)絡比普通循環(huán)神經(jīng)網(wǎng)絡表現(xiàn)更加出色。
(2) 4種不同數(shù)據(jù)處理方式實驗情況對比
圖5是當循環(huán)網(wǎng)絡是長短期記憶網(wǎng)絡時,4種數(shù)據(jù)處理方式組合對應的曲線。歸一化和未歸一化是指是否對網(wǎng)絡流特征進行歸一化操作,取最大值和取平均值是指從序列分類結果計算每個網(wǎng)絡流數(shù)據(jù)包的分類概率時是按2.4.2節(jié)所述方法,還是把所有包含某個網(wǎng)絡流數(shù)據(jù)包的序列的分類概率的平均值作為該網(wǎng)絡流數(shù)據(jù)包的分類概率。對比后可以發(fā)現(xiàn),歸一化和取最大值的組合處理方式的受試者工作特征曲線的曲線下面積(ROC-AUC)和準確率-召回率曲線的曲線下面積(PR-AUC)的值最高。采用最大值作為數(shù)據(jù)包的類別概率比采用平均值更有優(yōu)勢,是因為這樣可以最大可能地提高異常數(shù)據(jù)的查全率,提高檢測最終惡性數(shù)據(jù)的敏感程度。
(a) 受試者工作特征曲線
(b) 準確率-召回率曲線
從表5中可以發(fā)現(xiàn),數(shù)據(jù)歸一化后,各特征數(shù)據(jù)處于同一數(shù)量級,避免較大數(shù)量級數(shù)據(jù)對較小數(shù)量級數(shù)據(jù)造成干擾,無論是采用最大值還是平均值,模型都具有更好的性能。
表5也展示了3種循環(huán)網(wǎng)絡和4種數(shù)據(jù)處理方式的完整實驗結果,從整體來看,長短期記憶網(wǎng)絡、歸一化以及取最大值的組合對比其他組合的分類效果更好,這也是文中算法最終呈現(xiàn)的效果。
表5 文中算法自我對比
3.3.2 不同算法的異常檢測性能對比
圖6和表6是文中算法和設置的另外兩個對比算法的實驗結果。很明顯,文中提出的基于因果圖構建序列的異常檢測算法CGSeq-LSTM,在受試者工作特征曲線的曲線下面積(ROC-AUC)和準確率-召回率曲線的曲線下面積(PR-AUC)上都是大幅領先于其他兩個算法的,最優(yōu)情況下受試者工作特征曲線的曲線下面積可達到0.948,準確率-召回率曲線的曲線下面積可達0.531,體現(xiàn)了所提算法的優(yōu)勢和可行性。3者中LSTM-SAE無監(jiān)督算法最不理想,兩個指標都未達到0.5。
(a) 受試者工作特征曲線
(b) 準確率-召回率曲線
表6 不同算法對比
對比所提算法,分析其他兩個算法表現(xiàn)不佳的原因:
(1) 基于連續(xù)時間數(shù)據(jù)包序列的分類算法,雖然采用和所提算法一樣的訓練模型,但它的缺陷在于,很多情況下這些連續(xù)時間的相鄰數(shù)據(jù)包之間并沒有明顯的上下文關系,比如兩個數(shù)據(jù)包之間的源IP和目的IP之間完全沒有關聯(lián),所以它并不能體現(xiàn)高級持續(xù)性威脅攻擊階段的前后順序和完整性。文中基于因果圖序列的檢測算法是根據(jù)因果圖構建序列,序列中的數(shù)據(jù)包之間有較強的上下文關系,在異常檢測中更有優(yōu)勢。
(2) LSTM-SAE半監(jiān)督算法,雖然訓練數(shù)據(jù)無需人為打上標簽,但相對于有監(jiān)督的模型,異常識別的精度不理想。對于預測、分類、性能比較、預測分析、定價和風險評估等任務,有監(jiān)督學習更為適用。
高級持續(xù)性威脅攻擊的精確檢測是非常具有挑戰(zhàn)性的工作。盡管現(xiàn)在很多研究人員已經(jīng)在試圖解決高級持續(xù)性威脅攻擊檢測,但還是有很多困難。文中提出通過構建數(shù)據(jù)流圖來提取高級持續(xù)性威脅攻擊路徑,基于攻擊路徑組合網(wǎng)絡流數(shù)據(jù)形成序列。這樣做的目的是通過多個高級持續(xù)性威脅攻擊階段的流量,從完整性來考慮引入上下文關系,將多個異常進行關聯(lián),提高異常檢測的全面性和敏感性。在DAPT 2020數(shù)據(jù)集上,對模型進行測試,雖然在真正例率、假正例率、受試者工作特征曲線的曲線下面積(ROC-AUC)值上能得到比較高的性能,但是在精確率、召回率和準確率-召回率曲線的曲線下面積(PR-AUC)值上的表現(xiàn)還是不夠突出。今后的研究工作,需要投入更多的精力改進算法,挖掘出更有效的高級持續(xù)性威脅攻擊檢測模型。