UEBA架構設計之路1

原文鏈接:https://www.secpulse.com/archives/95668.html

UEBA架構設計之路1:UEBA框架

安全管理 唯品會SRC 

 2019-01-23  5,724

鳴謝

VSRC感謝業界小夥伴——mcvoodoo,投稿精品原創類文章。VSRC歡迎精品原創類文章投稿,優秀文章一旦採納發佈,將有好禮相送,我們已爲您準備好了豐富的獎品!

(活動最終解釋權歸VSRC所有)

前言

 一直以來大家都在用各種技術和機制檢測安全威脅,從早期的SOC到SIEM,再到現在大數據驅動的UEBA。UEBA通過機器學習對用戶、實體進行分析,不管這種威脅是不是已知,也包括了實時和離線的檢測方式,能得到一個直觀的風險評級和證據分析,讓安全人員能夠響應異常和威脅。

 

背景

惡意檢測一般通過對異常行爲設定規則來判斷,也會使用各種防禦設備監控流量,例如IDS,WAF等。但這些系統的擴展性始終是個問題,當流量突發增長時很難跟得上,同時基於流量的檢測可見性也不夠,在交換機的接入層基本上由於成本原因,就無法再進行檢測了,更不能通過其他網段的上下文來輔助,攻擊如果巧妙一點,完全可以繞開這些設備。

 

軟件是另外一種辦法,在終端上監控設備之間的數據,但一樣,軟件的可擴展性、可見性也不令人滿意。

 

實際上,如果設備和用戶是可信的,現有的很多方法都檢測不到。傳統安全產品的缺點是無法檢測未知威脅和內部威脅,無法擴展,難以處理大數據。而且攻擊者總能找到繞過傳統安全技術的方法,比如規則驅動的惡意文件簽名,沙盒。此外隨着數據量的增加,人工分析越來越慢,響應速度過長。舉例來說殺傷鏈,從入侵到橫向移動到滲透,傳統安全產品很難關聯並作出適當響應,容易被大量誤報淹沒。

 

UEBA相對來說具有洞察力和可擴展性,簡單說UEBA是大數據驅動,且採用機器學習方法進行安全分析,能夠檢測高級、隱藏和內部威脅的行爲分析技術,不需要使用簽名或規則。在殺傷鏈上能關聯數據,進行有針對性的發現,這些分析技術包括機器學習、行爲建模、分類、對等組分析、統計模型和圖形分析。分析結合評分機制,對比活動,最終實現異常和威脅的檢測。同時,UEBA還包括威脅可視化,以可視的方式跨越殺傷鏈分析。

 

因此UEBA一個特點就是要能處理多個數據源的大量數據,這些數據源格式不同,速率也很快,後續的數據處理能夠從結構化/非結構化提取有價值信息,數據處理是數據挖掘和預測分析領域的延續擴展,也是一門單獨的學科:知識發現和數據挖掘。數據源分爲實時和離線,實時連續監測分析傳入數據,一般不考慮歷史數據和第三方數據關聯,因爲對性能有影響。

 

UEBA檢測到的是“異常”,異常是說和預期行爲發生了變化,變化不一定是威脅,例如大促活動就會帶來變化。異常表示需要引起關注,評估後給出威脅判斷,威脅指標則代表了關注度的逐級上升。比如通過數據源產生了100個異常,進一步聚合爲10個威脅特徵,再次產生了1-2個威脅指標,這種數據擴展的方式讓UEBA能夠進行異常和威脅檢測。

 

在機器學習背景下,歷史數據和第三方數據都可以用來改進模型,但這些數據要比實時大的多,所以也比較慢。因此一般不把歷史數據用在實時處理,即使用也以實時數據爲主。實時檢測後需要觸發動作,例如封IP,鎖定賬戶,殺進程,誤報解除等,這些動作可以不是直接攔截,而是提供出來進行人工決策,這些決策的反饋,進一步更新改進模型。

 

離線處理可以發現更微妙的異常和威脅,實時處理是有短時間決策約束的,離線在這方面要寬鬆很多。實時處理的數據是經過過濾的,完整的數據存爲離線,因此離線可以有更多屬性,跨越時間地理等信息。

 

系統整體框架

 

整體視圖上,底層是基礎設施層,考慮到成本問題,可以使用各種虛擬化。基礎設施層上面則是軟件層,一般包括Hadoop,spark,storm等。Hadoop進行分佈式存儲和處理超大集羣數據集,storm是分佈實時計算引擎,對數據流進行實時記錄計算,Spark是大規模數據處理引擎,把事件收集在一起進行批量處理。

再上面則是智能層,這一層主要功能是安全語義層和機器學習層,語義層提取轉換加載數據,供給下游消費,機器學習層是語義層的消費者。

智能層上面是應用層,機器學習的輸出由應用層分析。

 

 

這張圖是系統內的一個概念圖,數據接收模塊是個負責從數據源接收數據的邏輯組件,包括了各種通信的API。ETL做數據準備,把數據接收模塊的數據進行預處理,例如添加元數據,目標是爲了讓下游有效消費。

ETL把數據處理好,實時傳遞實時分析,也通過批處理路機構傳遞給批處理離線分析。實時數據是流式傳輸,逐個記錄的,離線數據則是在固定時間窗口批量集合傳遞,所以離線分析器還可以進一步獲得附加歷史數據,實時分析器的結果和過程數據。

 

 

上圖是整體架構了,數據源部分收數據,日誌類數據例如用戶登錄和訪問事件,數據可從操作系統和安全系統(如防火牆、安全軟件)生成。應用類數據源,根據情況不同有推/拉或混合機制,這裏的數據例如HR系統,CRM系統等。最後一個類別是網絡數據源,例如流量類,也包括從網絡操作系統獲取。

數據源將數據提供給接收器,接收器有各種API和連接器,並且需要能夠可選過濾,這部分主要技術是Flume和REST,Flume是開源分佈服務,用來收集、聚合、傳輸大量日誌數據。REST是訪問大型數據庫的界面。

數據進一步提供給語義處理器解析數據字段,也可補充數據,比如IP和身份的關聯,這裏的技術實現是Redis。語義處理器中也需要過濾器,對一些無需處理的事件過濾,比如數據在兩個IP之間的內部備份,安全上無需進行處理的話則過濾掉。其他可配置屬性也很重要,對數據的解析配置,關聯用戶和IP,數據屬性關聯外部屬性,也可用來調整過濾器。

 

數據處理後到分發模塊,分發給實時和離線處理。

實時可以用Storm或Spark Streaming,這裏還有進一步的分工,後面會詳細說。不同的機器學習模型可在此進行分析,並且生成安全相關評分。

評分後的指標提供給UI用戶界面,用戶界面中包括可視化地圖、威脅警報等,也同時可以直接輸出action,監測到的數據持久化存儲在數據庫。如果安全人員需要調查,則從數據庫撈數據。如果是誤報,將分析結果反饋給數據庫。

在事件調查時,安全人員可能需要多種渠道獲取數據,因此這裏提供一個訪問接入層,訪問層包括了各種數據庫和用戶界面的API。

離線的基礎設施包括,SQL訪問SQL存儲庫,存儲時間戳的時間序列數據庫,圖數據庫。圖表示實體與異常之間的關聯,用戶之間的交互,時間上的序列,異常節點等,另有一些附加註釋。因此圖數據是數據分析的一個重要工具。

離線批量分析可以從時間序列、圖數據、SQL存儲獲取數據,也從外部獲取其他三方數據。模型管理則包括模型註冊和存儲,註冊存儲模型的類型定義,存儲則存儲模型狀態。

還有一些其他零碎模塊:模型有個需求是和其他模塊共享,例如跨國公司,基礎設施部署地不同,安全圖也可以共享。底層是Hadoop。另外也需要一個控制層,監控平臺自身運作情況。

在實時處理中分爲兩個模塊,分別代表異常檢測和威脅檢測階段,異常分析的輸出給威脅分析模塊,在實踐中,這兩個階段可以是相同模塊分階段,用不同模型執行。

異常檢測輸出到異常編寫器,異常編寫器的作用是把異常信息存儲到數據庫,也同步在時間序列數據庫、HBase、圖數據庫。事件確定異常後,更新事件關聯關係圖,關係圖建議是按頻率例如每天一次聚合。同樣異常分析輸出也是一樣的存儲方式。

用戶實體行爲分析(UEBA) 

 

UEBA通過各種交互實體的行爲基線檢測異常和威脅,通過和基線比較確定,平臺則根據數據自適應改變行爲基線,支持多個機器學習模型。

 

上圖是行爲基線構建過程,例如人員A使用服務器S1訪問源代碼服務器,這是日常工作,偶爾也會訪問訪問服務器S3。因此平臺基於人員A的網絡訪問活動形成基線。人員B也是如此。

但實際上,不僅可以爲用戶生成,也可爲任何類型實體創建基線,包括用戶,組,設備,設備組,應用等。上面這個例子,也可根據服務器S3生成基於時間的基線。基線可以根據新接收的時間持續更新(包括實時和批量),也即是可自適應的更新。假設人員B開始頻繁訪問S1服務器,且這種訪問被判斷爲合法,他的基線則被自動更新。

通過傳入事件數據,與實體基線比較進行檢測。變化的閾值可以靜態/動態定義,超過閾值則認爲異常。比較可以基於多種技術,例如時間序列分析判斷每小時登陸數,機器學習或圖分析,檢測有各種機器學習模型執行。

 

以上是整體框架。後面的章節則會介紹各種組件的細節,包括數據接入和準備引擎,處理引擎,實時/離線配置,機器學習模型和不同應用,交互等。

UEBA架構設計之路2:數據接入和準備

脈搏文庫 唯品會SRC 

 2019-01-30  4,568

VSRC感謝業界小夥伴——mcvoodoo,投稿精品原創類文章。VSRC歡迎精品原創類文章投稿,優秀文章一旦採納發佈,將有好禮相送,我們已爲您準備好了豐富的獎品!

(活動最終解釋權歸VSRC所有)

 

 

上篇引言

UEBA通過機器學習對用戶、實體進行分析,不管這種威脅是不是已知,也包括了實時和離線的檢測方式,能得到一個直觀的風險評級和證據分析,讓安全人員能夠響應異常和威脅。

到底是怎樣的整體架構呢?我就不再介紹了,沒看過第一篇的朋友,可以點擊下面鏈接,去看第一篇:https://www.secpulse.com/archives/95668.html 

已經看過的朋友,咱繼續。

後面的章節則會介紹各種組件的細節,包括數據接入和準備引擎,處理引擎,實時/離線配置,機器學習模型和不同應用,交互等。

三、數據接入和準備

 

數據類型

 

數據來源

數據價值

應用日誌

 

本地log文件,log4j,log4net,weblogic,websphere,JBOSS,.NET,PHP

 

用戶活動,欺詐檢測,性能

業務處理日誌

業務處理日誌

 

客戶活動,渠道,訂單,賬戶變動,問題報告

 

點擊流數據

web

 

可用性分析,用戶行爲分析,商品分析

 

配置文件

系統配置文件

 

基礎設施安裝、debug、錯誤、後門木馬

 

數據庫審計日誌

數據庫日誌

 

數據被誰,在什麼時間做了修改

 

文件系統日誌

 

敏感數據存儲和共享系統

 

監控審計敏感數據讀取

API日誌

各類API

 

API失敗事件、爬取、越權

 

消息隊列

JMS,MQ等

 

