王曉輝,宋學坤
(河南中醫藥大學,河南 鄭州 450046)
現如今,因特網已經成為推動社會經濟發展的強大動力,在人們對因特網的依賴性日益增強的同時,由于因特網的特殊性,網絡安全漏洞類型也在不斷增多,嚴重影響著人們的體驗感和使用安全[1]?;ヂ摼W對用戶來說是透明的,由于用戶對閱讀信息的來源是未知的,加之越來越多的參與者因為不同的背景和動機而加入到網絡中,因此,這些因素使黑客攻擊事件發生日益頻繁,黑客數量不斷增加,病毒、木馬、網絡犯罪等層出不窮。對于系統漏洞,可以在系統被攻擊者利用之前對其進行分析,從而及時阻止補丁攻擊。但已有的網絡安全態勢感知系統都是利用多維信息來分析系統漏洞[2]的,由于關系數據庫中獨立存在多個系統,因此,各維度之間的協作能力較差,嚴重影響了關聯分析的實時性和準確性;而且在基于規則的關聯分析系統中,需要借助專家知識來構建攻擊場景,通常不能自動對不出現在攻擊模板知識庫中的新攻擊進行分析推理[3]。為解決上述問題,文中設計了一種基于知識圖譜的網絡安全漏洞類型關聯分析系統,該系統可以利用網絡安全知識圖來規范基礎屬性及其相互關系。
系統采用全模塊化設計,可以為關聯分析功能提供高效、可靠、穩定的分析引擎,以保證系統的可擴展性。圖1為整個系統架構。

圖1 系統整體架構
由圖1可知,系統通過入侵檢測對采集到的數據進行過濾,并對過濾后的數據進行關聯分析,以完成對網絡安全漏洞類型的關聯分析。
普通數據庫是漏洞數據庫和掃描數據庫之間的橋梁,其可以通過掃描規則庫漏洞信息簽名代碼[4],再利用掃描器獲得用于掃描網絡主機的簽名碼。當返回一個特定值時,數據庫可以判斷網絡主機上是否有漏洞以及漏洞類型[5-6],還可以在完成掃描后將主機信息發送給信息管理模塊進行分析,并提出處理建議。最后,通過此用戶管理界面可以對漏洞數據庫、補丁數據庫、規則庫進行添加、刪除、修改以及檢查處理結果,為后續驗證提供必要的平臺準備[7-9]。
系統需要建立漏洞數據庫、補丁數據庫和規則數據庫,并通過自動采集模塊進行更新。修補程序數據庫應該與漏洞數據庫同步,即修補程序數據庫是漏洞數據庫信息的一個子集,修補程序數據庫中的修補程序信息應該明確對應于某個漏洞信息,并且可以從指定的位置下載修補程序。在掃描某個主機需要補丁時,它們可以連接到官方補丁庫進行更新,根據網絡狀態的不同,升級速度也不同[10]。所以,首先需要更新知識庫中的補丁數據庫,當主機需要更新時,可以直接連接現有知識庫,從而實現知識庫的快速更新[11-13]。
圖2為漏洞信息自動收集結構。

圖2 漏洞信息自動收集結構
由圖2可知,收集安全漏洞有兩種方法:軟件自動收集漏洞和專業人員手動操作收集漏洞[14]。其中,軟件自動收集漏洞利用網站插件收集一些專業網站的漏洞信息,對漏洞信息轉換格式,最后將其放到漏洞數據庫中。對于專業人員手動操作收集漏洞方法,專家必須具有一定的專業知識及分析潛在漏洞的能力,通過各種方式獲取漏洞信息,分析、整理漏洞信息,將其放到漏洞數據庫中,負責漏洞數據庫的維護[15]。自動采集系統的體系結構由客戶端自動采集軟件和服務器端漏洞數據庫兩部分組成,客戶機和服務器都基于網絡平臺。
安全集成管理系統的核心是關聯引擎,該引擎的功能包括支持分布式操作、負責傳輸代理、規范安全事件關聯、評估網絡安全。圖3為關聯引擎結構。
由圖3可知,在關聯引擎中,每個數據都可以動態地關聯到其他數據,因此,在沒有任何限制的情況下,所有技能水平的用戶都可以使用簡單的搜索和選擇來探索信息[16]。

圖3 關聯引擎結構
在軟件功能設計過程中,需要建立網絡安全知識圖譜,并將獨立的數據整合到高級知識圖譜中。之所以選用知識圖譜方法主要是因為相對于傳統的數據庫,知識圖譜能夠利用一個通用結構,通過實體間的關聯關系,把大量屬于某一知識類別的信息組織到邏輯結構中,用于語義檢索或智能問答,具有一定的知識推理能力,可以使請求者得到快速的響應。知識圖譜在滿足高實時性和語義相關搜索要求方面具有明顯優勢,圖4為知識圖譜的映射過程。

