【安全告警資料分析之道:一】資料透視篇

綠盟科技發表於2021-05-31

日前,在企業安全運營當中,SIEM的熱潮已經逐漸淡去,很多企業已經逐漸成立了安全運營中心(SOC),收集到了海量安全資料。但是如何利用這些資料,如何進行分析等問題並沒有很好地解決。資料往往只是做簡單儲存,資料價值未得到體現。其實在網路安全領域最重要的還是“資料”,做攻擊離不開各種資產資料、漏洞資料,做防禦離不開資產資料、裝置告警資料,對各種攻擊活動的分析更是離不開DNS、樣本、使用者行為等資料,《安全告警資料分析之道》為系列文章,旨在對企業網路側安全告警資料進行深入分析,挖掘資料的潛在價值,助力企業日常安全運營。

實際上為了分析安全告警,近年來一些公司以資料分析、人工智慧的方法來分析這些資料,而分析、理解資料,進而對資料進行標記往往是使用人工智慧演算法等高階演算法的必備條件,但這一前置過程往往被忽略。本文為系列文章的首篇,淺談對安全告警資料分析的思考,並且以一次實際網路攻防演習資料為例,介紹對告警資料進行標記的方法,分析並總結可能的研究點和資料的潛在價值。

一、概述

隨著現代企業網路結構的複雜化,如複雜的網路分割槽、企業上雲、新型網路裝置等,安全裝置的告警量與日劇增。雖然SOC團隊一般會對這些告警資料進行儲存,但是暴增的資料量與合理分析方法的缺失進一步加重了SOC團隊的壓力。根據實際經驗,一般來說,一個業務稍微複雜一點的大中型企業,每天的告警資料量會達到百萬量級。在工業界,這類資料基本組成少有暴露,資料的整體輪廓往往不得而知,而處理方法往往太過抽象,如使用UEBA的方法,目前筆者也尚未接觸到對此類資料進行完整分析的方法;另一方面,在學術領域,對IDS的資料研究從本世紀初就開始了,然而那時候的網路結構比較簡單、攻擊手法較為單一,近些年雖然也有零星的研究成果出現,但依然使用20年前的資料集,借鑑意義不大。那麼安全告警分析之路該何去何從?安全告警資料到底有何價值?本文將給出見解。

二、安全告警分析的能與不能

如圖1所示,企業一般會在內網和企業網路出口部署安全裝置,這些安全裝置會對流經的網路流量進行威脅分析。而主流的安全裝置的檢測方式還是基於規則的檢測,並且對於加密流量並沒有什麼好方法,最多也就是能記錄一些加密通訊的日誌,如SSL協商日誌。總結來說基於網路側的安全告警資料分析無法解決以下問題:

1、 不經過安全裝置的流量。實際上這種場景很常見,企業往往只會在重要資產前或者大的區域前部署安全裝置,而且攻擊者也有各種各樣的方式讓流量不經過安全裝置;

2、 不在規則中的攻擊行為。大型網路演習中,攻擊者往往會掏出珍藏的0-day漏洞進行攻擊,這種攻擊不會在網路側產生告警,往往需要在主機上做進一步的檢測;

3、 加密流量。基於DPI的安全裝置無法解密加密流量,只能設法(如,拿到目標網站的證書)解密後再處理。

【安全告警資料分析之道:一】資料透視篇

圖1 安全裝置部署方式


為了分析海量安全告警資料,以比較成熟的安全運營人員為例,他們往往會採取如下方式進行資料處理:

1、   只關注重要資產。特定目標的告警量往往不多,可以進行分析;

2、   只關注特定型別的告警。有經驗的運營人員知道特定安全產品的置信度比較高的告警,他們往往只會關注置信度比較高、危害較大的告警型別。

雖然這種方式能夠對告警做一個粗略的排序,挑選出高威脅的告警進行分析,但是顯然這種方法是不完善的,且不說有時候需要進行多個告警的聯合分析,不得不關注其餘告警,就算是隻關注特定的告警,還是有大量的攻擊行為在剩餘告警中,不能棄之不顧。

