朱光明,盧梓杰,馮家偉,張向東,張鋒軍,牛作元,張 亮
(1.西安電子科技大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,陜西 西安 710071;2.西安電子科技大學(xué) 通信工程學(xué)院,陜西 西安 710071;3.中國(guó)電子科技集團(tuán)公司第三十研究所,四川 成都 610041)
與以影響或癱瘓目標(biāo)系統(tǒng)為目標(biāo)的網(wǎng)絡(luò)攻擊不同,高級(jí)可持續(xù)威脅(Advanced Persistent Threat,APT)攻擊具有非常強(qiáng)的隱蔽性和持續(xù)性[1],一般是由專業(yè)組織發(fā)起,長(zhǎng)期綜合運(yùn)用多種攻擊手段對(duì)特定目標(biāo)進(jìn)行滲透,主要目的是獲取目標(biāo)的關(guān)鍵信息[2]。根據(jù)網(wǎng)絡(luò)殺傷鏈模型(Cyber Kill Chain,CKC),APT多階段網(wǎng)絡(luò)攻擊可分為7個(gè)步驟:偵察、武器化、投遞、漏洞利用、安裝、指揮和控制、目標(biāo)行動(dòng)[3]。對(duì)標(biāo)CKC模型,MITRE ATT&CK[4]模型根據(jù)真實(shí)的觀察數(shù)據(jù)來(lái)描述和分類對(duì)抗行為,總結(jié)出了常用的14種戰(zhàn)術(shù)和200多種技術(shù)。傳統(tǒng)的攻擊防御系統(tǒng),如入侵檢測(cè)系統(tǒng)(Intrusion Detection System,IDS)、入侵防御系統(tǒng)(Intrusion Prevention System,IPS)、高級(jí)安全設(shè)備(Advanced Security Appliances,ASA)等[5-6],無(wú)法有效發(fā)現(xiàn)隱蔽的APT攻擊,難以對(duì)后續(xù)的攻擊做出預(yù)測(cè)及防御。網(wǎng)絡(luò)流和系統(tǒng)日志雖然可以記錄APT攻擊過(guò)程,但是APT攻擊的隱蔽性和持續(xù)性決定了無(wú)法依靠單步攻擊檢測(cè)來(lái)發(fā)現(xiàn)整個(gè)攻擊過(guò)程。隨著網(wǎng)絡(luò)規(guī)模的日益增長(zhǎng),網(wǎng)絡(luò)流和系統(tǒng)日志數(shù)量也與日俱增,迫切需要把機(jī)器學(xué)習(xí)方法運(yùn)用到網(wǎng)絡(luò)安全領(lǐng)域,實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)攻擊過(guò)程的自動(dòng)檢測(cè)。
基于機(jī)器學(xué)習(xí)的網(wǎng)絡(luò)攻擊檢測(cè)算法研究需要相應(yīng)的數(shù)據(jù)集來(lái)支撐。在網(wǎng)絡(luò)流數(shù)據(jù)集方面,相繼有UNSW-NB15[7]、NSL-KDD[8]、CICIDS2017[9]、CICIDS2018[10]、DAPT2020[11]等數(shù)據(jù)集被提出并開源。目前基于網(wǎng)絡(luò)流量的異常檢測(cè)主要聚焦于單步攻擊檢測(cè),無(wú)法捕獲多階段攻擊的長(zhǎng)期行為。劉景美等人[12]提出了基于自適應(yīng)分箱特征選擇的快速網(wǎng)絡(luò)入侵檢測(cè)算法,主要解決傳統(tǒng)入侵檢測(cè)系統(tǒng)查全率較低以及基于深度學(xué)習(xí)的入侵檢測(cè)的訓(xùn)練用時(shí)過(guò)長(zhǎng)的問(wèn)題,在NSL-KDD數(shù)據(jù)集上進(jìn)行了驗(yàn)證。Myneni等人[11]在DAPT2020數(shù)據(jù)集上使用編碼-解碼模型訓(xùn)練重建良性網(wǎng)絡(luò)流數(shù)據(jù),重建誤差過(guò)大的數(shù)據(jù)被判定為異常數(shù)據(jù)。這種方法單獨(dú)對(duì)每個(gè)網(wǎng)絡(luò)流包進(jìn)行檢測(cè),忽略了多階段攻擊的上下文關(guān)系,導(dǎo)致異常的準(zhǔn)確率和查全率低。Allard[13]在DAPT2020論文模型方法的基礎(chǔ)上引入了有效載荷,但還是無(wú)法有效解決這個(gè)弊端,在橫向移動(dòng)階段檢測(cè)性能依舊較差。針對(duì)當(dāng)前研究對(duì)APT攻擊多階段流量特征的多樣性感知不足的問(wèn)題,謝麗霞等人[14]提出一種基于樣本特征強(qiáng)化的APT攻擊多階段檢測(cè)方法,引入多階段感知注意力機(jī)制,提高了APT攻擊多階段檢測(cè)的精度。
與網(wǎng)絡(luò)流相比,系統(tǒng)日志可以更加詳盡地記錄APT攻擊在主機(jī)上的執(zhí)行過(guò)程。在基于系統(tǒng)日志分析的攻擊檢測(cè)方面,通過(guò)系統(tǒng)日志數(shù)據(jù)構(gòu)建抽象表達(dá)能力強(qiáng)的溯源圖并分析因果關(guān)系,可以有效表達(dá)威脅事件的起因、攻擊路徑和攻擊影響,為威脅發(fā)現(xiàn)和取證分析提供更高的檢測(cè)效率和性能[15]。自然語(yǔ)言處理技術(shù)在系統(tǒng)日志文本分析方面也發(fā)揮重要作用[16-17]。ATLAS[18]是一種用于重建攻擊故事的框架,利用自然語(yǔ)言處理技術(shù)和基于序列的模型學(xué)習(xí)技術(shù)從審計(jì)日志中恢復(fù)攻擊步驟。LogAnomaly[19]是一個(gè)數(shù)據(jù)驅(qū)動(dòng)的深度學(xué)習(xí)框架,用于非結(jié)構(gòu)化日志流的異常檢測(cè),日志解析中用到了Word2Vec[20]方法來(lái)構(gòu)成日志序列,利用LSTM(Long Short-Term Memory)模型來(lái)預(yù)測(cè)日志是否異常。LogBERT[21]是一種基于BERT(Bidirectional Encoder Representation from Transformers)[22]的日志異常檢測(cè)方法,通過(guò)兩個(gè)自監(jiān)督訓(xùn)練任務(wù)學(xué)習(xí)正常日志序列的模式,能夠檢測(cè)出底層模式偏離正常日志序列的異常。DeepLog[23]是一種基于LSTM的深度神經(jīng)網(wǎng)絡(luò)模型,把日志信息建模成自然語(yǔ)言序列來(lái)處理,自動(dòng)提煉正常的日志序列進(jìn)行訓(xùn)練;當(dāng)日志序列偏離訓(xùn)練的模型時(shí),可以檢測(cè)出異常。Li 等人[24]提出了DeepAG,能夠同時(shí)檢測(cè)APT序列和利用日志語(yǔ)義向量和索引來(lái)定位序列中的攻擊階段,并根據(jù)上述日志索引構(gòu)建攻擊圖。
上述方法都利用了日志的語(yǔ)義向量序列,并基于深度學(xué)習(xí)框架進(jìn)行攻擊檢測(cè);可以定位日志序列中的異常點(diǎn),但并沒(méi)有提出如何預(yù)測(cè)攻擊者下一步的攻擊行為。盡管這些方法能做到實(shí)時(shí)監(jiān)測(cè)日志,但是它們不能從現(xiàn)有攻擊序列對(duì)后續(xù)一步或多步的可能的攻擊進(jìn)行預(yù)測(cè)。APT攻擊的檢測(cè)與預(yù)測(cè)不是獨(dú)立的兩個(gè)方向,它們是高度聯(lián)系、相輔相成的。該文結(jié)合上述日志分析中因果溯源圖和自然語(yǔ)言處理的方法,在ATLAS日志數(shù)據(jù)集上構(gòu)建因果圖,根據(jù)惡意標(biāo)簽的節(jié)點(diǎn)提取完整的攻擊序列,提出基于攻擊上下文分析的多階段攻擊預(yù)測(cè)算法。該文的貢獻(xiàn)可以概括為以下幾點(diǎn):
(1)提出了對(duì)攻擊者行為進(jìn)行多階段預(yù)測(cè)的概念,挖掘攻擊序列之間的非線性依賴關(guān)系;
(2)通過(guò)構(gòu)建因果圖來(lái)提取具有上下文關(guān)系的異常日志序列,避免了正常日志對(duì)預(yù)測(cè)結(jié)果的影響;
(3)利用Transformer模型,將日志分析并進(jìn)行攻擊預(yù)測(cè)的任務(wù)轉(zhuǎn)化成文本分類的處理方式,并在開源數(shù)據(jù)集上進(jìn)行了驗(yàn)證。
基于攻擊上下文分析的多階段攻擊預(yù)測(cè)算法的基本框架如圖1所示,包含五個(gè)主要階段:

圖1 多階段攻擊預(yù)測(cè)算法流程框架
階段1:利用日志數(shù)據(jù)構(gòu)建因果圖;
階段2:以已知惡意節(jié)點(diǎn)為線索,提取異常日志序列;
階段3:將提取的異常日志序列進(jìn)行抽象化文本表示,進(jìn)一步解析成日志索引;
階段4:用Transformer模型訓(xùn)練日志向量數(shù)據(jù);
階段5:用訓(xùn)練好的模型進(jìn)行多階段攻擊預(yù)測(cè)。
因果圖[25-26](Causal Graph)常用于溯源追蹤,表征數(shù)據(jù)之間的因果關(guān)系或者依賴關(guān)系。該文從系統(tǒng)日志中提取數(shù)據(jù)來(lái)構(gòu)建因果圖,表征了主體(例如進(jìn)程)和對(duì)象(例如文件或連接)之間的因果關(guān)系。在因果圖中,以主體和對(duì)象作為圖中的節(jié)點(diǎn),以主體對(duì)對(duì)象的動(dòng)作(例如讀、寫)來(lái)生成有向邊。
因果圖中的節(jié)點(diǎn)代表從系統(tǒng)日志中提取的具有唯一ID的系統(tǒng)主體或?qū)ο?比如進(jìn)程名、文件名、IP地址、域名和會(huì)話等。邊從主體指向?qū)ο?連接兩個(gè)節(jié)點(diǎn),表示主體對(duì)對(duì)象執(zhí)行的動(dòng)作。因果中每?jī)蓚€(gè)節(jié)點(diǎn)和邊的組合對(duì)應(yīng)了一個(gè)日志項(xiàng)。將日志中的數(shù)據(jù)按照上述原則生成節(jié)點(diǎn)和邊,可以構(gòu)建一個(gè)復(fù)雜的因果圖。圖2展示了一個(gè)因果圖示例,其中灰色節(jié)點(diǎn)表示一個(gè)已知的攻擊節(jié)點(diǎn)。