應用程調試問題、日誌架構主幹問題

 

操作系統狀態和診斷命令

cpu和內存使用狀態信息

 

故障、潛在問題、趨勢、事件調查

 

包/流數據

 

 

Tcpdump,tcpflow生成的pacp或流數據,以及其他數據包級和session級信息

 

性能下降,超時,瓶頸或可疑活動,表明網絡可能受到威脅或遠程攻擊

Syslog

 

路由、交換、其他網絡設備

 

故障、分析、安全審計

WEB訪問日誌

WEB服務器

 

WEB分析

 

PROXY日誌

PROXY

 

數據泄漏

 

Windows事件日誌

Windows應用、安全和系統事件日誌

 

檢測關鍵應用,安全信息和使用模式

 

無線數據

 

DNS lookup記錄,協議級信息:header,content和流記錄

 

監控應用性能和可用性,事件調查,網絡威脅檢測

 

上面這個表舉了一些例子,包括數據類型和含義,計算環境內生成大量機器數據,包括性能、診斷信息、操作信息(例如上傳、刪除、登陸動作)和其他各種類型,可以分析出性能問題、用戶操作交互問題、用戶行爲基線、異常或威脅等。機器數據不僅是日誌,還包括配置,API數據,消息隊列,事件變更、診斷命令輸出,甚至也可以包括工業系統的傳感探測等。

事件有很多類別,例如防火牆事件、IDS事件、登陸事件,由各種不同的系統產生,這些系統從路由到Hadoop,再到雲服務器等,所以數據格式五花八門,很多數據類型不可預測,傳統的SOC不是針對這種數據多樣性,速度,體積和可變性設計的,所以很難應對。

另外不同類型的數據包括不同信息,事件所屬的通信層(OSI七層來看)越高,事件信息越豐富。網絡日誌只包括IP之間通信信息,應用日誌可具有最豐富的信息,不僅可以獲得通信信息,還包括共享等,價值更高。會話層數據可識別用戶用什麼憑證登陸,使用哪個會話,比下層網絡數據更有價值。

 

 

上圖則是數據接入和準備階段的實現,這裏包括了多個數據連接器,格式檢測,解析器,字段映射器,關係圖生成器,身份解析模塊和事件視圖等。

 

數據連接器   

數據連接器連接各種數據源,提供訪問接收功能,數據源可以包括:

  1. 身份認證:例如域控制器,SSO,人力資源系統,VPN,DNS,DHCP等;

  2. 活動:網關,代理服務器,防火牆,DLP,文件服務器或文件主機活動日誌;

  3. 安全產品:終端安全,入侵防禦系統,入侵檢測系統或防病毒;

  4. SaaS和移動:例如阿里雲,SaaS應用,移動設備; 

  5. 外部威脅情報:列入第三方黑名單的IP ,手機號。

 

數據連接器根據數據源,可以分爲推/拉/混合。拉機制是基於查詢的系統,例如splunk通過向數據源發出指令主動蒐集數據,這種需要根據實時性能來定製查詢,要考慮數據源的性能問題。對於推送機制的數據源,可以識別數據源輸入端口,將數據推進來。還有混合機制,可以接收事件通知並確認,在約定時間通信接收事件。

對於HDFS這種分佈式系統由於包括大量數據,優選是減少數據移動節省網絡資源,所以對數據連接器的要求是生成多個作業,把作業發送並耦合到HDFS的作業處理集羣,從這裏接收數據。實際操作例如生成MapReduce作業,發佈耦合到YARN,這樣數據的移動很少,數據仍然保留在分佈式文件系統中。

 

格式檢測器   

有種情況是,數據連接器接收到的數據格式未知,分析師還沒有設定對數據如何解析,這時候格式檢測器就要發揮作用了,需要對數據進行模式匹配以確定格式。這種匹配可以用正則表達式或統計規則,再高級一些可以採用啓發式,分層對複雜數據格式進行模式匹配,順序是先剝離已經識別的格式,例如syslog事件頭,再遞歸執行數據格式化匹配。

格式檢測器比較耗資源也很耗時間,其實在安全領域很多數據格式都是預先知道的,例如防火牆日誌,所以只要指定數據源和格式,數據接入準備就可以根據已知格式映射數據,並不需要數據格式檢測,做的更友善的話,用戶可以通過界面指定自動配置。

 

字段映射器

除此之外還有一種辦法,分析師可以創建新配置文件片段進行定製,比如對特定數據源,配置文件可以識別哪個字段對應時間戳,哪個對應IP,還可以包括實體、動作、token、事件類型、機器類型等。如果數據是二進制,則可利用標記或解析器。通過自定配置文件,繼而可以設置字段映射、字段關聯,用於身份解析的指定參數。這麼做的好處是系統不需要重新編譯或重啓。

字段映射器根據預定數據格式解析數據,把數據標記爲KEY-value。初始步驟是用正則表達式提取剝離,例如syslog,先用syslog正則表達式去除syslog外殼,顯示其中事件消息,然後解析器把數據標記爲多個KEY以供進一步處理。

字段映射器把提取到的KEY映射到一個或多個含義字段,可以指定提取令牌中的哪個表示實體,實體可以是用戶、設備、應用、會話、URL等,也可指定哪些代表操作事件。對實體的提取可以讓分析師知道一些環境信息,比如用戶是誰,用戶量是多少,哪些應用被用戶訪問,環境中有多少設備。

 

關係圖生成器

關係圖生成器識別並記錄實體之間的多個關係,爲每個事件生成單個關係圖的叫做迷你圖,圖包括很多節點和邊,每個節點代表一個實體,每個邊表示兩個實體的關係,任何事件涉及至少兩個關係實體。圖生成器可以根據動作來識別實體關係,例如可基於動作、可識別關係表進行比較來識別關係,可識別關係表是可定製的以適應數據源。可能的關係則包括:連接、使用、運行、訪問、上傳、下載、成功登陸、重新啓動、關閉、登錄失敗、攻擊、感染等。例如GET表明用戶正在使用特定IP機器訪問另一個IP的網站,但在實踐中,可識別關係的數量與圖的大小直接相關,會影響到平臺性能和速度。可識別關係還包括相同類型實體(比如兩個用戶),或兩個不同類型實體(例如用戶和設備)的關係。

 

image.png

 

如上圖,表示用戶A使用IP地址10.33.240.240與外部IP74.125.239.107通信,傳送了106字節,事件狀態碼200,HTTP狀態爲GET的TCP事件,除此之外還包括事件數據的很多附加信息。使用前面的解析器和字段映射器,圖生成器可以容易識別並創建關係圖。關係圖包括實體(用節點表示)、連接的邊。

圖生成器將關係圖附加到關聯事件數據,生成的圖被記錄爲事件數據的附加字段,也可單獨存儲或傳到後續節點,傳到Kafka之後再經過事件處理引擎進一步處理,事件處理引擎使用機器學習模型執行分析,並根據情況結合關係圖進行異常分析。

Kafka可在預定時間段聚合所有事件關係圖,當多個事件比較時,異常會更容易識別。例如設備週期性外部通信,但突然出現了多臺非週期性的連接,則識別出了異常。所有事件的迷你圖,可以組合成更大的複合關係圖,計算可以耦合多個關係圖。複合關係圖可被存儲爲多個文件,每個文件對應時間段,一般可每天存儲,挖掘則一週或一個月。

事件關係圖持續合併到複合關係圖,複合關係圖隨時間增長,這就要週期性的從複合關係圖中刪除老化數據。

節點和邊寫入按時間命名空間分區的圖形文件,每個較小的段與主分區按天合併,合併是指將類似的節點和邊合併到同一記錄,同時也可增加實體節點權重,這樣事件到達的時間順序就不那麼重要了,只要事件有時間戳就可以和正確分區合併,同樣可以並行方式在多個節點上創建複合圖。

複合圖可識別所有時間窗口內的關係,隨着事件增加複合關係圖大小也會增加。很多單個事件看起來沒多大意義,但當事件夠多,且所有關係圖被組合後,可以提供更多的洞察,隨着關係圖增加,洞察指標的準確性也逐步增加。

單獨事件關係圖被存儲,但尚未被組合時,關係圖可以隨時進一步更新,例如當前事件已經覺察有異常,則可以更新該事件關聯圖以包括該信息,這個個體關係圖被修改成異常節點,當複合關係圖創建時,可用於確定影響的實體。

複合圖能讓系統執行分析,實體行爲可以是一系列、一定量,或由機器學習模型確定。通過明確記錄事件關係,關係圖生成器在此引入複雜處理引擎,關注與關係的不同部分。

 

身份解析和設備解析

身份解析技術用於跟蹤哪個用戶,通過哪個網絡,登陸到哪個特定設備。在未知威脅檢測中用戶行爲的信息非常重要,但並非所有日誌都包含用戶信息,典型的例如防火牆日誌不會記錄用戶身份,因此即使特定通信是惡意的,防火牆也不能定位到用戶。所以當日志不能捕獲用戶信息時,就需要身份解析定位用戶。

身份解析模塊需要觀察系統環境(比如基於認證日誌)獲得信息,智能建立身份解析,這裏也可以用到機器學習模型跟蹤用戶和設備之間的關聯概率,這種信息獲取可以基於多個接口數據。由機器生成的叫做機器標識符,例如MAC和IP,一臺機器可以生成多個機器標識符。用戶標識符是用戶關聯的,例如用戶名,電子郵件地址。身份解析模塊可以通過用戶標識符作爲關鍵字查詢數據庫解析用戶身份,數據庫一般是HR系統。用戶標識符可以直接被視爲用戶,這樣雖然簡單,但問題是用戶會使用不同的用戶標識符,這樣檢測會有漏過問題。

機器學習模型有不同階段,在訓練階段,接收用戶和機器標識符,解析模塊創建更新關聯概率。

 

隨着事件增加,模型可以更好的訓練關聯概率,身份解析模塊創建概率圖,概率圖用來記錄當前正在跟蹤的每個用戶的關聯概率,概率圖包括外圍節點、中心節點和邊緣,如上圖所示。上面四個圓圈是這臺機器的外圍節點,下面圓圈代表用戶中心節點,節點之間的百分比表示關聯概率。

模型是時間順序概率圖,概率隨時間變化,也就是說,模型結果是基於時間的,對當前和歷史輸入有依賴性,在大型企業裏,時間依賴性對首次解析用戶的場景很有用,然後會被逐漸分配給不同用戶。所以身份解析模塊可以根據用戶在不同時間點啓動機器學習模型的不同版本,每個版本有生效週期,用戶事件達到後,模型版本依次啓動、訓練、激活、連續更新、到期。

模型根據事件不斷更新,事件本質上是涉及用戶和機器標識符的,但也可以根據特定標識符來訓練。模型根據事件類型爲新事件分配不同權重,當滿足標準時認爲模型已經經過訓練,也可根據事件量和時間窗口來定義。

訓練之後(例如關聯概率超過置信度閾值時),身份解析模塊激活該版本模型,此後的新事件如果滿足身份解析的特定標準,則創建新事件與特定用戶關聯記錄。這些標準包括:新事件有機器標識符,或版本處於活動時間段,從經驗來看,身份解析技術識別單獨的機器標識符效果還不錯。

根據用戶關聯記錄,身份解析模塊註釋新事件,顯性連接到特定用戶,把用戶姓名作爲字段添加到事件中,將用戶關聯記錄發送到Redis緩存服務。

