從SIEM&AI到SIEM@AI,AI構建下一代企業安全大腦

機器之心發表於2018-05-15

從SIEM&AI到SIEM@AI,AI構建下一代企業安全大腦

作者簡介:

叢磊,白山合夥人兼工程副總裁

2016 年加入白山,主要負責雲聚合產品的研發管理和雲鏈產品體系構建等。

2006 年至 2015 年就職於新浪,原 SAE(SinaAppEngine)創始人,曾任總負責人兼首席架構師,2010 年起,帶領新浪雲端計算團隊從事雲相關領域的技術研發工作。

現任工信部可信雲服務認證評委。

摘要

SIEM 是企業安全的核心中樞,負責收集彙總所有的資料,並結合威脅情報對危險進行準確的判斷和預警。但傳統的 SIEM 過度依靠人工定製安全策略,不僅僅增加了人力成本,而且整個 SIEM 的識別準確率和使用效果也都大打折扣。而目前附帶 AI 功能的 SIEM 系統也只是把 AI 當成演算法外掛作為整合,無法在沒有安全人員介入的情況下獨立的智慧工作。

本文將從傳統 SIEM 元件構成入手,介紹 AI 對於下一代 SIEM 的適用性和重要性,並重點闡述當前主流 SIEM&AI 平臺和全新一代 SIEM@AI 平臺的區別;隨後將結合實際案例深入討論 SIEM@AI 的兩個核心技術原理:資料分析和資料關聯;在最後的篇幅,文章會探討 SIEM@AI 的發展和研究方向。

一、SIEM 簡史

SIEM 是 Security Information Event Management 的縮寫,又名安全資訊事件管理平臺,作為企業的安全大腦,它可以為企業提供安全資料的收集、整合、分析、關聯、處置和展現等功能,是企業業務安全運營的核心和基礎。

早在 10 年前,SIEM 的概念就已經被提出。SIEM 作為企業內部涉及安全的日誌管理平臺,提供日誌的採集、儲存、分析查詢功能。經過十多年的發展,如今 SIEM 的產品形態已得到豐富擴充,包括支援多維資料來源輸入、威脅情報中心(Threat Intelligence)、策略指令碼庫(Playbook)等,同時外部威脅資料的共享和獲取也使得 SIEM 系統不斷被完善。

從SIEM&AI到SIEM@AI,AI構建下一代企業安全大腦

圖 1:SIEM 市場規模預測(來自 Gartner 2017 年報告)

SIEM 在美國一直保持著較快發展,根據 Gartner 相關市場報告,SIEM 在全球(主要是美國)最近每年都保持著 10% 的增長速度,預計在 2020 年市場規模可達 200 億人民幣。然而在中國,SIEM 還處於比較初級的階段,很多企業對自身安全問題並沒有系統性的管理。2017 年整個中國市場只有 3.17 億人民幣的規模,這個數字相比中國經濟對全球經濟的佔比是不相符的。不過可喜的是,SIEM 中國市場最近每年都保持著近 20% 的增長速度,說明越來越多的中國企業已經意識到了 SIEM 的重要性。

但並非所有企業都需要 SIEM,處於初期發展階段的企業資料流和業務量單一,面臨的安全威脅較少,安全裝置和軟體的需求也相對較小,依靠獨立的安全產品即可滿足基本需求。當企業發展到中大型規模時,業務線增多,內外網安全環境變得複雜,同時前期使用的安全產品也達到了一定數量,這時就有必要接入 SIEM 來實現統一的安全運營管理。

二、解構 SIEM 從SIEM&AI到SIEM@AI,AI構建下一代企業安全大腦圖 2:SIEM 整體架構圖

SIEM 平臺的主要架構由 5 個層次組成:

●    採集層:系統資料入口。SIEM 大多支援多種資料輸入,這些資料從來源劃分,包括終端使用者裝置、網路裝置、伺服器、儲存裝置等;從 OSI 模型劃分,包括了資料鏈路層、網路層、傳輸層、應用層的網路流量;從系統角色劃分,包括不同的業務系統、中介軟體系統、負載均衡系統等。這些資料或以推送的方式或以拉取的方式向 SIEM 平臺輸送,供 SIEM 進行後續的分析計算。