圖2 因果圖示例
在ATLAS數(shù)據(jù)集中,異常的節(jié)點(diǎn)都被打上了惡意標(biāo)簽。該文圍繞這些惡意節(jié)點(diǎn)提取出異常日志序列,具體分為三個(gè)步驟:
第一步:提取鄰域圖。在因果圖中,通過(guò)邊相連的兩個(gè)節(jié)點(diǎn)稱為鄰居。提取一個(gè)或多個(gè)節(jié)點(diǎn)的鄰域圖,只需把它們所有的鄰居和相連的邊提取出來(lái)。
第二步:從鄰域圖中分離出事件。一個(gè)事件被組織成一個(gè)四元組<源節(jié)點(diǎn),目的節(jié)點(diǎn),動(dòng)作,時(shí)間戳>。比如cmd.exe在時(shí)間t打開了文件flag.txt,事件表示為四元組
第三步,按時(shí)間戳對(duì)事件進(jìn)行排序。以已知的單個(gè)或多個(gè)惡意節(jié)點(diǎn)的組合作為中心,提取鄰域圖,再?gòu)泥徲驁D中提取出事件,最后把事件按照時(shí)間戳進(jìn)行排序,得到的序列稱之為異常日志序列。如圖3所示,已知節(jié)點(diǎn)C為惡意節(jié)點(diǎn),那么所有與它有關(guān)的日志項(xiàng)都被判定為異常,并且按照時(shí)間排序后,形成的日志序列也是異常的日志序列。通過(guò)這種方式,可以把所有與惡意節(jié)點(diǎn)有關(guān)的日志項(xiàng)提取出來(lái),形成按時(shí)間排序的、具有明確上下文關(guān)系的異常序列,排除了在預(yù)測(cè)任務(wù)中正常行為日志項(xiàng)對(duì)預(yù)測(cè)的影響。文中的實(shí)驗(yàn)數(shù)據(jù)就是在這些異常日志序列的基礎(chǔ)上構(gòu)建的。

