?

概念漂移下的系統日志在線異常檢測模型

2023-11-02 12:37呂宗平梁婷婷顧兆軍劉春波
計算機應用與軟件 2023年10期
關鍵詞:精確度日志一致性

呂宗平 梁婷婷,2 顧兆軍 劉春波 王 雙 王 志

1(中國民航大學信息安全測評中心 天津 300300)

2(中國民航大學計算機科學與技術學院 天津 300300)

3(南開大學人工智能學院 天津 300071)

0 引 言

系統日志是由監控系統基于程序代碼預設條件下自動產生的富含大量描述系統(如分布式系統、操作系統)狀態信息的事件集合[1],能夠如實地記錄所有信息系統的系統狀態和行為[2]。在這些大型分布式系統中產生的日志大多數情況下可以看作動態達到的流式數據。與傳統數據相比,這類日志數據具有動態性、無序性、無限性、突發性和體積大等特點。首先,大批量的日志數據源源不斷地涌入,將這些日志數據完全存儲下來幾乎不可能;其次,數據具有時間屬性,帶有表示事件發生的時刻的時間戳信息;最后,樣本分布、樣本的特征可能隨時間變化,呈現動態變化的特點[3]。傳統中通過手工檢查是不切實際的,目前,針對自動日志解析,學術界和工業提出了許多數據驅動方法,包括頻繁模式挖掘(SLCT,及其擴展的聚類方法LogCluster)、迭代分區(IPLoM)、層次聚類(LKE)、最長公共子序列計算(Spell)和解析樹(Drain)等[4]。網絡日志分析對網絡安全管理具有重要意義,但現有的網絡日志分析系統具有無法處理海量日志數據、采用離線模式和處理時延較長等弊端[5]。結合自動日志解析實現一個高效且實時的基于系統日志的異常檢測算法具有重要的理論意義和實際應用價值。

然而,由于動態變化和非平穩環境中發生的概念漂移或模型老化,動態生成的日志會導致傳統異常檢測算法的性能嚴重下降[6]。已有的基于離線學習的日志異常檢測模型如支持向量機、邏輯回歸、決策樹[7]和模糊核聚類[8]等,概念不隨新的日志數據的分布而改變,這些算法無法完全正確地識別異常事件,因此會做出模糊的決策。所以,基于離線學習的日志異常檢測算法面臨著概念漂移問題,在系統劇烈變化的環境下表現為性能降低。在面對動態中產生的概念漂移問題時,大多算法選擇重訓練(Retrain)來解決。Retrain是一種模擬增量學習的機器學習算法,每當有新的數據出現時,Retrain就丟棄以前的模型,將新的數據與以前的數據合并,并在這個數據上學習新的模型。但是Retrain沒有考慮同一類日志的差異或日志之間的不一致性,沒有能夠根據數據分布變化或新日志與以前日志的關系隨著時間動態更新以往經驗的機制。同時,由于數據集不斷增大,Retrain需要一個相當大的訓練集來代表所有可能的正常行為,這需要日志完整地下載和識別標注,從日志產生到檢測結束具有較大的時間跨度,不能及時地檢測出系統異常,對系統內存資源的消耗非常大。

為了減少在線中概念漂移對日志異常檢測算法的產生的影響,本文提出了一種能夠基于置信度動態增量更新的在線日志異常檢測模型(COP)。首先根據時間順序模擬了Hadoop分布式文件系統HDFS日志生成環境。之后提出用于計算統計值p值的一致性度量模塊,在此基礎上設置一個基于置信度的校準集,在滑動窗口步長范圍內的日志數據將根據校準集得到可靠的標簽。僅訓練一次數據時,數據的傳遞就變得相當重要。COP根據時間的推移不斷將可信的日志數據、一致得分反饋到這個校準集,根據p值更新校準集。這個校準集將作為之前日志的概要來計算后續滑動窗口中日志數據檢測的依據以計算p值。經實驗驗證,本文提出的COP異常檢測算法能夠達到與重訓練異常檢測算法相當的性能檢測結果,平均檢測時間為181.417秒,大大降低了檢測時間。

1 概念漂移