採集層使用的技術主要分為兩類:「侵入式」和「無侵入式」。「侵入式」一般採用部署 Agent 程式,或者使用者在自身程式碼邏輯中新增程式探針等方式採集資料;「無侵入式」一般則採用旁路映象流量或者輸入日誌等方式採集資料。兩種模式各有優缺點,「侵入式」有利於企業增加定製化功能,並結合 SIEM 平臺的多維特性深入貼合業務,但弊端在於外掛式的 Agent 一旦不穩定,就會影響使用者自身業務,甚至導致系統當機,我自己就遇到過好幾個客戶向我抱怨自身的服務被廠商的嵌入 SDK 搞的不穩定。「無侵入式」則可以完全避免對業務系統的影響,一方面提升系統穩定性,另一方面保護系統資料安全。在技術成熟的情況下,對使用者來說,「無入侵式」採集方式顯然更加友好。

●    儲存層:採集後的資料除了供給後面的計算分析外,還會進行儲存。儲存層有兩個目的:一是對原始採集資料進行儲存,二是對計算分析完成的結果進行儲存。

儲存可選擇的技術棧一般包括資料管道(中間資料傳輸),熱儲存(儲存常用資料查詢、更新),冷儲存(儲存不常用的資料)。嚴格說,資料管道不算是儲存,但在實際上為了防範後端資料丟失或堆積,一般也會將經過管道的資料進行臨時儲存,比如網際網路公司最常用的 Kafka 佇列就是將中間資料落地在磁碟上。

冷熱分級儲存的目的在於,保證熱資料操作速度的同時,在一定程度上降低企業儲存成本。對於冷儲存而言,比效能更大的技術挑戰是可靠性和可用性,支援多 IDC、甚至多 Zone 的大型分散式儲存技術系統是企業首選;而對於熱儲存,更關注的是讀寫速度以及如何被計算單元使用,所以一般會選擇帶有 Sharding 能力的分散式儲存。

●    計算層:SIEM 平臺的核心。分析準不準、全不全、快不快都依賴這層的計算單元。目前主流的計算模式包括實時計算平臺和離線計算平臺。

海量資料的離線計算平臺起源較早,早在 10 多年前就出現在 Google 的 MapReduce 系統中,MapReduce 底層先利用 GFS 將海量資料分片儲存,解決了單點裝置的 IO 吞吐瓶頸。每個計算節點再依賴排程器或執行 Map 任務或執行 Reduce 任務,不斷將海量計算任務分解、歸併,最終輸出期望的計算結果。實時計算平臺算是海量資料計算的後起之秀,包括了以 Storm 為代表的實時流處理和以 Spark steaming 為代表的微批次處理兩種技術實現方式。

在實時性上,實時流處理模式的處理速度更快,但從實際的使用經驗來看,這種模式也要求更高的技術運維經驗。無論是實時計算平臺還是離線計算平臺,都要求支援任務的 Partition,這樣可以在某些主機當機的情況下,仍然保證計算順利完成。

計算平臺最核心的並不是計算框架,而是演算法部分的計算邏輯。計算邏輯對流量、使用者請求、系統互動資訊等不同型別的資料進行計算。目前絕大部分 SIEM 平臺的實現都是基於規則引擎,如 Drools,這就需要依賴使用者制定大量的規則,一旦使用者制定的規則有錯誤或者有遺漏,就會造成錯判漏判。

●    輸出層:計算層分析的結果最終傳導至輸出層。傳統 SIEM 的輸出方式有很多,包括展現層面、報表層面、報警通知層面、實時阻斷層面等,企業可以根據不同業務部門的不同需求選擇合適的輸出方式。SIEM 的輸出結果不僅僅和安全部門或業務部門有關,還可能涉及到其他業務單元,比如資產管理、組織管理等。