圖3 提取異常日志序列流程
為了能將提取出來(lái)的異常日志序列用于模型訓(xùn)練,需要將詞匯抽象化,把日志序列轉(zhuǎn)化成能用于語(yǔ)義解釋的通用模板。在ATLAS詞匯抽象的基礎(chǔ)上做了進(jìn)一步的詞匯組合抽象,構(gòu)成句子抽象。下面將詳細(xì)介紹具體流程。
如表1所示,在ATLAS中根據(jù)日志中詞的細(xì)粒度語(yǔ)義將詞分為四種不同的類型:進(jìn)程、文件、網(wǎng)絡(luò)連接和動(dòng)作。四種類型中總共包含30個(gè)抽象詞匯,將原本日志項(xiàng)中帶有具體ID的實(shí)體映射到對(duì)應(yīng)類型的相關(guān)抽象詞匯,就可以將日志項(xiàng)抽象成統(tǒng)一的三元組模板。例如,“c:/windows/system32/taskhost.exe_1416 read c:/windows/inf/tapisrv/0409”轉(zhuǎn)化為

表1 抽象詞匯集合
對(duì)于基于異常日志的APT攻擊預(yù)測(cè)任務(wù)來(lái)說(shuō),一個(gè)三元組代表一條日志項(xiàng)的抽象程度還不夠,需要將日志項(xiàng)抽象到日志類型。經(jīng)過(guò)分析抽象為三元組的異常日志后,三元組的組合方式的數(shù)量是有限且理想的,一般有< user_process,process,programs_process >read
表2展示了部分三元組日志和它們對(duì)應(yīng)的日志類型索引,完整三元組數(shù)據(jù)一共有54種組合方式,于是設(shè)置了對(duì)應(yīng)數(shù)目的日志類型索引。可以將異常日志序列映射為日志類型索引的序列,經(jīng)過(guò)詞嵌入Embedding[22]后,每個(gè)日志索引都轉(zhuǎn)化成詞向量,按照索引構(gòu)成序列的順序,詞向量構(gòu)成了傳入Transformer模型的詞向量矩陣,如圖4所示。

表2 三元組日志對(duì)應(yīng)的日志類型索引

