鄭俊華,武娟紅
(山西職業(yè)技術學院,山西 太原 030006)
隨著信息化的發(fā)展,信息安全問題已經(jīng)引起了人們的關注。安全漏洞是人們在軟件、硬件等具體工作產(chǎn)生的錯誤,黑客等不法分子能夠通過這些漏洞在未授權的情況下破壞系統(tǒng),從而對信息的安全產(chǎn)生了很大的威脅[1-5]。漏洞檢測就是利用一定的方法在漏洞被不法分子利用之前能夠發(fā)現(xiàn)漏洞并進行修補。目前,按照檢測方法的不同可以將檢測方法分為:靜態(tài)檢測方法、動態(tài)檢測方法、混合檢測方法。其中靜態(tài)檢測方法具有方便快捷的優(yōu)點,但存在檢測不全面,有較高的誤報率和漏報率。動態(tài)檢測方法具有保密性強的優(yōu)點,但其無法檢測未發(fā)生攻擊的漏洞?;旌蠙z測相對于靜態(tài)和動態(tài)檢測技術具有較高的檢測準確度,但是需要人工確認是否存在漏洞,檢測效率較低[6,7]。當前網(wǎng)絡與信息安全領域,正在面臨多種挑戰(zhàn)。我們已經(jīng)切實地迎來了一個海量數(shù)據(jù)的時代,急劇膨脹的網(wǎng)絡流量數(shù)據(jù),各種類型的安全數(shù)據(jù)越來越多,傳統(tǒng)的安全分析能力越來越力不從心。隨著數(shù)據(jù)量越來越大,數(shù)據(jù)種類越來越多,處理速度越來越快,傳統(tǒng)的數(shù)據(jù)安全分析技術已經(jīng)不能適應現(xiàn)在的網(wǎng)絡環(huán)境,大數(shù)據(jù)分析技術,在運算成本、執(zhí)行力度、存儲容量等各個方面具有絕對的優(yōu)勢,應用大數(shù)據(jù)分析技術已經(jīng)成為國內外研究的熱點之一[8]。
本文提出了一種基于大數(shù)據(jù)分析的漏洞檢測技術,通過對網(wǎng)絡的實時數(shù)據(jù)流進行分析,并利用漏洞的攻擊特征從而提高漏洞檢測效率。
傳統(tǒng)的漏洞檢測技術,存在很強的盲目性,難以獲取所有測試接口,且針對如今網(wǎng)絡中海量數(shù)據(jù)的情況,要提高安全設備的檢測能力,勢必要增加足夠數(shù)量或容量的檢測設備,增加網(wǎng)絡部署的成本。為解決傳統(tǒng)漏洞檢測技術中存在的問題,設計了一個新的基于大數(shù)據(jù)分析的漏洞檢測方案,如圖1所示。主要包括特征提取、大數(shù)據(jù)分析平臺與設備處理模塊。
圖1 基于大數(shù)據(jù)分析的漏洞檢測方案
攻擊特征是網(wǎng)絡攻擊數(shù)據(jù)的一些特殊字符,能夠準確地描述一種攻擊的形式。針對于每種網(wǎng)絡攻擊,都需要通過對其攻擊行為和方式進行分析從而提取其攻擊特征。純字符型的攻擊特征由字符串組成,而混合型的攻擊特征則包括字符信息、主機狀態(tài)等信息。在網(wǎng)絡環(huán)境中,純字符型的特征更容易實現(xiàn)對惡意攻擊的檢測。
本文將根據(jù)漏洞利用的過程有針對地對一些利用漏洞的攻擊行為進行分析,提取其攻擊特征,主要檢測了TCP數(shù)據(jù)包和UDP數(shù)據(jù)包的主要參數(shù)。對TCP數(shù)據(jù)包和UDP數(shù)據(jù)包涉及的任意一次固定時間段內收集的所有數(shù)據(jù)包信息進行預處理,將其特征向量化,為大數(shù)據(jù)分析平臺的數(shù)據(jù)簡化和整理奠定了基礎。
大數(shù)據(jù)分析平臺是本方案的核心部分,通過本平臺分析后,將不同的流量檢測結果轉發(fā)給安全設備處理模塊。通過決策樹分類算法的應用對數(shù)據(jù)流量進行分析,采用機器學習算法對數(shù)據(jù)進行分類,建立異常行為的預測模型,對攻擊異常行為進行篩選。大數(shù)據(jù)分析平臺架構主要由采集層、整理層和計算層三部分組成。
采集層,主要負責將網(wǎng)絡中的多種數(shù)據(jù)(本地日志數(shù)據(jù)、流量數(shù)據(jù)、用戶行為模式數(shù)據(jù)等)進行抽樣、整理及提取有特征的信息。通過數(shù)據(jù)包嗅探和Flume模塊完成,其中數(shù)據(jù)包嗅探模塊將各個服務器端口上抓取的無用信息過濾掉,留下有效的特征信息;Flume模塊對收集的海量數(shù)據(jù)進行簡單的處理后發(fā)送到整理層。
整理層,主要采用分布式存儲設備Kafka接收收集層的數(shù)據(jù),一方面將接收的數(shù)據(jù)整理成消息隊列,以備計算層調用;另一方面用作存儲緩存區(qū),待計算層有計算能力時將數(shù)據(jù)發(fā)送給處理層,防止大量的數(shù)據(jù)流傳入計算層超出計算層的處理能力使計算層崩潰。
計算層,主要采用Spark-streaming平臺來達到流式處理的需求。通過機器學習訓練和使用分類算法,將大批量數(shù)據(jù)進行計算實現(xiàn)對漏洞的高效檢測。本文選擇CART決策樹算法,Spark-streaming將由Kafka傳送到計算層的連續(xù)數(shù)據(jù)流轉化為Dstreaming分片,并把作業(yè)分成多個Stage。采用將Stage編輯成任務集的方式傳給TaskScheduler,通過TaskScheduler將任務發(fā)送到計算節(jié)點上得到分類結果。
該模塊主要對大數(shù)據(jù)分析平臺檢測出的正常數(shù)據(jù)和有安全威脅的數(shù)據(jù)分別路由,從而對送至的數(shù)據(jù)進行拒絕、轉發(fā)或丟棄。主要由安全資源池和安全設備路由兩部分組成。隨著云計算的發(fā)展,安全資源池可以是網(wǎng)絡中物理安全設備、安全中間件和虛擬化安全設備的集合。安全設備路由策略是基于SDN網(wǎng)絡,采用了神經(jīng)網(wǎng)絡最短路由算法、安全設備最短路由算法、旁路式最短路由算法,實現(xiàn)個性化調用網(wǎng)絡安全設備的一種高效策略。
通過試驗的方式對本文方案的性能進行檢測,網(wǎng)絡拓撲結構如圖2所示。試驗平臺中一共部署5臺安裝了Ubuntu16.04系統(tǒng)的服務器,2臺服務器裝有Flume-1.6.0數(shù)據(jù)采集模塊作為被訪問服務器,1臺作為數(shù)據(jù)處理模塊部署Kafka-0.11;2臺作為數(shù)據(jù)計算模塊并安裝Spark-2.4.0系統(tǒng)。使用5臺虛擬機對被訪問服務器的正常下載、上傳、訪問等操作;2臺安裝攻擊軟件的計算機對被訪問服務器分別實行IP掃描攻擊、FIN掃描攻擊、端口掃描攻擊、Land攻擊、WinNuke攻擊和DNS Query Flood這6種方式的攻擊。
圖2 實驗網(wǎng)絡拓撲結構
為了獲取不同信息量的網(wǎng)絡事件,通過Kafka將時間窗口大小分別設置為20 s、40 s、80 s。通過由2000次為異常事件和4000次已知的正常事件隨機組成的機器學習訓練集,訓練Spark平臺上的CART決策樹算法,并使用200次正常事件和100次異常事件進行校驗,分類預測模型的準確率達99%。本實驗中使用合法流量負載在5 Mb/s到 6 Mb/s的5臺虛擬主機訪問目標服務器,2臺攻擊PC進行上述6種攻擊行為。為了對實驗的準確性進行驗證,分別對時間窗口為20 s、40 s和80 s的2000次事件集的系統(tǒng)的運行時間、漏報率、誤報率進行記錄,結果分別如表1、表2、表3所示。
表1 20 s的測試結果
表2 40 s的測試結果
表3 80 s的測試結果
由表1、表2和表3可以看出,本系統(tǒng)對WinNuke攻擊、Land攻擊和DNS Query Flood的漏報率為0%,IP掃描誤報率小于0.8%,端口掃描的誤報率不高于1.5%,對FIN掃描攻擊的誤報率不高于2.2%,對DNS Query Flood的誤報率不高于2.5%。
設計了一種基于大數(shù)據(jù)分析的漏洞檢測技術,通過對網(wǎng)絡的實時數(shù)據(jù)流進行分析來檢測異常流量。實驗過程中,首先對數(shù)據(jù)進行簡化、采集和緩存后,利用大數(shù)據(jù)處理平臺Spark-streaming對大批量數(shù)據(jù)進行計算。通過試驗發(fā)現(xiàn),該平臺對這IP掃描攻擊、FIN掃描攻擊、端口掃描攻擊、Land攻擊、WinNuke攻擊和DNS Query Flood這6種方式的攻擊的誤報率和漏報率小,具有較高的應用價值。