曾閩川 方勇 許益家
迄今為止,基于日志的異常檢測(cè)研究已經(jīng)取得了很多進(jìn)展,然而,在現(xiàn)實(shí)條件下仍舊存在兩個(gè)挑戰(zhàn):(1) 是日志數(shù)據(jù)通常以“數(shù)據(jù)孤島”形式儲(chǔ)存在不同的服務(wù)器上,單一公司或組織的日志數(shù)據(jù)中異常樣本量不足,且異常模式較為固定,很難通過(guò)這些數(shù)據(jù)訓(xùn)練出一個(gè)準(zhǔn)確率高的檢測(cè)模型. 為了解決這個(gè)問(wèn)題,將不同來(lái)源的日志數(shù)據(jù)整合成更大的數(shù)據(jù)集可以提高模型訓(xùn)練的效果但可能會(huì)在數(shù)據(jù)傳輸過(guò)程中產(chǎn)生日志數(shù)據(jù)泄露問(wèn)題;(2) 是不同應(yīng)用系統(tǒng)類(lèi)型的日志數(shù)據(jù)通常在結(jié)構(gòu)和語(yǔ)法上存在差異,簡(jiǎn)單地整合并用于訓(xùn)練模型效果不佳. 基于以上原因,本文提出一種基于聯(lián)邦遷移學(xué)習(xí)的日志異常檢測(cè)模型訓(xùn)練框架LogFTL,該框架利用基于匹配平均的聯(lián)邦學(xué)習(xí)算法,在保證客戶端數(shù)據(jù)隱私安全的前提下于服務(wù)器聚合客戶端的模型參數(shù)形成全局模型,再將全局模型分發(fā)給客戶端并基于客戶端的本地?cái)?shù)據(jù)進(jìn)行遷移學(xué)習(xí),優(yōu)化客戶端本地模型針對(duì)自身常見(jiàn)異常行為的檢測(cè)能力. 經(jīng)過(guò)實(shí)驗(yàn)表明,本文提出的LogFTL框架在聯(lián)邦學(xué)習(xí)場(chǎng)景下效果超過(guò)了傳統(tǒng)的日志異常檢測(cè)方法,同時(shí)也證明了該框架中遷移學(xué)習(xí)的效果.
日志異常檢測(cè); 聯(lián)邦學(xué)習(xí); 遷移學(xué)習(xí); LSTM;? 數(shù)據(jù)孤島
TP391.1A2023.033002
收稿日期: 2023-01-04
基金項(xiàng)目: 國(guó)家自然科學(xué)基金(U20B2045)
作者簡(jiǎn)介: 曾閩川(1998-), 男, 四川樂(lè)山人, 碩士研究生, 研究方向?yàn)榫W(wǎng)絡(luò)信息對(duì)抗.E-mail: 2422342691@qq.com
通訊作者: 許益家.E-mail: xuyijia@stu.scu.edu.cn
Research on application system log anomaly detection based on federated transfer learning
ZENG Min-Chuan, FANG Yong, XU Yi-Jia
(School of Cyber Science and Engineering, Sichuan University, Chengdu 610065, China)
Significant progress has been made in the research of log anomaly detection. However, two challenges still exist in reality. Firstly, log data is often stored on different servers, creating "data islands", the number of abnormal samples in the log data of a single company or organization is insufficient and the abnormal patterns are relatively limited,? it is a challenge to train a detection model with high accuracy through these data. Integrating log data from different sources can improve the model's performance but may result in log data leakage during transmission; Secondly,the log data of different application system types varies in log structure and syntax, and simple integration for training models is ineffective. To address these issues, this paper proposes a log anomaly detection training framework called? LogFTL based on federated transfer learning, which uses federated learning algorithm based on matching average. On the premise of ensuring the privacy and security of the client's data, LogFTL aggregates the model parameters of the client on the server side to form a global model which is then distributed? to the client side.? Using the client's local data, the LogFTL framework migrates and learns to optimize the clients local model and? the detection effect of local log data is improved.The experiment resluts show that the LogFTL framework proposed in this paper outperforms traditional log anomaly detection methods in federated learning scenarios, and demonstrate the? transfer learning effectiveness of LogFTL.
Log anomaly detection; Federal learning; Transfer learning; LSTM; Data islands
1 引 言
隨著云計(jì)算產(chǎn)業(yè)的蓬勃發(fā)展,眾多應(yīng)用系統(tǒng)、業(yè)務(wù)系統(tǒng)依托分布式服務(wù)器構(gòu)建計(jì)算集群,導(dǎo)致服務(wù)器數(shù)量快速增長(zhǎng),同時(shí)對(duì)服務(wù)器的穩(wěn)定性和可靠性有較高的要求. 系統(tǒng)出現(xiàn)異??赡芤l(fā)程度較為嚴(yán)重的后果,導(dǎo)致直接或間接損失[1]. 如果能夠及時(shí)、準(zhǔn)確地對(duì)系統(tǒng)產(chǎn)生的異常進(jìn)行檢測(cè),能夠幫助提高運(yùn)維人員的響應(yīng)速度,增加解決異常的應(yīng)急時(shí)間,提高各類(lèi)應(yīng)用系統(tǒng)的穩(wěn)定性.
運(yùn)行日志記錄著應(yīng)用系統(tǒng)中不同級(jí)別的運(yùn)行信息,是判斷軟件系統(tǒng)運(yùn)行狀態(tài)的重要數(shù)據(jù). 通過(guò)分析日志數(shù)據(jù)能夠檢測(cè)出應(yīng)用系統(tǒng)異常并定位問(wèn)題產(chǎn)生原因[2-5]. 現(xiàn)有的基于日志的應(yīng)用系統(tǒng)異常檢測(cè)存在兩個(gè)挑戰(zhàn):(1)日志數(shù)據(jù)以“數(shù)據(jù)孤島”形式存在于不同服務(wù)器中且同一應(yīng)用系統(tǒng)日志數(shù)據(jù)中的異常模式較為固定. 在實(shí)際環(huán)境中,不同的組織、機(jī)構(gòu)各自擁有大量的日志,但日志數(shù)據(jù)中往往包含眾多敏感數(shù)據(jù),直接共享這些數(shù)據(jù)可能會(huì)產(chǎn)生隱私泄露問(wèn)題,因此形成了“數(shù)據(jù)孤島”問(wèn)題. 并且日志數(shù)據(jù)作為運(yùn)行信息的記錄,正常樣本數(shù)量占比遠(yuǎn)大于異常樣本數(shù)量,這些日志數(shù)據(jù)中只有一小部分包含有價(jià)值的信息. 同時(shí),單一應(yīng)用系統(tǒng)由于其執(zhí)行的業(yè)務(wù)和功能可能觸發(fā)的異常行為模型較為固定,通過(guò)單一來(lái)源的日志數(shù)據(jù)訓(xùn)練出來(lái)的模型只能學(xué)習(xí)到一部分異常行為模型.(2)不同類(lèi)型的日志在結(jié)構(gòu)和語(yǔ)法上存在差異. 例如常見(jiàn)的基于Hadoop的分布式文件系統(tǒng)就存在多種類(lèi)型的日志結(jié)構(gòu)和語(yǔ)法[5]. 針對(duì)每一種日志類(lèi)型訓(xùn)練一個(gè)檢測(cè)模型成本高昂,且對(duì)于數(shù)據(jù)較少的日志類(lèi)型效果不佳.
針對(duì)以上問(wèn)題,本文設(shè)計(jì)實(shí)現(xiàn)了一種基于聯(lián)邦遷移學(xué)習(xí)的應(yīng)用系統(tǒng)日志異常檢測(cè)框架(Log Anomaly Detection based on Federated Transfer Learning,LogFTL). LogFTL通過(guò)基于匹配平均的聯(lián)邦學(xué)習(xí)將不同參與者的本地模型進(jìn)行聚合以建立檢測(cè)能力更加全面的全局模型[7],同時(shí)能夠更好地保護(hù)用戶的隱私,打消參與機(jī)構(gòu)將自己數(shù)據(jù)分享給別人會(huì)產(chǎn)生隱私泄露問(wèn)題的顧慮. 然后利用遷移學(xué)習(xí)方法來(lái)實(shí)現(xiàn)不同類(lèi)型應(yīng)用系統(tǒng)日志數(shù)據(jù)之間的知識(shí)遷移,降低日志結(jié)構(gòu)和語(yǔ)法對(duì)模型訓(xùn)練效果的影響,既能讓本地模型擁有不同類(lèi)型應(yīng)用系統(tǒng)日志類(lèi)型的檢測(cè)能力又能提高本地模型對(duì)本地日志數(shù)據(jù)識(shí)別的準(zhǔn)確度. 本文的主要貢獻(xiàn)如下:(1) 提出并設(shè)計(jì)了一個(gè)基于聯(lián)邦遷移學(xué)習(xí)的應(yīng)用系統(tǒng)日志異常檢測(cè)框架LogFTL,該框架利用了基于匹配平均的聯(lián)邦學(xué)習(xí)方法和基于長(zhǎng)短期記憶網(wǎng)絡(luò)(Long Short-Term Memory, LSTM)的遷移學(xué)習(xí)方法,用于解決現(xiàn)實(shí)環(huán)境中日志數(shù)據(jù)量不足且不同類(lèi)型應(yīng)用系統(tǒng)日志數(shù)據(jù)結(jié)構(gòu)和語(yǔ)法存在差異的問(wèn)題;(2) 提出了一種基于長(zhǎng)短期記憶網(wǎng)絡(luò)的遷移學(xué)習(xí)方法,能夠基于LSTM模型實(shí)現(xiàn)聯(lián)邦學(xué)習(xí)條件下的遷移學(xué)習(xí),既能讓本地模型擁有不同類(lèi)型應(yīng)用系統(tǒng)日志的檢測(cè)能力又能保證本地模型對(duì)于本地應(yīng)用系統(tǒng)日志異常行為的檢測(cè)能力; (3) 使用真實(shí)的日志數(shù)據(jù)集對(duì)LogFTL進(jìn)行了充分的評(píng)估實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明,本文提出的方法在克服“數(shù)據(jù)孤島”問(wèn)題后檢測(cè)效果優(yōu)于現(xiàn)有的日志異常檢測(cè)方法.
2 相關(guān)工作
日志作為系統(tǒng)正常運(yùn)行狀態(tài)的記錄,每一條數(shù)據(jù)都承載系統(tǒng)的運(yùn)行信息. 通常而言,日志根據(jù)事件類(lèi)型使用不同的文本用以描述事件,同時(shí)根據(jù)具體的運(yùn)行狀態(tài)動(dòng)態(tài)生成參數(shù),直觀的如時(shí)間. 通過(guò)分析日志數(shù)據(jù),我們可以知道一個(gè)系統(tǒng)的運(yùn)行是否正常,如果不正常也能通過(guò)日志數(shù)據(jù)定位到問(wèn)題產(chǎn)生的原因和位置. 但是為了節(jié)省服務(wù)器存儲(chǔ)空間,提高系統(tǒng)運(yùn)行效率,大部分應(yīng)用系統(tǒng)很少以結(jié)構(gòu)化的方式對(duì)日志數(shù)據(jù)進(jìn)行處理,這提高了研究人員分析日志的難度. 因此當(dāng)前主流的日志異常檢測(cè)方法都需要首先對(duì)日志進(jìn)行解析后再訓(xùn)練異常檢測(cè)模型[8].
日志解析是將日志進(jìn)行結(jié)構(gòu)化,抽取出日志中的文本信息和參數(shù)信息. 一開(kāi)始,日志事件提取通過(guò)正則表達(dá)式來(lái)提?。?]. 然而這種方式對(duì)于正則表達(dá)式的設(shè)計(jì)要求很高,并且十分耗時(shí). 現(xiàn)階段日志解析最常用的方法是日志模板生成. 本文應(yīng)用Drain這一工具對(duì)日志數(shù)據(jù)進(jìn)行初步解析[10]. Drain基于一個(gè)固定深度的樹(shù),使用節(jié)點(diǎn)集合設(shè)計(jì)的規(guī)則來(lái)解析日志,是目前性能較好的日志解析方法.
基于日志的異常檢測(cè)算法可以分為有監(jiān)督學(xué)習(xí)方法和無(wú)監(jiān)督學(xué)習(xí)方法[11]. 有監(jiān)督學(xué)習(xí)包括邏輯回歸、決策樹(shù)[12]和SVM[13]. 雖然有監(jiān)督學(xué)習(xí)可以在異常檢測(cè)中獲得很高的性能,但是它需要大量帶有標(biāo)簽的訓(xùn)練數(shù)據(jù),在隱私安全的前提下難以獲得足夠的數(shù)據(jù)進(jìn)行訓(xùn)練,也不能同時(shí)針對(duì)多種應(yīng)用系統(tǒng)類(lèi)型日志.典型的無(wú)監(jiān)督學(xué)習(xí)方法有PCA[3]、LogCluster[14]和DeepLog[4]. PCA基于主成分分析的多元時(shí)間序列的降維方法依據(jù)累積貢獻(xiàn)率選擇主成分序列;LogCluster通過(guò)線性模式對(duì)日志異常進(jìn)行聚類(lèi);DeepLog從正常執(zhí)行中自動(dòng)學(xué)習(xí)日志模式,檢測(cè)時(shí)如果日志模式與正常執(zhí)行中學(xué)習(xí)到的模式存在偏離,則報(bào)告異常. 實(shí)際上,無(wú)監(jiān)督的方法在標(biāo)記的訓(xùn)練數(shù)據(jù)不完全可用的情況下是比較實(shí)用的,但它們中大多數(shù)的檢測(cè)精度較低. 隨著自然語(yǔ)言處理的快速發(fā)展,許多基于自然語(yǔ)言處理的方法被提出. 例如LogRobust利用注意力機(jī)制的雙向長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)來(lái)識(shí)別異常日志[15]. LogAnomaly根據(jù)事件的順序和數(shù)量信息發(fā)現(xiàn)異常日志[16].
隨著各方對(duì)“數(shù)據(jù)孤島”現(xiàn)象和隱私安全問(wèn)題愈發(fā)重視,基于聯(lián)邦學(xué)習(xí)的日志異常檢測(cè)算法也隨之出現(xiàn). 聯(lián)邦學(xué)習(xí)最早是由谷歌提出來(lái)的一種模型訓(xùn)練框架[17]. 它提出的目的是要解決分布式數(shù)據(jù)的敏感信息泄露問(wèn)題,能夠在每個(gè)全局迭代中聚合來(lái)自各個(gè)參與者的本地模型以更新全局模型.FLOGCNN方法設(shè)計(jì)了一個(gè)輕量級(jí)的卷積神經(jīng)網(wǎng)絡(luò)在聯(lián)邦學(xué)習(xí)場(chǎng)景下對(duì)日志異常行為進(jìn)行檢測(cè)[18].
而LogTransfer則通過(guò)遷移學(xué)習(xí)將源系統(tǒng)的日志數(shù)據(jù)知識(shí)遷移到目標(biāo)系統(tǒng)的日志檢測(cè)模型提高目標(biāo)系統(tǒng)的檢測(cè)能力,但是它只提高目標(biāo)系統(tǒng)的檢測(cè)能力,無(wú)法讓所有參與者受益[6].
3 研究方法
3.1 方法概述
LogFTL的目標(biāo)是在保障隱私安全的前提下,通過(guò)聯(lián)邦遷移學(xué)習(xí)將“數(shù)據(jù)孤島”場(chǎng)景下的日志數(shù)據(jù)進(jìn)行聚合并且實(shí)現(xiàn)不同類(lèi)型應(yīng)用系統(tǒng)日志數(shù)據(jù)的知識(shí)遷移. LogFTL的架構(gòu)如圖1所示. 我們假設(shè)有N個(gè)參與者愿意參與目標(biāo)模型的訓(xùn)練,并有一個(gè)服務(wù)器S負(fù)責(zé)聚合全局模型,使用{C1,C2,C3,…,CN}來(lái)表示參與者,使用{D1,D2,D3,…,DN}表示他們提供的數(shù)據(jù). 我們要利用這些分布在不同組織中的數(shù)據(jù)訓(xùn)練出各自的本地模型{M1,M2,M3,…,MN},并將這些本地模型的參數(shù)上傳到服務(wù)器S聚合成全局模型MFED,其中任何用戶Ci不將其數(shù)據(jù)Di暴露給其他參與者和服務(wù)端S. 整個(gè)方法包含以下4個(gè)步驟.
(1) 日志數(shù)據(jù)表征構(gòu)建. LogFTL將所有參與者的日志數(shù)據(jù)通過(guò)Drain進(jìn)行日志解析,提取日志模板,并且將日志樣本與模板進(jìn)行匹配后進(jìn)行標(biāo)識(shí). 在對(duì)日志進(jìn)行解析后,一條日志樣本被表述為由多條日志數(shù)據(jù)組成的日志序列,其中每條日志數(shù)據(jù)有其對(duì)應(yīng)模板的標(biāo)識(shí). 為了捕捉日志的語(yǔ)義信息,我們利用通過(guò)word2vec[20]預(yù)訓(xùn)練單詞向量來(lái)替換相應(yīng)的標(biāo)識(shí). 通過(guò)這種方式,模板的表示方法將語(yǔ)法的影響降到最低,同時(shí)保留了日志的語(yǔ)義信息.
(2) 訓(xùn)練初始模型與分發(fā)給用戶. 在服務(wù)器端利用初始日志數(shù)據(jù)訓(xùn)練初始的全局模型,并將其模型參數(shù)分發(fā)給所有參與訓(xùn)練的用戶.
(3) 使用聯(lián)邦學(xué)習(xí)聚合用戶本地模型參數(shù). 每個(gè)用戶可以在初始模型上基于各自的數(shù)據(jù)上訓(xùn)練本地模型,訓(xùn)練完成之后將本地模型上傳到服務(wù)器端聚合至全局模型.
(4) 使用遷移學(xué)習(xí)增強(qiáng)本地模型對(duì)于本地日志數(shù)據(jù)的檢測(cè)能力. 將全局模型分發(fā)給參與者后,讓參與者通過(guò)遷移學(xué)習(xí)在本地?cái)?shù)據(jù)上對(duì)模型進(jìn)行遷移學(xué)習(xí)訓(xùn)練以獲得更適用于當(dāng)前參與者場(chǎng)景的本地模型.
本文提出方法的總體框架如圖1所示.
3.2 日志數(shù)據(jù)表征構(gòu)建
進(jìn)行日志數(shù)據(jù)表征構(gòu)建的目的是為了最大限度地保留日志的語(yǔ)義信息,同時(shí)盡量減少語(yǔ)法的影響. 在對(duì)原始的日志數(shù)據(jù)進(jìn)行表征構(gòu)建轉(zhuǎn)化成日志序列向量后,這些向量將被作為本地模型訓(xùn)練的輸入.我們首先使用Drain對(duì)原始日志文本進(jìn)行解析,輸出解析后的日志模板以及與原日志文本一一對(duì)應(yīng)的日志結(jié)構(gòu)化數(shù)據(jù). 將日志按照區(qū)塊進(jìn)行整理后形成日志序列,再將日志序列中的每一個(gè)日志事件與其模板進(jìn)行映射,最終得到一個(gè)以日志模板表示的日志序列;之后,通過(guò)word2vec對(duì)整個(gè)日志序列進(jìn)行詞嵌入,得到該日志序列的向量化表達(dá). 其過(guò)程如圖2所示.
3.3 基于匹配平均算法的聯(lián)邦學(xué)習(xí)
LogFTL采用基于匹配平均的聯(lián)邦學(xué)習(xí)算法實(shí)現(xiàn)全局模型的聚合[7].基于匹配平均的聯(lián)邦學(xué)習(xí)算法通過(guò)對(duì)具有相似特征提取標(biāo)志的隱藏元素進(jìn)行匹配和均值計(jì)算,以分層方式構(gòu)建共享全局模型. 隱藏元素包括卷積層的通道、長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)的隱藏狀態(tài)、完全連接層的神經(jīng)元等. 考慮一個(gè)基本的循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN),ht=σ(ht-1H+xtW),其中H∈瘙綆L×L是隱藏權(quán)重到隱藏權(quán)重的置換不變量,L是隱藏單元的數(shù)量,W是隱藏權(quán)重的輸入.為了說(shuō)明RNN隱藏狀態(tài)的置換不變性,我們注意到ht的維數(shù)應(yīng)該以與任何t相同的方式進(jìn)行置換,因此,有
ht=σht-1ΠTHΠ+xtWΠ(1)
其中,Π是L×L的置換矩陣. 為了匹配循環(huán)神經(jīng)網(wǎng)絡(luò)RNN,基本的子問(wèn)題是將兩個(gè)具有歐幾里德相似性的客戶端的隱藏權(quán)重對(duì)齊. 這就需要在排列Π上對(duì)||ΠTHjΠ-HJ′|22進(jìn)行最小化. 利用置換不變性,聯(lián)邦學(xué)習(xí)全局模型的隱藏權(quán)重能夠被計(jì)算為H=1j∑jΠjHhΠTj . LSTM具有多個(gè)單元狀態(tài),每個(gè)單元狀態(tài)都具有隱藏到隱藏的單個(gè)單元狀態(tài)和隱藏權(quán)重的輸入. 當(dāng)計(jì)算置換矩陣時(shí),我們將隱藏權(quán)重的輸入堆疊成SD×L權(quán)重矩陣(S是單元狀態(tài)的數(shù)量;D是輸入維度;L是隱藏狀態(tài)的數(shù)量),然后通過(guò)式(2)平均所有權(quán)重.
minπjli∑Li=1∑j,lminθiπjlicwjl,θis.t.
∑iπjli=1j,l;∑lπjli=1i,j(2)
其中wjl表示在客戶端j上學(xué)習(xí)的第l個(gè)神經(jīng)元;θi表示全局模型的第i個(gè)神經(jīng)元;c·,·是兩個(gè)神經(jīng)元之間的平方歐式距離相似函數(shù);πjli是客戶端j提供的置換矩陣.
用戶端在本地訓(xùn)練時(shí)根據(jù)損失函數(shù)計(jì)算梯度并更新本地模型參數(shù)權(quán)重.最后服務(wù)器端聚合用戶端上傳的模型參數(shù).我們使用fS表示我們將要訓(xùn)練的全局模型,訓(xùn)練目標(biāo)可以表示為:
argminΘL=∑ni=1lyi,fSxi(3)
其中,l·,·表示全局網(wǎng)絡(luò)的損失;例如分類(lèi)任務(wù)的交叉熵?fù)p失.{xi,yi}ni=1是所有樣本和他們的標(biāo)簽.Θ表示所有需要學(xué)習(xí)的參數(shù),比如權(quán)重和偏差.在獲得初始的全局模型后,它將被分發(fā)給所有用戶,在我們的框架中,用戶數(shù)據(jù)的分享和傳輸是被禁止的. 在所有的用戶模型訓(xùn)練完成后,用戶模型的參數(shù)被上傳到服務(wù)器上進(jìn)行聚合對(duì)于參與者,其學(xué)習(xí)目標(biāo)可以表示為:
argminΘuLu=∑nui=1lyui,fuxui(4)
3.4 基于長(zhǎng)短期記憶網(wǎng)絡(luò)的遷移學(xué)習(xí)
聯(lián)邦學(xué)習(xí)能夠打消參與者共享日志數(shù)據(jù)時(shí)發(fā)生數(shù)據(jù)隱私泄露問(wèn)題的顧慮從而解決“數(shù)據(jù)孤島”的問(wèn)題,進(jìn)而幫助我們使用不同來(lái)源不同類(lèi)型的日志數(shù)據(jù)對(duì)模型進(jìn)行訓(xùn)練.通過(guò)聯(lián)邦訓(xùn)練得到的全局模型是對(duì)所有用戶數(shù)據(jù)信息的聚合.
全局模型能夠?qū)W習(xí)到更多不同應(yīng)用系統(tǒng)類(lèi)型的日志數(shù)據(jù)知識(shí),但是不同類(lèi)型應(yīng)用系統(tǒng)的日志數(shù)據(jù)其結(jié)構(gòu)和語(yǔ)法存在差異,反而可能導(dǎo)致本地模型對(duì)本地日志數(shù)據(jù)類(lèi)型檢測(cè)效果變差,因此需要通過(guò)遷移學(xué)習(xí)對(duì)本地模型進(jìn)行重新訓(xùn)練以獲得一個(gè)能夠保證本地異常行為檢測(cè)效果的本地模型. 為此我們?cè)O(shè)計(jì)了一個(gè)專(zhuān)門(mén)用于LogFTL框架的LSTM模型,并基于該模型實(shí)現(xiàn)遷移學(xué)習(xí). LSTM網(wǎng)絡(luò)在日志異常檢測(cè)方法中經(jīng)常被使用. 在LogFTL框架的遷移學(xué)習(xí)過(guò)程中,客戶端在接收到服務(wù)端傳輸回來(lái)的模型后使用本地日志序列對(duì)LSTM網(wǎng)絡(luò)的全連接層進(jìn)行重訓(xùn)練. 遷移學(xué)習(xí)的具體過(guò)程如圖3所示.
4 實(shí) 驗(yàn)
4.1 基本設(shè)置
4.1.1 數(shù)據(jù)集 為了評(píng)估LogFTL的性能,我們使用了兩個(gè)公共數(shù)據(jù)集進(jìn)行了實(shí)驗(yàn):(1)從Hadoop應(yīng)用中收集的Hadoop應(yīng)用數(shù)據(jù)集[14];(2)從Hadoop文件系統(tǒng)中收集的HDFS數(shù)據(jù)集[6]. 我們對(duì)上述兩個(gè)數(shù)據(jù)集進(jìn)行數(shù)據(jù)預(yù)處理及日志表征構(gòu)建. 使用Drain對(duì)日志數(shù)據(jù)進(jìn)行模板解析并將其轉(zhuǎn)化為向量序列,每個(gè)序列代表一個(gè)樣本. 轉(zhuǎn)化后Hadoop應(yīng)用數(shù)據(jù)集共有193 000條數(shù)據(jù),其中正常樣本數(shù)120 000條,異常樣本數(shù)73 000條;HDFS數(shù)據(jù)集共有3 833 000條數(shù)據(jù),其中正常樣本數(shù)3 725 000條,異常樣本數(shù)108 000條. 詳細(xì)信息如表1.
4.1.2 實(shí)驗(yàn)設(shè)置 本文基于聯(lián)邦遷移學(xué)習(xí)方法對(duì)應(yīng)用系統(tǒng)日志進(jìn)行異常檢測(cè).為模擬聯(lián)邦學(xué)習(xí)場(chǎng)景,將Hadoop應(yīng)用數(shù)據(jù)集根據(jù)50%,30%,10%的比例隨機(jī)劃分為3部分,作為3個(gè)客戶端的本地?cái)?shù)據(jù),以體現(xiàn)實(shí)際環(huán)境中各參與者日志樣本量不同的情況,對(duì)應(yīng)的客戶端命名為C1、C2、C3,并將這些數(shù)據(jù)中的70%用做訓(xùn)練集,30%用做測(cè)試集.將HDFS數(shù)據(jù)集以相同比例劃分,對(duì)應(yīng)的客戶端命名為C4,C5,C6. 兩個(gè)數(shù)據(jù)集剩下的10%數(shù)據(jù)混合后用來(lái)驗(yàn)證模型是否能夠檢測(cè)不同類(lèi)型應(yīng)用系統(tǒng)日志數(shù)據(jù)的異常樣本,命名為Server.最終獲得對(duì)應(yīng)6個(gè)客戶端的子數(shù)據(jù)集和對(duì)應(yīng)混合類(lèi)型應(yīng)用系統(tǒng)日志的子數(shù)據(jù)集.為方便統(tǒng)計(jì)和計(jì)算,刪除了極少量的樣本,其數(shù)量占總樣本數(shù)不到0.1%.實(shí)驗(yàn)數(shù)據(jù)集的具體劃分情況如表2所示. 在LogFTL框架中,我們將LSTM網(wǎng)絡(luò)設(shè)定為2層128個(gè)記憶單元的LSTM層和1層192個(gè)記憶單元的全連接層.
4.2 實(shí)驗(yàn)評(píng)估指標(biāo)
為評(píng)估檢測(cè)效果,本文使用精度(Precision)、召回率(Recall)、F1分?jǐn)?shù)(F1-Score)和準(zhǔn)確率(Accuracy)作為評(píng)估指標(biāo),其數(shù)學(xué)定義如下.
(1) 精度:正確判定的惡意樣本數(shù)量與所有判定為惡意樣本的數(shù)量之比.
Precision=TPTP+FP
(2) 召回率:正確判定的惡意樣本數(shù)量與全部真正的惡意樣本數(shù)量之比.
Recall=TPTP+FN
(3) F1分?jǐn)?shù):精度和召回率的加權(quán)調(diào)和平均值.
F1-Score=2.Precision.RecallPrecision+Recall
(4) 準(zhǔn)確率:正確判定良性和惡意樣本的數(shù)量與所有樣本數(shù)量之比,簡(jiǎn)寫(xiě)為Acc.
Acc=TP+TNTP+TN+FP+FN
4.3 聯(lián)邦遷移學(xué)習(xí)框架效果評(píng)估實(shí)驗(yàn)
本文提出的基于聯(lián)邦遷移學(xué)習(xí)的日志異常檢測(cè)方法其核心目標(biāo)是為了在數(shù)據(jù)獨(dú)立存在于不同位置且因?yàn)殡[私問(wèn)題無(wú)法直接共享的前提下,利用聯(lián)邦學(xué)習(xí)以隱私安全且模型參數(shù)加密的方式聚合出一個(gè)學(xué)習(xí)到不同客戶端不同應(yīng)用系統(tǒng)類(lèi)型日志數(shù)據(jù)的全局模型,再將全局模型分發(fā)給參與者利用遷移學(xué)習(xí)強(qiáng)化其針對(duì)本地日志數(shù)據(jù)的檢測(cè)能力. 表3表明,所有客戶端在經(jīng)過(guò)聯(lián)邦遷移學(xué)習(xí)之后在本地?cái)?shù)據(jù)集的檢測(cè)結(jié)果.
上述實(shí)驗(yàn)表明,本文提出的聯(lián)邦遷移學(xué)習(xí)算法,在檢測(cè)客戶端本地應(yīng)用系統(tǒng)類(lèi)型的日志數(shù)據(jù)的異常上有較好的表現(xiàn),平均達(dá)到了90.06%的準(zhǔn)確率. 表4表明,所有客戶端在經(jīng)過(guò)聯(lián)邦遷移學(xué)習(xí)之后在Server數(shù)據(jù)集的檢測(cè)結(jié)果.
通過(guò)對(duì)不同類(lèi)型應(yīng)用系統(tǒng)日志混合數(shù)據(jù)集Server的檢測(cè)效果實(shí)驗(yàn),也證明了在沒(méi)有與其他客戶端共享日志的條件下,聯(lián)邦遷移學(xué)習(xí)讓本地模型擁有檢測(cè)其他類(lèi)型應(yīng)用系統(tǒng)日志異常數(shù)據(jù)異常的能力,平均達(dá)到了88.2%的準(zhǔn)確率.
為了進(jìn)一步評(píng)估LogFTL檢測(cè)混合類(lèi)型應(yīng)用系統(tǒng)日志的效果,我們將其與4種有監(jiān)督的基于日志的異常檢測(cè)方法,包括線性回歸、SVM、決策樹(shù)和CNN模型以及4種無(wú)監(jiān)督的方法,包括PCA、LogCluster、LogAnomaly、DeepLog進(jìn)行對(duì)比. 圖4記錄了使用不同方法在Server數(shù)據(jù)集上的測(cè)試結(jié)果. 實(shí)驗(yàn)結(jié)果表明,我們的方法通過(guò)聚合位于不同客戶端的數(shù)據(jù),能夠比傳統(tǒng)的有監(jiān)督學(xué)習(xí)方法和無(wú)監(jiān)督學(xué)習(xí)方法學(xué)習(xí)到更多異常模式.在本地?cái)?shù)據(jù)樣本不足的情況下,本文方法的準(zhǔn)確率要高于其他檢測(cè)方法,達(dá)到了88.25%,證明了LogFTL能夠在不影響隱私安全的前提下,將處于不同客戶端的數(shù)據(jù)以聯(lián)邦學(xué)習(xí)的方式進(jìn)行聚合.
4.4 遷移學(xué)習(xí)效果評(píng)估實(shí)驗(yàn)
為了證明LogFTL框架遷移學(xué)習(xí)的有效性,我們比較了使用了遷移學(xué)習(xí)和沒(méi)有遷移學(xué)習(xí)的LogFTL的效果, 其結(jié)果如表5所示. 顯然,使用遷移學(xué)習(xí)確實(shí)提高了LogFTL框架檢測(cè)異常的準(zhǔn)確率.
5 結(jié) 論
本文分析了現(xiàn)有日志數(shù)據(jù)異常檢測(cè)中存在的隱私泄露風(fēng)險(xiǎn),提出了一種基于聯(lián)邦遷移學(xué)習(xí)的應(yīng)用系統(tǒng)日志的異常檢測(cè)方法. 該方法基于長(zhǎng)短期記憶網(wǎng)絡(luò)構(gòu)建基礎(chǔ)模型,在保證參與者數(shù)據(jù)隱私的前提下,通過(guò)聯(lián)邦學(xué)習(xí)框架解決了日志數(shù)據(jù)的“數(shù)據(jù)孤島”問(wèn)題和不同應(yīng)用系統(tǒng)類(lèi)型日志的結(jié)構(gòu)和語(yǔ)法差異問(wèn)題,并采用遷移學(xué)習(xí)的方法解決聯(lián)邦學(xué)習(xí)全局模型本地化后檢測(cè)效果降低的情況. 我們?cè)趦煞N數(shù)據(jù)集下進(jìn)行了多場(chǎng)景的實(shí)驗(yàn),證明了LogFTL方法在聯(lián)邦學(xué)習(xí)的場(chǎng)景下,不僅具有最好的模型性能,還能夠保證隱私和數(shù)據(jù)的安全.
參考文獻(xiàn):
[1] Chen J, Zhang S, He X, et al. How incidental are the incidents?:characterizing and prioritizing incidents for largescale online service systems [C]// Proceedings of the? 35 th IEEE/ACM International Conference on Automated Soft-ware Engineering. New York: ACM, 2020: 373.
[2] 張穎君, 劉尚奇, 楊牧, 等. 基于日志的異常檢測(cè)技術(shù)綜述 [J]. 網(wǎng)絡(luò)與信息安全學(xué)報(bào), 2020, 6: 1.
[3] 黃緯, 黃曉華, 張?jiān)矗?等. 基于Git日志的即時(shí)軟件質(zhì)量分析框架[J].吉林大學(xué)學(xué)報(bào): 理學(xué)版,? 2022, 60: 135.
[4] Xu W, Huang L, Fox A,et al. Detecting large-scale system problems by mining console logs [C]//Proceedings of the ACM SIGOPS 22nd Symposium on Operating systems Principles. New York: ACM, 2009: 117.
[5] Du M, Li F, Zheng G, et al. Deeplog: Anomaly detection? and diagnosis from system logs through deep learning [C]//Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security. New York: ACM, 2017: 1285.
[6] Karun A K, Chitharanjan K. A review on hadoop——HDFS infrastructure extensions [C]//Proceedings of the 2013 IEEE Conference on Information & Communication Technologies. Thuckalay: IEEE, 2013: 132.
[7] Chen R, Zhang S, Li D, et al. Logtransfer: Cross-system log anomaly detection for software systems with transfer learning [C]//Proceedings of the 2020 IEEE 31st Internation-al Symposium on Software Reliability Engineering. Coimbra: IEEE, 2020: 37.
[8] Wang H, Yurochkin M, Sun Y, et al. Federated learning? with matched averaging [EB/OL]. [2022-02-15]. https://arxiv.org/pdf/2002.06440.pdf.
[9] He S, Zhu J, He P, et al. Experience report: System log analysis for anomaly detection [C]//2016 IEEE 27th International Symposium on Software Reliability Engineering. Ottawa: IEEE, 2016: 207.
[10] Zhu J, He S, Liu J, et al. Tools and benchmarks for autom-ated log parsing [C]//Proceedings of the 2019 IEEE/ACM 41st International Conference on Software Engineering: Software Engineering in Practice. Montreal: IEEE, 2019: 121.
[11] He P, Zhu J, Zheng Z, et al. Drain: an online log parsing? approach with fixed depth tree [C]//Proceedings of the 2017 IEEE International Conference on Web Services.Montreal: IEEE, 2017: 33.
[12] 閆力, 夏偉.基于機(jī)器學(xué)習(xí)的日志異常檢測(cè)綜述[J].計(jì)算機(jī)系統(tǒng)應(yīng)用, 2022, 31: 57.
[13] Chen M, Zheng A X, Lloyd J, et al. Failure diagnosis using decision trees [C]//Proceedings of the International Conference on Autonomic Computing. New York: IEEE, 2004: 36.
[14] Liang Y, Zhang Y, Xiong H, et al. Failure prediction in ib-m bluegene/l event logs [C]//Proceedings of the 7 th IEEE International Conference on Data Mining. Omaha: IEEE, 2007: 583.
[15] Lin Q, Zhang H, Lou J G, et al. Log clustering based problem identification for online service systems[C]//Proceedings of the 2016 IEEE/ACM 38th International Conference on Software Engineering Companion. Austin Texas: ACM, 2016: 102.
[16] Zhang X, Xu Y, Lin Q, et al. Robust log-based anomaly detection on unstable log data [C]//Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. Tallinn Estonia: ACM, 2019: 807.
[17] Meng W, Liu Y, Zhu Y, et al. LogAnomaly: Unsupervised detection of sequential and quantitative anomalies in unstructured logs [C]//Proceedings of the 2019 International Joint Conferences on Artificial Intelligence.Macao: IJCAI, 2019: 4739.
[18] Konecny J, McMahan H B, Ramage D, et al. Federated optimization: Distributed machine learning for on-device intelligence [EB/OL].[2016-08-08]. https://arxiv.org/pdf/1610.02527.pdf.
[19] Guo Y, Wu Y, Zhu Y, et al. Anomaly detection using distributed log data: a lightweight federated learning approach [C]//Proceedings of the 2021 International Joint Conference on Neural Networks (IJCNN). Shenzhen: IEEE, 2021: 1.
[20] Xu W, Huang L, Fox A, et al. Online system problem detection by mining patterns of console logs[C]//Proceedings of the 9 th IEEE International Conference on Data Mining. [S.l.]:IEEE, 2009: 588.
[21] Mikolov T, Chen K, Corrado G, et al. Efficient estimation of word representations in vector space [EB/OL]. [2013-06-16]. https://arxiv.org/pdf/1301.3781.pdf.
[22] Wang J, Tang Y, He S, et al. LogEvent2vec: LogEvent-to-vector based anomaly detection for large-scale logs in internet of things [J]. Sensors, 2020, 20: 2451.
引用本文格式:
中 文: 曾閩川, 方勇, 許益家. 基于聯(lián)邦遷移學(xué)習(xí)的應(yīng)用系統(tǒng)日志異常檢測(cè)研究[J]. 四川大學(xué)學(xué)報(bào): 自然科學(xué)版, 2023, 60: 033002.
英 文: Zeng M C, Fang Y, Xu Y J. Research on application system log anomaly detection based on federated transfer learning [J]. J Sichuan Univ: Nat Sci Ed, 2023, 60: 033002.