最近看到越來(lái)越多的安全圈的同學(xué)開(kāi)始關(guān)注UBA或者UEBA的相關(guān)產(chǎn)品和技術(shù)采转,恰好這一段時(shí)也一直在跟進(jìn)UBA產(chǎn)品的狀況耙箍,正如Gartner報(bào)告所述撰糠,最具創(chuàng)新能力的UBA供應(yīng)商往往都是一些初創(chuàng)公司,我們比較了IBM辩昆、HPE阅酪、Splunk這類大公司的UBA產(chǎn)品,但是感覺(jué)無(wú)非就是SIEM產(chǎn)品的更新升級(jí)罷了,相反一些名不見(jiàn)經(jīng)傳的初創(chuàng)公司如Balabit术辐、Sqrrl等的UBA產(chǎn)品到讓人眼前一亮砚尽。在參考業(yè)界的同時(shí),我們也在UBA的核心算法上做了一番研究辉词,要知道UBA之所以號(hào)稱下一代SIEM必孤,其核心就是將機(jī)器學(xué)習(xí)引入行為數(shù)據(jù)檢測(cè),本文簡(jiǎn)要總結(jié)一下近期研究的適用于UBA的機(jī)器學(xué)習(xí)算法和效果瑞躺。
UBA產(chǎn)品并不依賴某個(gè)“銀彈”算法敷搪,其必定是一系列機(jī)器學(xué)習(xí)算法的有機(jī)融合,稍微了解機(jī)器學(xué)習(xí)的同學(xué)都清楚幢哨,像貝葉斯家族赡勘、線性回歸這類有監(jiān)督學(xué)習(xí)算法往往都需要大量的訓(xùn)練樣本,但是網(wǎng)絡(luò)安全領(lǐng)域APT攻擊的樣本一年抓不住兩個(gè)捞镰,要說(shuō)大量訓(xùn)練幾乎沒(méi)可能闸与,因此UBA產(chǎn)品大量采用非監(jiān)督學(xué)習(xí)算法,通過(guò)聚合行為數(shù)據(jù)巧妙的達(dá)到異常檢測(cè)的目的曼振。下面簡(jiǎn)要介紹一下在行為檢測(cè)過(guò)程中常用的機(jī)器學(xué)習(xí)算法。
首先我們假設(shè)一個(gè)用戶場(chǎng)景蔚龙,張三冰评,是一個(gè)SO的系統(tǒng)管理員,他的賬號(hào)有很多出入IT系統(tǒng)的權(quán)限木羹,某天他的賬號(hào)被黑客盜用了甲雅,黑客通過(guò)VPN等通道接入內(nèi)網(wǎng),并且將數(shù)據(jù)偷盜到公司外出售給競(jìng)爭(zhēng)對(duì)手坑填。
一個(gè)低風(fēng)險(xiǎn)用戶的正常業(yè)務(wù)活動(dòng)通常沒(méi)什么可關(guān)注的抛人,但是一些高風(fēng)險(xiǎn)人群的正常活動(dòng)或者低風(fēng)險(xiǎn)賬號(hào)進(jìn)行的高危操作則足以值得調(diào)查人員關(guān)注脐瑰,更近一步妖枚,如果一個(gè)高風(fēng)險(xiǎn)用戶做了一些高危并且不長(zhǎng)出現(xiàn)的動(dòng)作,那就絕對(duì)需要安全人員介入調(diào)查了苍在。這里有一個(gè)問(wèn)題绝页,我們?nèi)绾沃酪粋€(gè)用戶風(fēng)險(xiǎn)等級(jí)是高還是低?這便是UBA及其算法要解決的核心問(wèn)題寂恬,通過(guò)建立動(dòng)態(tài)行為基線發(fā)現(xiàn)用戶偏離正常模式的行為续誉,并根據(jù)風(fēng)險(xiǎn)累計(jì)的數(shù)值判斷用戶風(fēng)險(xiǎn)級(jí)別。綜上初肉,構(gòu)建用戶的特征行為矩陣是第一步酷鸦,也即User-Profile,特征行為矩陣的構(gòu)建方法五花八門(mén),考慮到HBase支持?jǐn)?shù)據(jù)量大臼隔,列式存儲(chǔ)等特點(diǎn)嘹裂,我們選擇將特征矩陣保存在HBase里。
張三躬翁,像其他特權(quán)用戶一樣焦蘑,利用其賬號(hào)的權(quán)限登錄到某一臺(tái)主機(jī)或者服務(wù)器,主機(jī)登錄算法用以檢測(cè)每個(gè)用戶經(jīng)常使用的主機(jī)或者服務(wù)盒发,DBA通常傾向于登錄固定的幾臺(tái)機(jī)器例嘱,并且都是使用相似的命令,同時(shí)銷售人員都是使用天兔或者某個(gè)XX系統(tǒng)的服務(wù)宁舰,兩者使用方式完全不同拼卵。這里張三登錄的是一臺(tái)保存銷售數(shù)據(jù)的服務(wù)器,而顯然蛮艰,這與他之前的模式或者與他所在的Peer-Group都是格格不入的腋腮。這里我們使用KMeans算法根據(jù)用戶行為數(shù)據(jù)的特征矩陣對(duì)用戶劃分Peer-Group,行為模式類似的人群會(huì)劃分到一個(gè)動(dòng)態(tài)群組壤蚜。
除了動(dòng)態(tài)群組即寡,根據(jù)現(xiàn)有的系統(tǒng)權(quán)限組進(jìn)行風(fēng)險(xiǎn)評(píng)估同樣是一種有效方式,我們從LDAP或者AD獲取用戶組以及組的成員數(shù)袜刷,通常規(guī)模較小的組比成千上萬(wàn)用戶的組風(fēng)險(xiǎn)系數(shù)更高聪富。當(dāng)張三的賬號(hào)被黑客從普通管理員組提升到超級(jí)管理員組的時(shí)候,他的賬號(hào)瞬間進(jìn)入了一個(gè)人煙罕至的群組著蟹,這時(shí)候他的風(fēng)險(xiǎn)值會(huì)瞬間提升墩蔓。
除了用戶登錄的機(jī)器,登錄時(shí)間也是行為特征中非常重要的一個(gè)環(huán)節(jié)萧豆,基于時(shí)間序列的分析方法有很多奸披,這里我們使用KDE(核心概率密度估計(jì))算法來(lái)統(tǒng)計(jì)和預(yù)測(cè)用戶在某個(gè)時(shí)間段登錄的概率,這種方法可以有效的克服離散數(shù)據(jù)在模式匹配過(guò)程中容易過(guò)耦合的問(wèn)題涮雷。比如張三作為一個(gè)系統(tǒng)管理員阵面,通常的登錄時(shí)間是上班時(shí)間以及晚飯以后的時(shí)間,早上7:30屬于正常登錄時(shí)間洪鸭,而凌晨0點(diǎn)登錄就會(huì)被標(biāo)記為高度反常和可疑膜钓。KDE曲線如下圖:
張三登錄系統(tǒng)以后進(jìn)行了一系列的操作,通常一個(gè)用戶在一段時(shí)間內(nèi)能夠產(chǎn)生的操作個(gè)數(shù)也是一個(gè)人的典型特征卿嘲,User-Profile聚合一個(gè)用戶在一段時(shí)間內(nèi)產(chǎn)生的所有行為數(shù)據(jù)的數(shù)量颂斜,使用KDE重新組織統(tǒng)計(jì)數(shù)據(jù),并檢測(cè)這個(gè)模式是否發(fā)生明顯改變拾枣。如果這里張三在一小時(shí)內(nèi)接連登錄了30+臺(tái)服務(wù)器沃疮,而他通常也就登錄2盒让、3臺(tái),那么這里就與正常的行為有明顯的偏移司蔬。
基于頻繁項(xiàng)集的聚類算法(如Aprior/FP-Growth)在零售行業(yè)很早以前就有廣泛應(yīng)用邑茄,比如沃爾瑪對(duì)顧客購(gòu)買商品的模式發(fā)掘發(fā)現(xiàn)啤酒和尿布經(jīng)常一起出售】√洌基于頻繁項(xiàng)集的機(jī)器學(xué)習(xí)算法在UBA領(lǐng)域也有廣泛應(yīng)用肺缕,比如,張三通常在周末的時(shí)候通過(guò)SSH協(xié)議登錄授帕,而在工作日通過(guò)RDP協(xié)議登錄同木,那么有一天他在周末通過(guò)RDP登錄就是一個(gè)行為模式的偏移。
主成分分析(PCA) 是一種應(yīng)用廣泛的降維算法跛十,其在行為數(shù)據(jù)異常檢測(cè)的過(guò)程中有很好的效果彤路,首先用戶行為的特征矩陣往往都有成千上萬(wàn)個(gè)維度,如果我們想從海量數(shù)據(jù)的特征矩陣中找出異常也即離群的點(diǎn)芥映,計(jì)算難度會(huì)比較大洲尊,我們采用PCA對(duì)特征進(jìn)行降維并結(jié)合KMeans等聚類算法找出離群點(diǎn)。比如奈偏,張三通常會(huì)長(zhǎng)時(shí)間使用前臺(tái)的服務(wù)器坞嘀,而運(yùn)維后臺(tái)服務(wù)器的時(shí)候比較短,如果他長(zhǎng)時(shí)間停留在后臺(tái)服務(wù)器上我們的算法會(huì)將其潛在的風(fēng)險(xiǎn)值提高惊来。
上面介紹的幾個(gè)算法Spark的MLlib提供的全部的實(shí)現(xiàn)丽涩,不得不感嘆一下Spark確實(shí)是解放程序猿雙手的良心之作。再往后唁盏,基于圖數(shù)據(jù)的分析挖掘是我們后續(xù)的研究方向内狸,安全調(diào)查人員時(shí)常需要看到用戶和實(shí)體之間的數(shù)據(jù)關(guān)聯(lián)检眯,或者所謂的Kill-Chain厘擂,圖數(shù)據(jù)庫(kù)和基于Graph的算法天然支持這一點(diǎn),好在Spark GraphX又替我們做到了這一步锰瘸。圖數(shù)據(jù)的挖掘我想業(yè)界應(yīng)該沒(méi)有比Palantir做的更好的了刽严,就是那個(gè)號(hào)稱幫助美軍找到本·拉登的那家傳奇數(shù)據(jù)公司
原文地址: 《機(jī)器學(xué)習(xí)算法在用戶行為檢測(cè)(UBA)領(lǐng)域的應(yīng)用》