呂宗平 梁婷婷,2 顧兆軍 劉春波 王 雙 王 志
1(中國民航大學(xué)信息安全測評中心 天津 300300)
2(中國民航大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 天津 300300)
3(南開大學(xué)人工智能學(xué)院 天津 300071)
系統(tǒng)日志是由監(jiān)控系統(tǒng)基于程序代碼預(yù)設(shè)條件下自動產(chǎn)生的富含大量描述系統(tǒng)(如分布式系統(tǒng)、操作系統(tǒng))狀態(tài)信息的事件集合[1],能夠如實地記錄所有信息系統(tǒng)的系統(tǒng)狀態(tài)和行為[2]。在這些大型分布式系統(tǒng)中產(chǎn)生的日志大多數(shù)情況下可以看作動態(tài)達(dá)到的流式數(shù)據(jù)。與傳統(tǒng)數(shù)據(jù)相比,這類日志數(shù)據(jù)具有動態(tài)性、無序性、無限性、突發(fā)性和體積大等特點。首先,大批量的日志數(shù)據(jù)源源不斷地涌入,將這些日志數(shù)據(jù)完全存儲下來幾乎不可能;其次,數(shù)據(jù)具有時間屬性,帶有表示事件發(fā)生的時刻的時間戳信息;最后,樣本分布、樣本的特征可能隨時間變化,呈現(xiàn)動態(tài)變化的特點[3]。傳統(tǒng)中通過手工檢查是不切實際的,目前,針對自動日志解析,學(xué)術(shù)界和工業(yè)提出了許多數(shù)據(jù)驅(qū)動方法,包括頻繁模式挖掘(SLCT,及其擴(kuò)展的聚類方法LogCluster)、迭代分區(qū)(IPLoM)、層次聚類(LKE)、最長公共子序列計算(Spell)和解析樹(Drain)等[4]。網(wǎng)絡(luò)日志分析對網(wǎng)絡(luò)安全管理具有重要意義,但現(xiàn)有的網(wǎng)絡(luò)日志分析系統(tǒng)具有無法處理海量日志數(shù)據(jù)、采用離線模式和處理時延較長等弊端[5]。結(jié)合自動日志解析實現(xiàn)一個高效且實時的基于系統(tǒng)日志的異常檢測算法具有重要的理論意義和實際應(yīng)用價值。
然而,由于動態(tài)變化和非平穩(wěn)環(huán)境中發(fā)生的概念漂移或模型老化,動態(tài)生成的日志會導(dǎo)致傳統(tǒng)異常檢測算法的性能嚴(yán)重下降[6]。已有的基于離線學(xué)習(xí)的日志異常檢測模型如支持向量機(jī)、邏輯回歸、決策樹[7]和模糊核聚類[8]等,概念不隨新的日志數(shù)據(jù)的分布而改變,這些算法無法完全正確地識別異常事件,因此會做出模糊的決策。所以,基于離線學(xué)習(xí)的日志異常檢測算法面臨著概念漂移問題,在系統(tǒng)劇烈變化的環(huán)境下表現(xiàn)為性能降低。在面對動態(tài)中產(chǎn)生的概念漂移問題時,大多算法選擇重訓(xùn)練(Retrain)來解決。Retrain是一種模擬增量學(xué)習(xí)的機(jī)器學(xué)習(xí)算法,每當(dāng)有新的數(shù)據(jù)出現(xiàn)時,Retrain就丟棄以前的模型,將新的數(shù)據(jù)與以前的數(shù)據(jù)合并,并在這個數(shù)據(jù)上學(xué)習(xí)新的模型。但是Retrain沒有考慮同一類日志的差異或日志之間的不一致性,沒有能夠根據(jù)數(shù)據(jù)分布變化或新日志與以前日志的關(guān)系隨著時間動態(tài)更新以往經(jīng)驗的機(jī)制。同時,由于數(shù)據(jù)集不斷增大,Retrain需要一個相當(dāng)大的訓(xùn)練集來代表所有可能的正常行為,這需要日志完整地下載和識別標(biāo)注,從日志產(chǎn)生到檢測結(jié)束具有較大的時間跨度,不能及時地檢測出系統(tǒng)異常,對系統(tǒng)內(nèi)存資源的消耗非常大。
為了減少在線中概念漂移對日志異常檢測算法的產(chǎn)生的影響,本文提出了一種能夠基于置信度動態(tài)增量更新的在線日志異常檢測模型(COP)。首先根據(jù)時間順序模擬了Hadoop分布式文件系統(tǒng)HDFS日志生成環(huán)境。之后提出用于計算統(tǒng)計值p值的一致性度量模塊,在此基礎(chǔ)上設(shè)置一個基于置信度的校準(zhǔn)集,在滑動窗口步長范圍內(nèi)的日志數(shù)據(jù)將根據(jù)校準(zhǔn)集得到可靠的標(biāo)簽。僅訓(xùn)練一次數(shù)據(jù)時,數(shù)據(jù)的傳遞就變得相當(dāng)重要。COP根據(jù)時間的推移不斷將可信的日志數(shù)據(jù)、一致得分反饋到這個校準(zhǔn)集,根據(jù)p值更新校準(zhǔn)集。這個校準(zhǔn)集將作為之前日志的概要來計算后續(xù)滑動窗口中日志數(shù)據(jù)檢測的依據(jù)以計算p值。經(jīng)實驗驗證,本文提出的COP異常檢測算法能夠達(dá)到與重訓(xùn)練異常檢測算法相當(dāng)?shù)男阅軝z測結(jié)果,平均檢測時間為181.417秒,大大降低了檢測時間。
根據(jù)應(yīng)用場景的不同可以將異常檢測分為離線異常檢測(又稱為批處理)和在線異常檢測。在線異常檢測顧名思義即為結(jié)合在線學(xué)習(xí)的異常檢測方法也被稱為增量學(xué)習(xí)或適應(yīng)性學(xué)習(xí),是指對一定順序下接收數(shù)據(jù),每接收一個數(shù)據(jù),模型會對它進(jìn)行檢測并對當(dāng)前模型進(jìn)行更新,然后處理下一個數(shù)據(jù)。基于在線學(xué)習(xí)的異常檢測方法滿足一些實時性要求較高的日志分析系統(tǒng)需求。針對流數(shù)據(jù)的在線異常檢測算法通常在PCA[9]、隔離森林[10]等基礎(chǔ)上使用梯度增量算法對損失進(jìn)行優(yōu)化,或者與LSTM[11-12]等深度學(xué)習(xí)結(jié)合。但是深度學(xué)習(xí)訓(xùn)練和檢測過程耗時長,不適用于在線中需要快速響應(yīng)的環(huán)境中。這些異常檢測方法都可以得到不錯的實驗效果,但隨著時間的推移,面對爆炸式涌現(xiàn)且多變的數(shù)據(jù),建立一個持續(xù)且不會退化的能夠?qū)崟r學(xué)習(xí)的模型仍然存在困難。
概念漂移問題通常是指輸入數(shù)據(jù)和目標(biāo)變量隨時間變化的關(guān)系。數(shù)據(jù)分布的變化使得基于數(shù)據(jù)的舊模型與基于新數(shù)據(jù)的不一致,有必要對模型進(jìn)行定期更新[13]。在動態(tài)變化的環(huán)境中,非平穩(wěn)的數(shù)據(jù)的基礎(chǔ)分布可能會隨著時間的推移而動態(tài)變化,如圖1所示。概念漂移設(shè)置中的一般假設(shè)是變化意外地發(fā)生并且是不可預(yù)測的,盡管在某些特定的現(xiàn)實世界情況下,可以提前知道與特定環(huán)境事件的發(fā)生相關(guān)的變化,但是針對漂移的一般情況的解決方案需要針對特定情況的解決方案。在時間序列演變過程中需要能夠根據(jù)高層特征的變化作出自適應(yīng)的調(diào)整,獲得對新生成類別的鑒別。
圖1 經(jīng)過一段時間后數(shù)據(jù)發(fā)生概念漂移現(xiàn)象
應(yīng)對概念漂移的方法可以分為全局替換方法和局部替換方法。全局模型中的自適應(yīng)方法,比如邏輯回歸模型,需要模型的完全重構(gòu),這是對漂移最根本的反應(yīng)。刪除一個完整的模型,從頭開始一個新的模型,比如本文中作為對比實驗的邏輯回歸Retrain。但是許多情況下更改只發(fā)生在數(shù)據(jù)空間的某些區(qū)域,所以可以通過調(diào)整模型的某些部分,結(jié)合統(tǒng)計學(xué)習(xí)一致性度量的方法,抵抗在線異常檢測中存在的概念漂移。已有的基于自適應(yīng)微簇的任意形狀進(jìn)化數(shù)據(jù)流聚類算法,設(shè)計遞歸的微簇半徑更新機(jī)制,自適應(yīng)地搜索微簇半徑的局部最優(yōu)值[14]。
當(dāng)給定算法的原始分?jǐn)?shù)作為一致性度量的決策標(biāo)準(zhǔn)時,需要認(rèn)識到傳統(tǒng)算法通常使用固定閾值判斷標(biāo)簽。從原始分?jǐn)?shù)建立的閾值缺乏選擇背景和意義。將原始分?jǐn)?shù)與p值相結(jié)合可以提供清晰明了的統(tǒng)計意義。p值能夠以標(biāo)準(zhǔn)化的范圍(0~1)量化地觀察到漂移,而不需要考慮底層基礎(chǔ)算法[15]。
如圖2所示,實驗?zāi)P涂傮w上主要包括日志預(yù)處理、一致性度量和在線一致性增量檢測三個步驟。在線學(xué)習(xí)模型基于時間的推移,使用滑動窗口存儲固定數(shù)量的最近的日志數(shù)據(jù)。首先將窗口內(nèi)的原始非結(jié)構(gòu)化日志文本轉(zhuǎn)變?yōu)榻Y(jié)構(gòu)化日志;再通過特征提取轉(zhuǎn)化為一致性度量模塊可接收的輸入數(shù)據(jù);接下來使用一致性度量映射出的一致性得分計算p值,并進(jìn)行一致性預(yù)測以及校準(zhǔn)集的更新。
圖2 模型框架
日志預(yù)處理部分包括日志解析和特征提取兩個步驟。原始的非結(jié)構(gòu)化日志文本由時間戳和日志文本組成,不能直接輸入在線學(xué)習(xí)模型進(jìn)行異常檢測。在通過日志解析成結(jié)構(gòu)化日志之后,使用特征提取的方法轉(zhuǎn)換為特征矩陣,用于后續(xù)的異常檢測。
圖3詳細(xì)說明了日志預(yù)處理中日志解析和特征提取的步驟。如1.1節(jié)中提到的,日志解析的目的是將原始的非結(jié)構(gòu)化日志文本數(shù)據(jù)轉(zhuǎn)化為結(jié)構(gòu)化的常量與變量的對應(yīng)關(guān)系模板。在日志解析后,進(jìn)一步將日志事件編碼為特征向量,進(jìn)而形成特征矩陣,以便應(yīng)用在基于日志的異常檢測算法中。特性提取將使用會話窗口技術(shù)來計算日志事件出現(xiàn)的次數(shù),并形成一個特征矩陣。
圖3 原始日志轉(zhuǎn)換為結(jié)構(gòu)日志
使用最開始的一個小時的日志數(shù)據(jù)建立模型,根據(jù)置信度分布估計顯著性水平。例如,圖4(a)為所有正常日志數(shù)據(jù)出現(xiàn)次數(shù)與p值的關(guān)系,正常的日志數(shù)據(jù)置信度大多集中在0.901 013 25。圖4(b)中異常數(shù)據(jù)p值大多接近于0,但大部分集中在0.000 141 713至0.027 634 096之間。這說明正常日志數(shù)據(jù)與異常日志數(shù)據(jù)很大程度上區(qū)別度很高。保存一小時內(nèi)的數(shù)據(jù)集中所有的正常數(shù)據(jù)組成校準(zhǔn)集,作為接下來在線一致性預(yù)測的經(jīng)驗。
(a) 正常日志數(shù)據(jù)
一致性度量方法指測量樣本和已知標(biāo)簽數(shù)據(jù)集之間的一致性程度的方法,給出的結(jié)果是一致性得分,代表了樣本與待測數(shù)據(jù)集之間的一致性程度[16]。檢測系統(tǒng)的模型匹配算法可以看作是一致性度量方法,其計算結(jié)果可以作為一致性得分。
經(jīng)過日志預(yù)處理之后得到特征矩陣,輸入一致性度量函數(shù)中得到一致性得分。選取邏輯回歸算法作為實值得分函數(shù)計算得分。邏輯回歸具有實施簡單、建模高效的優(yōu)點,它的計算量小、存儲資源占用低,可以在大數(shù)據(jù)場景中使用。邏輯回歸通過計算被測樣本異常概率的方式進(jìn)行分類。例如,當(dāng)設(shè)置0表示正常,1表示異常,設(shè)置檢測固定閾值為0.5。當(dāng)邏輯回歸檢測出的概率小于閾值時,那么數(shù)據(jù)標(biāo)簽設(shè)置0;如果邏輯回歸檢測出的概率大于閾值時,那么數(shù)據(jù)標(biāo)簽為設(shè)置1。傳統(tǒng)閾值不能動態(tài)適應(yīng)概念漂移,本文提出的異常檢測日志的一致性得分將反饋到相應(yīng)的分?jǐn)?shù)集,作為后續(xù)檢測的已有經(jīng)驗來應(yīng)對不斷動態(tài)變化的數(shù)據(jù)產(chǎn)生環(huán)境。
對于日志樣本l*,訓(xùn)練日志數(shù)據(jù)集D以及在訓(xùn)練集中相同標(biāo)簽的數(shù)據(jù)序列L,根據(jù)一致性度量方法得到的實值得分函數(shù)A計算一致性得分a,得分a表示當(dāng)前新的日志樣本與之前日志數(shù)據(jù)的一致性程度。在本文中實值得分函數(shù)A由邏輯回歸算法給出,得到的是被測樣本異常的概率,其計算式為:
a(l*)=AD(L,l*)
(1)
式中:滑動窗口內(nèi)數(shù)據(jù)序列L,某時刻日志數(shù)據(jù)li,在預(yù)先已經(jīng)獲得的數(shù)據(jù)集序列D中提取出來的所有正常數(shù)據(jù)組成的校準(zhǔn)集Cali∈{c1,c2,…,ci},通過實值得分函數(shù)可以得到當(dāng)前數(shù)據(jù)的預(yù)測得分,如式(2)所示。
ai=AD(Cali,li)
(2)
通過得分計算p值來評估新的日志樣本與之前的日志樣本的相似性,式(3)為p值的計算過程。通過計算當(dāng)前得分與校準(zhǔn)集中得分的百分位。統(tǒng)計校準(zhǔn)集中所有大于ai的日志個數(shù)并除以總樣本個數(shù)n。
(3)
使用p值建立一個新的檢測記錄分?jǐn)?shù)的數(shù)據(jù)和前面的正常分?jǐn)?shù)之間的聯(lián)系,這將避免算法造成的錯誤決定從而能夠忽略內(nèi)部細(xì)節(jié)和實現(xiàn)算法的影響。
為了能夠使用盡量少的數(shù)據(jù)來獲得盡量好的性能,不重復(fù)訓(xùn)練異常檢測模型,通過結(jié)合置信度動態(tài)更新訓(xùn)練中得到的校準(zhǔn)集來對抗在線中的概念漂移。根據(jù)式(4),顯著性水平ε將會給出一個過濾后的檢測集,通過一致性預(yù)測給出置信度conf。
(4)
當(dāng)置信度越高,則意味著更高的可信度。當(dāng)ε=0.02時,conf=0.98,則有98%的可信度得到以下結(jié)論:當(dāng)某條日志樣本數(shù)據(jù)的p值小于顯著性水平0.02時,那么該條日志樣本數(shù)據(jù)有低于0.02的概率與校準(zhǔn)集的不一致程度相同或者更不一致。換句話說我們有小于0.02的把握相信該條數(shù)據(jù)不是異常的。
如算法1中所示,隨著時間的推移更新校準(zhǔn)集。將新檢測出的正常的一致性得分和置信度反饋給原有的校準(zhǔn)集,并通過簡單隨機(jī)抽樣的方法更新原有校準(zhǔn)集,防止校準(zhǔn)集隨著時間的推移不斷擴(kuò)大造成內(nèi)存不足,消耗p值計算時間。與Retrain相比,大大減少了對數(shù)據(jù)存儲空間的要求,提升了時間效率。利用能夠測量日志之間的p值,建立新日志與前日志之間連接的反饋機(jī)制的在線異常檢測。
算法1增量更新校準(zhǔn)集。
輸入:滑動窗口中數(shù)據(jù)集Xn;日志校準(zhǔn)集Xcali;顯著性水平ε。
輸出:檢測后對應(yīng)窗口中日志數(shù)據(jù)的標(biāo)簽y_pred;更新后的校準(zhǔn)集Xcali。
1. aXn=A(Xn);
2. aCali=A(Xcali);
3. p=P(aXn,aCali);
4.ifp>ε:
5. y_pred_N=N with Conf;
6.else:
7. y_pred_A=A with Conf;
8. 增加aXnTo aCali;
9. 抽樣aCali
10.returny_pred,aCali
傳統(tǒng)一致性預(yù)測的時間復(fù)雜度主要來源于建模和檢測兩個部分。當(dāng)計算一個新的日志數(shù)據(jù)樣本相對于訓(xùn)練集的p值為例,檢測的時間較短可以忽略不計。假設(shè)建模的時間復(fù)雜度為On,訓(xùn)練集大小為n,計算單個樣本的p值時需要得到n+1個數(shù)據(jù)樣本的一致性得分,所以計算一個新樣本相對于一個標(biāo)簽的p值的算法復(fù)雜度為(n+1)×On。但由于COP中建模由一小時內(nèi)的校準(zhǔn)集(大小為m,m< 由于預(yù)處理是通過正則匹配快速解析日志文本,所造成的時間耗損較低,訓(xùn)練過程所使用的日志數(shù)據(jù)量較小,避免了因為訓(xùn)練而造成的較大的時延。綜上所述,COP能夠滿足在線檢測的要求。 所有實驗運行在64位Windows 10操作系統(tǒng)上(工作站處理器為i7-6700,3.4 GHz,內(nèi)存16.0 GB),Python 3.7編程環(huán)境。 系統(tǒng)日志數(shù)據(jù)集[6]采用香港中文大學(xué)的Hadoop分布式文件系統(tǒng)日志數(shù)據(jù)集HDFS進(jìn)行模擬在線環(huán)境。該數(shù)據(jù)集共1.58 GB,11 197 705個原始日志,復(fù)雜且能夠模擬一個動態(tài)環(huán)境[2]。此數(shù)據(jù)集共近39小時原始日志數(shù)據(jù)。模擬在線環(huán)境時,取第一個小時內(nèi)所有原始數(shù)據(jù)(OneHou-HDFS)進(jìn)行日志分析,通過專家領(lǐng)域?qū)<沂謩訕?biāo)記,共188 723條日志,特征提取后生成14 771條日志序列,其中異常數(shù)據(jù)659條,正常數(shù)據(jù)14 112條。系統(tǒng)異常包括對文件存儲塊的增加,移動和刪除操作異常,如表1所示。 表1 數(shù)據(jù)集時間信息 在2.3節(jié)中可以觀察到當(dāng)傳統(tǒng)檢測算法在面對概念漂移問題時會存在顯著的性能下降,使模型無法做出準(zhǔn)確的決策。本文通過p值動態(tài)更新校準(zhǔn)集的方式在線檢測系統(tǒng)日志,能夠成功抵抗在線檢測中的概念漂移,達(dá)到Retrain時的性能水平。 本文中使用準(zhǔn)確度(Accuracy)、精確度(Precision)、召回率(Recall)和F-Score對在線模型進(jìn)行性能上的評估,通過檢測時長評估模型的檢測速度。 本文通過混淆矩陣中TP、TN、FP和FN,根據(jù)式(5)-式(7)計算準(zhǔn)確度、精確度和召回率。 (5) (6) (7) 精確度的提高說明誤報率較低,正常日志極少被錯誤地檢測為異常日志;召回率的提高說明漏報率較低,異常日志極少被錯誤地檢測為正常日志。 加權(quán)調(diào)和平均數(shù)F-Score對是基于精確度和召回率定義的,是對精確度、召回率的一種權(quán)衡,定義為: (8) 式中:β為參數(shù),當(dāng)β=1時,稱為F1,此時認(rèn)為精確度與召回率同等重要;當(dāng)β<1時,則認(rèn)為精確度比召回率重要;當(dāng)β>1時,則認(rèn)為精確度不如召回率重要,此時另β=2得到F2。精確度和召回率評估時,理想情況下做到兩個指標(biāo)都高當(dāng)然最好,但在實際中需要根據(jù)具體情況做出取舍,例如異常檢測時,由于檢測出對系統(tǒng)不利的異常更加重要,所以在保證精確度的條件下,盡量提升召回率。 如第1節(jié)中提到的,在給定的數(shù)據(jù)流上檢測時,可以考慮分類精度的變化,如準(zhǔn)確度、召回率和F-Score,來觀察概念漂移問題。在基于系統(tǒng)日志的異常檢測中,實時到達(dá)的日志數(shù)據(jù)樣本引起的概念漂移反映在算法的召回率和精確度的降低上。在解決在線異常檢測中的概念漂移之前,本文將數(shù)據(jù)集模擬為一個動態(tài)環(huán)境,使用訓(xùn)練集擬合的模型檢測了測試集日志數(shù)據(jù),使用邏輯回歸作為異常檢測函數(shù)時的異常檢測結(jié)果。 如圖5所示,在面對概念漂移問題時,數(shù)據(jù)集的召回率最多會降低60%以上,意味著更少的異常被檢測出來,精確度、F-Score也都出現(xiàn)了不同程度的降低。該算法無法在急劇變化的環(huán)境下及時地做出準(zhǔn)確的決策。概念漂移的出現(xiàn)意味著惡意行為模式已經(jīng)開始發(fā)生遷移,在實際生產(chǎn)環(huán)境中,概念漂移問題是無法完全避免和修復(fù)的,但是,可以在最大程度上對概念漂移做出適應(yīng),限制概念漂移的范圍。 圖5 傳統(tǒng)檢測算法在HDFS數(shù)據(jù)集上的評估結(jié)果 設(shè)置邏輯回歸(Logistic Regression,LR)異常檢測和Retrain實驗作為對比實驗。僅使用邏輯回歸算法訓(xùn)練全部日志數(shù)據(jù)集中第一小時內(nèi)的數(shù)據(jù)并建模。之后每一個窗口內(nèi)的日志數(shù)據(jù)都使用這個模型進(jìn)行異常檢測。很明顯,LR模型的檢測來源僅為一小時的日志數(shù)據(jù),沒有抵抗概念漂移的能力。如圖6所示,LR的精確度平均為0.921。LR的時間復(fù)雜度主要為初次建模時間Om,由于COP計算p值與更新校準(zhǔn)集的時間復(fù)雜度較低,與LR的之間整體性能相差不多,所以本次對比實驗中沒有展示LR與COP的時間開銷對比結(jié)果。 圖6 COP、LR和Retrain的實驗性能 Retrain中隨著時間的推移,每新接收一個窗口的日志數(shù)據(jù)塊,都需要將之前已經(jīng)存儲的所有日志數(shù)據(jù)合并,將之作為訓(xùn)練集。根據(jù)訓(xùn)練集數(shù)據(jù)擬合邏輯回歸模型之后,對當(dāng)前窗口內(nèi)的日志數(shù)據(jù)序列檢測異常。Retrain是一種模擬增量學(xué)習(xí)的批處理方法,顯而易見的優(yōu)點是能夠訓(xùn)練過去所有的已有知識形成新的模型,如圖6(c)中所示,Retrain平均準(zhǔn)確度在三種算法中最高,達(dá)到0.996。但是其他檢測結(jié)果表現(xiàn)較差,Retrain并不能高效地抵抗概念漂移的出現(xiàn)。新的概念漂移發(fā)生點可能會淹沒在舊的知識里,對于概念漂移反應(yīng)較慢。同時它對時間和空間消耗也比較大,平均時間損耗為687.143 s。計算過程需要當(dāng)前時間節(jié)點之前的全部的數(shù)據(jù)下載存儲。LR只能依靠最開始的模型來預(yù)測,導(dǎo)致它的精確度和準(zhǔn)確度較三者中最低。而COP模型可以通過訓(xùn)練少部分的知識,根據(jù)置信度更新校準(zhǔn)集的方式達(dá)到和Retrain相近的性能結(jié)果,平均精確度、平均召回率以及平均F-Score為均為三者最高水平。同時COP在時間上表現(xiàn)優(yōu)越,大大降低了檢測時間。 根據(jù)2.3節(jié)中對前一小時的數(shù)據(jù)分析,發(fā)現(xiàn)異常類日志數(shù)據(jù)的p值集中在0.000 141 713~0.027 634 096之間。所以實驗中將顯著性水平可以選擇設(shè)置為0.002左右。顯著性水平與最終決策相關(guān),若將ε設(shè)置高于0.02,那么會有更多正常事件被誤判為異常事件。在更新校準(zhǔn)集的時候,校準(zhǔn)集中所代表正常的p值會越來越少,可以判斷為正常事件的置信度會越來越高,初期表現(xiàn)在檢測精度的降低和召回率以及F-Score的提升上。但是隨著時間的推移,越來越多的正常事件會被判斷為異常事件,導(dǎo)致完全拋棄了過去的模式,到第5個窗口時就已經(jīng)幾乎完全檢測不到正常日志序列,檢測精確度僅為0.024,這種現(xiàn)象被稱為災(zāi)難性的遺忘。但是也不能將ε設(shè)置過低,當(dāng)ε=0.000 2時,幾乎不會有任何異常被檢測出來,從第一個窗口開始異常樣本數(shù)量只有6個,隨著時間的推移,異常樣本接近于零。具體檢測性能表現(xiàn)為精確度的提升以及召回率和F-Score的降低。 本次實驗中將顯著性水平設(shè)置ε=0.002。圖7表示COP、LR和Retrain在準(zhǔn)確度、精確度、召回率和F-Score的對比實驗結(jié)果。COP的整體性能與LR和Retrain的實驗相比相對平穩(wěn)。如圖7(a)中所示,Retrain由于數(shù)據(jù)量大,模型的準(zhǔn)確度表現(xiàn)與COP模型相比趨向平穩(wěn),COP與LR模型檢測準(zhǔn)確度隨著時間的推移存在波動。圖7(b)中Retrain在22個窗口之前均低于LR與COP的精確度,但是從第22個窗口開始,之后的窗口隨著時間推移經(jīng)驗積累到一定程度之后模型擬合越來越精準(zhǔn),Retrain的精確度開始回升之后穩(wěn)定在0.97左右。LR的檢測精確度最低為0.453,這意味著在第22個窗口中出現(xiàn)了模型判斷模糊的正常日志數(shù)據(jù),發(fā)生了概念漂移。一直不變的LR模型將這些處于邊界上的正常數(shù)據(jù)誤報為異常數(shù)據(jù),導(dǎo)致準(zhǔn)確度降低。但是由于COP設(shè)置動態(tài)反饋的校準(zhǔn)集能夠保持新的知識不斷更新,抵抗了窗口中發(fā)生的概念漂移,將精確度提升至0.79。圖7(c)中COP模型召回率相對LR和Retrain來講較穩(wěn)定。LR在第7個窗口中召回率相較之前有所降低,出現(xiàn)將異常的數(shù)據(jù)判斷為正常數(shù)據(jù)的情況。本文提出的COP模型能夠通過控制顯著性水平區(qū)分正常數(shù)據(jù)和異常數(shù)據(jù),減少了漏報數(shù)量,提升了召回率。圖7(d)和(e)表示精確度與召回率的綜合結(jié)果F-Score,COP整體表現(xiàn)相對LR和Retrain較好。圖7(f)中,在檢測時間上,Retrain的平均時間損耗687.144 s,是COP模型的近四倍,COP模型大大提升了時間效率。 (a) 三種算法準(zhǔn)確度對比 針對目前大型在線系統(tǒng)自動化異常檢測的需求,本文提出了一個能夠根據(jù)置信度在線增量更新的系統(tǒng)日志異常檢測模型。它將當(dāng)前的日志數(shù)據(jù)與之前的日志數(shù)據(jù)聯(lián)系起來,有效地緩解動態(tài)環(huán)境中概念漂移的問題。通過Hadoop分布式文件系統(tǒng)HDFS日志數(shù)據(jù)按照時間順序模擬實時動態(tài)的日志生成環(huán)境,COP模型可以高效地檢測數(shù)據(jù)集中的異常,得到與重訓(xùn)練在精確度、召回率等相近的檢測結(jié)果,并降低檢測時間。 但是顯著性水平的選擇很大地影響了檢測精確度和召回率。如何更加準(zhǔn)確地選擇合適的顯著性水平來增加模型的魯棒性,將成為接下來需要研究的問題。未來的工作可以進(jìn)一步使用無監(jiān)督機(jī)器學(xué)習(xí)算法以及深度學(xué)習(xí)算法,同時測試更多數(shù)據(jù)集來擬合更多復(fù)雜環(huán)境下的異常檢測,從而達(dá)到不依賴數(shù)據(jù)標(biāo)記完成分布式系統(tǒng)和平臺背景下的在線日志異常檢測的目的。3 算法實現(xiàn)
3.1 實驗環(huán)境
3.2 實驗室數(shù)據(jù)集
3.3 評估指標(biāo)
3.4 概念漂移識別
3.5 實驗結(jié)果分析
4 結(jié) 語