根據應用場景的不同可以將異常檢測分為離線異常檢測(又稱為批處理)和在線異常檢測。在線異常檢測顧名思義即為結合在線學習的異常檢測方法也被稱為增量學習或適應性學習,是指對一定順序下接收數據,每接收一個數據,模型會對它進行檢測并對當前模型進行更新,然后處理下一個數據?;谠诰€學習的異常檢測方法滿足一些實時性要求較高的日志分析系統需求。針對流數據的在線異常檢測算法通常在PCA[9]、隔離森林[10]等基礎上使用梯度增量算法對損失進行優化,或者與LSTM[11-12]等深度學習結合。但是深度學習訓練和檢測過程耗時長,不適用于在線中需要快速響應的環境中。這些異常檢測方法都可以得到不錯的實驗效果,但隨著時間的推移,面對爆炸式涌現且多變的數據,建立一個持續且不會退化的能夠實時學習的模型仍然存在困難。

概念漂移問題通常是指輸入數據和目標變量隨時間變化的關系。數據分布的變化使得基于數據的舊模型與基于新數據的不一致,有必要對模型進行定期更新[13]。在動態變化的環境中,非平穩的數據的基礎分布可能會隨著時間的推移而動態變化,如圖1所示。概念漂移設置中的一般假設是變化意外地發生并且是不可預測的,盡管在某些特定的現實世界情況下,可以提前知道與特定環境事件的發生相關的變化,但是針對漂移的一般情況的解決方案需要針對特定情況的解決方案。在時間序列演變過程中需要能夠根據高層特征的變化作出自適應的調整,獲得對新生成類別的鑒別。

圖1 經過一段時間后數據發生概念漂移現象

應對概念漂移的方法可以分為全局替換方法和局部替換方法。全局模型中的自適應方法,比如邏輯回歸模型,需要模型的完全重構,這是對漂移最根本的反應。刪除一個完整的模型,從頭開始一個新的模型,比如本文中作為對比實驗的邏輯回歸Retrain。但是許多情況下更改只發生在數據空間的某些區域,所以可以通過調整模型的某些部分,結合統計學習一致性度量的方法,抵抗在線異常檢測中存在的概念漂移。已有的基于自適應微簇的任意形狀進化數據流聚類算法,設計遞歸的微簇半徑更新機制,自適應地搜索微簇半徑的局部最優值[14]。

當給定算法的原始分數作為一致性度量的決策標準時,需要認識到傳統算法通常使用固定閾值判斷標簽。從原始分數建立的閾值缺乏選擇背景和意義。將原始分數與p值相結合可以提供清晰明了的統計意義。p值能夠以標準化的范圍(0~1)量化地觀察到漂移,而不需要考慮底層基礎算法[15]。

2 實驗模型

2.1 模型框架

如圖2所示,實驗模型總體上主要包括日志預處理、一致性度量和在線一致性增量檢測三個步驟。在線學習模型基于時間的推移,使用滑動窗口存儲固定數量的最近的日志數據。首先將窗口內的原始非結構化日志文本轉變為結構化日志;再通過特征提取轉化為一致性度量模塊可接收的輸入數據;接下來使用一致性度量映射出的一致性得分計算p值,并進行一致性預測以及校準集的更新。

圖2 模型框架

2.2 日志預處理

日志預處理部分包括日志解析和特征提取兩個步驟。原始的非結構化日志文本由時間戳和日志文本組成,不能直接輸入在線學習模型進行異常檢測。在通過日志解析成結構化日志之后,使用特征提取的方法轉換為特征矩陣,用于后續的異常檢測。

圖3詳細說明了日志預處理中日志解析和特征提取的步驟。如1.1節中提到的,日志解析的目的是將原始的非結構化日志文本數據轉化為結構化的常量與變量的對應關系模板。在日志解析后,進一步將日志事件編碼為特征向量,進而形成特征矩陣,以便應用在基于日志的異常檢測算法中。特性提取將使用會話窗口技術來計算日志事件出現的次數,并形成一個特征矩陣。

圖3 原始日志轉換為結構日志

2.3 一小時日志數據分析

使用最開始的一個小時的日志數據建立模型,根據置信度分布估計顯著性水平。例如,圖4(a)為所有正常日志數據出現次數與p值的關系,正常的日志數據置信度大多集中在0.901 013 25。圖4(b)中異常數據p值大多接近于0,但大部分集中在0.000 141 713至0.027 634 096之間。這說明正常日志數據與異常日志數據很大程度上區別度很高。保存一小時內的數據集中所有的正常數據組成校準集,作為接下來在線一致性預測的經驗。

(a) 正常日志數據

2.4 一致性度量

一致性度量方法指測量樣本和已知標簽數據集之間的一致性程度的方法,給出的結果是一致性得分,代表了樣本與待測數據集之間的一致性程度[16]。檢測系統的模型匹配算法可以看作是一致性度量方法,其計算結果可以作為一致性得分。