從事件處理的生命週期來看,處理方式可以分成自動方式和手動方式,自動方式可以對計算層分析出的安全威脅事件進行自動處理,包括通知、預警、上報甚至阻斷,而對於不能自動處理的情況,就需要手動方式,這時可以藉助工單系統進行後續處理跟蹤,最終保證安全威脅被處理。

●    情報中心:情報中心為 SIEM 計算層提供額外的資料支撐,從而提高威脅和異常行為識別的準確率。情報中心的資料來源一般有三種渠道,第一種是來自公開輸出的威脅情報,如 X-Force Exchange、ThreatBook、Shodan 等;第二種是來自自身蒐集的威脅情報資料,如通過蜜罐採集、API 調取或者交換購買等方式取得有價值的威脅情報;第三種就是來自跟業務自身相關的輔助資料,如使用者註冊資訊,企業資產資訊、組織資訊等等,這些資訊看似和安全威脅關聯不大,但是當多種資料聯合分析時,就可以為最終的結果輸出提供有效參考。

情報中心資料的內容包含多種形式,常用的如 IP 庫、裝置指紋庫、黑卡庫、漏洞庫等。使用或依賴情報中心要注意情報的實時性,因為目前雲化和共(zu)享(yong)經濟的普及,很多資源並不是獨佔的,而是在一定時間後就被回收,並交由其他用途,這樣的話如果情報更新不及時就會適得其反。

三、SIEM、態勢感知和 SOC 安全運營中心

SIEM、態勢感知和 SOC 安全運營中心有著緊密關係。其中態勢感知範圍很廣,主要聚焦在感知過去、理解現在、預測未來三個層面,這和 SIEM 的採集並計算分析給出結果進而感知預測是高度吻合的。一些企業釋出的態勢感知系統其實就是簡化的 SIEM 或者是 SIEM 的超集。SOC 安全運營中心則在 SIEM 的基礎上突出了人的作用,強調了人和平臺以及軟體之間的聯動,通過類似 Ticket 系統的任務追蹤機制,配合 SIEM 提供的資料分析結果,用人對業務和資產進行全面的安全管理。

總之,SIEM 對於企業的整體安全分析是非常重要的,通過 SIEM 可以打通多種資料流的資訊,形成對於安全威脅的事前、事中、事後處理,最終保證企業的整體資產及業務安全。

四、AI 遇上 SIEM

如果說 IT 技術有風口的話,那麼 AI 無疑是最前沿並且最落地的,AI 整體發展分為三個階段:

1. 識別階段,解決 What 的問題,這是最基礎的 AI 問題。目前的 AI 通過大量有監督學習,提取標註樣本的表象或內在特徵,形成一個或多個分類器,分類器對樣本資料特徵進行學習訓練,最終對新的輸入進行準確識別,從而解決什麼是什麼的問題。比如什麼是小狗、什麼是色情圖片等。

典型的應用包括驗證碼識別、語音識別、垃圾郵件識別等。人們熟知的 AlphaGo 也是識別問題,深度學習通過對成千上萬個已經標註好輸贏的棋局進行訓練,利用頭幾層的神經元網路,越過表象特徵挖掘出人都很難理解的深層次特徵,形成了對於棋局的「感應」能力,從而對某個棋局是更有利於黑方還是白方做出判斷,再結合αβ search 或 MCTS 等演算法,給出下一步走法的最優解。應該說識別是應用 AI 最成熟的領域。

2. 理解階段,解決 Why 的問題,這是在識別的基礎上進一步的 AI 問題。比如一段文字想表達的情感是什麼?一個電影講述的故事是什麼?一段語音的問題是問什麼等等。最典型的應用場景就是人機對話,其基礎是理解人說的是什麼,想表達什麼意思。

理解問題最原始的解決辦法就是構造各種語義模板,用來做情感標註,變相把理解問題轉換成識別問題。但隨著深度學習的普及,已經出現了很多新的技術以突破模板定義的限制進而試圖真正理解內在含義。但是通過蘋果手機 Siri 的例子就可以看出,目前的 AI 對於理解問題的能力還遠遠沒有到成熟的階段。