那麼分析安全告警能分析出什麼來呢?我們知道,不僅是攻擊流量,正常流量也會被安全裝置看到,所謂的“高誤報率”就是由這部分流量導致的,這部分流量同樣可以被利用起來,用於做資產梳理,梳理內網環境,具體來說,安全告警分析能做到:

1、   資產梳理。我們知道大型企業資產往往很混亂,人工很難梳理清楚,這在日常安全運營中也是一大痛點。但是實際上,透過告警資料可以對IP做部分資產梳理工作,不同型別的資產對應的告警差異性往往較大,可以進行分析歸類;

2、   灰色行為識別。以漏洞掃描為例,例行的漏洞掃描是正常操作,而沒有報備的掃描行為則是異常操作,對這種灰色行為的跟蹤也是發現攻擊的有效途徑;

3、   攻擊行為識別。安全裝置的初衷。

三、 安全告警資料分析

本小節將對一次網路攻防演習資料做簡單分析,分析這些資料的組成以及可能的處置方法,闡述資料價值。

3.1 資料基本組成

本文收集了某中型企業的一次網路攻防演習(共計5天)的網路側安全告警資料,基本的資料統計資訊如圖2所示,可以看到在這5天之內,每天收集到的告警資料多達上千萬條,五天總計5000多萬條告警。其中,認證類、目錄遍歷類和檔案傳輸類的告警為數量佔比前三的告警型別,三者之和可佔總告警量的70%以上。除了少量的真實攻擊,絕大部分的告警都是無害的,讓我們抽絲剝繭,看看這些“奇葩”資料的真面目!

【安全告警資料分析之道:一】資料透視篇

圖2 安全告警資料數量和型別統計


3.2 資料分析步驟

1)提取有用欄位

由於原始資料包含很多無用資訊,我們需要對資料的可用欄位做一定的篩選,最終,對於每條告警我們挑選出如下9個有用欄位:

timestamp:告警產生時間

sip:源IP

dip:目的IP

device_ip: 產生此條告警的探針IP

dport:目的埠

log_message:告警型別

payload:告警載荷(IP層以上資料)

q_body:Web訪問的請求體

r_body:Web請求的響應體

其中,若告警是由Web請求觸發的,則有q_body欄位,否則只有payload欄位,另外,可能會因為裝置原因導致部分欄位不完整。

特別說明,幾乎所有的對IDS告警分析的學術文章都不會將payload等資料包載荷資訊納入分析範圍,而在日常運營中這部分資訊也是判斷攻擊的重要依據,不能捨棄。故保留payload、q_body欄位,而r_body是判斷攻擊是否成功的重要依據,同樣需要考慮;另一方面,由於不同探針產生的攻擊告警(如外網、內網)的分佈會呈現一定差異,為了區分,device_ip欄位同樣需要保留。

2)資料去重

我們知道一個資料包從企業外部到內部的傳輸過程中,往往會經過多個檢測裝置,這樣就會產生重複告警,這部分的告警應該刪除。理想情況下,同一時刻,同一攻擊者對同一目標的攻擊行為應該只有一條告警。為了達到這個目標我們依據(timestamp,sip,dip,dport ,payload)對原始告警進行去重。當然這樣也有例外情況,如:報文延時過大,timestamp不一致,裝置問題,對於不同的payload截斷後payload相同等等,不過這些情況基本可以忽略。

3)資料分析

一般來說,除去某些特別不準的告警型別之外,log_message欄位可以比較準確地反映出當前資料包的攻擊型別。我們對告警型別做了分佈分析,如圖3左圖所示,橫座標為log_message編號,縱座標為該告警型別發生的次數,可以看到告警型別體現出明顯的長尾分佈特性,如圖3右圖所示。我們按照冪律分佈的統計方法,橫座標為告警發生次數的對數,縱座標為這類告警的數量,以圖中紅框標記的點(0,58)為例,說明在整個資料集中,只有1條記錄的告警型別有58種。這類資料分佈上的分析,有助於後續高階演算法模型的選擇。

【安全告警資料分析之道:一】資料透視篇

圖3 以告警型別為角度的統計分佈圖