解析模塊並不只是關聯用戶和設備,也可以是設備與設備的關聯,分爲第一機器標識符和第二機器標識符,如果事件只有第一標識符,則解析模塊創建關聯機器記錄,機器標識符在實際中通常被標記爲例如張三的筆記本電腦,可以更友好的觀察。在這裏解析模塊變成了設備解析技術。

設備解析技術在DHCP中使用較多,因爲DHCP環境的計算機沒有靜態IP,每臺計算機啓動時都可能有不同的IP,所以只是用IP關聯會導致分析錯誤。這樣就需要創建MAC和IP映射,這種映射在生存租約週期有效,可以根據DHCP日誌進行分析,隨着日誌更新動態建立機器標識符映射。

 

事件豐富器

   類似定製版格式檢測器,事件豐富器通過Java添加配置,爲事件添加新字段,例如對IP進行地理位置附加,或者對來自服務器的事件進行註釋,這樣可以區分服務器和網絡設備,或者啓發式確定用戶登陸情況。其他常見的豐富還有黑白名單,Whois查找等。

 

事件視圖

事件處理引擎爲數據接入準備階段提供統一訪問接口,也即是事件視圖。各種不同類型的事件數據會讓數據分析平臺難以執行自動化分析,因此在這裏提供統一,把多個異構數據源創建爲同類。

綁定是把非結構化數據轉化爲結構化數據的過程,綁定的時機選擇有兩種,一個是早期綁定,數據在傳入階段就被轉換爲結構化,但早期綁定通常會丟失一些潛在信息,這些信息在案件中可能特別重要,同時也存在技術問題,因爲沒有辦法在這個階段提供統一的方式訪問數據。

二是後期綁定,只是在數據進行操作的時候才綁定。換句話說在數據接入準備階段沒有做任何事,保留了原始事件數據,這樣在後期綁定時候才處理,也讓系統具有非結構化數據訪問的通道。事件視圖的實現是Java類,其內容包括訂閱事件名稱,可以包含多個字段以訪問事件的某些屬性,機器學習可以根據這些字段識別事件數據的子集,例如serverIP,sourceIP,sourcePort是模型需要的信息。事件視圖將方法和事件屬性信息關聯,比如機器學習用方法來獲取事件中URL隨機性。事件視圖存儲在庫中,當調用事件視圖時進行加載。

數據接入準備階段可向事件數據添加視圖標識符,這個標識符允許下游複雜處理引擎選擇接收信息,每個模型的註冊表都可指定特定視圖標識符,進行選擇接收,可以理解爲提供了機器學習模型的訂閱機制。

 

上面是個防火牆事件,事件到達時首先確定生成事件的機器是X牌防火牆,基於機器類型確定該事件屬於防火牆事件,然後基於配置自動添加兩個視圖標識符:網絡和防火牆(這些都是分析師可調)。

  此後下游機器學習模型訂閱事件視圖,訂閱是指允許信息自動路由。通過事件視圖可訪問的信息有:接口邏輯生成的信息,事件數據集。

 

會話

會話可以和身份解析結合實現,這裏有會話跟蹤器和會話解析器。監測到會話開始結束時,進行會話關聯事件數據的標記,然後利用身份解析或設備解析,在會話窗口內事件都和會話關聯,例如RDP和SSH都登陸到另一設備,這就有了相關性,我們稱爲會話譜系。例如用戶在晚上10:13在IP10.245.0.6首次啓動AD會話,然後又有一個SSH會話以root登陸新系統,這兩個會話都屬於這個用戶,且有會話延襲,需要會話技術關聯。

被跟蹤的會話分配會話標識符sessionId和相關標識符correlationId,會話標識符用於標識相同會話,相關標識符查找同一延襲的其他會話,會話跟蹤器根據登陸/註銷事件跟蹤用戶會話,會話跟蹤器負責在數據庫中創建維護狀態。

新事件到達,且類型被設置爲SessionStart,則表示新會話創建,會話跟蹤器將事件存儲在會話數據庫跟蹤,存儲包括開始時間、用戶標識符、設備標識符、會話ID信息,從事件視圖派生的LinkContex。通過新會話,進程線程開始自動在數據庫匹配,匹配通過三個字段確定:“from-session-link-context(會話源主機)”,“to-session-link-context(會話目標主機)”和“link-Event time(會話記錄時間)。”

如果沒有匹配,則通過離線會話掃描附加,這個進程可以配置爲每15分鐘一次。如果執行身份解析的話,這種識別會更準確。會話過程也可以接收超時事件,在數據庫中創建“超時”類別。

UEBA架構設計之路3:複雜事件處理引擎

脈搏文庫 唯品會SRC 

 2019-02-01  4,696

鳴     謝

VSRC感謝業界小夥伴——mcvoodoo,投稿精品原創類文章。VSRC歡迎精品原創類文章投稿,優秀文章一旦採納發佈,將有好禮相送,我們已爲您準備好了豐富的獎品!

(活動最終解釋權歸VSRC所有)

 

上篇引言

UEBA通過機器學習對用戶、實體進行分析,不管這種威脅是不是已知,也包括了實時和離線的檢測方式,能得到一個直觀的風險評級和證據分析,讓安全人員能夠響應異常和威脅。

到底是怎樣的整體架構呢?我就不再介紹了,沒看過前面篇章的朋友,可以點擊下面鏈接,去看看:

UEBA架構設計之路1:UEBA框架

UEBA架構設計之路2:數據接入和準備

 

已經看過的朋友,咱繼續。

後面的章節則會介紹各種組件的細節,包括數據接入和準備引擎,處理引擎,實時/離線配置,機器學習模型和不同應用,交互等。

 

四、複雜事件處理引擎

複雜事件處理引擎跟蹤分析數據流,這種數據流是無界的,也即是連續接收開放的數據序列,且終點未知。傳統引擎都是基於規則的,規則的特點是計算簡單,所以在實時計算中消耗較少。但規則的問題是針對已知結論的模式,對未知攻擊無法識別,所以他不需要考慮歷史事件。歷史事件的增加,會對存儲和處理能力都有新的要求。

 

UEBA系統使用基於ML的引擎,分佈式訓練和多機器學習模型的應用,模型處理事件特徵集生成評分和結論。在實時處理中,收到數據,通過機器學習模型,立刻得到結論。事件特徵集包括原始數據子集、關聯的元數據、原始數據彙總和派生屬性、標籤以及這些內容的組合。通常事件處理引擎將輸入輸出都存放在非持久性存儲器,提高I / O,減少時延。

 

引擎實時訓練且更新模型,並可實時應用。引擎可在實時計算系統上實現,例如Storm可以實現任務的並行性,而不是數據的並行性。Spark和Apache Spark Streaming可以用數據並行來實現,分佈式計算系統可以耦合到其他分佈式組件,例如於簇的高速緩存Redis,分佈式文件系統HDFS等。

 

與傳統規則引擎比,能夠識別未知模式,能夠結合歷史數據且不讓計算負擔過重。不僅可使用無監督模型,還可支持監督、半監督。引擎基於歷史事件訓練決策樹,這種情況下決策樹優先於規則,因爲可以基於歷史事件序列決策。引擎也可訓練狀態機,狀態機不僅基於歷史事件序列訓練,也能應用。在處理特徵集時可以跟蹤實體多個狀態,每個運行時狀態表示實體歷史,而不必跟蹤實體的每個歷史事件。

 

模型執行多種類型的分析,來自上下文各種事件數據源,各種關聯的細粒度級別。舉例來說,模型可對特定實體的行爲分析,事件的時間序列分析,實體活動的圖形相關性分析,實體對等分析和組合。原始事件數據源包括網絡設備、應用服務、消息服務、終端設備等,上下文設置包括網絡場景、登陸場景、文件訪問場景、應用執行場景和組合。模型的輸出則包括異常、威脅、威脅指示,並且通過多種手段呈現輸出。

 

   對實體的行爲分析手段有很多,例如:

  1. 概率後綴樹(PST)

  2. 協同過濾

  3. 基於內容的推薦分析

  4. 使用文本模型的白名單和黑名單統計匹配

  5. 熵/隨機性/ n-gram分析的分層時間記憶過程

  6. 統一資源定位符

  7. 網絡資源定位符和域(AGD)

  8. 罕見分類特徵/關聯分析

  9. 實體的身份解析模型

  10. 陸地速度異常/地理位置分析

  11. 離散時間序列數據的貝葉斯時間序列統計基礎(基於可變記憶馬爾可夫模型和上下文樹加權)

  12. 週期性模式的動態閾值分析

 

   基於圖形的實體活動分析的方法也很多:

  1. 命令和控制檢測分析

  2. 信標檢測器

  3. 設備,IP,域和用戶信譽分析

  4. 橫向移動檢測器

  5. 用戶/設備的動態指紋識別

  6. 相似性和頁面排名的實體分組

  7. 社交鄰域圖聚類

  8. 在線分佈式聚類

  9. 二分和通用圖聚類

 

 

上圖是事件處理引擎框架圖,無界數據流作爲輸入,模型觀察每個事件特徵,得出結論。整個組件包括高速緩存組件、分佈式文件系統、消息傳遞平臺和紛飛時計算系統。也能支持對關係數據庫的訪問例如mysql,非關係存儲訪問HBase,事件序列數據庫和圖數據庫。高速緩存組件也是分佈式的,我們是在REDIS實現。

分佈式文件系統將數據存在計算集羣上,通過集羣聚合提供帶寬,包括了名稱節點和數據節點,數據節點使用文件訪問協議(塊協議或文件協議)服務,這裏是用Hadoop分佈式文件系統(HDFS)實現。

分佈式文件系統存儲模型註冊表、模型存儲、模型執行代碼庫,有的設計也會把執行代碼庫作爲模型註冊表的一部分。模型註冊表存儲模型定義,用途是訓練和應用機器學習模型的工作流。模型存儲則表示機器學習模型、版本狀態,模型狀態將特徵處理成結論。模型代碼執行庫存儲處理邏輯和事件視圖關聯過程邏輯。

消息傳遞平臺提供引擎和外部系統通信,這裏是Kafka,負責接收無界流,高速緩存組件和分佈式文件系統的數據發送到模型。

分佈式計算系統是實時數據處理引擎,也是分佈式計算集羣,負責協調多個節點線程。每個計算節點是N個woker。

 

1、模型架構

引擎實現多個相同類型的學習模型,定義要訓練和應用的工作流程,類型有模型註冊表的模型類型來定義。

 

 

 模型執行代碼包括:

  1. 模型程序邏輯:描述了相關線程的數據結構和過程邏輯,程序邏輯參考訓練和審議邏輯。

  2. 模型訓練邏輯:將數據變成模型狀態的更新,隨着數據的更多輸入可以更新模型狀態。

  3. 模型審議邏輯:將數據轉換成決策結論。

  4. 模型程序模板、模型訓練模板、模型審議模板:所有類型模型之間的共享邏輯,可以限制爲模型程序必須經過訓練和審議邏輯。

 

2、模型類型定義器

 

模型類型定義用來訓練應用模型的各種配置,其中包括模型類型標識符、模型類型名稱、用於訓練流程的處理模式指定器、審議模式指定器、模型輸入類型配置、模型類型拓撲,處理模式指定器指明處理模式是實時還是離線。

輸入類型配置:指定模型類型訂閱哪些事件視圖,事件特徵集可以用視圖標籤來標記,引擎使用標籤訂閱提供給相關線程處理。