3. 反饋階段,解決 How 的問題。How 本質是在識別的基礎上,理解了對方的資訊內容後,做出恰當的反饋。反饋是 AI 的最高境界,是實現真正人機互動的關鍵,有了反饋互動的能力,AI 就可以像真人一樣在一些領域部分代替人類,甚至完全代替人類。但很明顯,目前 AI 的發展階段離這個目標還相距甚遠。

從 AI 的三個發展階段看,目前 AI 還主要處於「識別」和「理解」的初期,離真正的「代替人類」還有很長遠的路要走,當下真正已經成熟使用的技術基本集中在「識別」問題。同時我們觀察安全領域就會發現,安全領域裡的問題恰恰就是非常典型的"識別"問題,通過 SIEM 裡的各種輸入資料進行分析,只需要識別這個事件或這個使用者是否存在威脅即可,整個過程無關理解也無關反饋。

 從SIEM&AI到SIEM@AI,AI構建下一代企業安全大腦

圖 3:主流 SIEM 系統 AI 工具示例

應該看到,目前的新型 SIEM 已經整合了 AI 的能力,比如有的 SIEM 平臺,整合了常用的 AI 演算法,比如異常檢測、線性預測,這些演算法以外掛的方式整合進平臺,使用者可以基於這些演算法分析自身的資料。

五、從 SIEM&AI 到 SIEM@AI

目前主流 SIEM 平臺的最大缺點是:他們僅僅是 SIEM&AI(以 AI 作為工具),把 AI 僅僅當成是 SIEM 平臺的一個附屬外掛或工具,而沒有把整個 SIEM 平臺構建在 AI 技術上面。這樣帶來的影響是,企業使用 SIEM 時需要花費大量的時間、精力、人力去學習、配置和使用這些 AI 工具,另外,SIEM&AI 還要求企業具有一定的特徵工程經驗,而這對於很多企業而言是不現實的。我見過很多企業客戶,當我問到他們使用 SIEM&AI 類產品的的 AI 部分的體驗時,都是一臉茫然,彷彿花了大價錢買了高階玩具卻沒玩起來。

而企業真正需要的是:SIEM@AI(以 AI 作為平臺),無需很多成本甚至完全無需學習成本,即可使用 AI 技術從海量的輸入資料流資訊中發掘威脅事件,並自動使用 AI 技術對不同業務、不同維度的資料進行智慧關聯,建立內在聯絡,並最終自動的對威脅事件進行處置處理。

六、AI 賦能資料分析

資料標註難題

如前所述,在安全領域,大部分問題都是「識別」問題,從資料分析的角度,可以將問題最終歸為分類問題。通過建立演算法模型,預測進行中的事件甚至還未到來的事件是否存在威脅,也就是把它們分成有威脅和無威脅兩類。但是安全領域在使用 AI 時存在一個巨大的困難,即樣本標註難。對於經典的圖片識別問題,企業可以使用較低的人力成本批量製作標註樣本,然後送入深度神經網路訓練。但是安全問題則不同,從大量雜亂的資訊資料中識別是否存在威脅、是何種威脅,需要專業的安全人員,甚至多個部門跨部門協作才能完成。

監督學習化解標註難題

標註難問題可解嗎?答案是肯定的,那就是利用無監督學習。無監督學習可以將正常事件聚在一起,同時也會將異常事件聚在一起,從而方便演算法識別出異常威脅。而整個威脅識別的過程無需標註樣本,也大大降低了人工參與的程度。

監督學習機器學習中一個非常重要的分支,不同於有監督學習需要依賴大量標註好的樣本才能讓分類器進行學習,無監督學習可以在沒有任何標註樣本的情況下由分類器自主學習。只不過目前市場上絕大多數產品都集中在有監督學習上,導致無監督被長期忽略了。

 從SIEM&AI到SIEM@AI,AI構建下一代企業安全大腦