圖4 日志序列處理流程
該文提出基于Transformer模型[4]的多階段攻擊預(yù)測(cè)算法LogTransformer。為了訓(xùn)練用于預(yù)測(cè)多階段攻擊的Transformer模型,以日志索引序列對(duì)應(yīng)的詞向量序列作為輸入,以該索引序列的下一個(gè)或者多個(gè)索引作為輸出。即由若干長(zhǎng)度的異常日志序列,推測(cè)出下一步或多步可能產(chǎn)生的異常日志,以此來(lái)預(yù)測(cè)攻擊者接下來(lái)的攻擊意圖。這種做法比較類似于文本分類等多分類模型的算法,接下來(lái)將詳細(xì)介紹LogTransformer模型如何進(jìn)行預(yù)測(cè)工作。
Transformer模型是自然語(yǔ)言處理方面極為先進(jìn)的模型,它放棄了傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò),整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)完全是由注意力(Attention)機(jī)制組成,主要包括編碼器和解碼器兩個(gè)部件。不同于循環(huán)神經(jīng)網(wǎng)絡(luò)只能從左向右或者從右向左依次計(jì)算,Transformer可以并行處理向量,從而充分利用GPU資源,減少了處理語(yǔ)義向量等高維數(shù)據(jù)的運(yùn)行時(shí)間。考慮到模型最終的輸出只需要概率的向量表示,LogTransformer模型只采用了Transformer的編碼器(Encoder)對(duì)日志序列進(jìn)行編碼,然后預(yù)測(cè)。
如圖5所示,LogTransformer主體部分由4個(gè)Transformer編碼器組成,每個(gè)編碼器包含一個(gè)5頭注意力層和一個(gè)前饋全連接層。在日志向量輸入到注意力層之前,需要與位置編碼(Position Encoding)做相加,這是因?yàn)門ransformer沒(méi)有循環(huán)神經(jīng)網(wǎng)絡(luò)中的順序結(jié)構(gòu),因此需要加入詞的位置信息來(lái)顯式地表明詞的上下文關(guān)系。該文利用公式(1)和公式(2)來(lái)進(jìn)行位置嵌入:

圖5 LogTransformer模型框架
PE(pos,2i)=sin(pos/10 0002i/dmodel)
(1)
PE(pos,2i+1)=cos(pos/10 0002i/dmodel)
(2)
其中,PE是一個(gè)“序列長(zhǎng)度×詞向量維度”形狀的二維矩陣,pos是詞在序列中的位置,dmodel表示詞嵌入的維度,i表示詞向量的位置。
經(jīng)過(guò)多個(gè)LogTransformer的多個(gè)編碼塊的數(shù)據(jù)處理后,再連接一個(gè)分類層將高維數(shù)據(jù)映射為低維數(shù)據(jù),最后將將二維張量變形成三維,輸出的數(shù)據(jù)是(B,S,C)格式的矩陣。B為每次批處理的序列數(shù)量;S表示最終預(yù)測(cè)的步長(zhǎng),即如輸入異常序列之后,預(yù)測(cè)接下來(lái)的S動(dòng)作;C的大小是54,對(duì)應(yīng)54個(gè)日志類型索引。圖6說(shuō)明了數(shù)據(jù)變換的過(guò)程。