模型類型拓撲:引擎將線程分發給不同worker。指定同類模型的數據分配,這種分配既可以是數據互斥分區,也可是重疊。結合實際來理解,拓撲可以指定按照用戶組分組數據,也可按照特徵分組數據。

 

3、分佈式計算系統 

分佈式計算系統實現集羣資源管理,這裏用的是YARN,集羣資源管理實現計算平臺引擎(例如Storm或Spark Streaming),在引擎上的進程可以訪問數據訪問層。數據訪問層則提供關係數據庫、圖數據庫、菲關係數據庫、時間序列數據庫、高速緩存組件、分佈式文件系統。

image.png

分佈式計算平臺引擎可以實現模型執行引擎,然後模型執行引擎初始化模型相關線程,每個線程則是訓練、審議的一系列程序指令。每個線程由分佈式計算平臺引擎獨立管理。數據訪問層可以使線程能夠訪問模型類型定義、模型存儲、事件特徵集。

 

4、拓撲

引擎基於拓撲選擇數據和線程給worker,稱爲基於拓撲的分配。這裏將拓撲和執行平臺做了分離,拓撲負責分配維護定向非循環圖(DAG)結構,這個結構的好處是可以動態執行線程和數據依賴,這樣線程能在worker之間自由移動,可以提高模型處理性能。DAG還對安全、可伸縮性和模塊化有益,在伸縮性上能夠做到高速緩存、負載平衡、複製聚合數據流,模塊化則在你對特定模型更新的時候,隻影響相關worker。

 

5、模型訓練流程

 

worker執行與模型關聯的訓練過程,如果模型狀態還未存儲,則根據訓練邏輯產生模型狀態。

當數據提供附加特徵時,重新訓練模型。一種是在沒有相同輸入數據遞歸或迭代情況下訓練,一種則涉及增量。訓練進行特徵集隔離,僅重新訓練其中這一部分。

接下來則訓練到什麼時候爲止,則由模型準備邏輯來確定了,模型準備邏輯定義有多種,已經訓練了多少事件、持續時間、模型狀態是否收斂(閾值變化)等。模型不同邏輯也不同,當訓練足夠時,進入標記狀態準備部署。

 

6、模型審議流程

 

模型審議線程處理時間窗口數據流,計算最近時間窗口的分數。引擎可在訓練的同時繼續創建新版本做模型審議,模型審議也可不暫停不重啓重新配置。

接下來模型審議基於分數形成結論,分數與恆定閾值比較,或與動態基線比較得出結論。

一方面結論聚合存儲,即可存在系統中,也可被分到分佈式文件系統。另一方面將結論通過消息平臺發佈,使其他審議或訓練模型可利用結論。

當結論表明威脅存在,生成用戶界面元素觸發消息動作指令,例如要求中止應用,拉黑流量或者賬戶。另一方面也需要分析師反饋結論,這時可根據反饋更新模型。

接下來檢查健康情況,將計算得分和安全結論與其他模型比較,以確定偏差情況,如果超過一定百分比,則將健康狀態置爲失敗,並且退出自身。

 

7、離線注意事項

 處理引擎有實時和離線兩種,離線有更多時間,因此主要用來處理更大量的數據,所以離線處理引擎的需求有兩個,一是與分佈式數據集羣交互,而不是複製、移動數據;二是利用各種編程模型,例如MapReduce。

基於需求一,則要求系統可以發出指令,查詢、操作HDFS連接器,因爲下游處理可以取決於事件順序,典型的場景如用戶行爲基線構建,所以HDFS連接器可以按照順序檢索存儲事件。

需求二,離線模型可以被簡化,以便和MapReduce兼容。簡化模型可以映射到多個副本,每個副本僅處理特定數據集。然後可將副本所有生成信息縮減回模型,這樣就獲得了單個副本處理完整數據集相同的結果。也就是說,可簡化模型可以並行處理數據。根據模型不同,訓練階段可能會縮小,但評分不會縮小。

離線處理引擎和HDFS連接器協作,直接訪問存儲在HDFS中的數據。這個功能的實現需要作業控制器,作業控制器在這裏作爲引擎管理器,和連接器一起使用。作業控制器使連接器針對HDFS數據庫運行查詢,並選擇處理,典型場景是指定時間範圍的查詢,按事件時間排序。

有些類型的日誌文件是高優先級的,需要連接器優先處理,通常這種高優先是豐富信息事件,能夠提高整體分析的準確性。例如爲了啓用身份解析,優先處理DHCP日誌,然後把用戶數據和設備關聯的日誌,最後纔是其他文件,連接器指定其排序。

對檢索到的數據,作業控制器位引擎啓動啓動作業,跟蹤進度,在完成和失敗時標記。分析完成後,作業控制器可以執行其他任務,例如導出身份解析結果,導出時間序列數據,或推送到Kafka。

作業控制器對文件的檢索可以基於時間,例如每小時一次或每天一次,連接器檢索後,將批處理文件傳給作業控制器,作業控制器又啓動引擎分析。

引擎的另外一個合作是和目錄編目,目錄編目是個耦合到HDFS的數據庫,讓連接器能夠確定解析文件和順序。當連接器檢索時間範圍內的文件,首先引用數據庫中的表directoryCatalog,檢查是否存在需要處理的行,並存儲它在數據庫中運行的最後時間lastRunTime。如果連接器在directoryCatalog中找不到任何行,則爬取當前目錄查看是否有需要處理的文件,遇到文件後檢索文件的修改時間,如果早於lastRunTime則丟棄,否則進行解析。

如果連接器按照升序記錄事件,則停止解析返回第一事件的時間。如果降序,連接器尋找文件結尾檢索第一事件時間。如果未確定排序,連接器解析整個文件並返回第一事件時間。然後在數據庫增加一條,包含文件名、第一個事件的時間。

離線引擎可以對實時中不可用的信息進行分析,例如複合關係圖,因此離線引擎可以使用機器學習模型處理複合圖投影。

離線引擎首先定位複合關係圖,然後獲取複合圖投影,投影包括與機器關聯用戶的圖,以便跟蹤橫向移動。投影可以是很複雜的,實體關聯的用戶圖,用戶網站活動圖。

複合關係圖投影模型在後面會有繼續說明。

UEBA架構設計之路4:異常、威脅指標和威脅

安全建設 唯品會SRC 

 2019-03-01  2,812

上篇引言

UEBA通過機器學習對用戶、實體進行分析,不管這種威脅是不是已知,也包括了實時和離線的檢測方式,能得到一個直觀的風險評級和證據分析,讓安全人員能夠響應異常和威脅。

到底是怎樣的整體架構呢?我就不再介紹了,沒看過前面篇章的朋友,可以點擊下面鏈接,去看看:

 

UEBA架構設計之路1:UEBA框架

UEBA架構設計之路2:數據接入和準備

UEBA架構設計之路3:複雜事件處理引擎

 

已經看過的朋友,咱繼續。

後面的章節則會介紹各種組件的細節,包括數據接入和準備引擎,處理引擎,實時/離線配置,機器學習模型和不同應用,交互等。

 

五、異常、威脅指標和威脅

系統平臺檢測首先異常,進一步基於異常形成威脅。還有一個名詞是威脅指標,是指安全威脅的潛在中間級別,安全威脅指標又可分爲底層威脅、威脅指標、頂級威脅。之所以這樣逐步演進,目標是爲了減少誤報,降低噪音。

 

上圖是威脅識別處理流程,爲了減少誤報,整個流程先處理大量事件檢測異常,進一步處理得到威脅指標,最後處理多個威脅指標識別出真正的威脅。

異常表示預期行爲發生了變化,變化不一定威脅,但表示了可能引起關注的事件,由於大型系統中異常是海量的,所以在這一步無法進行人工介入調查。例如傳入了1億個事件,產生了100個異常,進一步處理則得到10個威脅指示,再被進一步處理得到1-2個威脅。

 

1、異常檢測

 

上圖是異常檢測流程,從ETL接收數據,異常模型處理數據。異常模型包括模型處理邏輯,定義了給事件打分的過程,同時也定義模型狀態。異常模型可以有多個類型,例如橫向移動、黑名單、惡意軟件、罕見事件等。

之後進行評分,評分也是異常模型的處理邏輯完成,將異常相關程度量化。打分是一定範圍的值,例如0-10,0表示最小異常,10表示最大。

如果異常分數滿足閾值,輸出異常指示。閾值不是靜態的,應該基於場景可變,所謂場景例如事件數據量、預定義事件是否存在、異常檢測量等。

 

2、識別威脅指標

 

威脅指示的生成和異常流程一樣,不再贅述。

 

3、識別威脅指標——實體關聯

image.png

 檢測到的異常通常與多個實體相關,比如發現多個設備異常,而設備又和多個用戶相關,這些異常組成異常數據集。在上圖中的小方框裏,異常1與7個各類實體關聯,但是異常2、3、4則只和一個單獨實體對應。所以從整體上來看,異常1由於關聯較多,所以威脅指標評分更高。換句話說,檢測到的關聯實體越多則威脅越大。在前面階段的異常檢測級別是沒有這個範圍視圖的,因爲異常模型是基於每個實例來處理,也即是異常模型是基於特定實體,而威脅指標則涉及整體範圍。這是其中的差別。

 

4、識別威脅指標——異常持續時間

 在時間段t0到tn階段檢測到異常1~N,實際場景中表示短時間內發生大量異常,異常具有開始時間和結束時間,如果檢測到的異常持續時間滿足標準,則識別爲威脅指標。

 

5、識別威脅指標——罕見度分析

 

罕見度分析也可以理解爲稀有度分析,如果事件確定爲罕見,則檢測爲異常。這種異常檢測是局部稀有性分析,在特定實體的背景下觀察事件罕見性。基於本地異常彙集成全局稀有性分析,這樣異常的數量就是嚴重程度的重要指標。全局稀有性模型和本地稀有性模型是相同的處理邏輯的模型,不同在於一個是檢測集合,一個是檢測單個實體。

 

6、識別威脅指標——關聯異常

 

關聯異常是指用不同模型檢測同樣的數據,同一個數據被稀有度分析模型檢測出異常,也被其他模型檢測出異常,這樣的組合觀察能提供更多視圖,基於這種組合的結果打分。

上面的關聯是並行的,另外一種組合是串行,第一個模型處理完交給第二個模型,例如先看是否有關聯異常,再看是否稀有度異常。

 

7、識別威脅指標——異常數據豐富

 除了內部檢測模型,還可使用諸如威脅情報之類的外部數據,例如檢測到實體連接外部木馬遠控服務器。通過外部信息合併,可增加置信度,並且在一些情況下識別威脅指示。

 

8、識別威脅

 

首先,威脅指示符數據的子集和預定義的安全性場景相關聯,根據相關性識別出候選威脅。相關性我們後面再解釋,可以理解爲類似惡意軟件威脅範圍關聯,或者殺傷鏈關聯組件實體。

接下來把威脅指示數據和預先配置的預設規則比較,例如內部威脅可以和專家規則關聯。然後生成模式匹配的分數。如果滿足標準則識別爲安全威脅。

 

六、複合關係圖

複合關係圖總結了整個網絡所有角度來看安全,複合關係圖可以表示各種實體以及異常節點,然後各種模型可以使用複合關係圖檢測威脅。

 