圖 4:聚類示意圖

白山 ATD(Advanced Threat Detection,深度威脅識別,新一代的 SIEM@AI 系統)產品大量使用了無監督學習技術來進行威脅事件識別,無監督學習的本質是將資料進行聚類,而根據聚類實現的過程不同又主要分為三種演算法:

1. 距離聚類

2. 核密度聚類

3. 層次聚類

距離聚類

距離聚類是最常見的聚類演算法,本質是 EM 演算法,通過對於距離中心點的不斷迭代修正,最終將所有事件進行歸類,那麼有威脅的事件自然會被歸到一簇或者幾簇,而正常的事件也會因為更相似的距離而歸到一簇或者幾簇。當然這是理想情況,在現實場景中實施演算法還需要做很多的加工工作。距離聚類的最大困難一是距離計算方式的選擇,二是聚類簇數量的選擇。

距離計算選擇主要包含兩個方面:

如何規定事件邊界:繁雜的海量資料輸入中,一個事件的邊界從哪裡開始,到哪裡結束,包含哪些資料。這需要按照不同的應用場景做不同的處理,常見的方式有按照時間段,也有按照事件切分點。

如何制定事件間距離:事件有很多不同的描述維度,對於最常見的維度——時間、地點而言,記錄時間有可能是 UNIX 時間戳,記錄地點有能是 GEO IP 或者 MAC 地址,那麼如何把 UNIX 時間戳和 IP 地址放在一個向量空間模型裡比較距離就是一個問題了。這裡 ATD 採用的 Z-Score 演算法進行距離對映,使得對映後的資料具有完全的正太分佈特徵。

簇的數量選擇對於無監督學習的演算法效果至關重要,一旦初始簇的數量選擇不合適,就有可能導致聚類的結果完全錯誤。

從SIEM&AI到SIEM@AI,AI構建下一代企業安全大腦

圖 5:聚類示意圖

如上圖,紅色異常點是我們需要識別出來的,顯然聚類簇數為 2 的效果比聚類簇數為 3 的效果要好,因為 3 將正常的事件點也分為了兩類。ATD 使用一系列演算法在聚類前預判準確的聚類簇數量,最好的情況下可以提升 200% 的聚類效果。

核密度聚類

核密度聚類不需要事先指定聚類的簇數,而是根據初始的密度值進行聚類選擇,所有與核距離過遠的事件都會被標記為離群點,這些離群點從安全形度看可能就是威脅事件。

密度聚類的前提是需要選擇合適的初始密度值,如果選擇不當將導致離群點錯誤,最終使威脅事件誤判。另一方面,控制離群點的數量和純度對最終的識別效果也很重要,因為在實際生產環境中,很有可能出現大量的離散點其實也是正常的事件。所以有時候也需要在第一次聚類後,調整事件的特徵選擇演算法,針對離群點進行二次聚類。

層次聚類 

層次聚類的原理是先將所有事件看成樹的葉子節點,每個葉子節點自成一類,然後根據相互的距離,自下而上逐層合併,最終形成一個根。

層次聚類可以根據需要,按照最終聚類的簇數進行層層歸併,最終聚成的小簇我們可以認為是某種離群點,即有可能是一些威脅事件。可以看出,層次聚類的核心仍然是距離計算模型的選擇。

智慧分析風險

利用無監督學習,可以在無需標註樣本和無人工介入的前提下,發現很多異常的威脅風險。下圖是一個被 ATD 系統識別出的實際例子:

從SIEM&AI到SIEM@AI,AI構建下一代企業安全大腦

圖 6:ATD 無監督學習示例結果

這是一個 ATD 對企業電商業務無監督學習的實際案例,案例顯示大部分使用者的訪問路徑集中在登入頁=》授權頁=》訂單頁的訪問趨勢,通過無監督學習就可以將正常使用者的行為聚在一起。反觀刷單的惡意行為則會繞過授權頁直接訪問訂單頁,這樣在無監督學習過程中就自然形成了離群點,這樣我們就可以幫助企業識別出刷單的威脅風險。

