周 密,宋晨陽,蔣丹婷
(上海通用識別技術研究所,上海201112)
當今信息技術的飛快發展,加速了現代社會向信息化社會邁進的步伐。但伴隨而來的信息安全問題也涉及到國家的各個層面面,各種漏洞的產生使目前信息安全形勢面臨嚴峻考驗。如何從既有漏洞數據中發現有價值的信息,為信息安全事件的預防和安全措施的建立提供前瞻性的分析,成為極具意義的工作。通過數據挖掘,分析不同軟件之間、同一軟件不同版本之間漏洞的關聯關系,建立關聯規則表。從而當發現某一軟件發現漏洞時,按關聯規則檢查其他軟件或軟件的其他版本,提前發現漏洞、預防風險。
數據挖掘(DM,Data Mining)技術的出現可以有效解決此類問題。數據挖掘是從大量包含噪聲的隨機數據中,提取隱含在其中具備潛在意義的信息和知識的過程[1]。通過對信息安全漏洞庫進行數據挖掘,建立關聯規則,可以對漏洞出現趨勢實現預測,為防范信息安全問題和信息安全事件的發生提供依據。
數據挖掘(DM)融合了多個領域的理論和技術,如人工智能、數據庫、模式識別、統計學等技術[2]。數據挖掘常與數據庫中的“知識發現”(KDD,Knowledge Discovery in Database)進行比較,對于兩者之間的關系,學術界有很多不同見解[3]。數據挖掘屬于整個知識挖掘過程的一個核心步驟,如圖1所示。

圖1 KDD過程示意Fig.1 Schematic diagram of KDD
漏洞(Vulnerability),又稱為缺陷。對信息安全漏洞的定義最早是在1982年,由美國著名計算機安全專家 D.Denning[4]提出,D.Longley 等人從風險管理的角度分三個方面描述漏洞的含義,M.Bishop等人采用狀態空間描述法定義漏洞,權威機構如美國NIST在《信息安全關鍵術語詞匯表》[5]以及國際標準化組織發布的ISO/IEC《IT安全術語詞匯表》[6]中也對漏洞進行定義。
世界上比較較知名的漏洞數據庫包括美國國家漏洞庫 NVD(National Vulnerability Database)、丹麥的Secunia漏洞信息庫等,我國在2009年也建成了中國國家信息安全漏洞庫CNNVD。本文選取Secunia漏洞庫的漏洞數據作為樣本進行數據挖掘。
數據挖掘任務主要是發現在數據中隱藏的潛在價值。數據挖掘模式主要分為兩種:描述型和預測型。描述模式是對歷史數據中包含的事實進行規范描述,從而呈現出數據的一般特性;預測模式通常以時間作為參考標準,通過數據的歷史值預測可能的未來值。依照不同的模式特征,細分六類模式:預測模式、關聯模式、序列模式、分類模式、回歸模式以及聚類模式。本文主要針對關聯模式進行深入探討。
關聯規則算法是指相關性統計分析,基于分析離散事件之間的相關性統計而建立關聯規則,關聯規則算法是定量分析,所以必須將樣本中的數據進行離散化操作,此算法是基于大量數據樣本的優化算法。
(1)關聯算法中的幾個基本概念
關聯規則算法包含4個基本概念項集。項集是一組項的集合,每個項都包含一個屬性,例如,項集{A,B}。項集的大小是指向集中含有項的數量。頻繁項集為樣本中出現頻率高的項集。
支持度。支持度用來衡量項集出現的頻率。項集{A,B}的支持度定義為同時包含項A和項B的項集的總數。定義為:

最小支持度Min_Support是對項集進行限制的閾值參數。
置信度。置信度描述了項集關聯的屬性,規則A推導出規則B(A→B)的置信度為:

最小置信度Min_Confidence為閾值參數。
重要性。重要性用于度量項集和規則,項集重要性定義為:

項集重要性值反映項集之間的相關性。如果Importance=1,則A和B是獨立的項;如果Importance>1,表示正相關;如果 Importance<1,則表示負相關。
規則的重要性公式為:

規則重要性值與0比較,反映規則的關聯性。Importance>0表示A發生,則B發生的概率會升高;Importance<0表示A發生,則B發生的概率會降低。
(2)Apriori關聯算法
Apriori算法將發現關聯規則的過程分為兩個階段:首先通過迭代,檢索出數據集中所有的頻繁項集,即支持度不低于最小支持度的項集;第二階段利用頻繁項集構造滿足最小信任度的規則。步驟如下[7]:
步驟1:產生長度為1的頻繁項集。掃描數據庫D,產生頻繁項集L1。
步驟2:關聯。在第k(k>1)次掃描時,通過Lk-1⊕Lk-1,從而產生候選項集 ck。
步驟3:剪枝。刪減非頻繁項集。設:ck∈Ck,若ck的所有長度為 k - 1 的子集 ck-1都屬于 Lk-1,則該ck將被保留;否則則從Ck中去除該ck。
步驟4:產生強關聯規則。根據最小置信度Minimum_Confidence遍歷頻繁項集,得出強關聯規則,算法結束。
Secunia漏洞庫覆蓋范圍包含程序和系統中的各種漏洞。該數據庫持續更新體現最新的漏洞信息。Secunia漏洞公告主要包括:漏洞名稱、Secunia公告號、日期、漏洞等級、漏洞來源、影響范圍、操作系統版本等。
以Secunia漏洞庫中的信息為樣本,構建關聯挖掘規則,反映出漏洞信息在不同系統中的關聯性。
(1)挖掘任務
通過歷史漏洞信息,挖掘分析不同軟件出現同類型漏洞的概率。
(2)挖掘結構
結合挖掘任務,數據挖掘關聯表為事例表結合嵌套表的方式。建立漏洞表Vulnerabilities,此表為事例表,漏洞id作為主鍵。嵌套表為Softwares表,記錄軟件名和軟件版本類型,軟件id作為兩張表進行關聯的外鍵。關聯規則挖掘結構如圖2所示。

圖2 挖掘結構Fig.2 Mining Structure
通過采集的Secunia庫的數據作為樣本,應用Apriori算法模型。依據最低支持度(Min_S)和最低置信度(Min_P)的閾值,形成相應的規則集。通過調整Min_S和最低Min_P的值,得到如表1所示的值。

表1 關聯規則挖掘結果Table 1 Result of Association Rule Mining
通過表1中結果,可以分析出隨著最低支持度的增加,對應的關聯規則的數量呈遞減趨勢;當最低支持度閾值大于0.04時,則關聯規則數量很少。當最低支持度恒定時,隨著最低置信度的增長,關聯規則數量逐漸增加。為了能夠取得可靠的關聯規則,采用最低支持度為0.02,最低置信度為80%,并且將規則重要度閾值設定為大于1.6,一共獲得40條關聯規則結果,部分規則如表2所示。

表2 挖掘產生的部分關聯規則Table 2 Part association rules of mineing
在表2中關聯規則一欄中,“現有”的含義是一種已經存在的漏洞。規則1:軟件Red Hat Enter-prise Linux ES 4和Red Hat Desktop 4.x出現相同漏洞的置信度是1,即概率是100%,重要度是3.438;規則2:若軟件Red Hat Enterprise Linux HPC Node 6和Red Hat Enterprise Linux Desktop 6同時出現某種漏洞,則Red Hat Enterprise Linux Server 6出現該漏洞的概率是100%,重要度是2.317;規則3:open-SUSE 11.1和openSUSE 11.2出現某種漏洞的概率是100%,重要度為1.899。
通過上述例子可以看出,當關聯規則的置信度越高、重要度越高,則該條關聯規則的價值越高,根據具體情況,可以設置最低置信度和最小重要度作為該條規則是否有價值的標準,即(Confidence(A→B)min,Importance(A→B)min),根據對置信度和重要的綜合考慮,可以得出價值更高的關聯規則,從而對信息安全事件有更好的預警分析。
本文主要研究了基于Secunia漏洞庫的關聯規則挖掘算法。介紹了數據挖掘的相關概念、關聯規則相關算法、Secunia漏洞庫的基本信息。以Secunia漏洞庫的數據為樣本進行關聯規則挖掘,分析了漏洞與軟件關系的關聯規則,建立了不同軟件中出現相關漏洞的聯系。如今,世界各國都在建立信息安全漏洞庫并發布信息安全漏洞信息,將漏洞信息與數據挖掘結合,可以對信息安全事件進行提前預警,具有重要而且長遠的意義。
[1]Han J,Kamber M.Data Mining:Concepts and Techniques[M].Canada:Morgan Kaufmann Publishers,2001.
[2]王光宏,蔣平.數據挖掘綜述[J].同濟大學學報,2004,32(02):246-252.WANG Guang - hong,JIANG Ping.Summary of Data Mining[J].Journal of Tongji University.2004,32(2):246-252.
[3]毛國君,段立娟,王實,等.數據挖掘原理與算法[M].第2版.北京:清華大學出版社,2007:7-8.MAO Guo- jun,DUAN Li- Juan,WANG Shi.Principles and Algorithms of Data Mining[M].Tsinghua University Press.2007:7 -8.
[4]Denning D.Crytography and Data Security[M].Reading,MA,USA:Addison -Wesley,1982.
[5]Kissel R.Glossary of Key Information Security Terms,NIST IR 7298[R].National Institute of Standards and Technology(NIST),2006.
[6]ISO/IEC SC 27 SD6.Glossary of Information Security Terms[S].International Organization for Standardization(ISO),2009.
[7]劉維曉,陳俊麗,曲世富,等.一種改進的Apriori算法[J].計算機工程與應用,2011,47(11):149-151.LIU Wei-xiao,CHEN Jun -Li,QU Shi-Fu.Improved Apriori Algorithm[J].Computer Engineering and Applications.2011,47(11):149 -151.