圖6 輸出數(shù)據(jù)到標(biāo)簽預(yù)測(cè)的轉(zhuǎn)換
2.1.1 ATLAS數(shù)據(jù)集
ATLAS數(shù)據(jù)集包含三種日志,分別是DNS日志、瀏覽器日志、審計(jì)日志。DNS日志記錄了域名解析活動(dòng),瀏覽器日志記錄了Web請(qǐng)求,審計(jì)日志記錄了進(jìn)程、IP及文件等系統(tǒng)活動(dòng)。ATLAS日志數(shù)據(jù)集分為兩個(gè)部分,一個(gè)是記錄單主機(jī)受APT攻擊的日志,表示為ATLAS-s;另一個(gè)是記錄多主機(jī)環(huán)境下受APT攻擊的日志,表示為ATLAS-m。由于多主機(jī)情況下會(huì)出現(xiàn)橫向移動(dòng),為了避免這種情況給實(shí)驗(yàn)帶來(lái)的影響,該文將實(shí)驗(yàn)數(shù)據(jù)分為單主機(jī)和多主機(jī)兩個(gè)部分。同時(shí),還設(shè)置了另一個(gè)公開數(shù)據(jù)集HDFS[27-28]作為對(duì)比。與ATLAS數(shù)據(jù)集不同的是,HDFS日志序列中既包含了異常日志也包含了正常日志,而且沒(méi)有明確的上下文關(guān)系。設(shè)置這個(gè)實(shí)驗(yàn)的目的是體現(xiàn)通過(guò)構(gòu)建因果圖提取異常日志序列的優(yōu)勢(shì)。
2.1.2 實(shí)驗(yàn)數(shù)據(jù)集構(gòu)建
經(jīng)過(guò)1.4節(jié)對(duì)異常日志序列進(jìn)行文本表示以及索引化之后,得到了許多序列。在這些長(zhǎng)序列上,設(shè)置長(zhǎng)度為10的滑動(dòng)窗口,移動(dòng)步長(zhǎng)為1。依次在所有原始不定長(zhǎng)序列的基礎(chǔ)上,構(gòu)建出等長(zhǎng)度方便用于模型訓(xùn)練的序列數(shù)據(jù)。例如,假設(shè)長(zhǎng)序列數(shù)據(jù)集中有一段數(shù)據(jù)為:{39, 37, 1, 11, 10, 6, 4, 34, 34, 29, 35, 34, 28, 28, 34}。滑動(dòng)窗口大小為10,輸出標(biāo)簽長(zhǎng)度為1,則提取出來(lái)的訓(xùn)練數(shù)據(jù)為:{39, 37, 1, 11, 10, 6, 4, 34, 34, 29 → 35},{37, 1, 11, 10, 6, 4, 34, 34, 29, 35 → 34}。同樣,如果設(shè)置輸出預(yù)測(cè)步長(zhǎng)為2,則訓(xùn)練數(shù)據(jù)為:{39, 37, 1, 11, 10, 6, 4, 34, 34, 29 → 35, 34},{37, 1, 11, 10, 6, 4, 34, 34, 29, 35 → 34, 28}。
表3是ATLAS和HDFS數(shù)據(jù)集統(tǒng)計(jì)數(shù)據(jù)對(duì)比。ATLAS-s graph和ATLAS-m graph是經(jīng)過(guò)因果圖提取攻擊上下文后的ATLAS數(shù)據(jù)集。ATLAS-s seq和ATLAS-m seq是僅對(duì)日志進(jìn)行時(shí)間排序處理的ATLAS數(shù)據(jù)集,其中有大量的正常數(shù)據(jù),也有更多的日志類型。為了排除日志種類過(guò)多對(duì)預(yù)測(cè)結(jié)果產(chǎn)生影響,把異常日志序列中沒(méi)有的日志類型都?xì)w于一種正常日志類型。HDFS seq是按時(shí)間排序的日志HDFS數(shù)據(jù)集。

