機(jī)器學(xué)習(xí)在數(shù)據(jù)安全感知系統(tǒng)的應(yīng)用
我們生活在一個信息泛濫的世界,越來越難去跟蹤信息,或者手動為他人策劃信息;幸運(yùn)的是,現(xiàn)代數(shù)據(jù)科學(xué)可以對大量的信息進(jìn)行分類,并將與我們相關(guān)的信息呈現(xiàn)出來。
機(jī)器學(xué)習(xí)算法依靠在數(shù)據(jù)中觀察到的用戶知識和模式,對我們可能喜歡或感興趣的內(nèi)容做出推斷和建議。隨著機(jī)器學(xué)習(xí)技術(shù)越來越容易被開發(fā)人員使用,有一股力量促使公司利用這些算法來改進(jìn)他們的產(chǎn)品和用戶的體驗(yàn)。
在全息網(wǎng)御研發(fā)實(shí)踐中,我們以安全視角深入分析流動數(shù)據(jù)在各個行業(yè)的業(yè)務(wù)共性,抽象出以流動數(shù)據(jù)為核心的OnFire數(shù)據(jù)安全風(fēng)險(xiǎn)感知系統(tǒng)平臺,通過結(jié)合運(yùn)用AI智能機(jī)器學(xué)習(xí),實(shí)時(shí)構(gòu)建“ 用戶-設(shè)備-應(yīng)用-數(shù)據(jù) ”四個維度的關(guān)聯(lián)分析,實(shí)現(xiàn)了為流動數(shù)據(jù)建立評估監(jiān)測、預(yù)警/告警、溯源審計(jì)的聯(lián)動機(jī)制提供依據(jù),從而感知數(shù)據(jù)安全風(fēng)險(xiǎn),并形成可視、可控、可追溯的數(shù)字空間安全態(tài)勢感知和防護(hù)體系。
用戶和實(shí)體行為的分析方法(User and Entity Behavior Analysis, UEBA)是基于實(shí)體行為的網(wǎng)絡(luò)風(fēng)險(xiǎn)分析,是利用統(tǒng)計(jì)和機(jī)器學(xué)習(xí)等算法的自適應(yīng)分析,是基于大數(shù)據(jù)安全分析的網(wǎng)絡(luò)異常行為檢測與安全態(tài)勢感知 。以下我們從算法和架構(gòu)兩個方面描述這些算法在OnFire系統(tǒng)中的應(yīng)用。
一、概述
OnFire系統(tǒng)是由三部分組成:網(wǎng)絡(luò)流量采集系統(tǒng)(HoloFlow),實(shí)體行為分析系統(tǒng)(HoloML)和管理系統(tǒng)(HoloVision)。網(wǎng)絡(luò)流量采集器會從網(wǎng)絡(luò)關(guān)鍵設(shè)備節(jié)點(diǎn),通常從匯聚交換機(jī)處,接受并處理網(wǎng)絡(luò)原始流量,生成網(wǎng)絡(luò)中設(shè)備、應(yīng)用、數(shù)據(jù)(文件和網(wǎng)頁)以及用戶的網(wǎng)絡(luò)行為日志,并保存于數(shù)據(jù)倉庫。
分析平臺將這些日志映射為四類實(shí)體行為,分別是:用戶實(shí)體、設(shè)備實(shí)體、應(yīng)用實(shí)體和數(shù)據(jù)實(shí)體。然后根據(jù)實(shí)體間的行為邏輯關(guān)系、時(shí)序關(guān)系以及地理位置關(guān)系等,生成動態(tài)關(guān)聯(lián)的網(wǎng)絡(luò)全息圖。同時(shí),利用數(shù)理統(tǒng)計(jì)、機(jī)器學(xué)習(xí)等算法為每個實(shí)體畫像構(gòu)建正常行為基線。最后再通過實(shí)體的正常行為畫像識別比對出異常行為,并提醒管理員及時(shí)對異常行為追蹤溯源。
OnFire系統(tǒng)的層級結(jié)構(gòu)共分為5層,如圖-1:
日志收集層:收集多種網(wǎng)絡(luò)協(xié)議數(shù)據(jù),支持第三方日志信息的導(dǎo)入。
匯聚層:完成數(shù)據(jù)清洗,數(shù)據(jù)轉(zhuǎn)換,數(shù)據(jù)聚合工作,并提取用戶、設(shè)備、應(yīng)用和數(shù)據(jù)實(shí)體信息。
畫像層:根據(jù)實(shí)體的歷史信息,利用數(shù)理統(tǒng)計(jì)、機(jī)器學(xué)習(xí)等算法為每個實(shí)體畫像,建立正常行為基線,并將其可視化展現(xiàn)。
異常行為檢測層:計(jì)算實(shí)體每個行為與正常行為畫像的差別,從而識別異常行為,并將其可視化展示。
展示層:為安全系統(tǒng)分析員提供友好、可用的人機(jī)接口,便于事后的追蹤溯源。
二、實(shí)體行為分析
1. 行為畫像
在畫像層中,我們按用戶、數(shù)據(jù)、應(yīng)用和設(shè)備四個維度分析和挖掘?qū)嶓w行為以掌握實(shí)體間的相互關(guān)系,識別出正常行為模式并建立實(shí)體間的正常行為基線,運(yùn)用到的是無監(jiān)督的機(jī)器學(xué)習(xí)算法。在隨后的檢測層中,系統(tǒng)將計(jì)算正常行為基線與當(dāng)前行為之間的差異,從而判斷此行為是否異常。
通常,特征工程(feature engineering)會從實(shí)體行為中提取特征,將這些特征作為學(xué)習(xí)算法的輸入來識別實(shí)體行為的模式。平臺使用多種算法來識別正常行為的模式,下面簡要介紹兩種:
(1)核密度估算
核密度估計(jì)(Kernel Density Estimation)為實(shí)體行為特征構(gòu)建密度的估算函數(shù)。在我們的UEBA解決方案中,我們使用非參數(shù)密度估計(jì)算法(nonparametric estimation),因?yàn)檫@不需要那么嚴(yán)格的假設(shè)條件,而核密度估算是常用方法之一。
在計(jì)算數(shù)據(jù)密度分布估算函數(shù)時(shí),算法使用高斯核來創(chuàng)建數(shù)據(jù)的直方圖,而不是用矩形對數(shù)據(jù)進(jìn)行分箱。也就是說在每個分箱的中心繪制高斯分布,這種方法可以平滑直方圖,并得到對特征空間中每個點(diǎn)的數(shù)據(jù)密度的連續(xù)估計(jì)。對于異常檢測通常方法是估算每個數(shù)據(jù)點(diǎn)的密度,并將密度最小點(diǎn)稱之為異常。
如圖-2顯示一天中的登錄行為:X軸是時(shí)間,y軸是登錄概率,從該圖可以看出高密度時(shí)段為6到20。如果有人在0到6之間登錄,則表現(xiàn)為行為異常。
(2)特征工程
在OnFire系統(tǒng)中,大多數(shù)活動是時(shí)間依賴性的。對于時(shí)序數(shù)據(jù),我們從三個方向提取數(shù)據(jù)特征:時(shí)間、統(tǒng)計(jì)和頻譜。時(shí)間類特征包括:不同的時(shí)間粒度、自相關(guān)性、離峰值距離、正負(fù)轉(zhuǎn)向點(diǎn)等。統(tǒng)計(jì)類特征包括:移動均值、標(biāo)準(zhǔn)差、趨勢量度、季節(jié)性、周期性、序列相關(guān)性、偏度、峰度和自相似性等。頻譜類特征包括:FFT平均系數(shù)、 最大頻率、中位數(shù)頻率、頻譜中心以及頻譜延展度等。
2. 行為異常分析
OnFire 系統(tǒng)的行為異常分析包括兩類:基于靜態(tài)規(guī)則以及基于統(tǒng)計(jì)和機(jī)器學(xué)習(xí)算法,下面將重點(diǎn)對系統(tǒng)使用的統(tǒng)計(jì)類算法和機(jī)器學(xué)習(xí)類算法進(jìn)行介紹。
(1)統(tǒng)計(jì)類算法
統(tǒng)計(jì)類算法常用于一維或二維的數(shù)據(jù),計(jì)算成本低,無需人工設(shè)置門限。適用于對重要指標(biāo)的行為異常報(bào)警。比如用戶的商業(yè)文件下載量,服務(wù)器文件下載量等。
指數(shù)加權(quán)移動平均法 (EWMA) 是一種常用統(tǒng)計(jì)方法,對用戶和實(shí)體行為的某個維度數(shù)據(jù),對其每天的聚合值分別給予不同的權(quán)數(shù),按不同權(quán)數(shù)求得移動平均值,并以最后的移動平均值為基礎(chǔ),確定預(yù)測值的方法 。在EWMA中,各數(shù)值的加權(quán)系數(shù)隨時(shí)間呈指數(shù)式遞減,越靠近當(dāng)前時(shí)刻的數(shù)值加權(quán)系數(shù)就越大。
EWMA 的表達(dá)式如下:
〖EWMA〗_t= 〖λY〗_t+ (1-λ)EWMA_(t-1) for t=1,2,…,n
s_ewma^2= λ/(2-λ) s^2
UCL=〖EWMA〗_0+〖ks〗_ewma
其中:
- 〖EWMA〗_t :為t時(shí)的指數(shù)加權(quán)移動平均值。
- Y_t:t時(shí)刻的實(shí)際數(shù)據(jù)。
- k, λ 均為常量,其中0<λ≤1 決定歷史數(shù)據(jù)對當(dāng)前數(shù)據(jù)影響程度。
- s:EWMA 統(tǒng)計(jì)值的方差
- UCL:控制圖的上限值
在實(shí)體行為分析系統(tǒng)中,指數(shù)加權(quán)移動平均法被用于單一維度的行為數(shù)據(jù)異常檢測。比如用戶每天下載文件量,根據(jù)工作性質(zhì)不同,會有較平穩(wěn)的基線和浮動區(qū)間。如果某天下載量遠(yuǎn)遠(yuǎn)大于UCL,則可視為下載文件行為異常。
(2)機(jī)器學(xué)習(xí)類算法
實(shí)體行為分析系統(tǒng)使用孤獨(dú)森林算法(iForest)和聚類算法(Clustering Algorithm)實(shí)現(xiàn)用戶組內(nèi)外的行為異常分析。從而可以完成賬號失陷分析和主機(jī)失陷分析功能。其基于的假設(shè):同組用戶的行為方式具有更高相似性。其實(shí)現(xiàn)原理:通過比較管理員提供的用戶群組信息,并基于聚類分析模塊依據(jù)用戶行為數(shù)據(jù)計(jì)算出的群組信息,從而找出那些偏離群組的用戶。
針對管理員輸入個群組個數(shù)不同,聚類分析系統(tǒng)選擇使用異常檢測算法或者聚類算法。如果管理員輸入一個群組,那么系統(tǒng)選擇異常檢測算法,計(jì)算離群用戶。如果管理員輸入兩個或兩個以上群組,系統(tǒng)將使用聚類算法對用戶進(jìn)行分組(群組數(shù)等于管理員輸入的群組數(shù));然后將計(jì)算得到的群組關(guān)系與管理員輸入的群組關(guān)系進(jìn)行對比,從而得到離群用戶。
① 數(shù)據(jù)
用戶網(wǎng)絡(luò)行為信息以天為計(jì)算單位,根據(jù)全息的特殊能力,這里的用戶包括了同一個用戶使用的所有設(shè)備,所有應(yīng)用及所有文件/數(shù)據(jù)的綜合信息,而不是僅根據(jù)一個用戶的某一個應(yīng)用或用戶的某一臺設(shè)備所收集的信息。
A. 全局網(wǎng)絡(luò)流量信息
- 用戶訪問網(wǎng)絡(luò)的流量
- 用戶訪問應(yīng)用個數(shù)
B.內(nèi)部服務(wù)應(yīng)用信息
- 用戶訪問某個應(yīng)用服務(wù)的流量數(shù)
- 用戶訪問某個應(yīng)用服務(wù)的網(wǎng)頁數(shù)
C.文件類型及敏感類型信息
- 對于所有文件類型,用戶使用的每種類型的文件個數(shù)
- 對于所有文件敏感類型,用戶使用每種敏感類型的文件個數(shù)
②異常檢測算法
當(dāng)管理員選擇一個群組或網(wǎng)段時(shí),使用異常檢測算法計(jì)算出離群行為,目前應(yīng)用孤獨(dú)森林算法。
孤獨(dú)森林算法適用于發(fā)現(xiàn)分布稀疏且離密度高的群體較遠(yuǎn)的離群點(diǎn)。在特征空間里,分布稀疏的區(qū)域表示事件發(fā)生在該區(qū)域的概率很低,因而可以認(rèn)為落在這些區(qū)域里的數(shù)據(jù)是異常的。
③聚類算法
當(dāng)管理員選擇N(N>=2)個的群組或網(wǎng)段時(shí),根據(jù)用戶行為數(shù)據(jù)使用聚類算法計(jì)算出N個新的群組。目前應(yīng)用了K-Mean,分層聚類,混合高斯算法,系統(tǒng)默認(rèn)選擇K-Mean算法。
④群組關(guān)系比較算法
將聚類算法計(jì)算出的群組關(guān)系,與管理員選擇的群組關(guān)系進(jìn)行對比,從而得到哪些用戶的行為偏離原來的群組關(guān)系。
三、系統(tǒng)架構(gòu)
實(shí)體行為分析系統(tǒng)(HoloML系統(tǒng))采用Event-Driven架構(gòu),如圖-3所示。管理員通過HoloVision創(chuàng)建并管理分析任務(wù)。HoloML接受來自HoloVision的分析請求事件,啟動智能分析任務(wù),并將分析結(jié)果保存在數(shù)據(jù)倉庫里。在通過Pub/Sub通道通知HoloVision任務(wù)執(zhí)行情況,HoloVision讀取數(shù)據(jù)倉庫中的分析結(jié)果,并展現(xiàn)給管理員。