基於態勢感知的網路安全事件預測方法分析

機器學習應用在安全領域,尤其是各種攻擊檢測(對外的入侵檢測與對內的內部威脅檢測)中,相信很多人早已習以為常。當前機器學習應用的焦點在於能夠及時檢測出系統/組織中發生的攻擊威脅,從而縮短攻擊發生到應急響應的時間差。

但是即便是最理想的威脅檢測系統,當發現威脅報警時,威脅大多已經發生,對系統/組織的危害已經造成,因此檢測永遠只能作為一種相對被動的安全機制。因此,學界和業界開始將目光投向攻擊威脅的事先防禦,即預測機制的研究。

今天我們給大家介紹一個基於安全態勢感知技術實現的網路安全事件預測方法,相信可以給感興趣的廣大攻城獅、程式猿們帶來啟發。

0×00 Outline

介紹(Introduction)資料收集(Data Collection)資料預處理(Data Pre-processing)特徵集(Feature Set)訓練與測試(Training and Test Procedure)事件預測(Incident Prediction)小結(Summary)參考文獻(Reference)

0×01 介紹

最近幾年報道的網路安全事件對於社會和經濟的影響越來越大,比如轟動全球的JPMorgan Chase Hack事件,就設計到76,000,000個普通家庭,而其在搜尋引擎中可以找到近120,000條相關條目,如圖1: 

類似的安全事件還有很多,其共同點都是造成的社會經濟影響已經遠不是之前侷限在系統/組織內部的微觀Hack攻擊。現有的安全研究集中在使用基於機器學習的多種主動主動防禦機制來保護系統/組織免收這類威脅。然而由於現有主動防禦機制的本質依舊是檢測存在的攻擊威脅,因此即便報警採取應急措施,實際的損失也已經不可避免。研究事先防禦的預測方法勢在必行。

我們今天所介紹的“預測”方法,單純依靠外部公開可得的系統/組織資訊,對系統可能發生的網路安全事件進行預判,從而作為原有檢測機制的有益補充,提高系統防範網路威脅攻擊的能力。

在繼續我們今天的討論之前,先來簡單介紹下安全態勢的背景。

安全態勢簡要介紹

安全態勢的概念來自於態勢感知,最早源於航天飛行的人因研究,之後在軍事、核反應控制、空中交通監管等多個領域被廣泛研究,原因在於在動態複雜的環境中,決策者需要藉助態勢感知的工具顯示當前環境的連續變化情況,才能準確地做出決策。網路態勢指的是由各種網路裝置執行狀況、網路行為以及使用者行為等因素所構成的整個網路當前狀態和變化趨勢。網路態勢感知則是在大規模網路環境中,對能夠引起網路態勢發生變化的安全要素進行獲取、理解、顯示以及預測未來的趨勢。

一般的網路安全態勢分為三個層次,如圖2:

0×02 資料收集

作為一種實際可行的態勢評估、預測方法,我們今天的方法所使用的所有資料均來自公開可得的資料來源,這些資料來源主要分為:

1. 安全態勢資料(Security Posture Data)

網路安全態勢可以使用許多測量方法,這裡採用兩種,一種是測量網路的誤配置或與標準/建議配置的差異;另一種則是測量來自於該網路的惡意行為程度。具體地:

1.1 管理失當的資料表現(Mismanagement Symptoms)

此類資料主要表現為以下五類資料,分別來自於文獻[1]中的資料特徵的一個子集:

>Open Recurisive Resolvers:錯誤配置的DNS伺服器很容易被用於*DNS放大*攻擊;這部分資料來源於一個開源專案Open Resovler Project [2],該專案自動搜尋、記錄配置不當的DNS伺服器資訊;
>DNS Source Port Randomization:RFC-5452建議出於安全考慮,DNS源埠和查詢ID都應當隨機化,然而實際中很多DNS沒有遵循這一建議,這非常容易遭受*快取中毒*攻擊,這部分資料同樣來自於文獻[1];
>BGP Misconfiguration:BGP配置錯誤或重新配置都會造成不必要的路由協議更新和出現生存期很短的臨時路由表項,這部分資料也來自文獻[1];
>Untrusted HTTPS Certificates:X509證書用於實現TLS協議中d客戶端認證,但是很多沒有正確配置。通過網路掃描獲得了2013年3月22日的10,300,000臺主機配置錯誤[1];
>Open SMTP Mail Relays:這常被用來傳送垃圾郵件,論文中使用的是2013年7月23日收集到的22,284個開放郵件中繼伺服器資訊[1];

