梁猛
?
大數(shù)據(jù)平臺(tái)基于機(jī)器學(xué)習(xí)的安全審計(jì)異常檢測
梁猛
中國移動(dòng)通信集團(tuán)廣東有限公司網(wǎng)絡(luò)管理中心,廣東 廣州 510623
通信運(yùn)營商的網(wǎng)絡(luò)大數(shù)據(jù)平臺(tái)存儲(chǔ)了大量包含用戶敏感信息的數(shù)據(jù),必須通過強(qiáng)有力的技術(shù)手段確保平臺(tái)數(shù)據(jù)不被泄露。傳統(tǒng)的基于規(guī)則的審計(jì)方式無法滿足對(duì)海量日志下安全審計(jì)工作及時(shí)性和準(zhǔn)確性的要求,而基于機(jī)器學(xué)習(xí)的方法近年在大數(shù)據(jù)上的應(yīng)用發(fā)展迅速。綜合考慮了安全審計(jì)工作在不同的日志類型中的通用性、及時(shí)性及準(zhǔn)確性等多方面的要求,提出層次聚類與孤立森林相結(jié)合的方法,用于數(shù)據(jù)共享平臺(tái)上海量日志的異常檢測。
安全審計(jì);機(jī)器學(xué)習(xí);層次聚類;孤立森林;異常檢測
隨著網(wǎng)絡(luò)大數(shù)據(jù)平臺(tái)應(yīng)用到各個(gè)業(yè)務(wù)層級(jí),接入的數(shù)據(jù)量不斷增加,集群規(guī)模不斷擴(kuò)大,系統(tǒng)日志量急速增長?;趥鹘y(tǒng)以規(guī)則為導(dǎo)向的安全審計(jì),存在規(guī)則更新成本高、審計(jì)范圍大等問題。近年來,機(jī)器學(xué)習(xí)技術(shù)在各個(gè)傳統(tǒng)領(lǐng)域大放異彩,提供了許多創(chuàng)新性的行業(yè)解決方案[1]。一般思路是,把現(xiàn)實(shí)世界中遇到的問題建成相應(yīng)的數(shù)學(xué)模型,并用歷史數(shù)據(jù)去訓(xùn)練模型,最終讓模型得到較為精準(zhǔn)的判斷力。與傳統(tǒng)方法相比,機(jī)器學(xué)習(xí)方法具有高自動(dòng)化、基于數(shù)據(jù)驅(qū)動(dòng)等特點(diǎn),其中一個(gè)較為顯著的優(yōu)點(diǎn)是,可結(jié)合海量的特征對(duì)特定問題(如分類、回歸)進(jìn)行預(yù)測或判斷。
本文提出基于機(jī)器學(xué)習(xí)的安全審計(jì)方法,基于系統(tǒng)操作、數(shù)據(jù)庫操作、組件操作等各類日志,通過層次聚類算法對(duì)日志中相似行為進(jìn)行合并,標(biāo)記出若干類日志行為,在此基礎(chǔ)上抽象出不同賬號(hào)各類日志行為的頻次、密度等特征;把這些特征輸入孤立森林模型,輸出賬號(hào)所屬的每個(gè)行為的異常得分,并根據(jù)得分審計(jì)出各個(gè)行為的危險(xiǎn)等級(jí),最終把功能整合到大數(shù)據(jù)平臺(tái)的審計(jì)系統(tǒng)中。此方法提高了審計(jì)效率,實(shí)現(xiàn)了基于不同賬戶行為的差異化精準(zhǔn)審計(jì),解決了傳統(tǒng)審計(jì)方式規(guī)則維護(hù)成本高、審計(jì)范圍過于粗放的問題。
異常檢測作為機(jī)器學(xué)習(xí)的一個(gè)細(xì)分領(lǐng)域,有著許多成熟的應(yīng)用方法。大致可分為兩種:一種是奇異點(diǎn)檢測,訓(xùn)練數(shù)據(jù)中不包含離群數(shù)據(jù),而我們對(duì)檢測新發(fā)現(xiàn)的樣本感興趣;另一種是異常點(diǎn)檢測,訓(xùn)練的數(shù)據(jù)中包含了離群數(shù)據(jù),我們需要匹配訓(xùn)練數(shù)據(jù)中的中心部分,而忽略掉異常點(diǎn)。
安全審計(jì)的場景更接近奇異點(diǎn)檢測,因?yàn)樵诎踩珜徲?jì)針對(duì)的日志中,真正有危及數(shù)據(jù)安全意圖的操作往往極少,但是一旦發(fā)生,后果又是極其嚴(yán)重的。我們能獲得的日志數(shù)據(jù),即使真實(shí)存在異常樣本,在其被發(fā)現(xiàn)前,都是無法標(biāo)記的。在機(jī)器學(xué)習(xí)領(lǐng)域,這種方式被稱為無監(jiān)督學(xué)習(xí),其中典型的無監(jiān)督學(xué)習(xí)就是聚類。聚類和異常檢測在原理上有著高度的相似性,而且一定程度上可以互補(bǔ)結(jié)合。本文提出的基于層次聚類與孤立森林相結(jié)合的異常檢測方法,便是為了解決在安全審計(jì)的異常檢測任務(wù)中,普遍存在的大量離散特征(如SQL語句、操作命令等)的檢測難點(diǎn)。
在聚類的場景中,我們事先不知道樣本有哪些類型。聚類算法的核心,是根據(jù)距離、密度等度量屬性,以類內(nèi)距離盡可能小、類間距離盡可能大的原則,讓樣本自己形成若干個(gè)分群,再基于業(yè)務(wù)知識(shí),根據(jù)各個(gè)分群的特點(diǎn),得到分類標(biāo)簽。
在聚類算法中,較為知名的是K均值算法,以其較低的復(fù)雜度和較高的可解釋性被廣泛應(yīng)用,通過觀察該算法的邏輯,會(huì)發(fā)現(xiàn)其有一個(gè)應(yīng)用前提[2]。由于計(jì)算過程中需要迭代計(jì)算聚類中心,樣本需要具備可以計(jì)算均值的特性。然而,在現(xiàn)實(shí)情況中,很多場景是無法計(jì)算樣本均值的,但是同樣可以得到聚類結(jié)果。比如說比較不同文本的相似性,我們可以定義各種度量文本相似性的距離,如漢明距離、編輯距離等,但是我們無法對(duì)文本求均值。在這種場景下,層次距離較為適用。顧名思義,層次聚類就是一層一層地進(jìn)行聚類,可以由上向下把大的類別分割,稱為分裂法;也可以由下向上對(duì)小的類別進(jìn)行聚合,稱為凝聚法;但是一般用得比較多的是由下向上的凝聚方法。這種聚類算法,僅僅要求樣本間兩兩可計(jì)算距離即可,本文在安全審計(jì)涉及的日志中遇到的離散文本,即是通過該算法進(jìn)行聚類,進(jìn)而對(duì)聚類結(jié)果進(jìn)行異常檢測。
作為一種工業(yè)界常用的異常檢測算法,孤立森林算法對(duì)內(nèi)存要求低,處理速度很快,可以很好地處理高維數(shù)據(jù)和大數(shù)據(jù),并且也可以作為在線異常檢測。孤立森林算法的功能通俗而言,就是在一大堆數(shù)據(jù)中,找出與其他數(shù)據(jù)規(guī)律不太符合的數(shù)據(jù)。孤立森林算法的構(gòu)建方法是在給定的數(shù)據(jù)中,把總體樣本隨機(jī)拆分成若干份,并基于每份樣本通過建立子樹,子樹不斷地往下生長延伸,其延伸的依據(jù)就是隨機(jī)選定樣本的一個(gè)特征,并在多個(gè)特征值中隨機(jī)選定一個(gè)特征值,對(duì)樣本進(jìn)行劃分。隨著樹的生長,不斷地基于分割點(diǎn)把樣本重新劃分到不同的葉子節(jié)點(diǎn)上,當(dāng)樹的深度達(dá)到設(shè)定的高度,或者葉子節(jié)點(diǎn)里所有的樣本所有特征值都完全一樣時(shí),子樹就停止生長。孤立森林算法異常檢測的原理認(rèn)為,與其他數(shù)據(jù)規(guī)律差異越大的數(shù)據(jù),越容易被快速劃分出來,達(dá)到子葉的終止生長條件。根據(jù)長成的各個(gè)子樹到達(dá)終止條件時(shí)需要的次數(shù)、樹的生長高度等指標(biāo),就可以計(jì)算各個(gè)樣本相對(duì)于給定樣本總體的異常得分。
在孤立森林中,“異?!北欢x為“容易被孤立的離群點(diǎn)”,可以將其理解為分布稀疏且離密度高的群體較遠(yuǎn)的點(diǎn)。在特征空間里,分布稀疏的區(qū)域表示事件發(fā)生在該區(qū)域的概率很低,因而可以認(rèn)為落在這些區(qū)域里的數(shù)據(jù)是異常的。對(duì)于查找哪些點(diǎn)容易被孤立,孤立森林使用了一套非常高效的策略。在孤立森林中,遞歸地隨機(jī)分割數(shù)據(jù)集,直到所有的樣本點(diǎn)都是孤立的。孤立森林可以用于網(wǎng)絡(luò)安全中的攻擊檢測、金融交易欺詐檢測、疾病偵測和噪聲數(shù)據(jù)過濾等。
判斷用戶行為是否異常,是基于用戶行為出現(xiàn)的頻次、密度等屬性來判斷的,但是實(shí)際獲取到的日志數(shù)據(jù)中,很多日志之間只是個(gè)別參數(shù)不一樣,而其他部分都是一樣的。在業(yè)務(wù)人員的理解中,這屬于一類行為;在統(tǒng)計(jì)頻次、密度等時(shí),應(yīng)計(jì)算在一起,而不應(yīng)算在不同的用戶行為類型下,比如同樣一個(gè)模式的SQL語句,可能只是在個(gè)別參數(shù)有細(xì)微差異,我們需要先把這種模式下的所有相似SQL語句合并。因此,我們需要合并這些相似的日志,把合并結(jié)果作為行為類型標(biāo)記。這種合并就需要通過層次聚類來完成。
層次聚類在整個(gè)異常檢測流程中,是在數(shù)據(jù)預(yù)處理及特征工程階段起作用的。在完成層次聚類合并后,我們才把得到的日志行為特征輸入孤立森林模型中訓(xùn)練并檢測。
基于系統(tǒng)操作日志、數(shù)據(jù)庫操作日志、組件操作日志等各類日志,通過層次聚類算法合并日志中包含的相似行為,標(biāo)記出若干類日志行為,在此基礎(chǔ)上,抽象出不同賬號(hào)各類日志行為的頻次、密度等特征,輸入孤立森林模型,輸出賬號(hào)所屬的每個(gè)行為的異常得分,并根據(jù)得分審計(jì)出各個(gè)行為的危險(xiǎn)等級(jí),最終把功能整合到大數(shù)據(jù)平臺(tái)的審計(jì)系統(tǒng)中,提高審計(jì)效率的同時(shí),實(shí)現(xiàn)了基于不同賬戶行為的差異化精準(zhǔn)審計(jì),并在兼容傳統(tǒng)基于規(guī)則的審計(jì)方式的同時(shí),解決了傳統(tǒng)審計(jì)方式規(guī)則維護(hù)成本高、審計(jì)范圍過于粗放的問題[3]。
基于層次聚類與孤立森林相結(jié)合的異常檢測方法,從日志數(shù)據(jù)預(yù)處理到審計(jì)結(jié)果輸出,由三個(gè)部分的模塊完成,依次是數(shù)據(jù)預(yù)處理及特征提取模塊、模型訓(xùn)練模塊以及模型檢測輸出模塊。其中,模型檢測輸出模塊又分成兩個(gè)部分,分別是實(shí)時(shí)異常檢測模塊和批量異常檢測模塊,如圖1所示。
圖1 基于機(jī)器學(xué)習(xí)的安全審計(jì)異常檢測架構(gòu)圖
考慮到日志數(shù)據(jù)的可拓展性,預(yù)處理及特征提取模塊對(duì)日志數(shù)據(jù)的讀取方式抽象成三類,分別是從文件系統(tǒng)讀?。ò℉DFS及本地文件)、從關(guān)系型數(shù)據(jù)庫讀取及從ElasticSearch讀取。讀取到的日志數(shù)據(jù)經(jīng)過預(yù)處理后,由關(guān)系型數(shù)據(jù)庫表保存,存儲(chǔ)結(jié)果如表1。
表1 安全審計(jì)的數(shù)據(jù)預(yù)處理及特征提取結(jié)果存儲(chǔ)結(jié)構(gòu)
在對(duì)大數(shù)據(jù)共享平臺(tái)上各日志類型的特征進(jìn)行抽象后,我們形成了如下幾種類型的特征,包括源地址、目的地址、非法時(shí)段操作次數(shù)、單位時(shí)間內(nèi)數(shù)據(jù)量訪問大小、命令操作頻次等。選擇這些特征是由審計(jì)的業(yè)務(wù)層面決定的。從數(shù)據(jù)的安全性考慮,只要與數(shù)據(jù)安全有關(guān)的行為特征,都應(yīng)被審計(jì)。
不同的特征還需要進(jìn)行不同二次處理。二次處理包括以相似特征值合并、特征值數(shù)值化處理兩個(gè)操作為核心的若干處理過程,如表2所示。
2.2.1 相似特征值合并
判斷用戶行為是否異常,是基于用戶行為出現(xiàn)的頻次、密度等屬性來判斷的,但是實(shí)際獲取到的日志數(shù)據(jù)中,很多日志之間,只是個(gè)別參數(shù)不一樣,而其他部分都是一樣的。在業(yè)務(wù)人員的理解中,這屬于一類行為。統(tǒng)計(jì)頻次、密度等應(yīng)計(jì)算在一起,而不應(yīng)算在不同的用戶行為類型下,比如同樣一個(gè)模式的SQL語句,可能只是在個(gè)別參數(shù)有細(xì)微差異,我們需要先把這種模式下的所有相似SQL語句合并。因此,我們需要合并這些相似的日志,把合并結(jié)果作為行為類型標(biāo)記。這種合并就需要通過層次聚類來完成[4]。
表2 安全審計(jì)的特征分類及二次處理方式
2.2.2 特征值數(shù)值化處理
在合并完成后,我們得到了每個(gè)特征字段包含的若干類行為。每類行為我們賦予一個(gè)數(shù)值ID,同屬一個(gè)行為ID的不同日志。對(duì)于行為頻次等特征,我們以合并后的行為ID來統(tǒng)計(jì),而不是以原始日志特征值來統(tǒng)計(jì);對(duì)于無法合并的,如源地址、目的地址等特征,我們則對(duì)給每個(gè)特征賦予一個(gè)數(shù)值ID,由此就完成了數(shù)值化處理的過程。之所以要進(jìn)行數(shù)值化處理過程,是因?yàn)楣铝⑸炙惴ㄒ筝斎霐?shù)據(jù)必須是數(shù)值形式。
以賬號(hào)最近三個(gè)月的行為特征為訓(xùn)練數(shù)據(jù),通過孤立森林算法,可以學(xué)習(xí)到賬號(hào)的正常行為輪廓,對(duì)于每個(gè)賬號(hào)輸入的行為特征,輸出其對(duì)應(yīng)的異常得分,進(jìn)而根據(jù)異常得分判斷用戶行為是否異常。
由于機(jī)器學(xué)習(xí)輸出的異常只是基于算法本身考慮,在安全審計(jì)中,常常有一些基于規(guī)則的要求。這要求模型輸出結(jié)果具備可調(diào)整性。此外,訓(xùn)練模型的存儲(chǔ)和檢測效率問題也需要考慮。孤立森林模型輸出結(jié)果是以樹的形式保存的,不便于建模語言以外的編程語言調(diào)用[5]。
綜合上述因素,該階段輸出的模型訓(xùn)練結(jié)果將以規(guī)則的形式存儲(chǔ)在數(shù)據(jù)庫內(nèi),并定時(shí)更新。人工調(diào)用的規(guī)則可以通過前端配置的方式干預(yù)。如對(duì)于特定賬號(hào)的源地址異常檢測,機(jī)器學(xué)習(xí)輸出結(jié)果考慮了該賬號(hào)的過去訪問習(xí)慣而返回的異常得分;而在安全審計(jì)場景中,可能對(duì)于特定賬號(hào)特定源地址,需要直接給出正?;虍惓5呐袛?。這種時(shí)候就可以通過修改規(guī)則數(shù)據(jù),修正機(jī)器學(xué)習(xí)算法給出的判斷。
由于在訓(xùn)練階段中,模型的訓(xùn)練結(jié)果是以關(guān)系型數(shù)據(jù)庫保存的,因此在檢測階段,只需要考慮與關(guān)系型數(shù)據(jù)庫對(duì)接即可,不需要直接調(diào)用模型。預(yù)處理及特征提取模塊實(shí)時(shí)采集日志數(shù)據(jù)并對(duì)其進(jìn)行特征提??;模型訓(xùn)練模塊定時(shí)根據(jù)存儲(chǔ)的歷史數(shù)據(jù)進(jìn)行模型更新;模型檢測輸出模塊根據(jù)訓(xùn)練模塊的結(jié)果,輸出實(shí)時(shí)的檢測結(jié)果,檢測結(jié)果以異常得分體現(xiàn)。對(duì)于異常得分的閥值,模型本身有默認(rèn)值,但作為一個(gè)檢測參數(shù),該值可以通過前端配置的方式進(jìn)行修改[6]。
在模型結(jié)果輸出階段,需要加載兩個(gè)模塊:一個(gè)是預(yù)處理及特征提取模塊;另一個(gè)是訓(xùn)練好的模型。
對(duì)于實(shí)時(shí)檢測場景,當(dāng)獲取到一條新日志時(shí),數(shù)據(jù)采集模塊會(huì)首先把該日志推送到預(yù)處理及特征提取模塊,由于我們?cè)跉v史數(shù)據(jù)預(yù)處理及特征提取階段已經(jīng)把用戶可能出現(xiàn)的日志行為進(jìn)行了合并分類,所以這時(shí)候只需要獲取到當(dāng)前新日志對(duì)于所屬分類及數(shù)值化ID,即可輸入歷史保存的模型中,得到異常檢測得分,并根據(jù)異常得分,映射到其風(fēng)險(xiǎn)等級(jí),再匹配到不同級(jí)別的告警輸出[7]。
對(duì)于批量檢測場景,即事后定期審計(jì)場景,與實(shí)施檢測場景的不同地方只在于輸入及輸出的數(shù)據(jù)量大小,而其他流程是完全一致的。
表3 審計(jì)方案的實(shí)際應(yīng)用場景
對(duì)于異常登錄檢測、敏感操作檢測等場景,傳統(tǒng)的審計(jì)由于方法的局限性,很多問題無法得到有效的審計(jì)和告警;而基于機(jī)器學(xué)習(xí)異常檢測算法,可以解決很多傳統(tǒng)審計(jì)方法無法解決的問題,如表3所示。
基于機(jī)器學(xué)習(xí)的安全審計(jì)異常檢測,可以在兼容傳統(tǒng)基于規(guī)則的審計(jì)方式的同時(shí),解決傳統(tǒng)審計(jì)方式規(guī)則維護(hù)成本高、審計(jì)范圍過于粗放的問題。通過定期基于歷史數(shù)據(jù)對(duì)異常檢測模型進(jìn)行訓(xùn)練,實(shí)現(xiàn)了規(guī)則自動(dòng)更新和維護(hù);通過對(duì)每個(gè)賬號(hào)進(jìn)行單獨(dú)的模型構(gòu)建及預(yù)測,實(shí)現(xiàn)了以賬號(hào)為中心的精準(zhǔn)化審計(jì);通過對(duì)各個(gè)時(shí)間點(diǎn)的各種日志行為輸出異常得分,讓安全審計(jì)可以對(duì)各賬號(hào)的行為異常程度進(jìn)行量化,進(jìn)而通過控制異常得分的閥值控制安全審計(jì)的范圍。
[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)就職于中國移動(dòng)廣東公司省網(wǎng)絡(luò)管理中心,主要研究方向?yàn)榇髷?shù)據(jù)架構(gòu)設(shè)計(jì)及優(yōu)化、機(jī)器學(xué)習(xí)。