王曉輝,宋學(xué)坤
(河南中醫(yī)藥大學(xué),河南 鄭州 450046)
現(xiàn)如今,因特網(wǎng)已經(jīng)成為推動社會經(jīng)濟發(fā)展的強大動力,在人們對因特網(wǎng)的依賴性日益增強的同時,由于因特網(wǎng)的特殊性,網(wǎng)絡(luò)安全漏洞類型也在不斷增多,嚴重影響著人們的體驗感和使用安全[1]?;ヂ?lián)網(wǎng)對用戶來說是透明的,由于用戶對閱讀信息的來源是未知的,加之越來越多的參與者因為不同的背景和動機而加入到網(wǎng)絡(luò)中,因此,這些因素使黑客攻擊事件發(fā)生日益頻繁,黑客數(shù)量不斷增加,病毒、木馬、網(wǎng)絡(luò)犯罪等層出不窮。對于系統(tǒng)漏洞,可以在系統(tǒng)被攻擊者利用之前對其進行分析,從而及時阻止補丁攻擊。但已有的網(wǎng)絡(luò)安全態(tài)勢感知系統(tǒng)都是利用多維信息來分析系統(tǒng)漏洞[2]的,由于關(guān)系數(shù)據(jù)庫中獨立存在多個系統(tǒng),因此,各維度之間的協(xié)作能力較差,嚴重影響了關(guān)聯(lián)分析的實時性和準確性;而且在基于規(guī)則的關(guān)聯(lián)分析系統(tǒng)中,需要借助專家知識來構(gòu)建攻擊場景,通常不能自動對不出現(xiàn)在攻擊模板知識庫中的新攻擊進行分析推理[3]。為解決上述問題,文中設(shè)計了一種基于知識圖譜的網(wǎng)絡(luò)安全漏洞類型關(guān)聯(lián)分析系統(tǒng),該系統(tǒng)可以利用網(wǎng)絡(luò)安全知識圖來規(guī)范基礎(chǔ)屬性及其相互關(guān)系。
系統(tǒng)采用全模塊化設(shè)計,可以為關(guān)聯(lián)分析功能提供高效、可靠、穩(wěn)定的分析引擎,以保證系統(tǒng)的可擴展性。圖1為整個系統(tǒng)架構(gòu)。
圖1 系統(tǒng)整體架構(gòu)
由圖1可知,系統(tǒng)通過入侵檢測對采集到的數(shù)據(jù)進行過濾,并對過濾后的數(shù)據(jù)進行關(guān)聯(lián)分析,以完成對網(wǎng)絡(luò)安全漏洞類型的關(guān)聯(lián)分析。
普通數(shù)據(jù)庫是漏洞數(shù)據(jù)庫和掃描數(shù)據(jù)庫之間的橋梁,其可以通過掃描規(guī)則庫漏洞信息簽名代碼[4],再利用掃描器獲得用于掃描網(wǎng)絡(luò)主機的簽名碼。當返回一個特定值時,數(shù)據(jù)庫可以判斷網(wǎng)絡(luò)主機上是否有漏洞以及漏洞類型[5-6],還可以在完成掃描后將主機信息發(fā)送給信息管理模塊進行分析,并提出處理建議。最后,通過此用戶管理界面可以對漏洞數(shù)據(jù)庫、補丁數(shù)據(jù)庫、規(guī)則庫進行添加、刪除、修改以及檢查處理結(jié)果,為后續(xù)驗證提供必要的平臺準備[7-9]。
系統(tǒng)需要建立漏洞數(shù)據(jù)庫、補丁數(shù)據(jù)庫和規(guī)則數(shù)據(jù)庫,并通過自動采集模塊進行更新。修補程序數(shù)據(jù)庫應(yīng)該與漏洞數(shù)據(jù)庫同步,即修補程序數(shù)據(jù)庫是漏洞數(shù)據(jù)庫信息的一個子集,修補程序數(shù)據(jù)庫中的修補程序信息應(yīng)該明確對應(yīng)于某個漏洞信息,并且可以從指定的位置下載修補程序。在掃描某個主機需要補丁時,它們可以連接到官方補丁庫進行更新,根據(jù)網(wǎng)絡(luò)狀態(tài)的不同,升級速度也不同[10]。所以,首先需要更新知識庫中的補丁數(shù)據(jù)庫,當主機需要更新時,可以直接連接現(xiàn)有知識庫,從而實現(xiàn)知識庫的快速更新[11-13]。
圖2為漏洞信息自動收集結(jié)構(gòu)。
圖2 漏洞信息自動收集結(jié)構(gòu)
由圖2可知,收集安全漏洞有兩種方法:軟件自動收集漏洞和專業(yè)人員手動操作收集漏洞[14]。其中,軟件自動收集漏洞利用網(wǎng)站插件收集一些專業(yè)網(wǎng)站的漏洞信息,對漏洞信息轉(zhuǎn)換格式,最后將其放到漏洞數(shù)據(jù)庫中。對于專業(yè)人員手動操作收集漏洞方法,專家必須具有一定的專業(yè)知識及分析潛在漏洞的能力,通過各種方式獲取漏洞信息,分析、整理漏洞信息,將其放到漏洞數(shù)據(jù)庫中,負責漏洞數(shù)據(jù)庫的維護[15]。自動采集系統(tǒng)的體系結(jié)構(gòu)由客戶端自動采集軟件和服務(wù)器端漏洞數(shù)據(jù)庫兩部分組成,客戶機和服務(wù)器都基于網(wǎng)絡(luò)平臺。
安全集成管理系統(tǒng)的核心是關(guān)聯(lián)引擎,該引擎的功能包括支持分布式操作、負責傳輸代理、規(guī)范安全事件關(guān)聯(lián)、評估網(wǎng)絡(luò)安全。圖3為關(guān)聯(lián)引擎結(jié)構(gòu)。
由圖3可知,在關(guān)聯(lián)引擎中,每個數(shù)據(jù)都可以動態(tài)地關(guān)聯(lián)到其他數(shù)據(jù),因此,在沒有任何限制的情況下,所有技能水平的用戶都可以使用簡單的搜索和選擇來探索信息[16]。
圖3 關(guān)聯(lián)引擎結(jié)構(gòu)
在軟件功能設(shè)計過程中,需要建立網(wǎng)絡(luò)安全知識圖譜,并將獨立的數(shù)據(jù)整合到高級知識圖譜中。之所以選用知識圖譜方法主要是因為相對于傳統(tǒng)的數(shù)據(jù)庫,知識圖譜能夠利用一個通用結(jié)構(gòu),通過實體間的關(guān)聯(lián)關(guān)系,把大量屬于某一知識類別的信息組織到邏輯結(jié)構(gòu)中,用于語義檢索或智能問答,具有一定的知識推理能力,可以使請求者得到快速的響應(yīng)。知識圖譜在滿足高實時性和語義相關(guān)搜索要求方面具有明顯優(yōu)勢,圖4為知識圖譜的映射過程。
圖4 知識圖譜的映射過程
在掃描網(wǎng)絡(luò)主機時,掃描器首先從規(guī)則庫中讀取漏洞規(guī)則,然后基于所掃描的IP生成掃描規(guī)則。每臺主機都將基于簽名代碼返回特定值,否則就不能使用。若返回值為-1,則說明網(wǎng)絡(luò)存在漏洞;若返回值為0,則說明網(wǎng)絡(luò)存在部分漏洞。若返回值與規(guī)則的結(jié)果字段相匹配,則得到特定漏洞類型。這時,可以將分析結(jié)果發(fā)送給信息分析處理模塊,使用堆排序方法對知識庫系統(tǒng)中的規(guī)則庫進行排序和匯總,從而使其在存在漏洞的情況下仍然能夠達到平衡狀態(tài)。
使用Apriori算法找出頻繁項集S后,根據(jù)最小置信度生成關(guān)聯(lián)規(guī)則,按照式(1)獲取規(guī)則置信度:
式(1)中,A?B表示A集合到B集合的置信度;P(B∣A)表示規(guī)則置信度,即條件概率;support_Count(A?B)表示兩個集合并集中關(guān)聯(lián)規(guī)則出現(xiàn)的次數(shù);support_Count(A)表示集合A在S中出現(xiàn)的次數(shù)。
對于頻繁項集S中的項目集x,其子集的一個規(guī)則為y?x-y,針對該規(guī)則求取置信度:
式(2)中,置信度大于min—support作為強規(guī)則輸出,對每個頻繁項集S中的每個子集獲取關(guān)聯(lián)規(guī)則,并計算置信度,滿足最小置信度要求的為強關(guān)聯(lián)規(guī)則。
在強關(guān)聯(lián)規(guī)則支持下,利用知識圖譜對漏洞類型進行多維度分析,在知識圖譜中,同時存在高、中、低3種類型的漏洞危害等級,如圖5所示。
圖5 網(wǎng)絡(luò)安全漏洞危害等級
通過網(wǎng)絡(luò)安全漏洞危害等級,再結(jié)合關(guān)聯(lián)規(guī)則,可以遍歷網(wǎng)絡(luò)安全事件節(jié)點。在字段個數(shù)值同時存在的情況下,知識圖譜還可以將數(shù)值映射到事件ID上,從而建立起一個從事件ID到漏洞ID的指向關(guān)系,完成對網(wǎng)絡(luò)安全漏洞類型的關(guān)聯(lián)分析。
文中設(shè)計的實驗主要有兩臺主機,操作系統(tǒng)為Ubuntu10.00,實驗室數(shù)據(jù)為2 000份,利用OpenDPI將深度檢測結(jié)果存放到日志文件中,通過過濾模塊將過濾后的數(shù)據(jù)存儲到內(nèi)存中。
通過搭建的網(wǎng)絡(luò)環(huán)境對網(wǎng)絡(luò)系統(tǒng)中的主機進行漏洞掃描,獲取的信息集合如表1所示。
表1 掃描出的漏洞集合
由表1可知,網(wǎng)絡(luò)系統(tǒng)中共掃描出17個漏洞,根據(jù)漏洞CVE編號可以提取漏洞基本信息。
告警率指的是網(wǎng)絡(luò)安全漏洞出現(xiàn)的報警概率,接下來分別使用文獻[2]、文獻[3]的系統(tǒng)與設(shè)計系統(tǒng)進行對比分析,結(jié)果如表2所示。
表2 3種系統(tǒng)網(wǎng)絡(luò)安全告警率對比分析
由表2可知,使用文獻[2]系統(tǒng)網(wǎng)絡(luò)安全告警率最高為0.64,最低為0.55,這主要是因為其受到獨立存儲關(guān)聯(lián)性數(shù)據(jù)庫影響,各個維度間協(xié)調(diào)能力差,所以告警率低;使用文獻[3]的系統(tǒng)網(wǎng)絡(luò)安全告警率最高為0.66,最低為0.58,這種現(xiàn)象的產(chǎn)生主要是因為其受到外界攻擊,無法實現(xiàn)自動分析推理,導(dǎo)致告警率低;而設(shè)計系統(tǒng)的告警率最高為0.99,最低為0.97,具有良好的分析效果。
更新網(wǎng)絡(luò)傳輸節(jié)點,在不同節(jié)點數(shù)量下,分別使用3個系統(tǒng)分析數(shù)據(jù)丟包率,對比結(jié)果如圖6所示。
由圖6可知,文獻[2]系統(tǒng)在節(jié)點數(shù)量為80個時丟包率達到最高,為1.26%;文獻[3]系統(tǒng)在節(jié)點數(shù)量為20個時丟包率達到最高,為0.75%;設(shè)計系統(tǒng)在節(jié)點數(shù)量為20個時丟包率達到最高,為0.32%。通過上述分析結(jié)果可知,使用設(shè)計系統(tǒng)的丟包率低,能夠進行高效的數(shù)據(jù)收集工作。
圖6 3個系統(tǒng)數(shù)據(jù)丟包率對比分析
文中主要設(shè)計了基于知識圖譜的網(wǎng)絡(luò)安全漏洞類型關(guān)聯(lián)分析系統(tǒng),并通過實驗驗證了該系統(tǒng)的漏洞類型,分析工作可以成為網(wǎng)絡(luò)安全的重要保障,但目前,該系統(tǒng)還存在一些缺陷:
1)在對漏洞進行評估時,存在一些主觀因素,為此需要繼續(xù)研究漏洞描述中的參數(shù)和度量標準,對大量的漏洞信息進行評估,尋找更多的度量標準對度量標準進行擴展和調(diào)整,以提高漏洞度量的準確性和靈活性;
2)由于網(wǎng)絡(luò)規(guī)模越來越大,Apriori算法效率已不能滿足大規(guī)模復(fù)雜網(wǎng)絡(luò)的要求,需要進一步改進;
3)采用MySQL數(shù)據(jù)庫進行數(shù)據(jù)庫升級、漏洞數(shù)據(jù)庫設(shè)計,該數(shù)據(jù)庫是一種開放源碼數(shù)據(jù)庫,可節(jié)約系統(tǒng)開發(fā)成本。但隨著抓取漏洞信息和用戶數(shù)量的增加,開放源碼數(shù)據(jù)庫已不能支持海量數(shù)據(jù)存儲的安全和運行,所以數(shù)據(jù)庫必須進行升級。