七、AI 賦能資料關聯

橫向關聯

AI 威脅資料分析,分成縱向的資料分析和橫向的資料關聯:

從SIEM&AI到SIEM@AI,AI構建下一代企業安全大腦

圖 7:資料的縱向分析和橫向關聯

縱向分析指的是對於事件群體按照時間軸學習規律,以此進行對於已有的威脅識別和對於未來的態勢感知。橫向關聯指對空間上不直接相關的不同事件群體,通過演算法挖掘它們的深層次關聯關係,最終形成更準確的威脅識別或者便於對威脅事件進行更全面的回溯。

對於大多數 SIEM 產品,只要附帶 AI 工具功能的,便可以完成諸如異常點檢查、趨勢預測等任務(儘管他們當中絕大多數都是有監督學習,這也就意味著客戶需要提供大量標註好的威脅事件和正常事件的樣本),不過這些任務都是縱向分析,並不是橫向關聯。因此,對於新一代 SIEM@AI 系統來說,比起無監督學習進行縱向分析,更有挑戰的任務是在表層不相關的海量資料中建立潛在關聯,從而實現真正的深度威脅識別。

事件的相關運算

常見的事件關聯場景基本上可以分為這兩種:

A,某一作用域(如某一時間段內)的事件集合,挖掘事件之間的關聯關係,如:

從SIEM&AI到SIEM@AI,AI構建下一代企業安全大腦

上圖就是兩個完全由不同系統統計輸出的事件,我們需要用演算法分析是否存在關聯,這個過程實際可以轉換為:按行分析相關性

B,同一型別事件,挖掘構成的因素是否存在關聯關係,如: 從SIEM&AI到SIEM@AI,AI構建下一代企業安全大腦

上圖所示,全部「ERP 系統不能訪問」的事件中,各個因素間是否存在關聯,這個過程實際可以轉換為:按列分析相關性

由此可以看出,無論是不同事件的關聯分析,還是同一類事件的內在因素關聯,本質可以轉換為矩陣的行相關或列相關。對於列相關,通過對於矩陣轉置運算,也可以轉換為行相關,即:

從SIEM&AI到SIEM@AI,AI構建下一代企業安全大腦

我們只需要分析 K1 和 K2 是否在某種程度存在相關。

對於這種關聯分析,最常見的方式是用類似 KNN 演算法中,通過計算兩個事件元素的夾角來判斷相關性:

θ=acos(K1⋅K2/(|K1||K2|))

當夾角越小時,表示兩個事件越相關,而當夾角互相垂直(即正交)時,表示兩個事件完全無關。

當然,我們還可以使用其他的方式計算相關性,比如 Jaccard 距離:

J(K1,K2)=|K1⋂K2|/|K1⋃K2|

當 J 值越大時,表示兩個事件越相關,反之則越不相關。

夾角距離計算方式更適用數值型的事件向量,而 Jaccard 距離計算方式更適合列舉字串型別的事件向量。當然事實上,我們可以把任何字串型別的事件,通過 word2vec 或者 simhash 等演算法方式轉變為數值型事件向量,然後再進行夾角計算。

啤酒與尿布

說到資料關聯,不得不提的經典故事就是「啤酒與尿布」了,沃爾瑪在做資料關聯分析時發現啤酒和尿布在購物單上是相關的,這是怎麼回事?原來妻子經常會囑咐丈夫下班以後要為孩子買尿布。而丈夫在買完尿布之後又要順手買回自己愛喝的啤酒,因此啤酒和尿布的銷售行為上具有相關性。

從資料關聯演算法複雜性的角度看,啤酒和尿布的關聯屬於比較簡單也相對直接一些的關聯,Apriori 演算法就是解決這個問題的簡單可實現的演算法之一。Apriori 演算法通過不斷的篩選頻繁項並且不斷的產生新關聯規則的方式,最終得到關聯性最強的事件元素。