表3 ATLAS和HDFS數(shù)據(jù)集對(duì)比
2.2.1 實(shí)驗(yàn)參數(shù)
在實(shí)驗(yàn)中,輸入序列的長(zhǎng)度設(shè)置為10,Embedding詞向量和Transformer編碼器輸入的維度dmodel=200,Transformer前饋網(wǎng)絡(luò)層中神經(jīng)元個(gè)數(shù)是1 024。
2.2.2 對(duì)比算法
為了體現(xiàn)算法LogTransformer的有效性,引入了另外兩個(gè)算法DeepLog[23]和DeepAG[24]進(jìn)行對(duì)比。DeepLog算法模型的主體部分采用傳統(tǒng)的單向LSTM模型;DeepAG算法模型的主體部分采用了雙向LSTM模型。三種算法都基于章節(jié)1.2、1.3、1.4所描述流程處理后的數(shù)據(jù),只是在預(yù)測(cè)模型上有差異。另外,也設(shè)置使用和不使用章節(jié)1.2、1.3、1.4所描述流程情況下的對(duì)比實(shí)驗(yàn),以此驗(yàn)證通過(guò)因果圖構(gòu)建攻擊序列進(jìn)行多階段攻擊預(yù)測(cè)的有效性。
2.2.3 評(píng)估指標(biāo)
在單步預(yù)測(cè)中,計(jì)算了每個(gè)數(shù)據(jù)集以及不同算法的預(yù)測(cè)結(jié)果的精確率(Precision)、召回率(Recall)和F1分?jǐn)?shù)(F1-score)。在多步長(zhǎng)的預(yù)測(cè)中,精確率、召回率和F1分?jǐn)?shù)等評(píng)價(jià)指標(biāo)變得難以計(jì)算。因?yàn)槎嗖筋A(yù)測(cè)中,模型輸出的預(yù)測(cè)值序列需要與實(shí)際的標(biāo)簽序列完全一致,才會(huì)判定它預(yù)測(cè)正確。比如設(shè)置預(yù)測(cè)標(biāo)簽長(zhǎng)度為5,那么預(yù)測(cè)值的5個(gè)索引值要與實(shí)際標(biāo)簽的5個(gè)索引值都分別對(duì)應(yīng)相等。在這種情況下,上述三個(gè)評(píng)估指標(biāo)極難計(jì)算,而且不再適用。因此,在多步預(yù)測(cè)中,只采用準(zhǔn)確率(Accuracy)作為唯一的評(píng)估指標(biāo)。
把實(shí)驗(yàn)結(jié)果分為單步預(yù)測(cè)和多步預(yù)測(cè)兩種情況,記錄了不同算法在ATLAS數(shù)據(jù)集中的表現(xiàn),并對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行了分析。
2.3.1 單步預(yù)測(cè)算法性能對(duì)比
表4分別顯示了基于不同數(shù)據(jù)集的不同算法的精確率、召回率和F1分?jǐn)?shù)。分析其中的數(shù)據(jù),可以發(fā)現(xiàn)無(wú)論是在ATLAS的單主機(jī)日志數(shù)據(jù)集(ATLAS-s graph)上,還是在多主機(jī)日志數(shù)據(jù)集(ATLAS-m graph)上,三個(gè)算法模型中,LogTransformer的性能最高,其中在ATLAS的單主機(jī)數(shù)據(jù)集和多主機(jī)數(shù)據(jù)集上的精確率分別為92.42%和90.92%,召回率分別為93.67%和90.43%,F1分?jǐn)?shù)分別為93.04%和90.67%,都是三個(gè)算法模型中最高的性能表現(xiàn)。

表4 單步預(yù)測(cè)性能對(duì)比 %
2.3.2 多步預(yù)測(cè)算法性能對(duì)比
分析表5和表6可以發(fā)現(xiàn),在多步預(yù)測(cè)的情況下,DeepAG和LogTransformer在ATLAS單主機(jī)數(shù)據(jù)集上的準(zhǔn)確率對(duì)比互有勝負(fù);而在多主機(jī)數(shù)據(jù)集上,LogTransformer則具有優(yōu)勢(shì),在準(zhǔn)確率上比DeepAG 平均領(lǐng)先0.7%。DeepLog在ATLAS的兩個(gè)數(shù)據(jù)集上的表現(xiàn)都是最差的,步長(zhǎng)從2到5都是準(zhǔn)確率最低的,說(shuō)明傳統(tǒng)單向LSTM模型優(yōu)勢(shì)不足。

表5 在ATLAS-s graph數(shù)據(jù)集上多步預(yù)測(cè)準(zhǔn)確率對(duì)比 %

表6 在ATLAS-m graph數(shù)據(jù)集上多步預(yù)測(cè)準(zhǔn)確率對(duì)比 %
2.3.3 LogTransformer多步預(yù)測(cè)分析
為了比較LogTransformer在經(jīng)過(guò)因果圖提取算法的日志數(shù)據(jù)和未經(jīng)過(guò)處理的日志數(shù)據(jù)上性能的差別,設(shè)置了因果圖提取后的ATLAS數(shù)據(jù)集(ATLAS-s graph和ATLAS-m graph)、原始ATLAS數(shù)據(jù)集(ATLAS-s seq和ATLAS-m seq)和HDFS數(shù)據(jù)集(HDFS seq)的對(duì)照實(shí)驗(yàn)。圖7統(tǒng)計(jì)了LogTransformer在五種數(shù)據(jù)集上預(yù)測(cè)步長(zhǎng)從1到5的準(zhǔn)確率的變化趨勢(shì)。

