深入SOC2.0:揭密SOC實時事件分析引擎
安全管理平臺(SoC)的一項關鍵技術就是事件關聯分析。借助實時的事件關聯分析引擎,安全管理平臺能夠發掘出復雜的海量安全日志和事件背后隱藏的信息,引導安全管理人員發現外部入侵和內部違規行為。作為本系列的第五篇文章,將深入為大家剖析安全管理系統的關聯分析引擎技術架構,并向讀者展示關聯分析的價值和前景。
1 為什么需要安全事件關聯分析?
1.1 安全建設的新階段
信息系統的安全建設已經從過去的局部優化階段進入了整體優化的階段。
當今的企業和組織在IT信息安全領域面臨比以往更為復雜的局面。這既有來自于企業和組織外部的層出不窮的入侵和攻擊,也有來自于企業和組織內部的違規和泄漏。為了不斷應對新的安全挑戰,企業和組織先后部署了防病毒系統、防火墻、入侵檢測系統、漏洞掃描系統、UTM,等等。這種被動的安全建設過程就像是挖壕溝,為了抵御某一方面的安全威脅,客戶不斷地把壕溝加深,并開鑿了一條又一條的壕溝。由于這些安全系統都僅僅防堵來自某個方面的安全威脅,于是形成了一個個安全防御孤島,無法產生協同效應。另一方面,企業和組織日益迫切的信息系統審計和內控、以及不斷增強的業務持續性需求,也對當前企業信息安全管理提出了嚴峻的挑戰。這些內因外因合起來,都要求企業和組織建立一套橫向貫穿孤立的安全防線的整體安全管理平臺,實現對全網IT資源運行的監控、安全的監控、風險的監控,真正讓企業管理者把握整體安全態勢,實現有效地協同防御。
1.2 海量事件帶來的新挑戰
要構建一個統一的安全管理平臺,首先就需要將來自企業和組織中復雜IT資源及其安全防御設施運行過程中不斷產生的各類安全日志和事件進行統一收集、分析,構建一幅企業和組織的整體安全態勢圖。
對于一個典型的用戶而言,經過較為系統的安全建設后,都會部署較多的安全產品。這些安全產品每天產生的事件量是巨大的,如下表所示:
顯然,對于安全管理平臺而言,收集和分析上述海量的安全事件是一個巨大的挑戰,而能否做到這點將直接決定一個安全管理平臺的成敗。同時,安全管理平臺決不能簡單地將這些海量的信息直接展示給客戶,否則,用戶面對這些海量的安全事件將束手無策,管理運維效率將不升反降。此外,大量的安全事件匯聚到一起,根據其安全屬性的相關性,可能隱含了新的更嚴重的安全事件,這種相關性是管理人員難以用肉眼觀察出來的。安全管理平臺的目標就是要收集這些海量事件,并通過有效的分析手段輸出很少量的、真正值得管理員關注的安全事件。
那么,如何才能有效地分析這些海量的異構安全事件?安全事件關聯分析應運而生。
2 事件關聯分析介紹
2.1 信息安全事件定義
什么叫做信息安全事件?根據ISO18044和ISO27001,信息安全事件是指被識別的一種系統、服務或網絡狀態的發生,表明一次可能的信息安全策略違反或某些防護措施失效,或者一種可能與安全相關但以前未知的情況。
在本文中,信息安全事件簡稱事件,尤指由IT系統自動產生的各種事件。
2.2 事件關聯分析定義
IT范疇內的事件關聯分析(Event Correlation Analysis)最早來自網絡管理領域,通過綜合分析各種網絡告警信息,用于尋找網絡故障的根本原因。
定義1(來自Wiki百科):事件關聯是指找出大量事件中存在的關系,并從這些大量事件中抽取出真正重要的少量事件。
伴隨著網絡安全的發展,尤其是受到傳統IDS大量漏報、誤報、錯報安全事件的影響,出現了基于網絡安全數據融合技術的分布式IDS。而伴隨著前面所述的安全建設新階段的到來,安全信息與事件管理系統(SIEM)和安全管理平臺(SoC)也紛紛出現。在這些系統的設計中都逐步引入了事件關聯分析的概念。
定義2:事件關聯分析是指用戶將海量的來自異構數據庫源的安全事件進行相關性分析,定位真正的安全事故點的過程。
定義3(來自NIST SP800-92):事件關聯是指在兩個或更多個日志(事件)中找到它們之間的關系。
根據上述定義,事件關聯分析包括兩層含義:
1) 將大量的安全事件過濾、壓縮、歸并,提取出少量的、或者是概括性的重要安全事件,相當于“關聯分析中的事件量變”;
2) 從大量的安全事件之中發掘隱藏的相關性,產生新的不在之前事件之中的安全事件,相當于“關聯分析中的事件質變”。我們知道,外部入侵和內部違規行為從來都不是單一的行為,都是有時序或者邏輯上的聯系的,黑客的攻擊和內部的違規操作往往是分為若干步驟的,每個步驟都會在不同的設備和系統上留下蛛絲馬跡,單看某個設備的日志可能無法發現問題,但是將所有這些信息合到一起,就可能發現其中的隱患,而這正是關聯分析的目的所在。
2.3 事件關聯分析在安全管理平臺(SoC)中的位置
事件關聯分析在安全管理平臺(SoC)中位于核心位置,屬于SoC的核心技術點。
1) 事件關聯分析實現海量安全事件的抽取、降噪,剝離無用信息,提升后續安全管理工作的效率,降低安全管理工作的復雜性;
2) 事件關聯分析是風險分析的基礎,關聯分析的結果導出的關聯事件可以提升為威脅,從而參與風險計算,并且實現風險計算自動化、定量化;
3) 事件關聯分析是計算機安全事故(Incident)應急響應處理流程的關鍵步驟。
2.4 事件關聯分析的關鍵特性
在安全管理平臺(SoC)中,完整的事件關聯分析包括了事件采集、事件歸一化、事件關聯分析引擎、預警響應、事件存儲等幾個部分。其中,最核心的就是事件關聯分析引擎。
事件關聯分析至少具有以下三個關鍵特性:
1) 海量事件處理能力:是指關聯分析能夠高效地采集海量的異構安全事件,并能夠進行關聯匹配和輸出,還能夠將安全事件進行可視化展示,以及將海量安全事件和告警信息進行及時地存儲;
2) 實時性:是指關聯分析的整個處理過程必須保持實時、不間斷的工作;
3) 基于規則的:是指關聯分析的核心引擎至少應該包括一套實時高速的規則引擎,實現模式匹配,這也是“關聯分析中的事件質變”的要求。
3 實現事件關聯分析引擎
事件關聯分析引擎是關聯分析的核心技術部件,如何實現事件關聯分析引擎將直接決定關聯分析的效果,以及一個安全管理平臺(SoC)產品的成敗。因此,文本將重點描述事件關聯分析引擎的實現,對于事件采集和歸一化,將令文論述,或者參見 http://www.legendsec.com/newsec.php?up=3&cid=99上的介紹。
關聯分析引擎是一個典型的數據處理系統。因而,根據一般的經驗,首先會想到的就是利用數據庫系統來實現關聯分析引擎。但是,關聯分析引擎面對的數據不是一般的數據,這里的數據(事件)具有海量、實時和流的特征,因而,使用數據庫系統的關聯分析引擎無法達到實時高速的目標。
如上圖所示,借助數據庫管理系統(例如關系型數據庫),事件關聯分析主要就是使用SQL語句來實現。由于數據庫系統都是基于磁盤來存儲數據的,包括它的各種性能優化都是基于磁盤訪問來設計的,因而,借助數據庫的關聯分析引擎無論如何也難以保證分析性能。例如一個關聯規則需要在1秒鐘內通過SQL語句獲取10個數據,那么關聯分析引擎就需要在1秒內進行10次磁盤存取,難以符合高性能的要求。
有的內存數據庫系統雖然可以在性能上有所提升,但是由于數據庫的表、字段、索引等設施都是為了事務(Transaction)處理而設計的,難以高效的處理具有流性質的數據(事件)。必須指出的是,流數據具有一次寫多次讀(WORM)的特性。
更重要地,使用數據庫來實現關聯分析引擎無法真正實現模式匹配。考慮如下一個常見的模式匹配要求:“請找出在1分鐘內登錄服務器X失敗達到3次以上的源IP”。如果利用數據庫來實現,那么關聯分析引擎將不得不每隔一個時間間隔去進行SQL訪問,找到某個時刻符合要求的事件記錄(如上圖所示)。可見,在這種方式,難以滿足實時不間斷關聯分析的要求。
也許設計者會考慮使用數據庫的觸發器。但是,數據庫觸發器也不是為了處理流數據而設計,無法為觸發器設定復雜的關聯規則條件。
因此,一個事件關聯分析引擎必須采用新的技術——流數據處理技術來實現。
如上圖所示,是一個基于流數據處理的關聯分析引擎工作示意圖。首先,這個關聯分析引擎是在內存中進行的,關聯分析引擎分析的事件流是在內存中,與事件入庫持久化存儲分離。其次,關聯分析引擎是一個不間斷工作的實時引擎。它不斷地讀取事件流,利用狀態機(State Machine)的技術進行模式匹配(Pattern Match),實現實時事件關聯。
在這個技術原型架構之下,事件流相對于關聯分析引擎就相當于一個“流數據庫”(Steaming Database)。這個流數據庫與傳統的關系型數據庫具有以下區別:
因此,基于數據庫的關聯分析引擎只能是一個被動工作的引擎、基于對數據的查詢,是離散的,不連續的,難以保證效率和實時性。而基于流數據的關聯分析引擎則是一個主動工作的引擎,基于事件查詢和模式匹配,是連續的,能夠保證效率和實時性。
對于安全管理平臺(SoC)而言,在利用關聯分析引擎進行實時事件分析的同時,也具備對事件進行歷史分析的功能。因而,在安全管理平臺中,數據庫也是需要的,數據存儲也是需要的,并且用于進行歷史事件挖掘(Data Mining)、模式發現(Pattern Discovery)等。
除了要基于流數據處理技術,關聯分析引擎還必須具備一套較為完備的模式匹配技術。模式匹配就是基于規則的狀態機系統。
4 網神SMART事件關聯分析引擎架構
作為一個關聯分析引擎的實例,下面簡要介紹一下網御神州的SMART引擎架構。
網御神州經過多年的研究與開發,早在2006年就研制成功了一套獨具特色的事件關聯分析引擎,即SecFox獨有的基于安全監測、告警和響應技術(Security Monitor, Alert and Response Technology,簡稱SMART)的事件關聯分析引擎。在關聯規則的驅動下,SMART事件關聯分析引擎能夠對海量事件流實時高速地進行多種方式的事件關聯,包括統計關聯、時序關聯、單事件關聯、多事件關聯、遞歸關聯,等等。作為國內絕對領先的事件關聯分析核心技術,SMART引擎已經申請了多項專利技術,擁有完全自主知識產權。
如下圖所示,給出了SMART引擎的總體架構。
SMART引擎最大的特色是充分利用了多核CPU的并行處理能力,實現了高性能的模式匹配。目前,該引擎已經應用于網神SecFox安全管理系列產品,包括作為下一代安全管理平臺(SoC2.0)的SecFox-UMS統一管理系統,以及SecFox-LAS日志審計系統和SecFox-NBA數據庫審計系統。在日志審計的時候,SMART充當了日志合規性審計引擎,而在數據庫審計的時候,SMART充當了行為審計引擎。對于網神SecFox安全管理系統中的SMART引擎,在采用雙Intel XEON4核CPU、4GB內存、無RAID的基準硬件配置下,前端的事件收集性能峰值超過30000EPS(Event per Second,事件數每秒,簡稱EPS),事件關聯分析性能達到6000EPS(開啟默認規則)。并且,隨著硬件配置提升,性能還能繼續提高。
5 SoC2.0時代的事件關聯分析及其應用
在SoC2.0時代,安全將更加緊密地與客戶業務進行融合,不僅體現在風險與運維管理的思想和方法論上,更體現在安全管理平臺的落地上。
在SoC2.0時代的初期,安全管理平臺首先將成為一個面向業務的系統,即針對承載業務運行的IT支撐系統及其資源進行監測、分析和運維。在這個時期,安全管理平臺的關聯分析引擎更多地是對來自IT資源的工作日志和告警事件進行相關性分析,分析業務系統運行是否正常,是否面臨惡意攻擊,是否發生了信息泄漏。
在SoC2.0的第二個階段,安全管理平臺在實現IT安全管理的同時,將更多地成為一個IT安全合規管理平臺。此時,安管平臺的關聯分析引擎將針對IT資源日志中與業務相關的信息,以及部分業務自身運行日志進行相關性分析,發現業務人員的操作異常或違規。例如,發現內部IT人員竊取公司的員工工資數據庫信息,修改公司的客戶記錄,等等。
在SoC2.0的第三個階段,安全管理平臺將與業務深度融合,實現針對業務的安全管理,成為一個業務風險與合規管理平臺。例如,借助此時的關聯分析引擎去發現異常的銀行交易,協助銀行識別金融欺詐或者洗錢交易。
注意,SoC2.0的這三個發展階段不是替代關系,而是覆蓋關系,安全管理平臺的外延將不斷擴大,逐步與業務融合。
由上不難發現,事件關聯分析將始終作為安全管理平臺的核心技術,不斷向前發展。而一個成熟的、高速的、實時關聯分析引擎將構筑起安全管理平臺的核心競爭力。
6 小結
本文詳細闡述了安全管理平臺(SoC)下的安全事件關聯分析及其核心技術,以及關聯分析引擎的作用、設計思想和基本技術架構。
按照SoC2.0的基本要求,事件關聯分析引擎是整個安全管理架構的核心技術,具有舉足輕重的作用,安全管理平臺自動化、精確化、實時化水平的提升很大程度上有賴于事件關聯分析引擎。
當然,對于安全管理平臺而言,僅有關聯分析引擎還是遠遠不夠的,還需要其他各部分平臺組件的配合,并且還需要不同角色的參與者的支持。安全管理平臺要能夠真正得以運用,除了需要平臺及其引擎的開發者參與,還需要能夠寫出關聯規則的領域知識專家,需要負責系統實施前期規劃的業務領域專家、項目實施與運維團隊。當然,一定還需要用戶的參與。可見,安全管理平臺是一個很大的用例(Use Case)。