經過日志預處理之后得到特征矩陣,輸入一致性度量函數中得到一致性得分。選取邏輯回歸算法作為實值得分函數計算得分。邏輯回歸具有實施簡單、建模高效的優點,它的計算量小、存儲資源占用低,可以在大數據場景中使用。邏輯回歸通過計算被測樣本異常概率的方式進行分類。例如,當設置0表示正常,1表示異常,設置檢測固定閾值為0.5。當邏輯回歸檢測出的概率小于閾值時,那么數據標簽設置0;如果邏輯回歸檢測出的概率大于閾值時,那么數據標簽為設置1。傳統閾值不能動態適應概念漂移,本文提出的異常檢測日志的一致性得分將反饋到相應的分數集,作為后續檢測的已有經驗來應對不斷動態變化的數據產生環境。

對于日志樣本l*,訓練日志數據集D以及在訓練集中相同標簽的數據序列L,根據一致性度量方法得到的實值得分函數A計算一致性得分a,得分a表示當前新的日志樣本與之前日志數據的一致性程度。在本文中實值得分函數A由邏輯回歸算法給出,得到的是被測樣本異常的概率,其計算式為:

a(l*)=AD(L,l*)

(1)

式中:滑動窗口內數據序列L,某時刻日志數據li,在預先已經獲得的數據集序列D中提取出來的所有正常數據組成的校準集Cali∈{c1,c2,…,ci},通過實值得分函數可以得到當前數據的預測得分,如式(2)所示。

ai=AD(Cali,li)

(2)

2.5 在線一致性增量檢測

通過得分計算p值來評估新的日志樣本與之前的日志樣本的相似性,式(3)為p值的計算過程。通過計算當前得分與校準集中得分的百分位。統計校準集中所有大于ai的日志個數并除以總樣本個數n。

(3)

使用p值建立一個新的檢測記錄分數的數據和前面的正常分數之間的聯系,這將避免算法造成的錯誤決定從而能夠忽略內部細節和實現算法的影響。

為了能夠使用盡量少的數據來獲得盡量好的性能,不重復訓練異常檢測模型,通過結合置信度動態更新訓練中得到的校準集來對抗在線中的概念漂移。根據式(4),顯著性水平ε將會給出一個過濾后的檢測集,通過一致性預測給出置信度conf。

(4)

當置信度越高,則意味著更高的可信度。當ε=0.02時,conf=0.98,則有98%的可信度得到以下結論:當某條日志樣本數據的p值小于顯著性水平0.02時,那么該條日志樣本數據有低于0.02的概率與校準集的不一致程度相同或者更不一致。換句話說我們有小于0.02的把握相信該條數據不是異常的。

如算法1中所示,隨著時間的推移更新校準集。將新檢測出的正常的一致性得分和置信度反饋給原有的校準集,并通過簡單隨機抽樣的方法更新原有校準集,防止校準集隨著時間的推移不斷擴大造成內存不足,消耗p值計算時間。與Retrain相比,大大減少了對數據存儲空間的要求,提升了時間效率。利用能夠測量日志之間的p值,建立新日志與前日志之間連接的反饋機制的在線異常檢測。

算法1增量更新校準集。

輸入:滑動窗口中數據集Xn;日志校準集Xcali;顯著性水平ε。

輸出:檢測后對應窗口中日志數據的標簽y_pred;更新后的校準集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

