企业安全中的用户与实体行为分析
User and Entity Behavior Analytics for Enterprise Security
企業安全中的用戶與實體行為分析
期刊/會議:2016 IEEE International Conference on Big Data (Big Data)
級別:CCF C
1.背景
本文概述了我們在網絡安全領域構建的一個用于解決威脅搜索和事件調查用例的情報平臺。具體來說,關注用戶和實體行為分析(UEBA)模塊,跟蹤和監控用戶、IP地址和企業設備的行為。利用基于奇異值分解(SVD)的機器學習算法自動檢測異常行為。
企業安全的一個關鍵問題是檢測被泄露的用戶帳戶和公司內部可能有惡意意圖的內部人員(流氓用戶)。這種情況可能發生的各種場景,以及跨公司網絡環境的特征的巨大變化,使這個問題非常復雜。然而,假設一個受影響的或惡意的用戶的操作與他或她的日常工作職責有本質上的不同,就會使這個問題更容易處理。如果隨著時間的推移跟蹤每個用戶的操作,并針對其他類似用戶的操作,就可以開發用戶行為的基線概要文件,任何偏離該行為的行為都可以標記為潛在異常,需要進一步調查。在本文中,我們描述了Niara安全分析平臺的用戶和實體行為分析模塊。該模塊通過對網絡報文、日志等多種數據源應用機器學習算法,識別企業網絡內用戶、IP地址和設備的異常行為。
應用異常檢測技術和機器學習方法來解決計算機安全問題有著悠久的歷史。最早的作品之一可以追溯到1987年[3]。盡管從[2]開始學術界有大量的工作試圖將異常檢測應用于安全問題,但是實際落地到工業界困難。業界對用戶行為分析重新產生了興趣,但安全從業者對此持懷疑態度,現實世界中利用機器學習的部署很少[9]。
這種脫節有幾個原因。[4]提供了一個關于問題域(攻擊和惡意活動是罕見和異常的)、訓練數據(無攻擊數據可用和規范、模擬具有代表性和流量是靜態的)和操作可用性(假警報>1%是可接受的,惡意的定義是通用的,用戶可以解釋異常)。[12]進一步確定了使安全領域與機器學習要求不一致的特征:錯誤成本很高,缺乏訓練數據,結果和操作解釋之間的語義差距,輸入數據的巨大可變性,以及進行合理評估的困難
這些觀察結果與我們的經驗也產生了共鳴。仔細考慮正確的用例和定義良好的范圍是非常重要的。最重要的因素是確保沒有對數據做出錯誤的假設,并針對問題設計正確的功能。異常檢測只能作為一個起點,幫助用戶識別潛在的重要事件。提供關于為什么事件被標記為異常的操作上下文和其他支持信息是至關重要的。其目標是使安全分析人員更加高效和有效,而不僅僅是提供不可操作的新警報源。為此,我們相信我們已經構建了一個系統,它提供了豐富的支持上下文和數據,一直到網絡包,以幫助分析人員識別和理解對企業重要的事件。
論文組織如下。我們首先在第二節介紹了用戶和實體行為分析(UEBA),并提出了問題。第三節詳細描述UEBA模塊的核心算法。然后,我們在第四節提供了Niara平臺的概述,并描述了實現和部署的細節。在第五節中,我們展示了來自真實世界數據集的實驗和結果,并在第六節中給出最后的評論。
2. 用戶和實體行為分析
行為分析和異常檢測是非常寬泛的術語。在本節中,我們以一個特定的服務器訪問行為用例作為運行示例來設置問題。在產品中還有其他幾類UEBA用例——例如。例如,與基線中未見的新值相關的異常,與地理位置相關的異常等,這些異常都由下面適當的機器學習算法支持。但是由于篇幅的限制,我們將關注這個特定的用例。
考慮企業中的一個重要服務器,需要對其進行監視,以查看被入侵的帳戶或非法用戶的操作。我們監視訪問服務器的每個用戶的訪問模式。我們感興趣的實體是所有連接到服務器的用戶。為了檢測異常,我們首先需要定義用于比較的基線。我們考慮兩種情況:
(1)什么是用戶行為?
首先,我們必須定義什么是用戶行為。這包括確定用于分析的時間粒度(每小時、每天、每周等等),并確定一組特征來描述每個用戶在每個時間段內的訪問模式。在本例中,我們選擇監視每天的用戶訪問行為,下面是每天對每個用戶-服務器計算的特性子集:
隨著時間的推移,通過上述所有特征收集的數據作為異常檢測算法的輸入。對于歷史基線,特定用戶-服務器對的歷史上數天的數據向量用作基線數據x。對于測試日的相同用戶-服務器對的數據用作測試數據向量x。在某一天訪問服務器的所有用戶(或特定組內的用戶)的數據向量被用作當天的基線X, X中的每個向量都根據該基線打分。
3. 算法概述
我們的方法是基于馬氏距離[7]的概念。我們首先描述了概念,并詳細說明了我們如何適應它,以創建一個靈活的異常檢測算法,可以在現實場景中使用,以產生可解釋的結果。
(1)馬氏距離
https://zhuanlan.zhihu.com/p/46626607
單邊偏差:
大多數安全用例的主要需求是找到偏差是單邊的用例。例如,在監控敏感的內部服務器的下載活動的情況下,人們可能并不關心是否有人下載的比正常的少,而是想知道下載的規模是否真的很大。但是馬氏距離將在低位和高位同時顯示偏離正常活動的跡象。
我們擴展了該方法,為N個變量中的每個變量提供一個可選參數,以指定是否必須忽略偏離均值的正或負方向。更準確地說,用戶指定一個長度為N的可選向量,包含-1、0或1。如果第i項為-1,則小于均值的第i個變量的值對馬氏距離計算沒有貢獻;如果值為+1,則不考慮大于平均值的值。如果值為0,則平均值上下的值都將被考慮。
變量權重:
在某些用例中,另一個常見的需求是能夠為不同的變量提供不同的權重。例如,如果我們想監視用戶長時間的服務器訪問,但不關心他們的下載活動,這個擴展提供了有時間變量的能力,當與字節相關的變量,如下載和上傳活動相比,貢獻更多的馬氏距離。設w是權重向量,其中wi是第i個變量的權重。這個想法是讓第i個變量的方差增加一個因子wi。要實現這一點,請參閱表i中的步驟2。
離群值的魯棒性:
對離群值的魯棒性:使用公式1計算馬氏距離有一個重要的實際缺點。由于μ和Σ的真實平均值通常是未知的,因此在實踐中,人們使用數據集的經驗估計。然而,協方差矩陣的估計對數據中異常值的存在非常敏感。有一些啟發式的方法,目的是在數據集中找到一個純粹的點子集,并排除異常值。迭代求出其協方差矩陣行列式最小的點[10],[11]。
由于上述原因和前面提到的其他原因,我們采用了一種使用SVD的替代方法來計算距離。然而,SVD對異常值也很敏感,由方程4得到的分解可能會因為X中存在異常值而發生傾斜。
我們從最近關于主成分分析(PCA,[1])的健壯版本的工作中獲得了靈感。主成分分析(PCA)與奇異值分解(SVD)密切相關,是一種常用的降維和數據分析技術。給定一個帶有噪聲的測量矩陣(圖像、傳感器數據等),使用主成分分析(PCA)找到一個低秩矩陣,作為被測量量的真實值的代理。在噪聲較小且噪聲誤差服從獨立同分布的正態分布的假設下,這種方法很好地工作。在許多實際情況下并不是這樣,健壯的PCA或RPCA[1]被引入來處理。
可解釋的結果:
任何異常檢測方案的一個重要方面是,不僅要識別異常,而且還要提供關于被檢測點為何異常的信息。在我們的例子中,我們顯示了每個變量對異常得分的貢獻。
將距離映射到一個分數:
馬氏距離不是從上面限制的,計算的距離可以是任意大的。然而,產品需求之一是為每個異常生成一個置信分數,該分數限定在區間[0,100]內。我們使用一個s形函數將馬氏距離映射成一個置信度分數。
從用戶反饋中學習:
我們還實現了一個可選功能,算法可以從用戶那里獲取反饋。對于給定的測試向量,用戶可以提供關于計算的異常分數過高(在誤報的情況下)或過低的反饋。不需要修改算法,就可以輕松實現假陽性處理。在III-B3節提到的算法中,我們確保訓練集不包含任何異常值或異常值。當用戶標記一個被算法評分為異常的測試向量時,這意味著測試向量可以被認為是基線的一部分。換句話說,我們可以使用這個標記為假陽性的測試向量作為訓練數據的一部分。其想法是,保持假陽性數據的列表,并在訓練期間包括它們,以確保類似的數據向量在未來不會引起異常。然而,這種方法不能擴展到用戶認為生成的異常評分太低的情況
4. 解決方案概述和系統實現
在本節中,我們提供Niara平臺的概述,并描述UEBA模塊體系結構和實現的細節。
(1)Niara安全分析平臺
Niara平臺是一個企業安全分析解決方案,旨在威脅搜索、事件調查、內部威脅檢測和相關用例。其目標是讓安全分析人員自動檢測繞過外圍防御系統的內部攻擊。諸如命令和控制、內部偵察、橫向傳播、特權升級和暗示潛在惡意活動的外逃等活動會被自動檢測到。圖2提供了平臺概念架構的概述:
Entity 360:
這個平臺的核心理念是Entity360的概念。與特定實體相關的所有信息——用戶、IP地址或設備——來自各種數據源的信息被匯集在一起,在實體360中生成一個全面的風險概要。它提供了與實體相關聯的所有增強安全信息的一致視覺表示。它旨在為安全分析師提供一鍵訪問信息的機會,否則,這些信息將花費數小時或數天的時間在多個數據豎井中搜索,并作為任何調查和響應工作的一部分進行收集。綜合entity360是一個多步驟的過程——第一步是在數據融合步驟中將來自各種數據源的信息匯集在一起,然后應用各種分析模塊來提取特定的安全見解。
數據融合:該平臺可以從各種網絡和安全數據源(例如。、包、流、日志、文件、警報、威脅提要)。在數據融合過程中,將原始數據進行相關處理,使其更有意義(例如。例如,將IP地址與用戶聯系起來),并提煉為提供豐富上下文的摘要(例如。、認證和設備使用歷史、端口-協議關系)。該平臺建立在一個健壯的大數據架構上,可以處理來自不同來源的大規模數據的不同速度
分析:分析模塊使用機器學習模型——有監督的和無監督的——來檢測和識別對安全分析師重要的事件。這些模塊有助于跟蹤實體的總體風險評分。該平臺中有幾個分析模塊,但它們大致可以分為兩類——行為分析和我們所說的離散分析。離散分析模塊大多基于有監督的機器學習算法,用于檢測和識別已知的未知。例子包括識別惡意軟件感染,可疑的可執行文件等。另一方面,行為分析模塊大多基于無監督機器學習算法,以解決更復雜的問題,如檢測未知的未知,惡意或受損害的內部人員。
事件和警報:當分析模塊成功檢測到惡意活動或異常時,它會觸發事件。每個事件與一個或多個實體和帶有兩個分數,(我)嚴重程度評分所定義的安全分析師表示業務上下文和重要性,和(2)一個模塊生成的信心得分,可以認為是一種概率檢測模塊是正確的。兩個分數的值都在0到100的范圍內。例如,分析師可以選擇將所有行為事件的嚴重程度設置為100
(2)UEBA實現
圖3總結了UEBA模塊的架構。該體系結構支持其他類型的UEBA用例,但我們將重點關注基于SVD的服務器訪問行為異常檢測。分析師首先要配置用例通過指定(a)的實體類型關注——用戶IP地址或設備,(b)的IP地址(es)或內部服務器的主機名(s)的興趣,?使用的基線,可選(d)任何其他過濾數據。一個示例用例可以是監視財務組(附加數據過濾器)中的用戶(實體)對內部財務服務器(感興趣的服務器)的訪問。此外,分析人員將定義要使用的特性,我們在第二節給出了示例特性。我們省略了用例配置工作流的細節,因為它超出了本文的范圍。
整個工作流可以分為四個不同的階段。我們將在下面逐一描述:
5.實驗結果
UEBA模塊已經作為Niara平臺的一部分部署在多個客戶站點上。在本節中,我們展示了Niara內部網絡在2015年11月至2016年1月3個月內收集的真實網絡流量數據集的結果。整個數據集包含1,315,895,522(13億)個原始數據記錄,其中每條記錄對應一個網絡第4層會話。
我們給出了一個特定服務器訪問行為用例的結果。我們通過指定服務器的IP和端口(8080)來跟蹤對內部Jenkins服務器的訪問。在這3個月的時間里,總共有362,791個對話是從不同的內部IP地址發送到Jenkins服務器的。我們將UEBA模塊配置為使用對等和歷史基線檢測此用例的異常。總共產生了64個事件,其中39個是置信度大于60的警報。表II按基線類型顯示了事件和警報的數量,圖4顯示了置信度分數的分布。
第一行顯示當天收到警報的用戶的功能,而其余行顯示基線的功能。在頂部面板中,將對等點用作基線,而在底部面板中使用用戶自己的歷史功能。請注意,與同行相比,該行為是異常的,而與用戶自己過去的行為相比,1月14日是正常的一天。該用戶是Jenkins服務器的管理員,與同齡人相比,預期會出現行為偏差。“下載字節”功能是造成這種異常的最重要的功能。
6.結論
本文介紹了Niara安全分析平臺的用戶與實體行為分析(UEBA)模塊。我們提供了解決方案的概述,并詳細介紹了基于svd的算法,用于檢測安全分析師感興趣的異常。我們描述了體系結構和實現細節,并展示了解決方案的有效性,以及在真實數據上的示例經驗結果。該解決方案目前部署在多個客戶站點,并為安全團隊提供了更多關于其網絡和用戶的可見性和洞察力。就后續工作而言,我們已經概括了部署體系結構,使客戶能夠在他們選擇的任意日志上自行配置新的用例。我們還用更多的機器學習模型增強了模塊,并在真實世界的數據集上驗證了它們。我們將在未來的論文中報道這些進展
總結
以上是生活随笔為你收集整理的企业安全中的用户与实体行为分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CC2541入门环境搭建
- 下一篇: 5u fb库 三菱plc_PLC指令入门