在大型企業生產環境中,實現安全事件的處理和攻擊行為的分析,需要盡可能多地收集各種安全設備的安全事件數據,例如:網絡防火墻、WAF、服務器防護、VPN,、流量監控、APT檢測、IDS、IPS、蜜罐等。然而,過多的安全事件日志(特定場景下,如每天40萬條日志),將無法人工地進行分析和處理,如何從中過濾出真正的滲透攻擊者,供安全運維人員和響應人員進行處理,是現有所有類SIEM設備所共同面臨的挑戰。
在大型組織內部部署了多種多數量不同廠商安全設備的環境中存在如下三個具體問題:
1、由于安全廠商設備能力問題及日志規范問題會出現一臺安全設備發出大量同一攻事件相同時間或者事件間隔很小的大量日志,人工無法判斷這些日志是同一個攻擊者的重復行為還是安全設備的重復告警.
2、各家安全設備廠商對同一攻擊事件都會告警,SIEM都收到類似日志,無法區分這個是一個IP的一個動作還是重復動作。
3、各家安全廠商的設備都會存在誤報,由于系統中的安全設備量表大,因此誤報的日志數量也很多,SIEM系統或者人工分析都無法實時去過濾掉這些誤報。
因此無法通過簡單通過攻擊日志的數量來篩選找出真實的滲透攻擊。
解決思路
在無自動化工具的支持下,人工的過濾事件數據,基本是不可能實現的;現有SIEM類系統解決了多元異構數據的歸一化問題,即將各種安全設備和主機服務器的日志統一收集,并按照統一標準對不同安全廠商的安全事件日志進行標準化,如下圖所示:

標準化完成之后,根據安全業務模型對日志進行簡單的關聯形成告警,然后在系統中進行查詢分析和處理。在實際部署環境中,這種簡單關聯形成的告警將會產生很多,結果造成告警退化為了安全事件,繼而又再次無法有效處理。
為了真正實現有效告警的生成與處理,簡單的關聯模型是無法完成的;因此模仿安全運維分析人員解決安全問題的思路和方法,采用多層網絡時序關聯模型,應用多層網絡技術,推理出高層結論作為有效預警輸出,能夠實質上提升安全事件包括滲透攻擊的預警能力。可以解決如下的問題:
1、我們發現某些情況下,某安全設備一直對同一IP產生重復的5K條告警日志,告警內容是該IP使用某2013年的軟件漏洞攻擊某服務器,實際上該服務器并未使用該軟件。如果單純使用數量統計,會發現大量的此類重復(誤報)事件,但這IP跟攻擊無關。多層網絡時序關聯模型可以有效的過濾掉此類重復誤報事件。
2、通過對安全日志的分析發現,每天的日志中會有約上千的IP對內網嘗試了攻擊,比如某外網IP嘗試了對服務器進行了1次SQL注入,在3家不同廠商的設備中發現了告警,觀察日志后發現此IP確實進行了1次注入嘗試( 使用‘and 1=1),但是后面再無此IP日志,因此雖然此IP進行了SQL注入,但我們不能因此就對此IP對運維人員告警,因為他并無后續的持續信息偵查和其他滲透手段。
實現設想
在大數據環境下,實現多層網絡推理引擎,將結合復雜事件處理(Complex Event Processing,CEP)和行為模型識別引擎(Attacking Recognition Modeling Engine,ARME)技術結合,前者處理實時發生的事件信息,提供必要的事件聚合和變換等,后者實現復雜行為匹配業務邏輯。
ARME中使用的模型用JSON格式的領域語言DSL(Domain Specific Language)編寫,支持值比較、邏輯運算、集合運算、時間窗口和序關系測定等復雜操作;ARME把模型編譯為內部表達形式,編譯過程中將處理邏輯、關聯關系和事件觸發都聯系在一起. 當外部事件進入ARME時,將選擇性執行事件相關聯的一個或多個模型;大致上模型執行階段分為如下三個階段:邏輯判定,確定模型是否符合條件引起后續操作;模型鏈反應,在某一條模型觸發后,是否繼續執行模型依賴鏈中下一條模型;事件觸發,是否向模型引擎之外輸出事件消息。
為了處理重復日志聚合及有效攻擊篩選問題, MLS-CEP-ARME實現了多層網絡架構時間窗口時序處理引擎,通過多層網絡告警處理模型讓MLS-CEP-ARME實現對海量日志中攻擊行為的篩選,具體處理步驟:
第一級處理:
1、對日志同源同目的同手段日志簡單時間聚合,在某類型日志數量達到閾值后生成一級聚合事件并啟動時間窗口,在窗口未關閉前的時間內所有相同條件日志也繼續聚合到同一事件中。
2、對符合一定攻擊步驟的日志做時序聚合產生一級時序聚合事件。
第二、三級處理:
模型引擎會將上一級中生成的簡聚合事件再當作普通事件發往所有對此事件感興趣的模型對象,對于每一條模型對象來說聚合事件和日志事件是同一類對象.第二,三級聚合模型會繼續根據模型對日志和聚合事件進行行為含義聚并生成新的弱行為含義告警。
第四級網絡結構繼續按模型序列及時間窗口繼續生成高行為含義告警,此時的告警不僅會聚合上一級的事件且會根據模型需要聚合任意層級的事件,最終輸出我們需要找到的滲透攻擊IP告警,如下圖所示:

模型是對滲透測試步驟及方法的模擬,可以通過安全人員依靠已知經驗完成,也可以通過對已經的滲透攻擊進行機器學習完成,因此多層網絡時序聚合模型最終找出跟滲透測試人員一樣行動步驟的日志,如果某IP按一定時間順序嘗試了某些滲透步驟,那我們判定此IP為滲透攻擊IP,普通的誤報或者無意的訪問嘗試觸發的安全設備日志,或者強度不夠的滲透掃描,從數量,步驟時序,目標特點等上面都無法滿足模型,即普通的單一的POC掃描及安全設備誤報最多產生第一二級聚合事件,因為行為不存在步驟性,即便數量非常多也只會生成一條一級聚合并不會產生第4級告警。實際測試效果-預警滲透攻擊
(由于需要對用戶信息保密已抹去真實信息)
用戶實際網絡中部署MLS-CEP-ARME后,實際在1天的40W日志中僅產生2個4級告警,百條級2,3級事件,2K條1級聚合事件,選擇其中一條威脅告警進行分析,可以看到此攻擊IP的4級告警使用了總共64條日志:

這個4級告警由4條3級事件聚合,其中每條3級聚合又由N多低級事件聚合而成。由于未對該IP進行封堵。所以我們繼續分析該IP流量后發現,該IP成功上傳文件名為tett.asp的一句話后門,如下圖:

可以看到MLS-CEP-ARME告警的IP確實是攻擊者。
總結
經過一段時間的測試,發現MLS-CEP-ARME不存在誤報,實際上觸發4級告警的IP非常少。
但是存在漏報的情況,說明安全設備日志處理也只是在某些特定場景下有效,一但遇到:
1、攻擊者使用新漏洞安全設備無法告警
2、其他情況下滲透測試者能在少步驟內成功滲透進入系統
3、其他未知的告警非常少的情況下,此日志處理模型也不會生效。
同時還發現由于現在使用的全部安全設備日志,會遇到如下問題:
1、由于只有安全設備的日志,因此丟失了很多重要信息。
2、沒有縱深防御,一旦攻擊者突破邊界安全設備,SIEM就不會再給出告警提示。
3、安全設備對攻擊的告警類型不準確導致攻擊識別模型對告警識別錯誤。
下一步準備進一步研究如何MLS-CEP-ARME和設備(非安全設備)日志來檢測已經成功進入到內網的威脅。
|