從SIEM&AI到SIEM@AI,AI構建下一代企業安全大腦

圖 8:Apriori 演算法示意圖

深入 Apriori 演算法的過程就會發現,其實 Apriori 整個計算過程和計算事件間的 Jaccard 距離十分類似,本質都是比較兩個事件的相似因素後進行篩選。不過 Apriori 演算法在實現上比兩兩比較效率更高,因為在其中有剪枝縮小範圍的過程。

更隱晦的事件關聯

其實,在 ATD 給客戶服務的實際應用場景中,上文提到的「啤酒,尿布」還都算是比較簡單的事件關聯模型。更為複雜的是,如何發現從人的感知認識角度看並不是那麼直接的關聯關係。比如空氣的霧霾指數和城市用電量的關係,從人的感知角度,這兩個並不是特別的直接相關。但當我們在兩個事件中引入一個橋樑,即室內人數佔比,就會發現這樣的概率關係:

P(用電量/霧霾)=>P(室內人數增加/霧霾)* P(用電量增加/室內人口增加),其中 P(A/B)表示 B 事件發生情況下發生 A 事件的概率

如果可以列舉出霧霾導致的所有核心事件,就可以使用全概率公式推匯出霧霾和用電量的關係(所以這裡我並沒有使用等號=而是使用了=>)。

從威脅識別的角度,通過這種中間的橋樑事件,同理也可以構建出兩個看似不相關的事件之間的關係。比如在我們給某家電企業部署的 ATD 執行中,就發現了一次疑似的 CC 攻擊實際是和後端某業務線資料庫變更操作有關:

P(疑似 CC 攻擊/業務線資料庫變更)=>P(疑似 CC 攻擊/介面訪問飆升)* P(介面訪問飆升/504 佔比)* P(504 佔比/請求阻塞)*P(請求阻塞/資料庫阻塞)*P(資料庫阻塞/資料庫變更)

解決這種複雜隱晦的事件關聯的前提是首先要把所有資訊(不管認為是否相關)都收集進來(這也是文章開始階段提到的 SIEM 的採集層需要解決的),儘可能多的採集各種資料,因為只有採集到資料才有可能建立關聯。當海量的資料採集進來後,我們往往在做下一步相關分析時會發現一個難題,即:因為資料太多,導致分析的效能很低。如果威脅事件分析的不及時,很可能會影響後續的處理,所以整個分析過程的低延遲至關重要。

資料降維

如何保證處理速度呢?那就需要對資料進行降維分解,從而降低計算空間,這裡面有兩種做法:

1. 有監督降維

如果企業本身有大量標註資料,那就可以使用有監督降維,最經典的有監督降維就是 PCA(Principal Component Analysis,主成分分析),其原理是選擇一種最優的資料投射方式,從高維空間投射到低維空間,並且保證投射後有較好的區分度。

2. 無監督降維

在沒有大量標註資料的情況下就可以使用無監督降維,這也正是 ATD 所使用的資料降維方式。有很多種演算法都可以進行無監督降維,ATD 最早使用的是 LDA(Latent Dirichlet Allocation)主題發現模型進行降維,通過 LDA 先將資料按照主題相關性聚類,降低每一類中資料的數量和維度,從而減少後續計算的複雜度。

這裡,我想介紹另外一種資料降維的方式,也是我們目前正在嘗試的——SVD(Singular Value Decomposition)分解。 從SIEM&AI到SIEM@AI,AI構建下一代企業安全大腦

圖 9:對威脅事件進行 SVD 分解

上圖所示,我們先對於一個海量的事件集進行了 SVD 分解,分解的結果是三個矩陣的乘積,然後通過對於中間Σ矩陣的元素進行篩選,就可以降低整個事件叢集的複雜度,同時找到同一個隱含主題下的關聯事件和關聯因素。隱含主題的數量本質上就是事件矩陣的秩。

