楊瑞增 ,陳天鷹 ,李玉盼
(1.華北計算機系統(tǒng)工程研究所,北京 100083;2.中國鐵道科學(xué)研究院 研究生院,北京 100081;3.北京交通大學(xué),北京 100044)
入侵檢測旨在使用已知的攻擊特征來識別未經(jīng)授權(quán)的訪問。入侵檢測的重點是發(fā)現(xiàn)多手段多層次的攻擊,這些攻擊可能會隨著時間的流逝借助復(fù)雜網(wǎng)絡(luò)中各個點而傳播[1]。特別是隨著數(shù)據(jù)集變得龐大,多手段多層次的攻擊檢測是一項具有挑戰(zhàn)性的任務(wù)。
2011年7月在太平洋西北國家實驗室曾經(jīng)發(fā)生過一次復(fù)雜的多手段網(wǎng)絡(luò)攻擊事件。盡管實驗室的IT安全邊界得到了很好的保護,但這些攻擊卻是在非常協(xié)調(diào)和長期的過程中完成的。首先是對組織的攻擊,其次是對共享關(guān)鍵資源的合作伙伴的攻擊。在攻擊的第一部分中,入侵者利用了面向公眾的Web服務(wù)器中的漏洞[2]。此外,黑客還秘密地從受攻擊的工作站中搜索了網(wǎng)絡(luò),這些工作站已作為長期協(xié)調(diào)攻擊的一部分而被預(yù)先鎖定。攻擊的第二部分始于魚叉式網(wǎng)絡(luò)釣魚,第二組黑客對組織的主要業(yè)務(wù)合作伙伴發(fā)起了網(wǎng)絡(luò)釣魚攻擊,并與之共享網(wǎng)絡(luò)資源。黑客能夠獲得特權(quán)賬戶并破壞由組織及其合作伙伴共享的根域控制器。當(dāng)入侵者試圖重新創(chuàng)建和分配特權(quán)時,警報最終被觸發(fā),以警告組織的網(wǎng)絡(luò)安全團隊[3]。
如上述示例所示,在這樣長時間的多源攻擊情形下,僅查看數(shù)據(jù)的一個維度是不夠的。其缺點在深度威脅檢測中暴露也很明顯。于是分布式入侵檢測系統(tǒng)的概念被引入,該系統(tǒng)提供了用于檢測針對組織及其合作伙伴的分布式網(wǎng)絡(luò)資源的協(xié)同攻擊的基礎(chǔ)結(jié)構(gòu)。鑒于多種攻擊源的復(fù)雜性以及針對這種多手段多層次的攻擊生成的大量數(shù)據(jù),本文提出了一種大型分布式IDS(BDIDS)形式的多級挖掘框架。在大多數(shù)組織中收集的重要數(shù)據(jù)之一是IDS日志數(shù)據(jù),例如Snort日志。本文使用IDS日志來篩選可能看上去良性的警報,但良性警報也可能會與其他警報一起指示嚴(yán)重警報[4]。
在本文建議的分布式環(huán)境中,每個子網(wǎng)都包含一個DIDS代理,該代理執(zhí)行本地入侵檢測并生成IDS日志數(shù)據(jù)。來自每個DIDS代理的日志數(shù)據(jù)被發(fā)送到控制中心,并在其中進行匯總分析。當(dāng)檢測到針對已知威脅的攻擊時,每個基于簽名的代理都會生成與警報關(guān)聯(lián)的優(yōu)先級,并針對其他“異?!毙袨樯筛摺⒅泻偷蛢?yōu)先級警報。對于高優(yōu)先級警報,可以清楚地被標(biāo)記,但是中低優(yōu)先級警報數(shù)據(jù)非常大,使得管理員難以執(zhí)行手動分析[5]。在具有高流量的大型網(wǎng)絡(luò)中,此數(shù)據(jù)可能更大。系統(tǒng)管理員通過查詢查看警報數(shù)據(jù),以檢測網(wǎng)絡(luò)中的可疑行為。但是,在這樣的審查中,作為協(xié)同攻擊的一部分的多個警報將被遺漏。
本文認為這是一類不平衡的學(xué)習(xí)問題。本文使用集成分類技術(shù)自動對大量匯總的警報數(shù)據(jù)進行分類,并向系統(tǒng)管理員警告潛在的協(xié)同攻擊。本文認為每個代理都提供一個訓(xùn)練集,該訓(xùn)練集是在通過聚類算法對數(shù)據(jù)進行預(yù)處理之后生成的。使用拆分比率(Split Ratio,SR)從每個聚類中選擇訓(xùn)練元組,以使訓(xùn)練集由相對于聚類質(zhì)心的近、遠或離群的元組組成。這種有針對性的選擇在樣本多樣性較高的情況下(如入侵檢測為少數(shù))產(chǎn)生了高度準(zhǔn)確的結(jié)果。在這項研究中,本文使用先進的大數(shù)據(jù)處理工具探索機器學(xué)習(xí)技術(shù)的優(yōu)勢。
本文使用HAMR處理分布式IDS傳感器內(nèi)部和傳感器之間的海量數(shù)據(jù)集,這是由HAMRTech(HAMR Analytic Technologies)開發(fā)的下一代內(nèi)存MapReduce引擎,無縫支持批處理和流分析。在執(zhí)行機器學(xué)習(xí)算法時,HAMR支持MapReduce編程模型,并通過Hadoop產(chǎn)生高速度數(shù)據(jù)處理[6]。
本節(jié)簡要概述了本文提出的用于挖掘多個IDS警報的方法,這些警報是從多個子網(wǎng)提交的,以預(yù)測多手段多層次的攻擊,如圖1所示。本架構(gòu)包括通過HAMR進行的大數(shù)據(jù)分析處理以及將駐留在HAMR上的分析引擎。
圖1 BDIDS控制中心分析
預(yù)處理后,對IDS日志數(shù)據(jù)進行聚類。數(shù)據(jù)采用已解析IDS警報的形式,其中每個警報都是優(yōu)先級為高、中或低的數(shù)據(jù)點。如圖1所示,該數(shù)據(jù)是從多個IDS來源收集的。本文架構(gòu)的前提是,與來自不同IDS的其他一些警報一起查看時,低優(yōu)先級警報可能表示協(xié)同攻擊。由于本文方法可以查看來自多個IDS的所有警報,因此有機會研究警報之間的相似性,然后判斷警報是真正的低優(yōu)先級還是潛在的高優(yōu)先級。最終目標(biāo)是在多個IDS之間折疊并重新分類相關(guān)警報,這些警報可能表明存在網(wǎng)絡(luò)攻擊。
所有警報都收集在控制子網(wǎng)中,并對其進行聚類。應(yīng)當(dāng)注意,傳統(tǒng)的聚類可以對數(shù)字屬性和分類屬性分別執(zhí)行[7]。根據(jù)該思想,如果低優(yōu)先級警報“l(fā)”與多個高優(yōu)先級警報“h”屬于同一群集 Ch,則IDS很有可能將警報“l(fā)”標(biāo)記為錯誤。這可以通過以下方式進一步驗證:(1)“l(fā)”與高優(yōu)先級群集 Ch的群集質(zhì)心的距離很小,這表明“l(fā)”確實靠近質(zhì)心,因此與Ch中的其他“h”警報高度相似。(2)群集 Ch的總體平方誤差(Sum of Squared Error,SSE)將指示群集的質(zhì)量,高SSE表示數(shù)據(jù)點在質(zhì)心周圍廣泛散布,而低SSE表示數(shù)據(jù)點在質(zhì)心周圍緊密編織。較低的SSE將更有效地證明本文聲稱“l(fā)”確實貼錯了標(biāo)簽。另外,可以執(zhí)行關(guān)聯(lián)以識別具有高關(guān)聯(lián)度的數(shù)據(jù)點,以增加檢測錯誤分類的警報的可能性,尤其是在低優(yōu)先級警報與高優(yōu)先級警報一致地關(guān)聯(lián)的情況下。
如果這些多次驗證或多數(shù)驗證都肯定錯誤地標(biāo)記了“l(fā)”,那么本文將為該警報提供一個新標(biāo)簽“p”,表示該警報肯定表示攻擊。其他未通過此測試的警報被標(biāo)記為“n”,表示它們是負數(shù)據(jù)點。本文將這些新標(biāo)簽用作分類集合,以便根據(jù)本文從多個IDS衍生的元知識,將任何新傳入的警報預(yù)測為“p”或“n”。
為了創(chuàng)建訓(xùn)練集,本文將使用數(shù)據(jù)集中點分布的知識。為此,本文使用聚類并提取接近質(zhì)心的點、遠離質(zhì)心的點和似乎離群的點[8]。這將使本文能夠很好地表示與聚類質(zhì)心和異常值非常相似的數(shù)據(jù)點(警報)。與其他數(shù)據(jù)點相比,高度相似的數(shù)據(jù)點模擬群集的平均行為,而離群點則具有極端行為。
本文提出的集合分類器通過創(chuàng)建實例的選擇性子集來最大化多樣性,這些實例子集彼此相似但與其他子集中的實例不同。每個子集都是從實例創(chuàng)建的,這些實例已經(jīng)足夠相似,可以通過k均值聚類放入相同的集群中。研究表明,總體的多樣性對類不平衡表現(xiàn)有積極影響。因此,本文旨在通過集合中的多個不重疊的訓(xùn)練集來實現(xiàn)高度多樣性。
本文創(chuàng)建兩個名為Near和Far的訓(xùn)練集。這些是根據(jù)拆分率定義的,拆分率顯示了應(yīng)進入“近”或“遠”訓(xùn)練集的每個群集中示例的百分比。例如,拆分比率(SR)值為40%,表明最接近群集中心的示例中有40%進入了近距離訓(xùn)練集中,其余60%進入了遠距離訓(xùn)練集中。接下來,使用每個訓(xùn)練集訓(xùn)練一個弱分類器。然后,每個受過訓(xùn)練的分類器用于對相同的不重疊測試集進行分類。分別針對每個分類器計算總體績效指標(biāo)。最后,使用投票系統(tǒng)將分類器的預(yù)測結(jié)合起來。根據(jù)每個分類器的整體表現(xiàn)對它們進行加權(quán),然后輸出預(yù)測的分類器標(biāo)簽。
模型開發(fā)和分類器都需要大數(shù)據(jù)解決方案,但是出于不同的原因。在模型開發(fā)階段,靜態(tài)數(shù)據(jù)集將包含在幾年內(nèi)從許多IDS代理收集的IDS警報數(shù)據(jù)中,并且可能在10 TB范圍內(nèi)。數(shù)據(jù)量與執(zhí)行模型訓(xùn)練所需的復(fù)雜算法相結(jié)合,就需要分布式的內(nèi)存解決方案,以便模型開發(fā)在合理的時間內(nèi)完成。但是在實時系統(tǒng)中,分布式IDS代理將向中央分析服務(wù)器發(fā)送警報。實時系統(tǒng)中收集處理警報數(shù)據(jù)的速度還需要分布式內(nèi)存解決方案,以使系統(tǒng)跟上峰值負載。
本文使用HAMR來處理分布式IDS傳感器之內(nèi)和之間的海量數(shù)據(jù)集。HAMR是由HAMR Analytic Technologies(HAMRTech)開發(fā)的下一代內(nèi)存MapReduce引擎,無縫支持批處理和流分析[9]。HAMR在執(zhí)行機器學(xué)習(xí)算法時支持熟悉的MapReduce編程模型。機器學(xué)習(xí)的兩個階段(模型訓(xùn)練和實時分類)與HAMR的組件庫無縫集成。在HAMR基準(zhǔn)測試報告的初步分析中,HAMR在各種分析算法中產(chǎn)生了多個加速順序。表1顯示了在各種分析中對類似大數(shù)據(jù)產(chǎn)品的加速。HAMR展示了使用樸素的貝葉斯訓(xùn)練算法可以高倍提高Hadoop和Mahout的速度,這表明它是當(dāng)前工作的有效可擴展解決方案。此外,HAMR證明其延遲是流行的實時流引擎Apache Storm的2.6倍。表1進一步顯示,HAMR的性能比Spark提高了7倍,并且能夠處理內(nèi)存中10倍以上的數(shù)據(jù)。
本文建議在批處理模式下使用HAMR來生成具有多個訓(xùn)練數(shù)據(jù)集的模型集合。該集合與HAMR實時引擎一起將被集成到BDIDS中,以對匯總的警報數(shù)據(jù)進行分類,從而向系統(tǒng)管理員提供匯總警報,以高精度地警告潛在的針對網(wǎng)絡(luò)資源的協(xié)同攻擊。
本次實驗采用4臺計算機搭建的集群,其中1個主節(jié)點3個從節(jié)點。試驗數(shù)據(jù)由HiBench Benchmark Suite 4.06版本生成。運行在HAMR上的PageRank算法代碼包括在HAMR0.4.1版本中。
Hadoop上運行PageRank基本思想是使用一個MapReduce過程作為PageRank的一個迭代。每次迭代中,Map輸入值為單位網(wǎng)頁,輸出值為當(dāng)前PageRank值。每次迭代過程分為兩個階段。階段一,每個網(wǎng)頁將當(dāng)前PR值與連接數(shù)的比值分配給每個指向其他網(wǎng)頁的鏈接,該過程由映射函數(shù)實現(xiàn);階段二,每個網(wǎng)頁統(tǒng)計指向自己鏈接攜帶的PR值,該聚合過程由Reduce函數(shù)實現(xiàn)。
表1 HAMR對各類算法加速概述
HAMR上運行PageRank基本思想:在初始化階段,從HDFS上讀取輸入文件;然后創(chuàng)建圖表Key-ValueStore,再初始化RanksKeyValueStore;接下來執(zhí)行迭代算法。迭代中,每個頁面的PR值為所有指向其鏈接的PR值之和。一旦所有頁面被遍歷,迭代更新保存PR值得KeyValueStore。為了保持HAMR的穩(wěn)定,固定迭代次數(shù)。
實驗輸入數(shù)據(jù)集為200萬~300萬網(wǎng)頁,輸入數(shù)據(jù)從1 GB~20 GB大小不等。每個數(shù)據(jù)集執(zhí)行5次迭代。
運行時間比較見圖2。隨著輸入數(shù)據(jù)增大,HAMR優(yōu)勢更加明顯。當(dāng)輸入數(shù)據(jù)集較小時,HAMR的內(nèi)存使用率保持穩(wěn)定;隨著數(shù)據(jù)集增大,HAMR內(nèi)存使用率明顯增高,總體而言內(nèi)存使用率高于Hadoop。HAMR在每個節(jié)點中具有比Hadoop高的吞吐量。當(dāng)輸入數(shù)據(jù)集變大時,HAMR展示出比Hadoop更好的自適應(yīng)特性,見圖3。
圖2 運行時間比較
圖3 包通過量
本文提出了一種大型分布式入侵檢測系統(tǒng),在此架構(gòu)中,利用了大數(shù)據(jù)處理引擎HAMR,并提出了一種新穎的集成方法來識別多手段多層次的攻擊。本文計劃在公共數(shù)據(jù)集上進行廣泛的實驗,并就提速和結(jié)果質(zhì)量,針對現(xiàn)有的大數(shù)據(jù)解決方案提供基準(zhǔn)。