摘要:SIEM是企業(yè)安全的核心中樞,負(fù)責(zé)收集匯總所有的數(shù)據(jù),并結(jié)合威脅情報(bào)對(duì)危險(xiǎn)進(jìn)行準(zhǔn)確的判斷和預(yù)警。但傳統(tǒng)的SIEM過(guò)度依靠人工定制安全策略,不僅僅增加了人力成本,而且整個(gè)SIEM的識(shí)別準(zhǔn)確率和使用效果也都大打折扣。而目前附帶AI功能的SIEM系統(tǒng)也只是把AI當(dāng)成算法插件作為集成,無(wú)法在沒(méi)有安全人員介入的情況下獨(dú)立的智能工作。
本文將從傳統(tǒng)SIEM組件構(gòu)成入手,介紹AI對(duì)于下一代SIEM的適用性和重要性,并重點(diǎn)闡述當(dāng)前主流SIEM&AI平臺(tái)和全新一代SIEM@AI平臺(tái)的區(qū)別;隨后將結(jié)合實(shí)際案例深入討論SIEM@AI的兩個(gè)核心技術(shù)原理:數(shù)據(jù)分析和數(shù)據(jù)關(guān)聯(lián);在最后的篇幅,文章會(huì)探討SIEM@AI的發(fā)展和研究方向。
一、SIEM簡(jiǎn)史
SIEM是Security Information Event Management的縮寫(xiě),又名安全信息事件管理平臺(tái),作為企業(yè)的安全大腦,它可以為企業(yè)提供安全數(shù)據(jù)的收集、整合、分析、關(guān)聯(lián)、處置和展現(xiàn)等功能,是企業(yè)業(yè)務(wù)安全運(yùn)營(yíng)的核心和基礎(chǔ)。
早在10年前,SIEM的概念就已經(jīng)被提出。SIEM作為企業(yè)內(nèi)部涉及安全的日志管理平臺(tái),提供日志的采集、存儲(chǔ)、分析查詢(xún)功能。經(jīng)過(guò)十多年的發(fā)展,如今SIEM的產(chǎn)品形態(tài)已得到豐富拓展,包括支持多維數(shù)據(jù)源輸入、威脅情報(bào)中心(Threat Intelligence)、策略腳本庫(kù)(Playbook)等,同時(shí)外部威脅數(shù)據(jù)的共享和獲取也使得SIEM系統(tǒng)不斷被完善。
圖1:SIEM市場(chǎng)規(guī)模預(yù)測(cè)(來(lái)自Gartner 2017年報(bào)告)
SIEM在美國(guó)一直保持著較快發(fā)展,根據(jù)Gartner相關(guān)市場(chǎng)報(bào)告,SIEM在全球(主要是美國(guó))最近每年都保持著10%的增長(zhǎng)速度,預(yù)計(jì)在2020年市場(chǎng)規(guī)模可達(dá)200億人民幣。然而在中國(guó),SIEM還處于比較初級(jí)的階段,很多企業(yè)對(duì)自身安全問(wèn)題并沒(méi)有系統(tǒng)性的管理。2017年整個(gè)中國(guó)市場(chǎng)只有3.17億人民幣的規(guī)模,這個(gè)數(shù)字相比中國(guó)經(jīng)濟(jì)對(duì)全球經(jīng)濟(jì)的占比是不相符的。不過(guò)可喜的是,SIEM中國(guó)市場(chǎng)最近每年都保持著近20%的增長(zhǎng)速度,說(shuō)明越來(lái)越多的中國(guó)企業(yè)已經(jīng)意識(shí)到了SIEM的重要性。
但并非所有企業(yè)都需要SIEM,處于初期發(fā)展階段的企業(yè)數(shù)據(jù)流和業(yè)務(wù)量單一,面臨的安全威脅較少,安全設(shè)備和軟件的需求也相對(duì)較小,依靠獨(dú)立的安全產(chǎn)品即可滿足基本需求。當(dāng)企業(yè)發(fā)展到中大型規(guī)模時(shí),業(yè)務(wù)線增多,內(nèi)外網(wǎng)安全環(huán)境變得復(fù)雜,同時(shí)前期使用的安全產(chǎn)品也達(dá)到了一定數(shù)量,這時(shí)就有必要接入SIEM來(lái)實(shí)現(xiàn)統(tǒng)一的安全運(yùn)營(yíng)管理。
二、解構(gòu)SIEM
圖2:SIEM整體架構(gòu)圖
SIEM平臺(tái)的主要架構(gòu)由5個(gè)層次組成:
·采集層:系統(tǒng)數(shù)據(jù)入口。SIEM大多支持多種數(shù)據(jù)輸入,這些數(shù)據(jù)從來(lái)源劃分,包括終端用戶(hù)設(shè)備、網(wǎng)絡(luò)設(shè)備、服務(wù)器、存儲(chǔ)設(shè)備等;從OSI模型劃分,包括了數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層的網(wǎng)絡(luò)流量;從系統(tǒng)角色劃分,包括不同的業(yè)務(wù)系統(tǒng)、中間件系統(tǒng)、負(fù)載均衡系統(tǒng)等。這些數(shù)據(jù)或以推送的方式或以拉取的方式向SIEM平臺(tái)輸送,供SIEM進(jìn)行后續(xù)的分析計(jì)算。
采集層使用的技術(shù)主要分為兩類(lèi):“侵入式”和“無(wú)侵入式”。“侵入式”一般采用部署Agent程序,或者用戶(hù)在自身代碼邏輯中添加程序探針等方式采集數(shù)據(jù);“無(wú)侵入式”一般則采用旁路鏡像流量或者輸入日志等方式采集數(shù)據(jù)。兩種模式各有優(yōu)缺點(diǎn),“侵入式”有利于企業(yè)增加定制化功能,并結(jié)合SIEM平臺(tái)的多維特性深入貼合業(yè)務(wù),但弊端在于外掛式的Agent一旦不穩(wěn)定,就會(huì)影響用戶(hù)自身業(yè)務(wù),甚至導(dǎo)致系統(tǒng)宕機(jī),我自己就遇到過(guò)好幾個(gè)客戶(hù)向我抱怨自身的服務(wù)被廠商的嵌入SDK搞的不穩(wěn)定?!盁o(wú)侵入式”則可以完全避免對(duì)業(yè)務(wù)系統(tǒng)的影響,一方面提升系統(tǒng)穩(wěn)定性,另一方面保護(hù)系統(tǒng)數(shù)據(jù)安全。在技術(shù)成熟的情況下,對(duì)用戶(hù)來(lái)說(shuō),“無(wú)入侵式”采集方式顯然更加友好。
·存儲(chǔ)層:采集后的數(shù)據(jù)除了供給后面的計(jì)算分析外,還會(huì)進(jìn)行存儲(chǔ)。存儲(chǔ)層有兩個(gè)目的:一是對(duì)原始采集數(shù)據(jù)進(jìn)行存儲(chǔ),二是對(duì)計(jì)算分析完成的結(jié)果進(jìn)行存儲(chǔ)。
存儲(chǔ)可選擇的技術(shù)棧一般包括數(shù)據(jù)管道(中間數(shù)據(jù)傳輸),熱存儲(chǔ)(存儲(chǔ)常用數(shù)據(jù)查詢(xún)、更新),冷存儲(chǔ)(存儲(chǔ)不常用的數(shù)據(jù))。嚴(yán)格說(shuō),數(shù)據(jù)管道不算是存儲(chǔ),但在實(shí)際上為了防范后端數(shù)據(jù)丟失或堆積,一般也會(huì)將經(jīng)過(guò)管道的數(shù)據(jù)進(jìn)行臨時(shí)存儲(chǔ),比如互聯(lián)網(wǎng)公司最常用的Kafka隊(duì)列就是將中間數(shù)據(jù)落地在磁盤(pán)上。
冷熱分級(jí)存儲(chǔ)的目的在于,保證熱數(shù)據(jù)操作速度的同時(shí),在一定程度上降低企業(yè)存儲(chǔ)成本。對(duì)于冷存儲(chǔ)而言,比性能更大的技術(shù)挑戰(zhàn)是可靠性和可用性,支持多IDC、甚至多Zone的大型分布式存儲(chǔ)技術(shù)系統(tǒng)是企業(yè)首選;而對(duì)于熱存儲(chǔ),更關(guān)注的是讀寫(xiě)速度以及如何被計(jì)算單元使用,所以一般會(huì)選擇帶有Sharding能力的分布式存儲(chǔ)。
·計(jì)算層:SIEM平臺(tái)的核心。分析準(zhǔn)不準(zhǔn)、全不全、快不快都依賴(lài)這層的計(jì)算單元。目前主流的計(jì)算模式包括實(shí)時(shí)計(jì)算平臺(tái)和離線計(jì)算平臺(tái)。
海量數(shù)據(jù)的離線計(jì)算平臺(tái)起源較早,早在10多年前就出現(xiàn)在Google的MapReduce系統(tǒng)中,MapReduce底層先利用GFS將海量數(shù)據(jù)分片存儲(chǔ),解決了單點(diǎn)設(shè)備的IO吞吐瓶頸。每個(gè)計(jì)算節(jié)點(diǎn)再依賴(lài)調(diào)度器或執(zhí)行Map任務(wù)或執(zhí)行Reduce任務(wù),不斷將海量計(jì)算任務(wù)分解、歸并,最終輸出期望的計(jì)算結(jié)果。實(shí)時(shí)計(jì)算平臺(tái)算是海量數(shù)據(jù)計(jì)算的后起之秀,包括了以Storm為代表的實(shí)時(shí)流處理和以Spark steaming為代表的微批次處理兩種技術(shù)實(shí)現(xiàn)方式。
在實(shí)時(shí)性上,實(shí)時(shí)流處理模式的處理速度更快,但從實(shí)際的使用經(jīng)驗(yàn)來(lái)看,這種模式也要求更高的技術(shù)運(yùn)維經(jīng)驗(yàn)。無(wú)論是實(shí)時(shí)計(jì)算平臺(tái)還是離線計(jì)算平臺(tái),都要求支持任務(wù)的Partition,這樣可以在某些主機(jī)宕機(jī)的情況下,仍然保證計(jì)算順利完成。
計(jì)算平臺(tái)最核心的并不是計(jì)算框架,而是算法部分的計(jì)算邏輯。計(jì)算邏輯對(duì)流量、用戶(hù)請(qǐng)求、系統(tǒng)交互信息等不同類(lèi)型的數(shù)據(jù)進(jìn)行計(jì)算。目前絕大部分SIEM平臺(tái)的實(shí)現(xiàn)都是基于規(guī)則引擎,如Drools,這就需要依賴(lài)使用者制定大量的規(guī)則,一旦使用者制定的規(guī)則有錯(cuò)誤或者有遺漏,就會(huì)造成錯(cuò)判漏判。
·輸出層:計(jì)算層分析的結(jié)果最終傳導(dǎo)至輸出層。傳統(tǒng)SIEM的輸出方式有很多,包括展現(xiàn)層面、報(bào)表層面、報(bào)警通知層面、實(shí)時(shí)阻斷層面等,企業(yè)可以根據(jù)不同業(yè)務(wù)部門(mén)的不同需求選擇合適的輸出方式。SIEM的輸出結(jié)果不僅僅和安全部門(mén)或業(yè)務(wù)部門(mén)有關(guān),還可能涉及到其他業(yè)務(wù)單元,比如資產(chǎn)管理、組織管理等。
從事件處理的生命周期來(lái)看,處理方式可以分成自動(dòng)方式和手動(dòng)方式,自動(dòng)方式可以對(duì)計(jì)算層分析出的安全威脅事件進(jìn)行自動(dòng)處理,包括通知、預(yù)警、上報(bào)甚至阻斷,而對(duì)于不能自動(dòng)處理的情況,就需要手動(dòng)方式,這時(shí)可以借助工單系統(tǒng)進(jìn)行后續(xù)處理跟蹤,最終保證安全威脅被處理。
·情報(bào)中心:情報(bào)中心為SIEM計(jì)算層提供額外的數(shù)據(jù)支撐,從而提高威脅和異常行為識(shí)別的準(zhǔn)確率。情報(bào)中心的數(shù)據(jù)來(lái)源一般有三種渠道,第一種是來(lái)自公開(kāi)輸出的威脅情報(bào),如X-Force Exchange、ThreatBook、Shodan等;第二種是來(lái)自自身搜集的威脅情報(bào)數(shù)據(jù),如通過(guò)蜜罐采集、API調(diào)取或者交換購(gòu)買(mǎi)等方式取得有價(jià)值的威脅情報(bào);第三種就是來(lái)自跟業(yè)務(wù)自身相關(guān)的輔助數(shù)據(jù),如用戶(hù)注冊(cè)信息,企業(yè)資產(chǎn)信息、組織信息等等,這些信息看似和安全威脅關(guān)聯(lián)不大,但是當(dāng)多種數(shù)據(jù)聯(lián)合分析時(shí),就可以為最終的結(jié)果輸出提供有效參考。
情報(bào)中心數(shù)據(jù)的內(nèi)容包含多種形式,常用的如IP庫(kù)、設(shè)備指紋庫(kù)、黑卡庫(kù)、漏洞庫(kù)等。使用或依賴(lài)情報(bào)中心要注意情報(bào)的實(shí)時(shí)性,因?yàn)槟壳霸苹凸玻▃u)享(yong)經(jīng)濟(jì)的普及,很多資源并不是獨(dú)占的,而是在一定時(shí)間后就被回收,并交由其他用途,這樣的話如果情報(bào)更新不及時(shí)就會(huì)適得其反。
三、SIEM、態(tài)勢(shì)感知和SOC安全運(yùn)營(yíng)中心
SIEM、態(tài)勢(shì)感知和SOC安全運(yùn)營(yíng)中心有著緊密關(guān)系。其中態(tài)勢(shì)感知范圍很廣,主要聚焦在感知過(guò)去、理解現(xiàn)在、預(yù)測(cè)未來(lái)三個(gè)層面,這和SIEM的采集并計(jì)算分析給出結(jié)果進(jìn)而感知預(yù)測(cè)是高度吻合的。一些企業(yè)發(fā)布的態(tài)勢(shì)感知系統(tǒng)其實(shí)就是簡(jiǎn)化的SIEM或者是SIEM的超集。SOC安全運(yùn)營(yíng)中心則在SIEM的基礎(chǔ)上突出了人的作用,強(qiáng)調(diào)了人和平臺(tái)以及軟件之間的聯(lián)動(dòng),通過(guò)類(lèi)似Ticket系統(tǒng)的任務(wù)追蹤機(jī)制,配合SIEM提供的數(shù)據(jù)分析結(jié)果,用人對(duì)業(yè)務(wù)和資產(chǎn)進(jìn)行全面的安全管理。
總之,SIEM對(duì)于企業(yè)的整體安全分析是非常重要的,通過(guò)SIEM可以打通多種數(shù)據(jù)流的信息,形成對(duì)于安全威脅的事前、事中、事后處理,最終保證企業(yè)的整體資產(chǎn)及業(yè)務(wù)安全。
四、AI遇上SIEM
如果說(shuō)IT技術(shù)有風(fēng)口的話,那么AI無(wú)疑是最前沿并且最落地的,AI整體發(fā)展分為三個(gè)階段:
·識(shí)別階段:解決What的問(wèn)題,這是最基礎(chǔ)的AI問(wèn)題。目前的AI通過(guò)大量有監(jiān)督學(xué)習(xí),提取標(biāo)注樣本的表象或內(nèi)在特征,形成一個(gè)或多個(gè)分類(lèi)器,分類(lèi)器對(duì)樣本數(shù)據(jù)特征進(jìn)行學(xué)習(xí)訓(xùn)練,最終對(duì)新的輸入進(jìn)行準(zhǔn)確識(shí)別,從而解決什么是什么的問(wèn)題。比如什么是小狗、什么是色情圖片等。
典型的應(yīng)用包括驗(yàn)證碼識(shí)別、語(yǔ)音識(shí)別、垃圾郵件識(shí)別等。人們熟知的AlphaGo也是識(shí)別問(wèn)題,深度學(xué)習(xí)通過(guò)對(duì)成千上萬(wàn)個(gè)已經(jīng)標(biāo)注好輸贏的棋局進(jìn)行訓(xùn)練,利用頭幾層的神經(jīng)元網(wǎng)絡(luò),越過(guò)表象特征挖掘出人都很難理解的深層次特征,形成了對(duì)于棋局的“感應(yīng)”能力,從而對(duì)某個(gè)棋局是更有利于黑方還是白方做出判斷,再結(jié)合αβ search或MCTS等算法,給出下一步走法的最優(yōu)解。應(yīng)該說(shuō)識(shí)別是應(yīng)用AI最成熟的領(lǐng)域。
·理解階段:解決Why的問(wèn)題,這是在識(shí)別的基礎(chǔ)上進(jìn)一步的AI問(wèn)題。比如一段文字想表達(dá)的情感是什么?一個(gè)電影講述的故事是什么?一段語(yǔ)音的問(wèn)題是問(wèn)什么等等。最典型的應(yīng)用場(chǎng)景就是人機(jī)對(duì)話,其基礎(chǔ)是理解人說(shuō)的是什么,想表達(dá)什么意思。
理解問(wèn)題最原始的解決辦法就是構(gòu)造各種語(yǔ)義模板,用來(lái)做情感標(biāo)注,變相把理解問(wèn)題轉(zhuǎn)換成識(shí)別問(wèn)題。但隨著深度學(xué)習(xí)的普及,已經(jīng)出現(xiàn)了很多新的技術(shù)以突破模板定義的限制進(jìn)而試圖真正理解內(nèi)在含義。但是通過(guò)蘋(píng)果手機(jī)Siri的例子就可以看出,目前的AI對(duì)于理解問(wèn)題的能力還遠(yuǎn)遠(yuǎn)沒(méi)有到成熟的階段。
·反饋階段:解決How的問(wèn)題。How本質(zhì)是在識(shí)別的基礎(chǔ)上,理解了對(duì)方的信息內(nèi)容后,做出恰當(dāng)?shù)姆答仭7答伿茿I的最高境界,是實(shí)現(xiàn)真正人機(jī)互動(dòng)的關(guān)鍵,有了反饋互動(dòng)的能力,AI就可以像真人一樣在一些領(lǐng)域部分代替人類(lèi),甚至完全代替人類(lèi)。但很明顯,目前AI的發(fā)展階段離這個(gè)目標(biāo)還相距甚遠(yuǎn)。
從AI的三個(gè)發(fā)展階段看,目前AI還主要處于“識(shí)別”和“理解”的初期,離真正的“代替人類(lèi)”還有很長(zhǎng)遠(yuǎn)的路要走,當(dāng)下真正已經(jīng)成熟使用的技術(shù)基本集中在“識(shí)別”問(wèn)題。同時(shí)我們觀察安全領(lǐng)域就會(huì)發(fā)現(xiàn),安全領(lǐng)域里的問(wèn)題恰恰就是非常典型的"識(shí)別"問(wèn)題,通過(guò)SIEM里的各種輸入數(shù)據(jù)進(jìn)行分析,只需要識(shí)別這個(gè)事件或這個(gè)用戶(hù)是否存在威脅即可,整個(gè)過(guò)程無(wú)關(guān)理解也無(wú)關(guān)反饋。
圖3:主流SIEM系統(tǒng)AI工具示例
應(yīng)該看到,目前的新型SIEM已經(jīng)集成了AI的能力,比如有的SIEM平臺(tái),集成了常用的AI算法,比如異常檢測(cè)、線性預(yù)測(cè),這些算法以插件的方式集成進(jìn)平臺(tái),用戶(hù)可以基于這些算法分析自身的數(shù)據(jù)。
五、從SIEM&AI到SIEM@AI
目前主流SIEM平臺(tái)的最大缺點(diǎn)是:他們僅僅是SIEM&AI(以AI作為工具),把AI僅僅當(dāng)成是SIEM平臺(tái)的一個(gè)附屬插件或工具,而沒(méi)有把整個(gè)SIEM平臺(tái)構(gòu)建在AI技術(shù)上面。這樣帶來(lái)的影響是,企業(yè)使用SIEM時(shí)需要花費(fèi)大量的時(shí)間、精力、人力去學(xué)習(xí)、配置和使用這些AI工具,另外,SIEM&AI還要求企業(yè)具有一定的特征工程經(jīng)驗(yàn),而這對(duì)于很多企業(yè)而言是不現(xiàn)實(shí)的。我見(jiàn)過(guò)很多企業(yè)客戶(hù),當(dāng)我問(wèn)到他們使用SIEM&AI類(lèi)產(chǎn)品的的AI部分的體驗(yàn)時(shí),都是一臉茫然,仿佛花了大價(jià)錢(qián)買(mǎi)了高級(jí)玩具卻沒(méi)玩起來(lái)。
而企業(yè)真正需要的是:SIEM@AI(以AI作為平臺(tái)),無(wú)需很多成本甚至完全無(wú)需學(xué)習(xí)成本,即可使用AI技術(shù)從海量的輸入數(shù)據(jù)流信息中發(fā)掘威脅事件,并自動(dòng)使用AI技術(shù)對(duì)不同業(yè)務(wù)、不同維度的數(shù)據(jù)進(jìn)行智能關(guān)聯(lián),建立內(nèi)在聯(lián)系,并最終自動(dòng)的對(duì)威脅事件進(jìn)行處置處理。
六、AI賦能數(shù)據(jù)分析
?。ㄒ唬?shù)據(jù)標(biāo)注難題
如前所述,在安全領(lǐng)域,大部分問(wèn)題都是“識(shí)別”問(wèn)題,從數(shù)據(jù)分析的角度,可以將問(wèn)題最終歸為分類(lèi)問(wèn)題。通過(guò)建立算法模型,預(yù)測(cè)進(jìn)行中的事件甚至還未到來(lái)的事件是否存在威脅,也就是把它們分成有威脅和無(wú)威脅兩類(lèi)。但是安全領(lǐng)域在使用AI時(shí)存在一個(gè)巨大的困難,即樣本標(biāo)注難。對(duì)于經(jīng)典的圖片識(shí)別問(wèn)題,企業(yè)可以使用較低的人力成本批量制作標(biāo)注樣本,然后送入深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練。但是安全問(wèn)題則不同,從大量雜亂的信息數(shù)據(jù)中識(shí)別是否存在威脅、是何種威脅,需要專(zhuān)業(yè)的安全人員,甚至多個(gè)部門(mén)跨部門(mén)協(xié)作才能完成。
?。ǘo(wú)監(jiān)督學(xué)習(xí)化解標(biāo)注難題
標(biāo)注難問(wèn)題可解嗎?答案是肯定的,那就是利用無(wú)監(jiān)督學(xué)習(xí)。無(wú)監(jiān)督學(xué)習(xí)可以將正常事件聚在一起,同時(shí)也會(huì)將異常事件聚在一起,從而方便算法識(shí)別出異常威脅。而整個(gè)威脅識(shí)別的過(guò)程無(wú)需標(biāo)注樣本,也大大降低了人工參與的程度。
無(wú)監(jiān)督學(xué)習(xí)是機(jī)器學(xué)習(xí)中一個(gè)非常重要的分支,不同于有監(jiān)督學(xué)習(xí)需要依賴(lài)大量標(biāo)注好的樣本才能讓分類(lèi)器進(jìn)行學(xué)習(xí),無(wú)監(jiān)督學(xué)習(xí)可以在沒(méi)有任何標(biāo)注樣本的情況下由分類(lèi)器自主學(xué)習(xí)。只不過(guò)目前市場(chǎng)上絕大多數(shù)產(chǎn)品都集中在有監(jiān)督學(xué)習(xí)上,導(dǎo)致無(wú)監(jiān)督被長(zhǎng)期忽略了。
圖4:聚類(lèi)示意圖
白山ATD(Advanced Threat Detection,深度威脅識(shí)別,新一代的SIEM@AI系統(tǒng))產(chǎn)品大量使用了無(wú)監(jiān)督學(xué)習(xí)技術(shù)來(lái)進(jìn)行威脅事件識(shí)別,無(wú)監(jiān)督學(xué)習(xí)的本質(zhì)是將數(shù)據(jù)進(jìn)行聚類(lèi),而根據(jù)聚類(lèi)實(shí)現(xiàn)的過(guò)程不同又主要分為三種算法:距離聚類(lèi)、核密度聚類(lèi)、層次聚類(lèi)
1、距離聚類(lèi)
距離聚類(lèi)是最常見(jiàn)的聚類(lèi)算法,本質(zhì)是EM算法,通過(guò)對(duì)于距離中心點(diǎn)的不斷迭代修正,最終將所有事件進(jìn)行歸類(lèi),那么有威脅的事件自然會(huì)被歸到一簇或者幾簇,而正常的事件也會(huì)因?yàn)楦嗨频木嚯x而歸到一簇或者幾簇。當(dāng)然這是理想情況,在現(xiàn)實(shí)場(chǎng)景中實(shí)施算法還需要做很多的加工工作。距離聚類(lèi)的最大困難一是距離計(jì)算方式的選擇,二是聚類(lèi)簇?cái)?shù)量的選擇。
距離計(jì)算選擇主要包含兩個(gè)方面:
- 如何規(guī)定事件邊界:繁雜的海量數(shù)據(jù)輸入中,一個(gè)事件的邊界從哪里開(kāi)始,到哪里結(jié)束,包含哪些數(shù)據(jù)。這需要按照不同的應(yīng)用場(chǎng)景做不同的處理,常見(jiàn)的方式有按照時(shí)間段,也有按照事件切分點(diǎn)。
- 如何制定事件間距離:事件有很多不同的描述維度,對(duì)于最常見(jiàn)的維度——時(shí)間、地點(diǎn)而言,記錄時(shí)間有可能是UNIX時(shí)間戳,記錄地點(diǎn)有能是GEO IP或者M(jìn)AC地址,那么如何把UNIX時(shí)間戳和IP地址放在一個(gè)向量空間模型里比較距離就是一個(gè)問(wèn)題了。這里ATD采用的Z-Score算法進(jìn)行距離映射,使得映射后的數(shù)據(jù)具有完全的正太分布特征。
簇的數(shù)量選擇對(duì)于無(wú)監(jiān)督學(xué)習(xí)的算法效果至關(guān)重要,一旦初始簇的數(shù)量選擇不合適,就有可能導(dǎo)致聚類(lèi)的結(jié)果完全錯(cuò)誤。
圖5:聚類(lèi)示意圖
如上圖,紅色異常點(diǎn)是我們需要識(shí)別出來(lái)的,顯然聚類(lèi)簇?cái)?shù)為2的效果比聚類(lèi)簇?cái)?shù)為3的效果要好,因?yàn)?將正常的事件點(diǎn)也分為了兩類(lèi)。ATD使用一系列算法在聚類(lèi)前預(yù)判準(zhǔn)確的聚類(lèi)簇?cái)?shù)量,最好的情況下可以提升200%的聚類(lèi)效果。
2、核密度聚類(lèi)
核密度聚類(lèi)不需要事先指定聚類(lèi)的簇?cái)?shù),而是根據(jù)初始的密度值進(jìn)行聚類(lèi)選擇,所有與核距離過(guò)遠(yuǎn)的事件都會(huì)被標(biāo)記為離群點(diǎn),這些離群點(diǎn)從安全角度看可能就是威脅事件。
密度聚類(lèi)的前提是需要選擇合適的初始密度值,如果選擇不當(dāng)將導(dǎo)致離群點(diǎn)錯(cuò)誤,最終使威脅事件誤判。另一方面,控制離群點(diǎn)的數(shù)量和純度對(duì)最終的識(shí)別效果也很重要,因?yàn)樵趯?shí)際生產(chǎn)環(huán)境中,很有可能出現(xiàn)大量的離散點(diǎn)其實(shí)也是正常的事件。所以有時(shí)候也需要在第一次聚類(lèi)后,調(diào)整事件的特征選擇算法,針對(duì)離群點(diǎn)進(jìn)行二次聚類(lèi)。
3、層次聚類(lèi)
層次聚類(lèi)的原理是先將所有事件看成樹(shù)的葉子節(jié)點(diǎn),每個(gè)葉子節(jié)點(diǎn)自成一類(lèi),然后根據(jù)相互的距離,自下而上逐層合并,最終形成一個(gè)根。
層次聚類(lèi)可以根據(jù)需要,按照最終聚類(lèi)的簇?cái)?shù)進(jìn)行層層歸并,最終聚成的小簇我們可以認(rèn)為是某種離群點(diǎn),即有可能是一些威脅事件。可以看出,層次聚類(lèi)的核心仍然是距離計(jì)算模型的選擇。
?。ㄈ┲悄芊治鲲L(fēng)險(xiǎn)
利用無(wú)監(jiān)督學(xué)習(xí),可以在無(wú)需標(biāo)注樣本和無(wú)人工介入的前提下,發(fā)現(xiàn)很多異常的威脅風(fēng)險(xiǎn)。下圖是一個(gè)被ATD系統(tǒng)識(shí)別出的實(shí)際例子:
圖6:ATD無(wú)監(jiān)督學(xué)習(xí)示例結(jié)果
這是一個(gè)ATD對(duì)企業(yè)電商業(yè)務(wù)無(wú)監(jiān)督學(xué)習(xí)的實(shí)際案例,案例顯示大部分用戶(hù)的訪問(wèn)路徑集中在
登錄頁(yè)=》授權(quán)頁(yè)=》訂單頁(yè)的訪問(wèn)趨勢(shì),通過(guò)無(wú)監(jiān)督學(xué)習(xí)就可以將正常用戶(hù)的行為聚在一起。反觀刷單的惡意行為則會(huì)繞過(guò)授權(quán)頁(yè)直接訪問(wèn)訂單頁(yè),這樣在無(wú)監(jiān)督學(xué)習(xí)過(guò)程中就自然形成了離群點(diǎn),這樣我們就可以幫助企業(yè)識(shí)別出刷單的威脅風(fēng)險(xiǎn)。
七、AI賦能數(shù)據(jù)關(guān)聯(lián)
(一)橫向關(guān)聯(lián)
AI威脅數(shù)據(jù)分析,分成縱向的數(shù)據(jù)分析和橫向的數(shù)據(jù)關(guān)聯(lián):
圖7:數(shù)據(jù)的縱向分析和橫向關(guān)聯(lián)
縱向分析指的是對(duì)于事件群體按照時(shí)間軸學(xué)習(xí)規(guī)律,以此進(jìn)行對(duì)于已有的威脅識(shí)別和對(duì)于未來(lái)的態(tài)勢(shì)感知。橫向關(guān)聯(lián)指對(duì)空間上不直接相關(guān)的不同事件群體,通過(guò)算法挖掘它們的深層次關(guān)聯(lián)關(guān)系,最終形成更準(zhǔn)確的威脅識(shí)別或者便于對(duì)威脅事件進(jìn)行更全面的回溯。
對(duì)于大多數(shù)SIEM產(chǎn)品,只要附帶AI工具功能的,便可以完成諸如異常點(diǎn)檢查、趨勢(shì)預(yù)測(cè)等任務(wù)(盡管他們當(dāng)中絕大多數(shù)都是有監(jiān)督學(xué)習(xí),這也就意味著客戶(hù)需要提供大量標(biāo)注好的威脅事件和正常事件的樣本),不過(guò)這些任務(wù)都是縱向分析,并不是橫向關(guān)聯(lián)。因此,對(duì)于新一代SIEM@AI系統(tǒng)來(lái)說(shuō),比起無(wú)監(jiān)督學(xué)習(xí)進(jìn)行縱向分析,更有挑戰(zhàn)的任務(wù)是在表層不相關(guān)的海量數(shù)據(jù)中建立潛在關(guān)聯(lián),從而實(shí)現(xiàn)真正的深度威脅識(shí)別。
(二)事件的相關(guān)運(yùn)算
常見(jiàn)的事件關(guān)聯(lián)場(chǎng)景基本上可以分為這兩種:
A、某一作用域(如某一時(shí)間段內(nèi))的事件集合,挖掘事件之間的關(guān)聯(lián)關(guān)系,如:
上圖就是兩個(gè)完全由不同系統(tǒng)統(tǒng)計(jì)輸出的事件,我們需要用算法分析是否存在關(guān)聯(lián),這個(gè)過(guò)程實(shí)際可以轉(zhuǎn)換為:按行分析相關(guān)性。
B、同一類(lèi)型事件,挖掘構(gòu)成的因素是否存在關(guān)聯(lián)關(guān)系,如:
上圖所示,全部“ERP系統(tǒng)不能訪問(wèn)”的事件中,各個(gè)因素間是否存在關(guān)聯(lián),這個(gè)過(guò)程實(shí)際可以轉(zhuǎn)換為:按列分析相關(guān)性。
由此可以看出,無(wú)論是不同事件的關(guān)聯(lián)分析,還是同一類(lèi)事件的內(nèi)在因素關(guān)聯(lián),本質(zhì)可以轉(zhuǎn)換為矩陣的行相關(guān)或列相關(guān)。對(duì)于列相關(guān),通過(guò)對(duì)于矩陣轉(zhuǎn)置運(yùn)算,也可以轉(zhuǎn)換為行相關(guān),即:
我們只需要分析K1和K2是否在某種程度存在相關(guān)。
對(duì)于這種關(guān)聯(lián)分析,最常見(jiàn)的方式是用類(lèi)似KNN算法中,通過(guò)計(jì)算兩個(gè)事件元素的夾角來(lái)判斷相關(guān)性:
當(dāng)夾角越小時(shí),表示兩個(gè)事件越相關(guān),而當(dāng)夾角互相垂直(即正交)時(shí),表示兩個(gè)事件完全無(wú)關(guān)。
當(dāng)然,我們還可以使用其他的方式計(jì)算相關(guān)性,比如Jaccard距離:
當(dāng)J值越大時(shí),表示兩個(gè)事件越相關(guān),反之則越不相關(guān)。
夾角距離計(jì)算方式更適用數(shù)值型的事件向量,而Jaccard距離計(jì)算方式更適合枚舉字符串類(lèi)型的事件向量。當(dāng)然事實(shí)上,我們可以把任何字符串類(lèi)型的事件,通過(guò)word2vec或者simhash等算法方式轉(zhuǎn)變?yōu)閿?shù)值型事件向量,然后再進(jìn)行夾角計(jì)算。
(三)啤酒與尿布
說(shuō)到數(shù)據(jù)關(guān)聯(lián),不得不提的經(jīng)典故事就是“啤酒與尿布”了,沃爾瑪在做數(shù)據(jù)關(guān)聯(lián)分析時(shí)發(fā)現(xiàn)啤酒和尿布在購(gòu)物單上是相關(guān)的,這是怎么回事?原來(lái)妻子經(jīng)常會(huì)囑咐丈夫下班以后要為孩子買(mǎi)尿布。而丈夫在買(mǎi)完尿布之后又要順手買(mǎi)回自己愛(ài)喝的啤酒,因此啤酒和尿布的銷(xiāo)售行為上具有相關(guān)性。
從數(shù)據(jù)關(guān)聯(lián)算法復(fù)雜性的角度看,啤酒和尿布的關(guān)聯(lián)屬于比較簡(jiǎn)單也相對(duì)直接一些的關(guān)聯(lián),Apriori算法就是解決這個(gè)問(wèn)題的簡(jiǎn)單可實(shí)現(xiàn)的算法之一。Apriori算法通過(guò)不斷的篩選頻繁項(xiàng)并且不斷的產(chǎn)生新關(guān)聯(lián)規(guī)則的方式,最終得到關(guān)聯(lián)性最強(qiáng)的事件元素。
圖8:Apriori算法示意圖
深入Apriori算法的過(guò)程就會(huì)發(fā)現(xiàn),其實(shí)Apriori整個(gè)計(jì)算過(guò)程和計(jì)算事件間的Jaccard距離十分類(lèi)似,本質(zhì)都是比較兩個(gè)事件的相似因素后進(jìn)行篩選。不過(guò)Apriori算法在實(shí)現(xiàn)上比兩兩比較效率更高,因?yàn)樵谄渲杏屑糁s小范圍的過(guò)程。
(四)更隱晦的事件關(guān)聯(lián)
其實(shí),在ATD給客戶(hù)服務(wù)的實(shí)際應(yīng)用場(chǎng)景中,上文提到的“啤酒,尿布”還都算是比較簡(jiǎn)單的事件關(guān)聯(lián)模型。更為復(fù)雜的是,如何發(fā)現(xiàn)從人的感知認(rèn)識(shí)角度看并不是那么直接的關(guān)聯(lián)關(guān)系。比如空氣的霧霾指數(shù)和城市用電量的關(guān)系,從人的感知角度,這兩個(gè)并不是特別的直接相關(guān)。但當(dāng)我們?cè)趦蓚€(gè)事件中引入一個(gè)橋梁,即室內(nèi)人數(shù)占比,就會(huì)發(fā)現(xiàn)這樣的概率關(guān)系:
P(用電量/霧霾)=>P(室內(nèi)人數(shù)增加/霧霾)* P(用電量增加/室內(nèi)人口增加),其中P(A/B)表示B事件發(fā)生情況下發(fā)生A事件的概率
如果可以列舉出霧霾導(dǎo)致的所有核心事件,就可以使用全概率公式推導(dǎo)出霧霾和用電量的關(guān)系(所以這里我并沒(méi)有使用等號(hào)=而是使用了=>)。
從威脅識(shí)別的角度,通過(guò)這種中間的橋梁事件,同理也可以構(gòu)建出兩個(gè)看似不相關(guān)的事件之間的關(guān)系。比如在我們給某家電企業(yè)部署的ATD運(yùn)行中,就發(fā)現(xiàn)了一次疑似的CC攻擊實(shí)際是和后端某業(yè)務(wù)線數(shù)據(jù)庫(kù)變更操作有關(guān):
P(疑似CC攻擊/業(yè)務(wù)線數(shù)據(jù)庫(kù)變更)=>P(疑似CC攻擊/接口訪問(wèn)飆升)* P(接口訪問(wèn)飆升/504占比)* P(504占比/請(qǐng)求阻塞)*P(請(qǐng)求阻塞/數(shù)據(jù)庫(kù)阻塞)*P(數(shù)據(jù)庫(kù)阻塞/數(shù)據(jù)庫(kù)變更)
解決這種復(fù)雜隱晦的事件關(guān)聯(lián)的前提是首先要把所有信息(不管認(rèn)為是否相關(guān))都收集進(jìn)來(lái)(這也是文章開(kāi)始階段提到的SIEM的采集層需要解決的),盡可能多的采集各種數(shù)據(jù),因?yàn)橹挥胁杉綌?shù)據(jù)才有可能建立關(guān)聯(lián)。當(dāng)海量的數(shù)據(jù)采集進(jìn)來(lái)后,我們往往在做下一步相關(guān)分析時(shí)會(huì)發(fā)現(xiàn)一個(gè)難題,即:因?yàn)閿?shù)據(jù)太多,導(dǎo)致分析的性能很低。如果威脅事件分析的不及時(shí),很可能會(huì)影響后續(xù)的處理,所以整個(gè)分析過(guò)程的低延遲至關(guān)重要。
(五)數(shù)據(jù)降維
如何保證處理速度呢?那就需要對(duì)數(shù)據(jù)進(jìn)行降維分解,從而降低計(jì)算空間,這里面有兩種做法:
1、有監(jiān)督降維
如果企業(yè)本身有大量標(biāo)注數(shù)據(jù),那就可以使用有監(jiān)督降維,最經(jīng)典的有監(jiān)督降維就是PCA(Principal Component Analysis,主成分分析),其原理是選擇一種最優(yōu)的數(shù)據(jù)投射方式,從高維空間投射到低維空間,并且保證投射后有較好的區(qū)分度。
2、無(wú)監(jiān)督降維
在沒(méi)有大量標(biāo)注數(shù)據(jù)的情況下就可以使用無(wú)監(jiān)督降維,這也正是ATD所使用的數(shù)據(jù)降維方式。有很多種算法都可以進(jìn)行無(wú)監(jiān)督降維,ATD最早使用的是LDA(Latent Dirichlet Allocation)主題發(fā)現(xiàn)模型進(jìn)行降維,通過(guò)LDA先將數(shù)據(jù)按照主題相關(guān)性聚類(lèi),降低每一類(lèi)中數(shù)據(jù)的數(shù)量和維度,從而減少后續(xù)計(jì)算的復(fù)雜度。
這里,我想介紹另外一種數(shù)據(jù)降維的方式,也是我們目前正在嘗試的——SVD(Singular Value Decomposition)分解。
圖9:對(duì)威脅事件進(jìn)行SVD分解
上圖所示,我們先對(duì)于一個(gè)海量的事件集進(jìn)行了SVD分解,分解的結(jié)果是三個(gè)矩陣的乘積,然后通過(guò)對(duì)于中間Σ矩陣的元素進(jìn)行篩選,就可以降低整個(gè)事件集群的復(fù)雜度,同時(shí)找到同一個(gè)隱含主題下的關(guān)聯(lián)事件和關(guān)聯(lián)因素。隱含主題的數(shù)量本質(zhì)上就是事件矩陣的秩。
從更深的角度講,無(wú)論是LDA還是SVD,其實(shí)本質(zhì)都是去尋找事件矩陣的秩,利用秩找到構(gòu)成事件的最核心因素,比如對(duì)于一個(gè)入侵事件,可能的核心因素是用戶(hù)的屬性(內(nèi)/外部用戶(hù)、是否授權(quán)、相應(yīng)職級(jí)等等)、入侵時(shí)間、侵入的業(yè)務(wù)類(lèi)型,而其他的因素,諸如員工的年齡、當(dāng)時(shí)的服務(wù)器負(fù)載等等其他因素有可能就會(huì)被算法自動(dòng)識(shí)別為非關(guān)鍵因素而忽略掉。通過(guò)這種方式就可以在茫茫信息中發(fā)現(xiàn)關(guān)鍵因素,從而為后面的事件關(guān)聯(lián)大大降低運(yùn)算量。
總之,數(shù)據(jù)的橫向關(guān)聯(lián)是一個(gè)極富挑戰(zhàn)性的任務(wù),其中最重要的先決條件是通過(guò)SIEM的采集層收集足夠的數(shù)據(jù),其次是選擇合適的算法對(duì)數(shù)據(jù)進(jìn)行加工處理,最后是通過(guò)AI算法對(duì)數(shù)據(jù)進(jìn)行關(guān)聯(lián)分析。在ATD客戶(hù)的實(shí)際使用中,我們成功地發(fā)現(xiàn)了外網(wǎng)的接口攻擊和內(nèi)網(wǎng)數(shù)據(jù)庫(kù)變更之間的關(guān)系,也發(fā)現(xiàn)了某郵件系統(tǒng)的Exchange日志事件和內(nèi)網(wǎng)SSH事件之間的關(guān)系。這種關(guān)聯(lián)分析不僅僅對(duì)于已知威脅的回溯有幫助,也對(duì)未來(lái)的安全態(tài)勢(shì)感知有重大意義。
八、關(guān)于未來(lái)方向的探究
從SIEM&AI模式到SIEM@AI模式,我們不再將AI看成是插件或者工具,而是將系統(tǒng)運(yùn)行在一個(gè)完全由AI驅(qū)動(dòng)的智能平臺(tái)上。在這個(gè)平臺(tái)上,我們無(wú)需標(biāo)注數(shù)據(jù),無(wú)需大量人工介入,也無(wú)需定制規(guī)則,而是通過(guò)以無(wú)監(jiān)督學(xué)習(xí)為主導(dǎo)的機(jī)器學(xué)習(xí)算法自動(dòng)對(duì)異常威脅事件進(jìn)行識(shí)別,自動(dòng)的為各個(gè)復(fù)雜事件建立內(nèi)在關(guān)聯(lián),提高識(shí)別的準(zhǔn)確率和召回率的同時(shí),解放安全工程師的人力并提高其效率,最終實(shí)現(xiàn)對(duì)于企業(yè)外網(wǎng)、業(yè)務(wù)、內(nèi)網(wǎng)的三層智能防御。
白山ATD產(chǎn)品就是一套全新的SIEM@AI系統(tǒng),我們過(guò)去花費(fèi)了大量時(shí)間和精力去研發(fā)基于無(wú)監(jiān)督學(xué)習(xí)的AI算法來(lái)代替目前的傳統(tǒng)企業(yè)安全產(chǎn)品,這種模式的有效性在企業(yè)實(shí)踐中已經(jīng)得到了驗(yàn)證。未來(lái),ATD還會(huì)在兩個(gè)方向做進(jìn)一步探索研究:
1、通過(guò)主動(dòng)學(xué)習(xí)引入人的參與
引入無(wú)監(jiān)督學(xué)習(xí)的目的是不依賴(lài)標(biāo)注的樣本,因?yàn)樵诎踩I(lǐng)域,標(biāo)注樣本的獲取成本非常大,但是這并不代表可以完全不依靠人工。在可預(yù)見(jiàn)的時(shí)間范圍內(nèi),有經(jīng)驗(yàn)的安全專(zhuān)家對(duì)威脅風(fēng)險(xiǎn)的識(shí)別、對(duì)于算法的修正以及對(duì)于整個(gè)AI系統(tǒng)的魯棒性維護(hù)都是非常重要的。但是,安全專(zhuān)家的時(shí)間精力畢竟有限,如何在準(zhǔn)確全面識(shí)別安全威脅的前提下,降低安全專(zhuān)家的時(shí)間成本就顯得十分關(guān)鍵。
對(duì)此,我們引入主動(dòng)學(xué)習(xí)算法,它是一種特殊的半監(jiān)督學(xué)習(xí),依靠安全專(zhuān)家對(duì)少量的AI識(shí)別出的結(jié)果進(jìn)行人工校驗(yàn),從而不斷對(duì)原有算法進(jìn)行微調(diào),直到最終收斂。主動(dòng)學(xué)習(xí)里有兩個(gè)因素非常重要,一是如何挑選供給人工校驗(yàn)的識(shí)別結(jié)果,二是對(duì)于識(shí)別結(jié)果的糾正如何反饋到算法模型中。通過(guò)主動(dòng)學(xué)習(xí),我們就可以構(gòu)建不斷學(xué)習(xí)、不斷演變的SIEM系統(tǒng),進(jìn)而隨著與人的磨合,系統(tǒng)會(huì)變得越來(lái)越智能,越來(lái)越準(zhǔn)確。
2、通過(guò)深度學(xué)習(xí)識(shí)別非直觀威脅
有些威脅或者異常本身不具備直觀表述性,甚至不能被向量化、離散化,最直接的例子就是加密流量。加密后的流量本身是人不可表述的,只是一層二進(jìn)制輸入流。還有些安全事件由于關(guān)聯(lián)業(yè)務(wù)太多,很難用語(yǔ)言來(lái)表述為什么當(dāng)初這個(gè)問(wèn)題被判定為異常。對(duì)于這些問(wèn)題,都可以嘗試使用深度學(xué)習(xí)的算法來(lái)解決,不過(guò)深度學(xué)習(xí)要求有大量的標(biāo)注樣本,只有在這個(gè)前提下,才能保證算法的效果。這就要求企業(yè)在平時(shí)的SIEM系統(tǒng)運(yùn)行中,就不斷增加對(duì)于威脅事件判定的積累,當(dāng)數(shù)據(jù)積累到一定程度后,就可以使用深度學(xué)習(xí)算法進(jìn)行分析。
AI作為安全領(lǐng)域的顛覆性技術(shù),與SIEM的結(jié)合將構(gòu)建一個(gè)完全基于AI的、充分智能的、低人工甚至無(wú)需人工介入的新一代SIEM@AI平臺(tái),這將改變目前安全產(chǎn)品依靠策略設(shè)定的固有模式,成為新一代企業(yè)安全大腦。
作者簡(jiǎn)介:
叢磊,白山合伙人兼工程副總裁
2016年加入白山,主要負(fù)責(zé)云聚合產(chǎn)品的研發(fā)管理和云鏈產(chǎn)品體系構(gòu)建等。
2006年至2015年就職于新浪,原SAE(SinaAppEngine)創(chuàng)始人,曾任總負(fù)責(zé)人兼首席架構(gòu)師,2010年起,帶領(lǐng)新浪云計(jì)算團(tuán)隊(duì)從事云相關(guān)領(lǐng)域的技術(shù)研發(fā)工作。
現(xiàn)任工信部可信云服務(wù)認(rèn)證評(píng)委。