圖7 LogTransformer在五種數(shù)據(jù)集上的性能對(duì)比
從整體上看,隨著預(yù)測(cè)步長(zhǎng)的增加,LogTransformer算法的準(zhǔn)確率也在下降。在因果圖提取后的ATLAS數(shù)據(jù)集(ATLAS-s graph和ATLAS-m graph)上,即使預(yù)測(cè)步長(zhǎng)達(dá)到了5,LogTransformer的準(zhǔn)確率依然能保持在74%左右。在原始ATLAS單主機(jī)數(shù)據(jù)集(ATLAS-s seq)上,不同預(yù)測(cè)步長(zhǎng)的準(zhǔn)確率整體上都比因果圖提取后的ATLAS-s graph數(shù)據(jù)集低20%左右。在原始ATLAS多主機(jī)數(shù)據(jù)集(ATLAS-m seq)上,不同的預(yù)測(cè)步長(zhǎng)的準(zhǔn)確率平均比因果圖提取后的ATLAS-m graph數(shù)據(jù)集低12%。在HDFS seq數(shù)據(jù)集上,下降幅度比較大,到三步預(yù)測(cè)準(zhǔn)確率已經(jīng)下降到53%了,五步預(yù)測(cè)的準(zhǔn)確率已經(jīng)下降到了35%。這說(shuō)明未經(jīng)提取上下文關(guān)系的日志數(shù)據(jù)在用于預(yù)測(cè)的時(shí)候穩(wěn)定性較差。
這是因?yàn)樵糀TLAS數(shù)據(jù)集和HDFS數(shù)據(jù)集提取的日志序列并不是按照因果圖來(lái)提取的,異常的日志中夾雜了很多正常操作的日志數(shù)據(jù),所以序列里的日志項(xiàng)之間并沒(méi)有明確的攻擊上下文關(guān)系。對(duì)比分析HDFS數(shù)據(jù)集和ATLAS數(shù)據(jù)集的規(guī)模,ATLAS數(shù)據(jù)集的數(shù)據(jù)量比HDFS少很多,而ATLAS的日志類型數(shù)目是HDFS的將近2倍。LogTransformer在經(jīng)因果圖處理后的ATLAS數(shù)據(jù)集上獲得了更佳的性能,這也證明了通過(guò)構(gòu)建因果圖來(lái)提取異常日志序列進(jìn)行多階段攻擊趨勢(shì)預(yù)測(cè)的有效性和先進(jìn)性。
通過(guò)構(gòu)建因果圖來(lái)提取具有攻擊上下文關(guān)系的異常日志序列,提出了一個(gè)基于攻擊上下文分析的多階段攻擊預(yù)測(cè)算法。先通過(guò)因果圖構(gòu)建、異常日志序列提取、抽象文本表示等步驟實(shí)現(xiàn)對(duì)已有攻擊上下文的分析;然后基于已經(jīng)檢測(cè)到的攻擊序列,利用Transformer模型對(duì)后續(xù)攻擊趨勢(shì)進(jìn)行預(yù)測(cè)。經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證,所提算法在多階段攻擊預(yù)測(cè)上取得了良好的性能。但該算法依然存在一個(gè)缺陷,就是攻擊趨勢(shì)預(yù)測(cè)只能預(yù)測(cè)已經(jīng)存在的54種日志類型,如果出現(xiàn)未知的攻擊日志類型,算法并不能做出預(yù)測(cè)的更新。所以,接下來(lái),會(huì)在這方面做出努力,完善未知攻擊的實(shí)時(shí)更新處理,提高算法的拓展能力。