從更深的角度講,無論是 LDA 還是 SVD,其實本質都是去尋找事件矩陣的秩,利用秩找到構成事件的最核心因素,比如對於一個入侵事件,可能的核心因素是使用者的屬性(內/外部使用者、是否授權、相應職級等等)、入侵時間、侵入的業務型別,而其他的因素,諸如員工的年齡、當時的伺服器負載等等其他因素有可能就會被演算法自動識別為非關鍵因素而忽略掉。通過這種方式就可以在茫茫資訊中發現關鍵因素,從而為後面的事件關聯大大降低運算量。

總之,資料的橫向關聯是一個極富挑戰性的任務,其中最重要的先決條件是通過 SIEM 的採集層收集足夠的資料,其次是選擇合適的演算法對資料進行加工處理,最後是通過 AI 演算法對資料進行關聯分析。在 ATD 客戶的實際使用中,我們成功地發現了外網的介面攻擊和內網資料庫變更之間的關係,也發現了某郵件系統的 Exchange 日誌事件和內網 SSH 事件之間的關係。這種關聯分析不僅僅對於已知威脅的回溯有幫助,也對未來的安全態勢感知有重大意義。

八、關於未來方向的探究

從 SIEM&AI 模式到 SIEM@AI 模式,我們不再將 AI 看成是外掛或者工具,而是將系統執行在一個完全由 AI 驅動的智慧平臺上。在這個平臺上,我們無需標註資料,無需大量人工介入,也無需定製規則,而是通過以無監督學習為主導的機器學習演算法自動對異常威脅事件進行識別,自動的為各個複雜事件建立內在關聯,提高識別的準確率和召回率的同時,解放安全工程師的人力並提高其效率,最終實現對於企業外網、業務、內網的三層智慧防禦。

白山 ATD 產品就是一套全新的 SIEM@AI 系統,我們過去花費了大量時間和精力去研發基於無監督學習的 AI 演算法來代替目前的傳統企業安全產品,這種模式的有效性在企業實踐中已經得到了驗證。未來,ATD 還會在兩個方向做進一步探索研究:

1. 通過主動學習引入人的參與

引入無監督學習的目的是不依賴標註的樣本,因為在安全領域,標註樣本的獲取成本非常大,但是這並不代表可以完全不依靠人工。在可預見的時間範圍內,有經驗的安全專家對威脅風險的識別、對於演算法的修正以及對於整個 AI 系統的魯棒性維護都是非常重要的。但是,安全專家的時間精力畢竟有限,如何在準確全面識別安全威脅的前提下,降低安全專家的時間成本就顯得十分關鍵。

對此,我們引入主動學習演算法,它是一種特殊的半監督學習,依靠安全專家對少量的 AI 識別出的結果進行人工校驗,從而不斷對原有演算法進行微調,直到最終收斂主動學習裡有兩個因素非常重要,一是如何挑選供給人工校驗的識別結果,二是對於識別結果的糾正如何反饋到演算法模型中。通過主動學習,我們就可以構建不斷學習、不斷演變的 SIEM 系統,進而隨著與人的磨合,系統會變得越來越智慧,越來越準確。

2. 通過深度學習識別非直觀威脅

有些威脅或者異常本身不具備直觀表述性,甚至不能被向量化、離散化,最直接的例子就是加密流量。加密後的流量本身是人不可表述的,只是一層二進位制輸入流。還有些安全事件由於關聯業務太多,很難用語言來表述為什麼當初這個問題被判定為異常。對於這些問題,都可以嘗試使用深度學習的演算法來解決,不過深度學習要求有大量的標註樣本,只有在這個前提下,才能保證演算法的效果。這就要求企業在平時的 SIEM 系統執行中,就不斷增加對於威脅事件判定的積累,當資料積累到一定程度後,就可以使用深度學習演算法進行分析。

AI 作為安全領域的顛覆性技術,與 SIEM 的結合將構建一個完全基於 AI 的、充分智慧的、低人工甚至無需人工介入的新一代 SIEM@AI 平臺,這將改變目前安全產品依靠策略設定的固有模式,成為新一代企業安全大腦。

相關文章