透過以上資料,我們可以看到,從告警型別(log_message)的維度,告警呈現出明顯的長尾分佈特性。其實不光是告警型別這一屬性,在源IP、目的IP等多個屬性上,如圖4,圖5所示,分別以sip、dip為維度進行統計,橫縱座標的含義與圖3類似,告警分佈均展現出了類似的特性。在多種維度上,告警均展現出明顯長尾分佈特性,這一特性不僅可以為選擇高階演算法模型(如word2vec演算法)提供有效資訊,還很直觀地告訴我們:告警分佈具有一定的規律性!而告警的這種規律性和流量的自相似性是分不開的,對於這種現象的成因我們在本文不做深入討論,我們僅需要利用這種特性幫我們進行下一步告警分析:由於攻擊流量或者說異常流量本身佔比極小,告警的這種規律性是長期存在的,過濾這些佔絕大多數的規律性的告警,剩下的就是重要度較高的告警了。

【安全告警資料分析之道:一】資料透視篇

圖4 以源IP為角度的統計分佈圖

【安全告警資料分析之道:一】資料透視篇

圖5 以目的IP為角度的統計分佈圖


4)資料分類

整體上我們可以按照:數量大到數量小,重要程度低到重要程度高的原則對告警進行過濾、分類,儘量首先將數量大、重要度低的正常告警過濾掉,我們以資料集中觸發告警量最多的源IP:10.5.237.232為例,如圖6左圖所示,該IP與大量目的IP均有告警產生.圖6右圖表明,觸發告警型別最多的是代理連線,並且呈現明顯的規律性,對外網的代理連線在一般處理過程中重要度較低,因此10.5.237.232在此期間內觸發的“HTTP協議CONNECT隧道功能(http proxy)連線訪問”型別的告警分類為正常告警(正常業務導致),這一條過濾規則即可過濾600多萬條告警,約13%的告警量。

【安全告警資料分析之道:一】資料透視篇

圖6 正常告警示例(10.5.237.232觸發)


需要特別注意的是,我們需要以一種較細的粒度來對告警進行分類,即結合多種維度對告警進行分類篩選,舉個例子:IP地址A經常性的觸發告警,我們不能就直接忽略A所觸發的告警,而應該關注其具體的內容,什麼型別的告警是常見的,什麼型別的告警是不常見的。更具體的,如圖7上半部分所示,10.66.240.216整體上觸發的告警數量比較均勻,乍看沒有異常.下半部分表明,10.66.240.216在短時間內對10.245.38.183發起了大量的掃描,而這種掃描行為是突發的、不常規的,對於企業內網來說,存在較大隱患,但是由於其隱藏於源IP觸發的大量告警之中,在上半部分的圖中很難被發現。

【安全告警資料分析之道:一】資料透視篇

圖7 異常告警示例(10.66.240.216觸發)


總結來說,我們需要以數量大到數量小,重要程度低到重要程度高的原則找出大部分正常告警,在執行過程中,以一種較細的粒度進行歸併統計(如,[sip,dip]的雙重維度)。

5)分析結果

透過自動化結合人工的方法,我們得以對大部分的告警做出分析結果,並打上標籤。總結來說,告警資料可以分為4大類:

1.       正常告警。該部分由正常行為組成,通常都是由形形色色的正常業務導致,包含正常的漏洞掃描任務等;

2.       低危告警。網際網路上存在大量的蠕蟲、殭屍網路,這些肉雞會進行大量常態化的攻擊行為,這些攻擊往往都不會成功,可以認定為低危告警,做IP封禁操作;

3.       灰色行為。該部分告警展現出一定的威脅性,需要做出一定的處置,如:未報備的內網掃描行為、內網蠕蟲傳播行為等等,需要聯絡相應的資產負責人做進一步核查;

4.       高危告警。正在發生或者已經發生的入侵行為。

這4類告警資料量依次遞減,重要程度依次增加。

四、總結

本文從宏觀上討論了告警分析所能帶來的價值,以一次真實的網路攻防演習資料為例,在對資料簡單統計分析的基礎上,探討了對這類資料進行分類分析的大致方向,並對資料進行了簡單的歸類。本文為系列文章的首篇,討論進行安全告警資料分析的整體方向,接下來的文章將進一步介紹我們對資料打標籤的具體演算法,敬請期待。

相關文章