1.2 惡意行為資料(Malicious Activity Data)

惡意行為資料主要指的是在外部檢測觀察到的,源自於某組織內部的惡意行為,這裡我們只關注三種惡意行為,分別是Spam、Phishing以及Scan行為。

這部分資料主要來自以下資料庫

>SPAM:CBL、SBL、SpamCop、WPBL和UCEPROTECT;
>Phishing:SURBL、PhishTank和hpHosts;
>Scanning:Darknet scanners list、Dshield和OpenBL;

2. 安全事件資料

安全事件資料主要來自於三大公開的網路安全資料庫,分別是:

>VERIS Commnunity Database(VCDB)[3]; 
>Hackmageddon[4];
>The Web Hacing Incidents Database(WHID)[5];

下面用圖3來簡單展示下VCDB資料庫中的安全事件示例:

 

為了實驗基於安全態勢感知的網路安全事件預測方法,在收集安全事件資料時,事件發生事件應晚於收集的網路安全態勢資料,如圖4,其中的態勢資料(前兩類)用於訓練,而最後的事件資料則用於預測測試。

在事件集中,選擇了700個安全事件,排除掉物理攻擊、偷竊、內部攻擊行為以及目標不明的事件報告,如圖5:

 

0×03 資料預處理

在收集到安全態勢資料之後,實際使用前一般都需要進行預處理。這裡主要的預處理工作是將安全態勢資料與安全事件資料結合,即對映(Mapping Process)與聚合(Aggregation Process)。

我們所收集到的安全態勢資料與安全事件資料結合最大的問題在於:安全態勢資料是基於主機IP層次的,而安全事件資料則是基於組織/企業層次的,那麼如何利用基於IP的安全態勢資料來預測基於組織/企業的安全事件呢?

一種可行的方法是:通過確定一個Sample IP作為代表IP來確定本次攻擊目標的實際所有者(組織/企業),再通過查詢公開的RIR資料庫獲得與攻擊目標相關的所有IP地址塊,然後這些IP地址塊作為一個聚合單元與安全態勢資料進行結合。

RIR(Reginal Internet Registry)負責將IP地址塊分配給ISP的多家國際組織之一,全球五大RIR分別是RIPE(歐洲)、LACNIC、ARIN(美國)、AFRINIC以及APNIC(亞太地區)。Sample IP的思想是用一個代表IP反向查詢RIR獲取相關的所有IP塊,從而得到一個組織/企業對應的IP集合資訊。即:

Attack Target's Sample IP --->RIR--->Owner ID--->IP Block with the Owner--->Corporate IP Set

3.1 Sample IP提取演算法

為了說明如何獲得一次攻擊事件中的目標Sample IP,我們簡單地描述演算法:

獲取一個安全事件報告;從安全報告中提取出與事件相關的公司的網站;如果該網站是此次安全事件的起始點/入侵點,則將該網站的IP地址作為Sample
IP,如文獻[6]中對曼德菲爾城的官網攻擊,官網就是入侵點;如果該網站不是入侵點,但是卻可以代表攻擊目標,即該網站的所有者ID正是攻擊事件的受害方,則也可以將該網站的IP作為本次事件的Sample
IP;其它情況的Sample
IP暫不考慮; Sample
IP必須根絕安全事件報告人工分析確定; 3.2 聚合分析

在獲得了攻擊目標的Sample IP後,接下來就要查詢RIR得到相關的IP塊了,具體地:

通過Sample IP查詢RIR資料庫,得知其所有者ID,然後將RIR資料庫中屬於該ID的所有IP地址作為一個聚合單元;全域性聚合:將沒有遭受攻擊的組織也處理成聚合單元的模式,所得受害方與非受害方的聚合單元的全集(攻擊目標與非目標都要分析);

聚合分析:

對於安全態勢資料中的管理不善的資料表現,計算一個聚合單元中命中的IP地址比例(fraction);

對於安全態勢資料中的惡意行為資料,計算聚合單元中被列入攻擊黑名單中IP地址的個數;

對受害方和非受害方均執行上述分析;

0×04 特徵集

我們從所得到的處理過的資料中,分類成兩類資料用於特徵提取,一類是主資料集(Primary Set),用於表示原始資料;另一類是次資料集(Secondary Set),用於表示從原始資料中分析得到的統計資料。

實驗共用到258個特徵屬性,其中隸屬於主資料集180個特徵屬性,隸屬於次資料集72個特徵屬性。