迷你圖生成後,複合關係圖把同類型進行壓縮合併爲一條,分配到不同投影。每個投影代表複合關係圖子集,例如運維部門的登錄、web訪問、文件訪問、跳板機活動就是一個投影。投影存在Hadoop集羣中,基於時間戳細分存儲,相關文件存在集羣附近提高訪問效率。通過關聯複合關係圖可進一步識別異常,例如鄰域計算算法來識別一組異常,基於時間窗口的異常和置信度度量等。

 

從數據源接收事件數據,然後ETL解析生成關係信息。這個過程把每個事件的實體和關係生成一個迷你圖,每個迷你圖對應節點和邊。拓撲引擎對迷你圖進行處理檢測異常,圖聚合器把迷你圖和異常組合到複合關係圖,圖庫組件處理底層圖數據庫存儲,圖合併組件運行後臺作業,週期性將新數據合併到複合關係圖。

 

 

上面是一個複合關係圖,有用戶U1-U11,設備IP1-IP7,異常節點I1-I4。其中I1、I2、I4的異常都指向了設備IP3,I1、I2、I4同時還分別連接到了U4、U5、U7、IP5,這些說明它們是可疑用戶。因此決策引擎可以識別一組節點表示的威脅。

 

上圖表示了複合關係圖存儲投影的過程,複合關係圖的每個邊(關係),圖庫組件檢查邊的類型以確定所屬投影,例如登錄投影、網站訪問投影、異常投影等。確定後將特定邊分配給投影。

 

圖庫組件進一步將投影分解爲多個文件,每個文件存儲特定時間段記錄,再精細一些,將投影分爲對應到天的目錄,每個目錄對應到小時。這個粒度也可以動態調整,例如對過去兩個月,分解爲每小時。對兩個月前的記錄,分解爲每週,隨着時間推移則進行合併。

這裏的異常關係也是複合關係圖的一個子集,包括用戶進行異常活動的邊,每個投影根據時間戳存儲,系統識別時間戳後將其相鄰存儲,提高網絡讀取效率。

 

複合關係圖的威脅檢測過程:

  1. 接收事件數據

  2. 生成事件特定關係圖(迷你圖)

  3. 獲取異常數據並存儲

  4. 將特定關係圖壓縮組合

  5. 將特定關係圖與異常數據組合成複合關係圖

  6. 從複合關係圖和時間範圍,使用模型分析

  7. 模型分析後,將複合關係圖轉換爲異常關係圖,識別安全威脅

  8. 確認異常

UEBA架構設計之路5: 概率後綴樹模型

Web安全 唯品會SRC 

 2019-03-18  5,390

上篇引言

link (9).jpg

UEBA通過機器學習對用戶、實體進行分析,不管這種威脅是不是已知,也包括了實時和離線的檢測方式,能得到一個直觀的風險評級和證據分析,讓安全人員能夠響應異常和威脅。

到底是怎樣的整體架構呢?我就不再介紹了,沒看過前面篇章的朋友,可以點擊下面鏈接,去看看:

UEBA架構設計之路1:UEBA框架

UEBA架構設計之路2:數據接入和準備

UEBA架構設計之路3:複雜事件處理引擎

UEBA架構設計之路4:異常、威脅指標和威脅

 

已經看過的朋友,咱繼續。

後面的章節則會介紹各種組件的細節,包括數據接入和準備引擎,處理引擎,實時/離線配置,機器學習模型和不同應用,交互等。

 

七、概率後綴樹模型

傳統技術只關注單一事件,但實際上單一事件正常,並不代表整體正常。在UEBA中,用了許多模型來發現異常,概率後綴數則是對異常序列進行檢測的方法。序列可以對任何符號檢測(符號是指特定類型的安全事件,例如連接失敗、密碼重置、文件訪問等,機器可以觀察到的事件)。事件類型符號用單個字符(例如,x,y,z)或整數(例如,0,1)表示,概率後綴數Probabilistic Suffix Tree,本文簡化爲PST模型。

 

具體來說:給定多個符號的觀察窗口,則PST模型可預測下一個符號,通過異常計數識別異常。PST模型需要訓練才能更準確預測,可以有一組特定歷史符號訓練,這組訓練量要能確定預測是否可信。訓練通常包括固定時間、固定數量、自動訓練等方法,固定時間和固定數量都好理解,自動訓練則是直到模型滿足某個標準,例如收斂、得分向量和其他模型比較等標準。爲了把計算複雜度保持在合理程度,訓練也可小量,只訓練四到五個符號。這種序列分析方法利用了“可以記憶”的PST特性。PST模型的序列生成過程可被建模爲可變長度馬爾可夫鏈,類似於有限狀態自動機生成。PST模型的存儲容量可以通過歷史符號的最大長度來控制,歷史符號則是概率後綴樹的深度,並且是馬爾可夫鏈長度。

 

在訓練PST模型之後,能夠可靠預測下一個符號。換句話說,給定多個符號歷史,PST模型可針對實體看到下一個符號的整個概率分佈,下一個符號的概率標示爲P(下一個I歷史),也稱之爲預測。例如,PST模型生成P(a|aabcd)=0.1, P(b|aabcd)=0.8, P(c|aabcd)=0.1, 和P(d|aabcd)=0,這個意思是,給定歷史“aabcd”,預測下一符號是“a”的概率爲10%,“b”是80%,“c”是10%,“d”不可能是下一個符號。如果下一個符號是“d”,由於“d”的概率非常低,所以該事件是罕見的,則觸發異常。當PST模型預測符號出現概率小於閾值(例如0.1%)時,異常符號出現。

 

上圖是PST模型訓練示例,PST的深度是3。

 

由於不同類型實體行爲特徵不同,爲了進一步增強預測準確性,PST模型可以首先建立特定實體基線,使用連續預測的分析窗口來構建這個基線,說人話就是:對於特定實體,瞭解特定窗口有多少異常事件時是正常的。

 

當PST模型訓練完成後,記錄下一個符號預測結果,利用這個額外的基線預測剖面圖層,PST模型可以更加穩健抵禦噪聲,降低誤報。換句話說,假設在分析窗口有10個異常符號是正常的,那麼模型可以通過基線預測剖面學習,減少誤報概率。分析窗口表示爲“W”,分析窗口的長度可以表示爲| W |。

 

上圖說明概率後綴樹的模型的訓練,基線預測的建立,以及模型版本的激活。

 

分析窗口可以根據需要調整,例如對閾值低於長度的預測數量比率R計數來評估分析窗口,R也就是稀有分數。舉例來說,長度爲10的分析窗口內,有4個預測值低於0.01%,則該分析窗口中異常事件的比率R爲4/10(或R = 0.4)。

 

PST模型準備就緒之後,通過將分析窗口滑動一定時間長度,收集每個分析窗口內的預測。時間長度標示爲基線預測分析階段圖,然後用柱狀圖觀察比率,柱狀圖記錄了特定用戶的常用R,也即是一段時間內重複執行每個分析窗口的預測,這個時間段時分析窗口長度的N倍(即,N×| W |)。在PST模型ready後的一段時間內,跟蹤每個分析窗口的R並存儲在柱狀圖,這個學習的柱狀圖表示爲“H”,利用這個柱狀圖,任何新的R,PST模型就可以產生P(R | H)。P(R | H)是在給定先前Rs的歷史的情況下看到具有比率R窗口的概率,以這種方式,可以構建特定實體的基線預測。

 

