梁猛
?
大數(shù)據(jù)平臺基于機器學(xué)習(xí)的安全審計異常檢測
梁猛
中國移動通信集團廣東有限公司網(wǎng)絡(luò)管理中心,廣東 廣州 510623
通信運營商的網(wǎng)絡(luò)大數(shù)據(jù)平臺存儲了大量包含用戶敏感信息的數(shù)據(jù),必須通過強有力的技術(shù)手段確保平臺數(shù)據(jù)不被泄露。傳統(tǒng)的基于規(guī)則的審計方式無法滿足對海量日志下安全審計工作及時性和準(zhǔn)確性的要求,而基于機器學(xué)習(xí)的方法近年在大數(shù)據(jù)上的應(yīng)用發(fā)展迅速。綜合考慮了安全審計工作在不同的日志類型中的通用性、及時性及準(zhǔn)確性等多方面的要求,提出層次聚類與孤立森林相結(jié)合的方法,用于數(shù)據(jù)共享平臺上海量日志的異常檢測。
安全審計;機器學(xué)習(xí);層次聚類;孤立森林;異常檢測
隨著網(wǎng)絡(luò)大數(shù)據(jù)平臺應(yīng)用到各個業(yè)務(wù)層級,接入的數(shù)據(jù)量不斷增加,集群規(guī)模不斷擴大,系統(tǒng)日志量急速增長?;趥鹘y(tǒng)以規(guī)則為導(dǎo)向的安全審計,存在規(guī)則更新成本高、審計范圍大等問題。近年來,機器學(xué)習(xí)技術(shù)在各個傳統(tǒng)領(lǐng)域大放異彩,提供了許多創(chuàng)新性的行業(yè)解決方案[1]。一般思路是,把現(xiàn)實世界中遇到的問題建成相應(yīng)的數(shù)學(xué)模型,并用歷史數(shù)據(jù)去訓(xùn)練模型,最終讓模型得到較為精準(zhǔn)的判斷力。與傳統(tǒng)方法相比,機器學(xué)習(xí)方法具有高自動化、基于數(shù)據(jù)驅(qū)動等特點,其中一個較為顯著的優(yōu)點是,可結(jié)合海量的特征對特定問題(如分類、回歸)進行預(yù)測或判斷。
本文提出基于機器學(xué)習(xí)的安全審計方法,基于系統(tǒng)操作、數(shù)據(jù)庫操作、組件操作等各類日志,通過層次聚類算法對日志中相似行為進行合并,標(biāo)記出若干類日志行為,在此基礎(chǔ)上抽象出不同賬號各類日志行為的頻次、密度等特征;把這些特征輸入孤立森林模型,輸出賬號所屬的每個行為的異常得分,并根據(jù)得分審計出各個行為的危險等級,最終把功能整合到大數(shù)據(jù)平臺的審計系統(tǒng)中。此方法提高了審計效率,實現(xiàn)了基于不同賬戶行為的差異化精準(zhǔn)審計,解決了傳統(tǒng)審計方式規(guī)則維護成本高、審計范圍過于粗放的問題。
異常檢測作為機器學(xué)習(xí)的一個細分領(lǐng)域,有著許多成熟的應(yīng)用方法。大致可分為兩種:一種是奇異點檢測,訓(xùn)練數(shù)據(jù)中不包含離群數(shù)據(jù),而我們對檢測新發(fā)現(xiàn)的樣本感興趣;另一種是異常點檢測,訓(xùn)練的數(shù)據(jù)中包含了離群數(shù)據(jù),我們需要匹配訓(xùn)練數(shù)據(jù)中的中心部分,而忽略掉異常點。
安全審計的場景更接近奇異點檢測,因為在安全審計針對的日志中,真正有危及數(shù)據(jù)安全意圖的操作往往極少,但是一旦發(fā)生,后果又是極其嚴(yán)重的。我們能獲得的日志數(shù)據(jù),即使真實存在異常樣本,在其被發(fā)現(xiàn)前,都是無法標(biāo)記的。在機器學(xué)習(xí)領(lǐng)域,這種方式被稱為無監(jiān)督學(xué)習(xí),其中典型的無監(jiān)督學(xué)習(xí)就是聚類。聚類和異常檢測在原理上有著高度的相似性,而且一定程度上可以互補結(jié)合。本文提出的基于層次聚類與孤立森林相結(jié)合的異常檢測方法,便是為了解決在安全審計的異常檢測任務(wù)中,普遍存在的大量離散特征(如SQL語句、操作命令等)的檢測難點。
在聚類的場景中,我們事先不知道樣本有哪些類型。聚類算法的核心,是根據(jù)距離、密度等度量屬性,以類內(nèi)距離盡可能小、類間距離盡可能大的原則,讓樣本自己形成若干個分群,再基于業(yè)務(wù)知識,根據(jù)各個分群的特點,得到分類標(biāo)簽。
在聚類算法中,較為知名的是K均值算法,以其較低的復(fù)雜度和較高的可解釋性被廣泛應(yīng)用,通過觀察該算法的邏輯,會發(fā)現(xiàn)其有一個應(yīng)用前提[2]。由于計算過程中需要迭代計算聚類中心,樣本需要具備可以計算均值的特性。然而,在現(xiàn)實情況中,很多場景是無法計算樣本均值的,但是同樣可以得到聚類結(jié)果。比如說比較不同文本的相似性,我們可以定義各種度量文本相似性的距離,如漢明距離、編輯距離等,但是我們無法對文本求均值。在這種場景下,層次距離較為適用。顧名思義,層次聚類就是一層一層地進行聚類,可以由上向下把大的類別分割,稱為分裂法;也可以由下向上對小的類別進行聚合,稱為凝聚法;但是一般用得比較多的是由下向上的凝聚方法。這種聚類算法,僅僅要求樣本間兩兩可計算距離即可,本文在安全審計涉及的日志中遇到的離散文本,即是通過該算法進行聚類,進而對聚類結(jié)果進行異常檢測。
作為一種工業(yè)界常用的異常檢測算法,孤立森林算法對內(nèi)存要求低,處理速度很快,可以很好地處理高維數(shù)據(jù)和大數(shù)據(jù),并且也可以作為在線異常檢測。孤立森林算法的功能通俗而言,就是在一大堆數(shù)據(jù)中,找出與其他數(shù)據(jù)規(guī)律不太符合的數(shù)據(jù)。孤立森林算法的構(gòu)建方法是在給定的數(shù)據(jù)中,把總體樣本隨機拆分成若干份,并基于每份樣本通過建立子樹,子樹不斷地往下生長延伸,其延伸的依據(jù)就是隨機選定樣本的一個特征,并在多個特征值中隨機選定一個特征值,對樣本進行劃分。隨著樹的生長,不斷地基于分割點把樣本重新劃分到不同的葉子節(jié)點上,當(dāng)樹的深度達到設(shè)定的高度,或者葉子節(jié)點里所有的樣本所有特征值都完全一樣時,子樹就停止生長。孤立森林算法異常檢測的原理認(rèn)為,與其他數(shù)據(jù)規(guī)律差異越大的數(shù)據(jù),越容易被快速劃分出來,達到子葉的終止生長條件。根據(jù)長成的各個子樹到達終止條件時需要的次數(shù)、樹的生長高度等指標(biāo),就可以計算各個樣本相對于給定樣本總體的異常得分。
在孤立森林中,“異?!北欢x為“容易被孤立的離群點”,可以將其理解為分布稀疏且離密度高的群體較遠的點。在特征空間里,分布稀疏的區(qū)域表示事件發(fā)生在該區(qū)域的概率很低,因而可以認(rèn)為落在這些區(qū)域里的數(shù)據(jù)是異常的。對于查找哪些點容易被孤立,孤立森林使用了一套非常高效的策略。在孤立森林中,遞歸地隨機分割數(shù)據(jù)集,直到所有的樣本點都是孤立的。孤立森林可以用于網(wǎng)絡(luò)安全中的攻擊檢測、金融交易欺詐檢測、疾病偵測和噪聲數(shù)據(jù)過濾等。
判斷用戶行為是否異常,是基于用戶行為出現(xiàn)的頻次、密度等屬性來判斷的,但是實際獲取到的日志數(shù)據(jù)中,很多日志之間只是個別參數(shù)不一樣,而其他部分都是一樣的。在業(yè)務(wù)人員的理解中,這屬于一類行為;在統(tǒng)計頻次、密度等時,應(yīng)計算在一起,而不應(yīng)算在不同的用戶行為類型下,比如同樣一個模式的SQL語句,可能只是在個別參數(shù)有細微差異,我們需要先把這種模式下的所有相似SQL語句合并。因此,我們需要合并這些相似的日志,把合并結(jié)果作為行為類型標(biāo)記。這種合并就需要通過層次聚類來完成。
層次聚類在整個異常檢測流程中,是在數(shù)據(jù)預(yù)處理及特征工程階段起作用的。在完成層次聚類合并后,我們才把得到的日志行為特征輸入孤立森林模型中訓(xùn)練并檢測。
基于系統(tǒng)操作日志、數(shù)據(jù)庫操作日志、組件操作日志等各類日志,通過層次聚類算法合并日志中包含的相似行為,標(biāo)記出若干類日志行為,在此基礎(chǔ)上,抽象出不同賬號各類日志行為的頻次、密度等特征,輸入孤立森林模型,輸出賬號所屬的每個行為的異常得分,并根據(jù)得分審計出各個行為的危險等級,最終把功能整合到大數(shù)據(jù)平臺的審計系統(tǒng)中,提高審計效率的同時,實現(xiàn)了基于不同賬戶行為的差異化精準(zhǔn)審計,并在兼容傳統(tǒng)基于規(guī)則的審計方式的同時,解決了傳統(tǒng)審計方式規(guī)則維護成本高、審計范圍過于粗放的問題[3]。
基于層次聚類與孤立森林相結(jié)合的異常檢測方法,從日志數(shù)據(jù)預(yù)處理到審計結(jié)果輸出,由三個部分的模塊完成,依次是數(shù)據(jù)預(yù)處理及特征提取模塊、模型訓(xùn)練模塊以及模型檢測輸出模塊。其中,模型檢測輸出模塊又分成兩個部分,分別是實時異常檢測模塊和批量異常檢測模塊,如圖1所示。
圖1 基于機器學(xué)習(xí)的安全審計異常檢測架構(gòu)圖
考慮到日志數(shù)據(jù)的可拓展性,預(yù)處理及特征提取模塊對日志數(shù)據(jù)的讀取方式抽象成三類,分別是從文件系統(tǒng)讀?。ò℉DFS及本地文件)、從關(guān)系型數(shù)據(jù)庫讀取及從ElasticSearch讀取。讀取到的日志數(shù)據(jù)經(jīng)過預(yù)處理后,由關(guān)系型數(shù)據(jù)庫表保存,存儲結(jié)果如表1。
表1 安全審計的數(shù)據(jù)預(yù)處理及特征提取結(jié)果存儲結(jié)構(gòu)
在對大數(shù)據(jù)共享平臺上各日志類型的特征進行抽象后,我們形成了如下幾種類型的特征,包括源地址、目的地址、非法時段操作次數(shù)、單位時間內(nèi)數(shù)據(jù)量訪問大小、命令操作頻次等。選擇這些特征是由審計的業(yè)務(wù)層面決定的。從數(shù)據(jù)的安全性考慮,只要與數(shù)據(jù)安全有關(guān)的行為特征,都應(yīng)被審計。
不同的特征還需要進行不同二次處理。二次處理包括以相似特征值合并、特征值數(shù)值化處理兩個操作為核心的若干處理過程,如表2所示。
2.2.1 相似特征值合并
判斷用戶行為是否異常,是基于用戶行為出現(xiàn)的頻次、密度等屬性來判斷的,但是實際獲取到的日志數(shù)據(jù)中,很多日志之間,只是個別參數(shù)不一樣,而其他部分都是一樣的。在業(yè)務(wù)人員的理解中,這屬于一類行為。統(tǒng)計頻次、密度等應(yīng)計算在一起,而不應(yīng)算在不同的用戶行為類型下,比如同樣一個模式的SQL語句,可能只是在個別參數(shù)有細微差異,我們需要先把這種模式下的所有相似SQL語句合并。因此,我們需要合并這些相似的日志,把合并結(jié)果作為行為類型標(biāo)記。這種合并就需要通過層次聚類來完成[4]。
表2 安全審計的特征分類及二次處理方式
2.2.2 特征值數(shù)值化處理
在合并完成后,我們得到了每個特征字段包含的若干類行為。每類行為我們賦予一個數(shù)值ID,同屬一個行為ID的不同日志。對于行為頻次等特征,我們以合并后的行為ID來統(tǒng)計,而不是以原始日志特征值來統(tǒng)計;對于無法合并的,如源地址、目的地址等特征,我們則對給每個特征賦予一個數(shù)值ID,由此就完成了數(shù)值化處理的過程。之所以要進行數(shù)值化處理過程,是因為孤立森林算法要求輸入數(shù)據(jù)必須是數(shù)值形式。
以賬號最近三個月的行為特征為訓(xùn)練數(shù)據(jù),通過孤立森林算法,可以學(xué)習(xí)到賬號的正常行為輪廓,對于每個賬號輸入的行為特征,輸出其對應(yīng)的異常得分,進而根據(jù)異常得分判斷用戶行為是否異常。
由于機器學(xué)習(xí)輸出的異常只是基于算法本身考慮,在安全審計中,常常有一些基于規(guī)則的要求。這要求模型輸出結(jié)果具備可調(diào)整性。此外,訓(xùn)練模型的存儲和檢測效率問題也需要考慮。孤立森林模型輸出結(jié)果是以樹的形式保存的,不便于建模語言以外的編程語言調(diào)用[5]。
綜合上述因素,該階段輸出的模型訓(xùn)練結(jié)果將以規(guī)則的形式存儲在數(shù)據(jù)庫內(nèi),并定時更新。人工調(diào)用的規(guī)則可以通過前端配置的方式干預(yù)。如對于特定賬號的源地址異常檢測,機器學(xué)習(xí)輸出結(jié)果考慮了該賬號的過去訪問習(xí)慣而返回的異常得分;而在安全審計場景中,可能對于特定賬號特定源地址,需要直接給出正?;虍惓5呐袛唷_@種時候就可以通過修改規(guī)則數(shù)據(jù),修正機器學(xué)習(xí)算法給出的判斷。
由于在訓(xùn)練階段中,模型的訓(xùn)練結(jié)果是以關(guān)系型數(shù)據(jù)庫保存的,因此在檢測階段,只需要考慮與關(guān)系型數(shù)據(jù)庫對接即可,不需要直接調(diào)用模型。預(yù)處理及特征提取模塊實時采集日志數(shù)據(jù)并對其進行特征提?。荒P陀?xùn)練模塊定時根據(jù)存儲的歷史數(shù)據(jù)進行模型更新;模型檢測輸出模塊根據(jù)訓(xùn)練模塊的結(jié)果,輸出實時的檢測結(jié)果,檢測結(jié)果以異常得分體現(xiàn)。對于異常得分的閥值,模型本身有默認(rèn)值,但作為一個檢測參數(shù),該值可以通過前端配置的方式進行修改[6]。
在模型結(jié)果輸出階段,需要加載兩個模塊:一個是預(yù)處理及特征提取模塊;另一個是訓(xùn)練好的模型。
對于實時檢測場景,當(dāng)獲取到一條新日志時,數(shù)據(jù)采集模塊會首先把該日志推送到預(yù)處理及特征提取模塊,由于我們在歷史數(shù)據(jù)預(yù)處理及特征提取階段已經(jīng)把用戶可能出現(xiàn)的日志行為進行了合并分類,所以這時候只需要獲取到當(dāng)前新日志對于所屬分類及數(shù)值化ID,即可輸入歷史保存的模型中,得到異常檢測得分,并根據(jù)異常得分,映射到其風(fēng)險等級,再匹配到不同級別的告警輸出[7]。
對于批量檢測場景,即事后定期審計場景,與實施檢測場景的不同地方只在于輸入及輸出的數(shù)據(jù)量大小,而其他流程是完全一致的。
表3 審計方案的實際應(yīng)用場景
對于異常登錄檢測、敏感操作檢測等場景,傳統(tǒng)的審計由于方法的局限性,很多問題無法得到有效的審計和告警;而基于機器學(xué)習(xí)異常檢測算法,可以解決很多傳統(tǒng)審計方法無法解決的問題,如表3所示。
基于機器學(xué)習(xí)的安全審計異常檢測,可以在兼容傳統(tǒng)基于規(guī)則的審計方式的同時,解決傳統(tǒng)審計方式規(guī)則維護成本高、審計范圍過于粗放的問題。通過定期基于歷史數(shù)據(jù)對異常檢測模型進行訓(xùn)練,實現(xiàn)了規(guī)則自動更新和維護;通過對每個賬號進行單獨的模型構(gòu)建及預(yù)測,實現(xiàn)了以賬號為中心的精準(zhǔn)化審計;通過對各個時間點的各種日志行為輸出異常得分,讓安全審計可以對各賬號的行為異常程度進行量化,進而通過控制異常得分的閥值控制安全審計的范圍。
[1]Kiss I,Genge B,Haller P,et al. Data clustering-based anomaly detection in industrial control systems[C]//IEEE International Conference on Intelligent Computer Communication and Processing. IEEE,2014:275-281.
[2]Liu F T,Kai M T,Zhou Z H. Isolation Forest[J]. 2008:413-422.
[3]Wang K,Wang Y,Yin B. A Density-Based Anomaly Detection Method for MapReduce[C]//IEEE International Symposium on Network Computing and Applications. IEEE,2012:159-162.
[4]Liu J,Deng H F. Outlier detection on uncertain data based on local information[J]. Knowledge-Based Systems,2013,51(1):60-71.
[5]Babnik T,Aggarwal R K,Moore P J. Principal Component and Hierarchical Cluster Analyses as Applied to Transformer Partial Discharge Data With Particular Reference to Transformer Condition Monitoring[J]. IEEE Transactions on Power Delivery,2008,23(4):2008-2016.
[6]Shiravi H,Shiravi A,Ghorbani A A. A Survey of Visualization Systems for Network Security[J]. IEEE Transactions on Visualization & Computer Graphics,2012,18(18):1313-1329.
[7]VarunChandola,Arindam Banerjee,Vipin Kumar. Anomaly detection:A survey[J]. ACM Computing Surveys (CSUR),2009,41(3):1-58.
Big Data Platform Based on Machine Learning Security Audit Anomaly Detection
Liang Meng
China Mobile Communications Group Guangdong Co., Ltd., Network Management Center, Guangdong Guangzhou 510623
The network big data platform of the communication operator stores a large amount of data containing sensitive information of the user, and must ensure that the platform data is not leaked through strong technical means. The traditional rule-based auditing method can not meet the timeliness and accuracy requirements of the security audit work under the massive log, and the application based on machine learning has been developing rapidly in big data in recent years. The paper comprehensively considers the requirements of the versatility, timeliness and accuracy of security audit work in different log types, and proposes a combination of hierarchical clustering and isolated forest for the abnormality detection of the large amount of data on the data sharing platform.
security audit; machine learning; hierarchical clustering; isolated forest; anomaly detection
TP393.0
A
梁猛,男,工程師,本科畢業(yè)于哈爾濱工業(yè)大學(xué)電子信息專業(yè),現(xiàn)就職于中國移動廣東公司省網(wǎng)絡(luò)管理中心,主要研究方向為大數(shù)據(jù)架構(gòu)設(shè)計及優(yōu)化、機器學(xué)習(xí)。