4.1 主資料集特徵(Primary Features) Mismanagement Features:來源於前述的管理不善的五種資料表現,分別作為了特徵。特徵計算方法是計算配置不當的IP地址數量/聚合單元的IP地址數量,取值在[0,1]之間; Malicious activity
time series:每個組織(聚合單元)收集三種惡意行為的時間序列,分別是spam、phish以及scan,其中第i個組織的三種惡意行為的時間特徵如圖6,且資料收集週期為60天,每個組織共180個記錄特徵,聚合單元的規模Size也作為一個特徵;且資料收集週期為60天,每個組織共180個記錄特徵,聚合單元的規模Size也作為一個特徵;

為了便於理解,我們給出三個組織中惡意行為時間序列的例子,如圖7,其中Y軸表示60天的週期中,每一天出現在所有Spam黑名單上的唯一IP地址數量:

 

4.2 次資料集特徵(Secondary Features)

從原始資料中分析獲得的統計特徵作為次資料集特徵,這裡引入了Region,概念,用於表示是圖形中的特定區域,低於Normal的區域為正常(Good),高於Normaal的區域為異常(Bad),如圖8:

 

其中的紅色實線表示Normal準線,高於紅實線的區域為Bad,低的則是Good區域,持續性(Persistency)用於表示保持在同一個區域中的時間。

每個Region具備四個基本的統計特徵:

歸一化平均幅度(normalized average magnitude) 非歸一化平均幅度;處於該區域的時間;進入該區域的頻率;一個時間序列具有good、bad、normal三個區域,因此一共有12個統計特徵;同時每個聚合單元由三條事件序列(三種惡意行為),因此有36個統計特性,記為Fi;根據資料收集時間(60天和14天)又分為Recent-60和Recent-14兩大類,總共72個統計特徵;

歸一與非歸一幅度的例子如圖9:

 

0×05 訓練與測試

資料處理完畢,提取到所需的特徵集後,接下來使用隨機森林構建分類器。

5.1 訓練集構建

訓練部分採用的資料集由兩個部分組成,分別是Group(1)和Group(0); 安全事件中攻擊目標的特徵資料被作為Group(1),即安全事件發生; 從非攻擊目標中隨機抽取目標的特徵資料作為Group(0),即安全事件未發生;

Group(1)特徵集的抽取有著不同的比例,如50:50,意味著一半的資料用於訓練,另一半用於測試,也可以是70:30;

Group(0)選取資料的過程會重複多次,每次都會通過RF學習獲得一個分類器,最終實驗預測結果是所有這些分類器預測的平均值;

5.2 隨機森林分類器(Randome Forest Classifier)

Randome Forest,稱作隨機森林演算法,是一種由多棵決策樹組合而成的聯合預測模型,天然可以作為快速有效的多分類模型;

簡要介紹學習演算法:

1. 用N表示訓練例子的個數,M表示變數的數目; 2. 選擇一個數m,用來決定在一個node上做決定時使用多少個變數,m選擇那些不包含在Group(1)中的安全事件資料加入到測試集,同時隨機抽取非攻擊目標的資料一起構建實驗測試集。實驗中根據預測的時間長短分短期預測(Short-term
Forecasting)與長期預測(Long-term Forecasting),如圖10:

 

因為要預測安全事件的發生,因此採用的訓練集必須在事件發生前的某個階段。設定每個階段為一個月(30天),一般對於短期預測而言,使用第一次安全事件發生的該階段即可(30天),對於長期預測而言,訓練集應當從測試集中安全時間第一次發生的階段之前開始。

0×06 事件預測

實驗預測結果如下,圖11中展示了不同安全事件集中的事件預測的TP與FP的關係:

 

圖12給出了上圖中效果最佳的(TP, FP)值,如圖12:

 

圖13給出了同一個事件集VCDB上採用50-50/70-30的訓練集/測試集比例效果對比,以及長短期預測的效果對比:

 

0×07 小結

我們今天介紹了一種基於安全態勢的網路安全事件預測方法,其目標是能夠僅僅基於組織網路外部的可觀測資訊,對該組織中可能發生的網路安全事件進行預測的預警系統

預測中使用了258個目標組織/企業網路的外部可測量特徵屬性,一類是管理不善的特徵,如配置錯誤的DNS或BGP,另一類則是惡意行為時間序列,如垃圾郵件、網路釣魚,以及發自組織內部的掃描行為。

通過使用這些特性樹形,建立隨機森林分類器,實驗針對約1000個事件訓練測試了預測方法的準確性,最佳可以達到90%的正確檢測率,10%的誤報率。 

原文章:http://www.2cto.com/Article/201603/495657.html