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