傳統一致性預測的時間復雜度主要來源于建模和檢測兩個部分。當計算一個新的日志數據樣本相對于訓練集的p值為例,檢測的時間較短可以忽略不計。假設建模的時間復雜度為On,訓練集大小為n,計算單個樣本的p值時需要得到n+1個數據樣本的一致性得分,所以計算一個新樣本相對于一個標簽的p值的算法復雜度為(n+1)×On。但由于COP中建模由一小時內的校準集(大小為m,m<

由于預處理是通過正則匹配快速解析日志文本,所造成的時間耗損較低,訓練過程所使用的日志數據量較小,避免了因為訓練而造成的較大的時延。綜上所述,COP能夠滿足在線檢測的要求。

3 算法實現

3.1 實驗環境

所有實驗運行在64位Windows 10操作系統上(工作站處理器為i7-6700,3.4 GHz,內存16.0 GB),Python 3.7編程環境。

3.2 實驗室數據集

系統日志數據集[6]采用香港中文大學的Hadoop分布式文件系統日志數據集HDFS進行模擬在線環境。該數據集共1.58 GB,11 197 705個原始日志,復雜且能夠模擬一個動態環境[2]。此數據集共近39小時原始日志數據。模擬在線環境時,取第一個小時內所有原始數據(OneHou-HDFS)進行日志分析,通過專家領域專家手動標記,共188 723條日志,特征提取后生成14 771條日志序列,其中異常數據659條,正常數據14 112條。系統異常包括對文件存儲塊的增加,移動和刪除操作異常,如表1所示。

表1 數據集時間信息

在2.3節中可以觀察到當傳統檢測算法在面對概念漂移問題時會存在顯著的性能下降,使模型無法做出準確的決策。本文通過p值動態更新校準集的方式在線檢測系統日志,能夠成功抵抗在線檢測中的概念漂移,達到Retrain時的性能水平。

3.3 評估指標

本文中使用準確度(Accuracy)、精確度(Precision)、召回率(Recall)和F-Score對在線模型進行性能上的評估,通過檢測時長評估模型的檢測速度。

本文通過混淆矩陣中TP、TN、FP和FN,根據式(5)-式(7)計算準確度、精確度和召回率。

(5)

(6)

(7)

精確度的提高說明誤報率較低,正常日志極少被錯誤地檢測為異常日志;召回率的提高說明漏報率較低,異常日志極少被錯誤地檢測為正常日志。

加權調和平均數F-Score對是基于精確度和召回率定義的,是對精確度、召回率的一種權衡,定義為:

(8)

式中:β為參數,當β=1時,稱為F1,此時認為精確度與召回率同等重要;當β<1時,則認為精確度比召回率重要;當β>1時,則認為精確度不如召回率重要,此時另β=2得到F2。精確度和召回率評估時,理想情況下做到兩個指標都高當然最好,但在實際中需要根據具體情況做出取舍,例如異常檢測時,由于檢測出對系統不利的異常更加重要,所以在保證精確度的條件下,盡量提升召回率。

3.4 概念漂移識別

如第1節中提到的,在給定的數據流上檢測時,可以考慮分類精度的變化,如準確度、召回率和F-Score,來觀察概念漂移問題。在基于系統日志的異常檢測中,實時到達的日志數據樣本引起的概念漂移反映在算法的召回率和精確度的降低上。在解決在線異常檢測中的概念漂移之前,本文將數據集模擬為一個動態環境,使用訓練集擬合的模型檢測了測試集日志數據,使用邏輯回歸作為異常檢測函數時的異常檢測結果。

如圖5所示,在面對概念漂移問題時,數據集的召回率最多會降低60%以上,意味著更少的異常被檢測出來,精確度、F-Score也都出現了不同程度的降低。該算法無法在急劇變化的環境下及時地做出準確的決策。概念漂移的出現意味著惡意行為模式已經開始發生遷移,在實際生產環境中,概念漂移問題是無法完全避免和修復的,但是,可以在最大程度上對概念漂移做出適應,限制概念漂移的范圍。

圖5 傳統檢測算法在HDFS數據集上的評估結果

3.5 實驗結果分析

設置邏輯回歸(Logistic Regression,LR)異常檢測和Retrain實驗作為對比實驗。僅使用邏輯回歸算法訓練全部日志數據集中第一小時內的數據并建模。之后每一個窗口內的日志數據都使用這個模型進行異常檢測。很明顯,LR模型的檢測來源僅為一小時的日志數據,沒有抵抗概念漂移的能力。如圖6所示,LR的精確度平均為0.921。LR的時間復雜度主要為初次建模時間Om,由于COP計算p值與更新校準集的時間復雜度較低,與LR的之間整體性能相差不多,所以本次對比實驗中沒有展示LR與COP的時間開銷對比結果。

圖6 COP、LR和Retrain的實驗性能

Retrain中隨著時間的推移,每新接收一個窗口的日志數據塊,都需要將之前已經存儲的所有日志數據合并,將之作為訓練集。根據訓練集數據擬合邏輯回歸模型之后,對當前窗口內的日志數據序列檢測異常。Retrain是一種模擬增量學習的批處理方法,顯而易見的優點是能夠訓練過去所有的已有知識形成新的模型,如圖6(c)中所示,Retrain平均準確度在三種算法中最高,達到0.996。但是其他檢測結果表現較差,Retrain并不能高效地抵抗概念漂移的出現。新的概念漂移發生點可能會淹沒在舊的知識里,對于概念漂移反應較慢。同時它對時間和空間消耗也比較大,平均時間損耗為687.143 s。計算過程需要當前時間節點之前的全部的數據下載存儲。LR只能依靠最開始的模型來預測,導致它的精確度和準確度較三者中最低。而COP模型可以通過訓練少部分的知識,根據置信度更新校準集的方式達到和Retrain相近的性能結果,平均精確度、平均召回率以及平均F-Score為均為三者最高水平。同時COP在時間上表現優越,大大降低了檢測時間。

根據2.3節中對前一小時的數據分析,發現異常類日志數據的p值集中在0.000 141 713~0.027 634 096之間。所以實驗中將顯著性水平可以選擇設置為0.002左右。顯著性水平與最終決策相關,若將ε設置高于0.02,那么會有更多正常事件被誤判為異常事件。在更新校準集的時候,校準集中所代表正常的p值會越來越少,可以判斷為正常事件的置信度會越來越高,初期表現在檢測精度的降低和召回率以及F-Score的提升上。但是隨著時間的推移,越來越多的正常事件會被判斷為異常事件,導致完全拋棄了過去的模式,到第5個窗口時就已經幾乎完全檢測不到正常日志序列,檢測精確度僅為0.024,這種現象被稱為災難性的遺忘。但是也不能將ε設置過低,當ε=0.000 2時,幾乎不會有任何異常被檢測出來,從第一個窗口開始異常樣本數量只有6個,隨著時間的推移,異常樣本接近于零。具體檢測性能表現為精確度的提升以及召回率和F-Score的降低。

本次實驗中將顯著性水平設置ε=0.002。圖7表示COP、LR和Retrain在準確度、精確度、召回率和F-Score的對比實驗結果。COP的整體性能與LR和Retrain的實驗相比相對平穩。如圖7(a)中所示,Retrain由于數據量大,模型的準確度表現與COP模型相比趨向平穩,COP與LR模型檢測準確度隨著時間的推移存在波動。圖7(b)中Retrain在22個窗口之前均低于LR與COP的精確度,但是從第22個窗口開始,之后的窗口隨著時間推移經驗積累到一定程度之后模型擬合越來越精準,Retrain的精確度開始回升之后穩定在0.97左右。LR的檢測精確度最低為0.453,這意味著在第22個窗口中出現了模型判斷模糊的正常日志數據,發生了概念漂移。一直不變的LR模型將這些處于邊界上的正常數據誤報為異常數據,導致準確度降低。但是由于COP設置動態反饋的校準集能夠保持新的知識不斷更新,抵抗了窗口中發生的概念漂移,將精確度提升至0.79。圖7(c)中COP模型召回率相對LR和Retrain來講較穩定。LR在第7個窗口中召回率相較之前有所降低,出現將異常的數據判斷為正常數據的情況。本文提出的COP模型能夠通過控制顯著性水平區分正常數據和異常數據,減少了漏報數量,提升了召回率。圖7(d)和(e)表示精確度與召回率的綜合結果F-Score,COP整體表現相對LR和Retrain較好。圖7(f)中,在檢測時間上,Retrain的平均時間損耗687.144 s,是COP模型的近四倍,COP模型大大提升了時間效率。

(a) 三種算法準確度對比

4 結 語

針對目前大型在線系統自動化異常檢測的需求,本文提出了一個能夠根據置信度在線增量更新的系統日志異常檢測模型。它將當前的日志數據與之前的日志數據聯系起來,有效地緩解動態環境中概念漂移的問題。通過Hadoop分布式文件系統HDFS日志數據按照時間順序模擬實時動態的日志生成環境,COP模型可以高效地檢測數據集中的異常,得到與重訓練在精確度、召回率等相近的檢測結果,并降低檢測時間。

但是顯著性水平的選擇很大地影響了檢測精確度和召回率。如何更加準確地選擇合適的顯著性水平來增加模型的魯棒性,將成為接下來需要研究的問題。未來的工作可以進一步使用無監督機器學習算法以及深度學習算法,同時測試更多數據集來擬合更多復雜環境下的異常檢測,從而達到不依賴數據標記完成分布式系統和平臺背景下的在線日志異常檢測的目的。

猜你喜歡
精確度日志一致性
關注減污降碳協同的一致性和整體性
一名老黨員的工作日志
注重教、學、評一致性 提高一輪復習效率
IOl-master 700和Pentacam測量Kappa角一致性分析
研究核心素養呈現特征提高復習教學精確度
扶貧日志
“硬核”定位系統入駐兗礦集團,精確度以厘米計算
游學日志
基于事件觸發的多智能體輸入飽和一致性控制
一種基于粗集和SVM的Web日志挖掘模型
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合