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