構建柱狀圖後,激活PST模型開始檢測,進入了評分階段,爲了檢測異常,首先記錄稀有序列。具體來說,激活模型後,使用目標窗口識別稀有序列。類似基線分析階段評分過程,PST模型生成預測並計算給定目標窗口的比率R,對目標窗口進行評分。爲了更好的預測精度,可將目標窗口的大小設置爲與分析窗口相同,在爲目標窗口生成R之後,PST模型參考柱狀圖找到具有該級別的至少R窗口概率,如果該概率(即,P(R | H))低於某個閾值(,則PST模型確定該特定目標窗口是異常,並記錄該異常窗口。

 

另外在實際中,也可使用可疑窗口擴大技術,這樣可以完全的捕獲異常。當目標窗口具有具有足夠低概率的R時,啓動窗口收集過程,可疑窗口擴大技術目的是擴展異常活動窗口,嘗試在單個窗口內儘可能多包括相關異常。這個技術讓原始目標窗口發現異常時擴展到指定大小,但需要注意,窗口可以擴展的時間越長,所需的內存就越大,展開的窗口可以表示爲“E,“其中| E | 等於或大於| W |。

 

爲了實現可疑窗口擴大,在檢測到目標窗口中的異常R時,PST模型固定目標窗口的起點並開始增加窗口的大小。當正常R的下一個窗口時,異常窗口的收集過程停止。

 

將上述收集的異常窗口與稀有窗口的數據庫進行比較,每次有一個新的稀有窗口時,引用該數據庫以檢查過去是否存在任何“類似”罕見窗口。這種罕見窗口緩存技術的基本原理是:過去多次觀察到的罕見窗口往往比罕見的活動窗口“異常”,這種活動窗口與之前不同,例如對是否共享帳戶的發現就可使用此技術。

 

對於給定的序列,爲了確定系統之前是否已經看到,PST模型能夠將兩個序列相互比較,通過使用兩個度量的組合,餘弦相似性和Jaccard相似性。

 

PST-SIM:餘弦相似性(PST-SIM)的PST實現是表示兩個序列的兩個向量之間的餘弦相似性。每個載體由通過訓練每個序列的分離PST而學習的概率組成,PST-SIM度量可用於捕獲兩個序列的頻繁子序列之間的相似性。

 

JAC-SIM:Jaccard相似性的PST實現(也稱爲Jaccard索引)是兩個序列中符號之間的Jaccard相似性。它可以定義爲JAC-SIM(A,B)= | A交點B | / | A union B |該JAC-SIM度量對於少數不同符號的存在給予了更多權重,不考慮符號的出現頻率和順序。

 

因爲觀察到這兩個度量具有不同的目標,所以採用兩個度量的組合。PST-SIM強調符號分佈的更大整體圖像,並評估了分佈的相似程度。而JAC-SIM對兩個序列之間符號的存不存在更敏感。換句話說,與另一個序列相比,一個序列中存在的新符號越多,JAC-SIM結果就越不同。相反,如果僅缺少幾個符號,並且其餘的公共符號在兩個序列中以相同或相似的方式出現,則PST-SIM結果不受少數缺失符號的影響。通過Sim(S1,S2)= 0.5×PST-SIM(S1,S2)+ 0.5×JAC-SIM(S1,S2)計算兩個序列之間的相似性。

 

爲了查看PST訓練是否已開始收斂到另一個PST時,需要比較兩個PST。PST包含訓練中使用的所有符號的條件和邊際概率。因此,比較兩個PST的一種方法是對兩個PST進行矢量化,並逐個比較它們相應的概率。在對PST進行矢量化之後,產生兩個概率矢量,可以使用合適的矢量相似性度量(例如,歐幾里德距離或餘弦相似度)來比較兩個PST。

 

考慮具有三個可能符號{x,y,z}和深度爲2的PST的情況,意味着PST模型最多查看兩個歷史符號以預測下一個符號。假設邊際概率是P(x)= 0.8,P(y)= 0.15,並且P(z)= 0.05,並且條件概率是P(x | xx)= 0.7,P(y | xx)= 0.3,P(z | y)= 1.0,依此類推。然後,對於兩個序列A和B,表1是兩個序列的PST的兩個概率向量的示例。

 

 

P(x)

P(y)

P(Z)

 

P(X | XX)

 

P(Y | XX)

P(Z | Y)

. . .

PST-A

0.8

0.15

0.05

0.7

0.3

1

. . .

PST-B

0.6

0.4

0

1

0.4

0.8

. . .

 

對於每個稀有序列,也就是矢量化PST,PST摘要保持在稀有窗口高速緩存。由於序列的PST摘要包括所有概率信息,因此可以將PST摘要視爲罕見的窗口簽名。表示罕見序列的PST摘要可用於與另一序列進行比較。另外對於每個罕見窗口,罕見窗口緩存保持已經觀察到稀有窗口的次數的記錄,可以保存多天。通過這種方式,當出現新的罕見窗口時,PST模型則檢查稀有窗口緩存確定之前是否出現了新的罕見窗口,如果是肯定的話,有多少次、多少天不同。這個信息可用於確定新稀有窗口是否需要發出警報。

 

上圖是概率後綴樹模型的一個正常行爲序列,和下面這個比較一下:

 這個圖則是異常行爲序列,從這兩個圖可以看出,即使在多用戶協作的複雜環境,PST模型也可區分出異常。而異常則可以再用戶交互這裏呈現給用戶,如下圖。界面包括文本描述,哪個用戶異常,什麼樣的異常,窗口內多少個事件,持續時間等。

 

此外可向用戶顯示異常序列時間軸,如下圖按照時間軸顯示,用戶可在每個時間軸點擊進行交互。

 

 以這些方式,PST模型可讓整個系統確定:事件序列是否偏離預期基線,從而發現異常。並提供直觀方式讓用戶接收警報,理解相關信息作出決定。

UEBA架構設計之路6: 圖聚類

安全建設 唯品會SRC 

 2019-05-06  4,375

上篇引言

UEBA通過機器學習對用戶、實體進行分析,不管這種威脅是不是已知,也包括了實時和離線的檢測方式,能得到一個直觀的風險評級和證據分析,讓安全人員能夠響應異常和威脅。

到底是怎樣的整體架構呢?我就不再介紹了,沒看過前面篇章的朋友,可以點擊下面鏈接,去看看:

 

UEBA架構設計之路1:UEBA框架

UEBA架構設計之路2:數據接入和準備

UEBA架構設計之路3:複雜事件處理引擎

UEBA架構設計之路4:異常、威脅指標和威脅

UEBA架構設計之路5: 概率後綴樹模型

 

已經看過的朋友,咱繼續。

後面的章節則會介紹各種組件的細節,包括數據接入和準備引擎,處理引擎,實時/離線配置,機器學習模型和不同應用,交互等。

 

 

八、圖聚類

圖聚類是在複合關係圖或投影上,識別圖中的節點簇。例如檢測設備相似性,檢測實體活動基線偏差,這種節點簇可以方便的用於橫向移動或賬戶被盜。簇可以表示一組用戶,這些用戶傾向於訪問一組設備,決策引擎可以捕捉到那些有分歧的行爲,比如用戶訪問了其他設備,這樣就出現了異常。

 

圖聚類的需求是:高效、高度可擴展、並行,通過機器學習模型實現,並可在實時和離線運作。

 

自動集羣簇識別計算圖上節點L1範數值,在一維上爲節點分配位置(1D)網格。然後基於1D網格上節點的分配位置來識別圖中節點集羣。具體來說,通過將1D網格上的節點迭代重新定位到每個節點的L1範數最小的位置來創建節點組,以這種方式找到1D網格上節點的最佳位置之後,位於1D網格上相同位置的每組節點表示羣集。

 

其流程爲:

  1. 按任意順序遍歷圖,將所有節點映射到1D網格上

  2. 創建一組在一維網格中相同位置的節點,通過最小化L1範數,找到每個節點的最優位置

  3. 根據節點的內部/外部邊緣比例檢測每個組中的簇

  4. 根據節點的內/外邊緣配分,檢測每組的簇

  5. 移動外部邊緣>內部邊緣的每個節點,在1d網格中向左或向右移動一個位置(浮點)

  6. 如果有浮點,遍歷所有浮點與集羣合併

  7. 如果無浮點,輸出

 

初始過程是輸入任何圖,例如下面這種。這個過程可在圖構建時就執行,假設邊緣權重由整數表示,而不是浮點數,在適當的加權後,節點之間的多個關聯被摺疊成單個邊緣的權重。

 

第一步,逐個節點遍歷圖,並將節點映射到一維網格上,任何順序都可以,但廣度優先搜索最方便。從遍歷圖得到的一維網格是:

 

每個節點內的數字表示被廣度遍歷的順序,形成了最後的位置。

 

第二步,在將節點映射到1D網格之後,迭代最小化每個節點的L1範數以在1D網格上找到其“最佳”位置,創建在1D網格上具有相同位置的節點組(範數是向量空間中的每個向量分配嚴格正長度或大小的函數,零向量除外),L1範數是在節點的每個候選位置與所候選位置之間沿着1D網格的各個距離(絕對)的總和,候選位置是直接連接到圖中所有節點的位置,最佳位置是該節點在1D網格中的位置。因此將所有節點映射到1D網格之後,將首先嚐試確定節點1的最佳位置,爲此在其每個候選位置中計算節點1的L1範數,節點1直接連接到圖形中的節點2,5和6 ,因此節點1的候選位置是網格上的節點2,5和6佔據的位置。計算節點1中每個候選位置的L1範數,並選擇L1範數最小的位置作爲節點1的最佳位置。如果節點1保持在1D的初始位置,其L1範數將被計算爲網格上位置1和位置2,5和6之間沿着1D網格的絕對距離的總和,即:位置1處的節點1的L1範數是L1。範數1,1 = | 1-2 | + | 1-5 | + 1-6 | = 10。相反,如果要將節點1移動到1D網格上的節點5的位置,則位置5處的節點1的L1範數將被計算爲L1-Norm 1,5 = | 5-2 | + | 5 -5 | + 5-6 | = 4。

 

在例子中的驗證結果是節點1的L1範數在網格上的位置5處是最小的圖,節點1移動到節點5的位置。節點的最佳位置可能在後續迭代改變,但節點可以沿着1D網格重新定位。

 

 

在第二步處理完所有節點後,節點佔據網格上的相同位置,這些節點構成節點組,集羣簇。但在得出這個結論之前,進程查找每個節點組與外部有更強連接的任何節點,一旦發現則沿着1D網格重新定位。

 

第四步,基於節點的內部到外部邊緣比率來檢測每個組中的實際集羣,節點分爲內部邊緣和外部邊緣,內部邊緣是同節點組內,外部邊緣是連接到節點組外。如果某節點有外部邊緣,總和權重超過內部邊緣總重,即:內部/外部邊緣比率小於1,則在下一階段將節點沿着1D網格向左或向右移動一個位置(方向無關緊要),從當前節點移除該節點。以這種方式重新定位的節點稱爲“浮動器”,所以在後續步驟中存在任何浮動點,則遍歷所有浮動點與現有集羣合併。如果沒有浮動點,則輸出識別的簇,輸出是給給到其他機器學習模型、決策引擎、用戶界面等。

 

 

三次迭代後,節點位置如上圖,可以看出確定了三個集羣,節點1-5,節點7-11,節點12-14。

 

除了高效,高度可擴展和可並行化之外,這個過程也是增量的,如果在圖上添加節點,不必把整個圖形重新映射,通過最小化L1範數,可以將新添加的節點直接插入到1D網格中。

 

上述聚類識別技術可用於識別基本上任何類型的圖中的聚類。但有個特殊情況,這個情況是二分圖,二分圖是一個圖,節點分爲兩個不相交的集合,分爲正常節點和僞節點,他們形成了兩個獨立集,這樣每條邊連接一個正常節點和一個僞節點。在二分圖裏,正常節點表示用戶,僞節點表示用戶訪問的設備,這種二分圖對橫向移動檢測很有用。

UEBA架構設計之路7: 橫向移動檢測

安全建設 唯品會SRC 

 2019-05-10  3,169

上篇引言

UEBA通過機器學習對用戶、實體進行分析,不管這種威脅是不是已知,也包括了實時和離線的檢測方式,能得到一個直觀的風險評級和證據分析,讓安全人員能夠響應異常和威脅。

到底是怎樣的整體架構呢?我就不再介紹了,沒看過前面篇章的朋友,可以點擊下面鏈接,去看看:

 

 

UEBA架構設計之路1:UEBA框架

UEBA架構設計之路2:數據接入和準備

UEBA架構設計之路3:複雜事件處理引擎

UEBA架構設計之路4:異常、威脅指標和威脅

UEBA架構設計之路5: 概率後綴樹模型

UEBA架構設計之路6: 圖聚類

 

已經看過的朋友,咱繼續。

後面的章節則會介紹各種組件的細節,包括數據接入和準備引擎,處理引擎,實時/離線配置,機器學習模型和不同應用,交互等。

 

 

九、橫向移動檢測

用戶可疑橫向移動,通常說明用戶證書密碼被盜,或設備已被木馬控制。橫向移動檢測是基於用戶和設備之間的關係,給各設備分配相似性得分,設備和用戶之間是關係,而相似性得分說明設備和用戶的相似性。另外也基於登陸事件和設備分類元數據,解釋相關性。當用戶與常用設備相似性得分有明顯差別時,檢測出異常。

 

機器學習模型在這裏的作用是生成分類元數據,分配相似性分數。下圖則是橫向移動檢測框架圖:

 

機器學習模型分析事件數據,圖上是一個登陸投影,基於這個投影,模型爲每個設備和用戶生成分類元數據,分類元數據的作用是解釋用戶與設備的相關性,表示用戶是普通用戶、管理員或系統賬號,對設備則可以表示辦公終端、服務器、打印機等。所以上層模型可以實現自動識別用戶、設備類型。

機器學習模型識別用戶與設備之間的關係,如果事件數據包括登錄相關,則模型可將使用關係指示爲用戶登陸事件。右側是關係圖,左邊組是用戶,右邊組是設備節點,兩組是不相交集合。二分圖中每個邊都將用戶和設備相連,另外關係還表示事件時間順序。

 

基於使用關係,模型給設備分配相似性得分,相似性得分指示哪個設備被相同或類似用戶組使用。換句話說,相似用戶登陸設備傾向於具有相似性得分。

 

上圖是用戶和設備的二分圖示例,左側是用戶節點,右側是設備節點,U11、U13登陸到S21,U11、U12登陸到S22,U12和U13登陸到S23,因此S21、S22和S23是與用戶相似組關聯。這個相似用戶組就是U11、U12、U13。

 

注意U12在登陸到S24的時候是個虛線,表示特定登陸,而登陸S24的只有U14,這和U21、U22、U23顯著不同了,這種差異反映在相似性得分分別爲0.31、0.30和0.33。而S24相似性得分只有0.06。

 

當U12登陸到S24(虛線),模型確定S24得分0.06,無法滿足常用設備相似性得分標準,這個標準可自定義,本例假設爲0.255.這時模型檢測到異常。

 

模型進一步分計算用戶異常分數來判斷異常,異常分數表示威脅相關可能性,可基於設備相似性得分的統計度量差異來計算,例如平均值。在這個例子中,設備S24相似度得分0.06,S22和S23平均得分0.315,相似性得分差異爲0.255,模型把0.255和額外權重0.1相加得到0.355的異常得分,額外權重意思是這個設備的資產重要性。由於0.355超過0.3的閾值,所以報出異常。

 

不止於此,模型可基於用戶的基線檢測異常,這個基線包括用戶和設備的相似性,例如U12的基線,與S22和S22相似性得分差異是0.03,並且小於閾值0.1。基線還包括登陸失敗、成功、訪問成功、訪問失敗等。

 

模型可以以各種方式向設備分配相似性得分,上圖是過程。模型接收二分圖,對設備D4分哦誒初始權重值1,這個過程可以隨機,權重值也可以不等於1。

第二步,模型6300在設備節點D4處保持初始權重值1的百分比(15%),並且將D4的初始權重值1的剩餘部分沿着D4的邊緣均等地分配到節點U2,U3和U6。這個分配過程可視爲馬爾可夫鏈過程。在每個步驟中,值分配具有15%的概率(因此也稱爲“概率百分比”)以保持與前一步驟中相同。 值分配具有(100%-15%= 85%)概率跟隨節點的邊緣移動到另一節點。

第三步,節點D4保持權重值0.15(= 1 * 15%),剩餘部分均等分配給U2、U3、U6,每個節點接收權重值0.283(= 0.85 / 3)。

對每個節點,模型沿邊分配,直到D1-D6的權值收斂。對於D4,模型對其保持0.023(=0.15*15%)的權值,並將0.042(=(0.15*85%)/3分配給U2、U3和U6。U2,模型保持權值0.042(=0.283*15%),並將0.120(=(0.283*85%)/2分配給D1到D4。

 

同樣,對於U3,模型保持權值0.042(=0.283*15%),將0.241(=(0.283*85%)/1分配給設備D4。對於用戶節點U6,模型在用戶節點U6上保持0.042(=0.283*15%)的權值,並將0.120(=(0.283*85%)/2分配給設備節點D4-D6。

 

模型繼續迭代過程,直到D1-D6處的權重值收斂。在迭代的步驟中,對於每個節點,模型在節點處保持15%的權重值,然後沿邊將剩餘的權重值均等地分配給其他節點。收斂標準可以是指示這種收斂的任何標準,例如,當每個節點處的兩個連續步驟之間的權重值的變化小於閾值時,模型可以確定迭代過程達到收斂。

最後,迭代過程達到收斂時,顯示具有收斂權重值的最終步驟的狀態。D1-D6的收斂權重值是分配給這些設備的相似性得分。

 

 上圖從A到D線了模型確定相似性二分圖的示例。在A中,6610和6611有很多共同用戶,因此趨向於接近的相似性得分。

 

圖B,6620和6621有多個共享專用用戶28和29,專用用戶是僅和6620、6621交互的用戶,因此20和21趨向於接近的相似性得分。

 

圖C,6630和6631僅有單個共享用戶37,因此6630和6631具有較大差異的相似性得分。

 

圖D,6641、6642、6643是與用戶類似的基團(N1),而6644、6645、6646也是類似的基團(N2)。如果把用戶37移除,則基團分爲兩部分。用戶37是連接到兩組的唯一用戶,與N2的6645交互,和N1的6642交互,觸發組外訪問異常,因爲6642的6644的相似性分數差異很大。

檢測到的組外異常,表示用戶的可疑橫向移動。基於異常,模型可以進一步確定異常是否導致安全威脅,如上圖。其中U代表用戶,D代表設備,A代表異常節點,這個圖表達了:用戶節點U6701訪問了不常見的D6703。模型並不只是登陸關係,還包括其他類型諸如黑名單異常等。

 

A6704表示信標異常,信標異常意思:D6703設備週期性向與用戶節點U 6705用戶相關聯發送可疑信標消息。

 

6720圈出來的部分是威脅的關係路徑,從用戶節點U6701和異常節點A6702開始,以異常節點A6706和設備節點D6707結束,D6707表示關鍵資源設備,可能是域控之類。威脅沿着關係路徑,由一系列異常組成。

UEBA架構設計之路8: 惡意軟件檢測

安全建設 唯品會SRC 

 2019-05-27  2,907

VSRC感謝業界小夥伴——mcvoodoo,投稿精品原創類文章。VSRC歡迎精品原創類文章投稿,優秀文章一旦採納發佈,將有好禮相送,我們已爲您準備好了豐富的獎品!

(活動最終解釋權歸VSRC所有)

 

上篇引言

UEBA通過機器學習對用戶、實體進行分析,不管這種威脅是不是已知,也包括了實時和離線的檢測方式,能得到一個直觀的風險評級和證據分析,讓安全人員能夠響應異常和威脅。

到底是怎樣的整體架構呢?我就不再介紹了,沒看過前面篇章的朋友,可以點擊下面鏈接,去看看:

UEBA架構設計之路1:UEBA框架

UEBA架構設計之路2:數據接入和準備

UEBA架構設計之路3:複雜事件處理引擎

UEBA架構設計之路4:異常、威脅指標和威脅

UEBA架構設計之路5: 概率後綴樹模型

UEBA架構設計之路6: 圖聚類

UEBA架構設計之路7: 橫向移動檢測

 

已經看過的朋友,咱繼續。

後面的章節則會介紹各種組件的細節,包括數據接入和準備引擎,處理引擎,實時/離線配置,機器學習模型和不同應用,交互等。

 

十、惡意軟件檢測

 通過對網絡流量的分析,可以觀察到惡意軟件的痕跡,例如惡意軟件會定期向控制端發送信息。

1、惡意軟件通信檢測過程

 

 左上方接收到事件數據,其中自適應過濾器會根據動態白名單過濾掉無關緊要事件,舉例來說,雖然我們不知道xx.com這個域名是好是壞,但分析得知網絡上大多數用戶經常訪問xx.com,因此推斷xy.com爲良性,所以對xy.com進行惡意域名關聯分析沒必要。動態白名單能夠簡化計算,減少誤報。

 

接下來繼續處理事件數據生成特徵分數,並生成實體基線。特徵分數包括多個,每個分數則是根據不同特徵生成。這裏包括定時分析、語義分析、通信統計、排序分析、實體關聯分析、推薦分析和其他各種。每個分析生成一個或多個分數,例如時序分析可以生成兩個分數,一個是關聯通信週期性分析,另一個是關聯通信間隔時間的方差。

 

實體基線還可通過全局證據收集豐富取證數據,例如內部黑名單或外部WHOIS數據,通過證據收集進入證據數據,這裏的數據可對特徵分數模型產生影響。實體基線還包括分數歸一化,涉及歸一化多個特徵分數,以便在異常分數生成階段進行後續處理。

 

接下來生成異常分數,如果異常分數滿足標準,則過程結束。

 

2、生成要素分數和實體配置文件

特徵分數是基於每個實體計算的,也即是實體和惡意軟件關聯可能性量化評估模型,模型分爲處理邏輯和模型狀態,生成特徵和生成異常分數可以是同一個模型,常用特徵分數模型是監督和無監督,監督模型由人工開發訓練樣例以有效生成特徵分數,每個特徵分數是一段範圍內的值,例如0-10。

 

前面也說到特徵分數是基於每個實體計算的,也會生成多個特徵分數,下面這個表列出了xy.com的特徵分數f1到fn。

 

定時分析

通信統計

語義分析

其他分析

實體

f 1

f 2

f 3

f n

xy.com

5.2

4.0

3.2

7.8

 

上面是簡化的,實際情況中特徵可能包括幾百個,與實體關聯的特徵分數標示爲特徵向量f = {f 1 f 2 f 3。。。f n }。xy.com的實體配置文件可以表示爲特徵向量,f = {5.2 4.0 3.2。。。7.8}。

 

舉一些例子有助於理解,語義分析:通過分析關聯域名字符排序,這個字符排序生成了置信度。通信統計可以是通信週期性、通信間隔時間變化、通信順序檢測利用鏈、傳輸進出比率統計。定時分析,惡意軟件定期從外部接收控制消息。這些分析基於安全知識,得到的評分標識了惡意軟件關聯性。

 

但隨着對抗升級,惡意軟件也不再是基於靜態域名,而是機器不斷生成新域名通信。這裏的特徵是高度熵或隨機性,分析字符中的熵或隨機性方法則是通過n-gram分析,可以使用語言域名的大量詞彙來訓練用於n元語法分析的機器學習模型,通過訓練開發出n-gram概率列表。換句話說,n-gram分析模型可以觀察域名字符序列,可以參考國外的一個n-gram分析:

 

人肉查看,左右域名的哪個概率更低?顯然是左邊,n-gram概率模型要實現的就是這個見解。

分析一定時間內,實體定時的通信消息,基於特徵分配分數,其中特徵分數代表了置信水平。根據安全知識,高週期性的通信不太可能是人爲生成,而是機器生成。在數據傳輸統計上,通過進出比率能夠瞭解到通信目的,出方向大於進方向可以指示數據泄漏。

 

3、生成異常分數

異常分數基於實體基線得到,可將異常分數概念化爲實體所有特徵分數的組合。生成異常分數是一個集合學習過程,應用多個模型處理多個特徵。生成異常分數可以是簡單的計算特徵分數的加權線性組合,異常分數可以簡單表示爲:異常分數= ∑i = 1 n ⁢ ⁢wi fi

 

其中w i是每個特徵分數f i的加權因子,並且異常分數僅是多個特徵分數中的每一個與加權因子的總和。加權因子w i取決於很多因素,例如實體類型、用戶配置項、要素分數。

 

應用集合學習,能夠實現更好的預測性能並減少誤報,適用於集成學習的則是隨機森林,整個過程則是:根據多個機器學習模型處理多個實體基線,分配多箇中間異常分數。

 

4、異常檢測和通知

一旦生成異常分數,如果滿足指定標準,則檢測到異常,前面我們說異常分數可以是0-10,標準在這裏可定義爲大於等於6則爲異常。但指定標準不一定靜態的,可根據事件數據量、用戶配置等動態變化。

 

如果檢測到異常,則輸出異常指示線是個用戶,示例輸出如:

 

域名

通信分數

定時分數

7層分數

NLP分數

建議

www.abc.com

優先級:高,通信正常,活躍

www.frejghrf.com

0

0

優先級:低,防火牆攔截

www.baidu.com

 

最後的建議是根據前面得分進行解釋,而在得分上分爲高中無,也可以是數字。www.abc.com 通信分數爲高,表示通信正常且未攔截,因此建議中是高優先級處理。這個建議根據人工給定規則生成。

 

檢測到的異常存儲在異常圖數據結構中,異常圖數據結構表示關聯實體的多個節點,以及鏈接節點中的多個邊。

UEBA架構設計之路9: 信標檢測

Web安全 唯品會SRC 

 2019-07-23  2,062

上篇引言

UEBA通過機器學習對用戶、實體進行分析,不管這種威脅是不是已知,也包括了實時和離線的檢測方式,能得到一個直觀的風險評級和證據分析,讓安全人員能夠響應異常和威脅。

到底是怎樣的整體架構呢?我就不再介紹了,沒看過前面篇章的朋友,可以點擊下面鏈接,去看看:

 

UEBA架構設計之路1:UEBA框架

UEBA架構設計之路2:數據接入和準備

UEBA架構設計之路3:複雜事件處理引擎

UEBA架構設計之路4:異常、威脅指標和威脅

UEBA架構設計之路5: 概率後綴樹模型

UEBA架構設計之路6: 圖聚類

UEBA架構設計之路7: 橫向移動檢測

UEBA架構設計之路8:惡意軟件檢測

 

已經看過的朋友,咱繼續。

後面的章節則會介紹各種組件的細節,包括數據接入和準備引擎,處理引擎,實時/離線配置,機器學習模型和不同應用,交互等。

 

 

信標檢測

惡意軟件有很多檢測方法,例如根據每個IP通信雙方的流量檢測,其中包括IP黑名單、發生頻率等手段,但這些技術都有缺點。如果這些傳出流量的IP是一個開放接口,就很可能產生誤報,但最大的問題是網絡中的服務數量越多,複雜度越高,而且對於實時監控也是個挑戰。

惡意軟件需要和控制服務器通信接受指令,而且這個通信是定期的。惡意軟件生成的流量和用戶生成有不同模式,但大多數技術都無法識別這個區別,因此這裏是可以檢測惡意軟件的特徵。

傳出流量可能包括用戶流量如網站訪問、電子郵件、下載軟件。還會包括合法/非法機器流量,例如應用更新、設備時間同步、心跳、惡意軟件流量摻雜。機器流量有一些信標特徵,所謂新標是指週期性、規律性信號發送。

技術上需要區分用戶和機器流量,如果是機器流量則需判定流量是良性還是異常,有一些方法例如啓發式、白名單確定是否良性。但實際上還有更多參數,例如請求數量、週期性、web對象數量、目的IP、目的端口數等。

 

 

上圖是一個設備在17秒內的傳出流量示意圖,傳出包括用戶和機器流量兩類。當用戶活動時生成大量連接請求,當用戶不活動時進入靜默期,我們需要檢測靜默期,分析流量異常。

第一個用戶網頁訪問,在4秒內生成接近50個請求,請求發給不同服務器獲得網頁、圖像、CSS等,網頁完成後流量迅速下降到0。也就是:連接數量迅速增加或減少。

緊接着進入機器流量,請求較低,一直都未超過10。也就是:與用戶流量比,請求量低。此外連接更有週期性,每2秒出現一次。

總結爲:用戶活動有明顯流量增加,連接請求多,非週期性。機器流量則具有週期性。

 

區分機器和用戶的參數示例:

  1. 時間段內連接數量

  2. 連接週期性

  3. 連接不同IP數量

  4. WEB請求數量

  5. 目的地端口數量

  6. 目的地URI

 

 

 

假設對上圖中的終端計算機出流量進行檢測,終端計算機的出方向分別是內外部網絡,系統通過流量日誌檢測,流量內容包括網絡流量、IP流量、Web流量等,例如Web流量包含HTTP消息,可以和目的IP,目的URI,端口號,GET或POST等參數相關聯。IP流量可以和目的IP地和端口號之類的參數相關聯。

流量分析模塊檢測是否機器流量。如果是,則交給異常檢測模塊判斷良性還是異常。確定異常,則傳遞給威脅分析模塊,並生成警報。

在檢測機器流量部分,流量分類模塊分析流量中的連接請求,確定用戶流量還是機器流量,可以按照20秒時間分組。然後根據前面說到的參數判斷,例如週期性,分組中每個連接請求的之間週期平均值,如果超過閾值則確定爲機器流量,否則是用戶流量。如果目的IP呈現多樣性,超過指定閾值則確認爲用戶流量。同樣還有,下載的web對象超過閾值、端口數量超過閾值等。流量分類模塊可以配置爲一個或多個參數。

異常檢測模塊進一步檢測異常,從機器流量中提取信標數據,信標數據可以理解爲目的IP、目的端口之類的參數,如果是HTTP連接則進一步提取GET、POST、URI。將信標數據和已知信標類型比較,確定是否異常。

 

 

上圖是信標類型的高速緩存示例,異常檢測模塊把信標類型存在這裏,然後進行比較匹配。如果匹配到,則將信標數據添加到類型中。通常惡意軟件會定期和遠控端發送信標,信標之間的間隙會小於指定閾值,連接請求之間的長間隙通常可以歸屬良性,例如定期更新應用,但這類遠不如惡意軟件的信標頻繁。

 

在上圖中,信標類型第一次出現在在時間t,第二次出現在時間(t + x)等,異常檢測模塊負責確定出現次數和之間的時間,如果組頻率滿足週期性標準,例如平均時間(平均值(x,y,z))滿足指定的定時閾值,異常檢測模塊確定該組對應於其他組是異常。當組重複但週期性不滿足時,例如平均定時(平均(x,y,z))不滿足指定的定時閾值,異常檢測模塊確定組是否至少出現第二閾值數量,第二閾值數是否大於第一閾值數的時間,如果組發生第二次閾值,則確定爲異常。如果兩各週期閾值都不滿足,則是良性。

 

整個過程如上圖,首先流量分類模塊接收流量,然後進行分組分析,分組通常根據時間段,細節接下來會說。

第三步確認這些訪問是否歸屬在白名單,以減少誤報,白名單包括IP、URI、目的端口等。如果是白名單,則不再監控。如果不是白名單,則進入第四步判斷是否用戶/機器流量,用戶流量放過,機器流量進入異常檢測。

 

分組過程圖,第一步識別第一個連接請求,識別出後形成組,把這個請求添加到這個組。繼續監控後續連接,確定後續連接是否滿足分組標準,滿足則添加到組。不滿足則返回。

上圖是用戶/機器流量判斷流程圖,首先流量分析模塊根據參數分析請求,然後判斷是否用戶流量,如果IP多樣性超過閾值或下載web對象超過閾值,則判斷爲用戶流量,用戶流量停止分析返回。如果不是用戶流量,則判斷爲機器流量。

UEBA架構設計之路10: 稀有度分析 

2019-08-05 12:00

12

鳴 謝

VSRC感謝業界小夥伴——mcvoodoo,投稿精品原創類文章。VSRC歡迎精品原創類文章投稿,優秀文章一旦採納發佈,將有好禮相送,我們已爲您準備好了豐富的獎品!

(活動最終解釋權歸VSRC所有)

上篇引言

UEBA通過機器學習對用戶、實體進行分析,不管這種威脅是不是已知,也包括了實時和離線的檢測方式,能得到一個直觀的風險評級和證據分析,讓安全人員能夠響應異常和威脅。

到底是怎樣的整體架構呢?我就不再介紹了,沒看過前面篇章的朋友,可以點擊下面鏈接,去看看:

已經看過的朋友,咱繼續。

後面的章節則會介紹各種組件的細節,包括數據接入和準備引擎,處理引擎,實時/離線配置,機器學習模型和不同應用,交互等。

稀有度分析

稀有度分析可以用來檢測事件異常,通過計算數據特徵的稀有度分數確定得分。在實際應用中,這些特徵包括:流量字段的用戶名、源區域、目標區域、端口、應用名、接收設備IP等。這些特徵可以有高基數,例如端口號特徵就具備多個值:22、20、23、25、80等。流量特徵例如80端口比其他端口更頻繁。

稀有度是該特徵相對其他值發生概率的函數,主要考慮與該特徵一樣,或不太可能的值,以確定相對概率,然後計算稀有度分數,已知方法主要是delta方法。

稀有度分析也可確定多個特徵的稀有度分數,特徵對(X,Y)的稀有度分數表示當“Y = p”時觀察到的“X = a”罕見程度,或當“X”時觀察“Y = p”的罕見程度= a。例如,數據從A到B,從C到B,從D到B,,當目標區域爲B時,稀有度分析可以觀察源區域A的罕見程度。

稀有性分析的模型可以通過模型註冊表訂閱事件視圖,通過事件視圖模型訪問流量數據,執行分析,流量中任何一個事件包括一個或多個特徵,特徵跟蹤模塊負責識別相關特徵並計數,例如端口特徵會多次出現,其中一些特徵都有相同的端口號,第一數量事件是80,第二數量可能是20、22、23。因此特徵跟蹤模塊存儲計數和事件特徵對。

稀有性確定模塊確定每個特定值的稀有度分數,首先根據與特定值可能/不可能的概率來確定,概率則根據每個值總出現次數相關確定,同時從特徵跟蹤模塊獲得計數數據。

確定概率後,稀有度確定模塊計算稀有度分數的概率置信區間,例如在95%處計算,稀有度分數可以是0-1之間的值,用delta方法計算置信區間,delta方法確保稀有度分數介於0和1之間。

稀有性確定模塊識別特徵值集合,對於特定值,稀有度確定模塊確定該組值的出現次數與特定值的總和,表示爲“k”。確定特徵的出現總數,表示爲“n”。確定稀有度分數特徵值的特定值作爲(k,n)的函數,例如,作爲二項式(k,n)的置信區間。舉例來說地理特徵,從網絡連接發起的IP位置,跟蹤各國家出現次數:US:100,UK:30,IN:20,RU:3,CN:2,JP :1,地理位置特徵爲US的事件發生了100次,稀有度確定模塊將RU作爲觀察概率RU,CN,JP之和的罕見性,CN和JP出現的數量比RU少。因此稀有度分數確定爲二項式的置信區間(k = 6且n = 156),其中k表示RU出現總和以及出現次數多於少於RU值的出現次數,n表示特徵地理位置的總髮生次數,RU的稀有度分數表示其他值觀察值RU是罕見的。

異常檢測模塊基於稀有分數是否滿足標準來確定異常,稀有度標準可以是得分閾值,異常計數閾值的元組,分數閾值指定稀有分數的閾值,異常計數閾值指定被識別爲異常次數的閾值。如果特定值被識別爲異常次數超過閾值,則異常檢測模塊不識別爲異常。如果特定值已經發生足夠的次數,也可以確定特定值不再被視爲異常,因此可以動態地調整稀有度標準。

上圖是用於確定事件是否異常的特徵對錶,事件包括特徵有:事件類,也就是事件類別; UA; 設備,可以是IP、用戶等。如圖所示,如果上面略出的特徵滿足稀有性標準,則確定異常。確定稀有度可增加一些附加參數,例如異常特徵對數量,事件特徵對等。

上圖是稀有度標準閾值,閾值包括分數閾值、特徵計數閾值、異常計數閾值,參數包括稀有特徵、稀有特徵對和忽略。例如端口到應用的數據發送,得分閾值爲0.001,特徵計數閾值爲1,異常計數閾值50,有特徵、稀有特徵對、忽略設置爲空。這些閾值可被配置,如果特徵大量出現被識別爲異常,則系統應可動態調節閾值。

上圖是根據稀有度分數確定異常的過程圖。特徵跟蹤模塊首先識別流量特徵,可以是VPN,IP歸屬地等。第二步識別一組特徵值,這個組出現概率不超過特定值的概率,也就是說,特徵跟蹤模塊識別流量中可能和不可能值的集合,而不是特徵的特定值。

第三步,稀有性確定模塊確定稀有度分數,也就是該組值出現概率的函數。第四步,確定是否滿足稀有度標準,滿足標準則判斷異常,否則返回。

確定稀有度分數的流程則是:

  1. 特徵跟蹤模塊識別一組特徵值,例如前面提到的例子,特徵跟蹤模塊確定已經發生多於或少於RU位置的集合,其次是CN和JP,特定值RU和值組CN和JP的出現之和確定爲(k = 6)。
  2. 特徵跟蹤模塊確定特徵的總髮生次數,確定地理位置特徵的出現總數,爲(n = 156)。
  3. 稀有度確定模塊通過計算參數(k,n)的置信區間來確定稀有度分數
  4. 稀有度確定模塊8將RU的稀有度分數確定爲參數的95%置信區間(k = 6且n = 156)。RU的稀有度分數表示相對於其他位置,觀察到地理位置的發生爲RU是罕見的。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章