圖4 知識圖譜的映射過程
在掃描網絡主機時,掃描器首先從規則庫中讀取漏洞規則,然后基于所掃描的IP生成掃描規則。每臺主機都將基于簽名代碼返回特定值,否則就不能使用。若返回值為-1,則說明網絡存在漏洞;若返回值為0,則說明網絡存在部分漏洞。若返回值與規則的結果字段相匹配,則得到特定漏洞類型。這時,可以將分析結果發送給信息分析處理模塊,使用堆排序方法對知識庫系統中的規則庫進行排序和匯總,從而使其在存在漏洞的情況下仍然能夠達到平衡狀態。
使用Apriori算法找出頻繁項集S后,根據最小置信度生成關聯規則,按照式(1)獲取規則置信度:

式(1)中,A?B表示A集合到B集合的置信度;P(B∣A)表示規則置信度,即條件概率;support_Count(A?B)表示兩個集合并集中關聯規則出現的次數;support_Count(A)表示集合A在S中出現的次數。
對于頻繁項集S中的項目集x,其子集的一個規則為y?x-y,針對該規則求取置信度:

式(2)中,置信度大于min—support作為強規則輸出,對每個頻繁項集S中的每個子集獲取關聯規則,并計算置信度,滿足最小置信度要求的為強關聯規則。
在強關聯規則支持下,利用知識圖譜對漏洞類型進行多維度分析,在知識圖譜中,同時存在高、中、低3種類型的漏洞危害等級,如圖5所示。

圖5 網絡安全漏洞危害等級
通過網絡安全漏洞危害等級,再結合關聯規則,可以遍歷網絡安全事件節點。在字段個數值同時存在的情況下,知識圖譜還可以將數值映射到事件ID上,從而建立起一個從事件ID到漏洞ID的指向關系,完成對網絡安全漏洞類型的關聯分析。
文中設計的實驗主要有兩臺主機,操作系統為Ubuntu10.00,實驗室數據為2 000份,利用OpenDPI將深度檢測結果存放到日志文件中,通過過濾模塊將過濾后的數據存儲到內存中。
通過搭建的網絡環境對網絡系統中的主機進行漏洞掃描,獲取的信息集合如表1所示。

表1 掃描出的漏洞集合
由表1可知,網絡系統中共掃描出17個漏洞,根據漏洞CVE編號可以提取漏洞基本信息。
告警率指的是網絡安全漏洞出現的報警概率,接下來分別使用文獻[2]、文獻[3]的系統與設計系統進行對比分析,結果如表2所示。

表2 3種系統網絡安全告警率對比分析
由表2可知,使用文獻[2]系統網絡安全告警率最高為0.64,最低為0.55,這主要是因為其受到獨立存儲關聯性數據庫影響,各個維度間協調能力差,所以告警率低;使用文獻[3]的系統網絡安全告警率最高為0.66,最低為0.58,這種現象的產生主要是因為其受到外界攻擊,無法實現自動分析推理,導致告警率低;而設計系統的告警率最高為0.99,最低為0.97,具有良好的分析效果。
更新網絡傳輸節點,在不同節點數量下,分別使用3個系統分析數據丟包率,對比結果如圖6所示。
由圖6可知,文獻[2]系統在節點數量為80個時丟包率達到最高,為1.26%;文獻[3]系統在節點數量為20個時丟包率達到最高,為0.75%;設計系統在節點數量為20個時丟包率達到最高,為0.32%。通過上述分析結果可知,使用設計系統的丟包率低,能夠進行高效的數據收集工作。

圖6 3個系統數據丟包率對比分析
文中主要設計了基于知識圖譜的網絡安全漏洞類型關聯分析系統,并通過實驗驗證了該系統的漏洞類型,分析工作可以成為網絡安全的重要保障,但目前,該系統還存在一些缺陷:
1)在對漏洞進行評估時,存在一些主觀因素,為此需要繼續研究漏洞描述中的參數和度量標準,對大量的漏洞信息進行評估,尋找更多的度量標準對度量標準進行擴展和調整,以提高漏洞度量的準確性和靈活性;
2)由于網絡規模越來越大,Apriori算法效率已不能滿足大規模復雜網絡的要求,需要進一步改進;
3)采用MySQL數據庫進行數據庫升級、漏洞數據庫設計,該數據庫是一種開放源碼數據庫,可節約系統開發成本。但隨著抓取漏洞信息和用戶數量的增加,開放源碼數據庫已不能支持海量數據存儲的安全和運行,所以數據庫必須進行升級。