專利名稱:一種基于分類和關(guān)聯(lián)分析的漏洞數(shù)據(jù)挖掘方法
技術(shù)領(lǐng)域:
本發(fā)明屬于漏洞數(shù)據(jù)挖掘領(lǐng)域,為了發(fā)現(xiàn)漏洞存在的隱藏規(guī)律,以便對新漏洞產(chǎn) 生的部位類型、漏洞危害時效等因素進(jìn)行分類預(yù)測,提出利用數(shù)據(jù)挖掘技術(shù)對漏洞信息進(jìn) 行處理及分析。結(jié)合網(wǎng)絡(luò)爬蟲技術(shù),并通過DB接口建立漏洞詳細(xì)信息數(shù)據(jù)庫系統(tǒng),再利用 KNN分類技術(shù)對漏洞信息進(jìn)行處理及建立分類模型,還利用Apriori關(guān)聯(lián)挖掘方法發(fā)現(xiàn)漏 洞產(chǎn)生的原因、時間、危害等內(nèi)在規(guī)律知識,并將發(fā)現(xiàn)的規(guī)律知識納入漏洞知識庫中,從而 有利于對漏洞危害進(jìn)行預(yù)警和防范。
背景技術(shù):
目前,系統(tǒng)漏洞的數(shù)量在不斷增加,其中隱含了某些必然規(guī)律或規(guī)則,通過數(shù)據(jù)挖 掘、知識發(fā)現(xiàn)等手段對漏洞信息庫、漏洞發(fā)布相關(guān)信息(漏洞發(fā)布源、轉(zhuǎn)載、公告、交流、討 論)和漏洞利用信息(利用漏洞傳播的病毒、木馬、漏洞利用工具開發(fā)、漏洞帶來的損壞) 等多方面信息進(jìn)行處理,獲取已有漏洞信息中的隱含規(guī)律,以便對已知漏洞的作用時效、區(qū) 域、危害等級等信息進(jìn)行統(tǒng)計和分類,做到對新漏洞產(chǎn)生的時間、部位進(jìn)行預(yù)測,或者對新 產(chǎn)生漏洞的危害類型進(jìn)行準(zhǔn)確分類。另外,漏洞之間也存在相互的隱含關(guān)系,如何及時有效地發(fā)現(xiàn)這些關(guān)系成為了未 來漏洞數(shù)據(jù)挖掘的重點和難點。例如某個公司的程序員已經(jīng)編寫好的10個程序后來發(fā)現(xiàn) 4個有安全漏洞,利用這一信息可以預(yù)測在短期,該程序員新完成的程序出現(xiàn)漏洞的可能性 是40% ;在該程序員4個出現(xiàn)安全漏洞的程序中發(fā)現(xiàn)有3個是緩存溢出漏洞,則可指導(dǎo)漏 洞檢測人員對該公司的產(chǎn)品將重點放在緩存溢出檢測上;對類似這些信息的挖掘,找到漏 洞產(chǎn)生的隱藏規(guī)律,可以對新漏洞、漏洞產(chǎn)生部位類型、漏洞危害時效等因素進(jìn)行預(yù)測,對 漏洞危害進(jìn)行預(yù)警和預(yù)防具有重要的意義。因此,知識發(fā)現(xiàn)就是從數(shù)據(jù)庫大量的數(shù)據(jù)中通過數(shù)據(jù)挖掘算法來提取出隱含的、 新穎的、有效的并能被人理解的規(guī)則或模式的處理過程。這里的規(guī)則或模式即是我們平常 所說的知識。它給出數(shù)據(jù)的某些特性或數(shù)據(jù)之間的關(guān)系,是對數(shù)據(jù)處理后獲取的更深層次 的可用于決策支持的信息。Web上有海量的漏洞利用信息,如漏洞描述、利用漏洞制造的病毒、漏洞危害的區(qū) 域、時間等等,怎樣對這些數(shù)據(jù)進(jìn)行復(fù)雜的處理分析是漏洞數(shù)據(jù)挖掘的研究熱點。因此,本 系統(tǒng)采取自動搜集機(jī)制從Web上進(jìn)行數(shù)據(jù)采集,生成漏洞信息庫,并用文本挖掘方法對漏 洞信息庫進(jìn)行數(shù)據(jù)挖掘。最后,將分類模型按各個指標(biāo)對分類結(jié)果進(jìn)行評價或解釋,并以可 視化的方式呈現(xiàn)給用戶,使用戶能夠清晰明了地瀏覽漏洞分類結(jié)果。參考文獻(xiàn)[1]Common vulnerabilities and exposures[EB/OL]. http://www. eve. mitre, org.[2]單國棟,戴英俠,王航.計算機(jī)漏洞分類研究[J].計算機(jī)工程,2002,28 (10) 3-6.
[3]翟鈺,張玉清,武維善等.系統(tǒng)安全漏洞研究及數(shù)據(jù)庫實現(xiàn)[J].計算機(jī)工程, 2004,30 (8) 68-70.[4]Jiawei Han, Micheline Kamber. Data Mining Concepts and Techniques, Second Edition. China Machine Press.[5]Sheyner 0,Haines S Jha,Lippmann R,et al. Automated genera-tion and analysis of attackgraphs[C]. Oakland, CA :Proceedingsof the 2002IEEE Symposium on Security andPrivacy,2002.[6]張寧,賈自艷,史忠植.使用KNN算法的文本分類[J].計算機(jī)工程,2005, 31(8) 171-182.[7]黃嘉滿,張冬茉.基于文本的關(guān)聯(lián)規(guī)則提取方法的研究[J].計算機(jī)仿真, 2008,25(1) 96-99.
發(fā)明內(nèi)容
本發(fā)明目的是針對Web中大量雜亂無章的漏洞信息,提供了一種基于分類和關(guān)聯(lián) 分析的漏洞數(shù)據(jù)挖掘系統(tǒng)。利用KNN分類方法和Apriori關(guān)聯(lián)挖掘方法發(fā)現(xiàn)漏洞產(chǎn)生的原 因、時間、危害等內(nèi)在規(guī)律知識,并將發(fā)現(xiàn)的規(guī)律知識納入漏洞知識庫中。該發(fā)明對于漏洞 數(shù)據(jù)挖掘具有很好的分類和關(guān)聯(lián)分析能力。本發(fā)明為實現(xiàn)上述目的,采用如下技術(shù)方案本發(fā)明一種基于分類和關(guān)聯(lián)分析的漏洞數(shù)據(jù)挖掘方法如下①漏洞信息搜集系統(tǒng),對各安全知識網(wǎng)站公布的漏洞信息進(jìn)行自動搜集處理即網(wǎng) 絡(luò)爬蟲挖掘方法,將Internet上分散的海量信息下載到本地進(jìn)行數(shù)據(jù)處理,并建立原始漏 洞信息數(shù)據(jù)庫;②漏洞數(shù)據(jù)管理系統(tǒng),通過DB接口實現(xiàn)對已有的原始漏洞數(shù)據(jù)庫進(jìn)行信息管理, 包括漏洞查詢、修改、刪除、導(dǎo)入、更新,并利用漏洞爬蟲技術(shù),實時監(jiān)測是否公布最新漏洞, 即時地更新漏洞信息;③漏洞數(shù)據(jù)挖掘系統(tǒng),根據(jù)漏洞信息數(shù)據(jù)庫中記錄的漏洞信息,建立由漏洞文檔 模型構(gòu)成的結(jié)構(gòu)化的訓(xùn)練文檔集,提取漏洞信息的漏洞特征向量,采用KNN分類算法將漏 洞文檔模型進(jìn)行自動分類得到多組漏洞分類模型,對每一類的漏洞分類模型進(jìn)行數(shù)據(jù)挖掘 與知識發(fā)現(xiàn);把漏洞分類模型按各個指標(biāo)對分類結(jié)果進(jìn)行評價或解釋,并以可視化的方式 呈現(xiàn)給用戶;利用Apriori關(guān)聯(lián)規(guī)則挖掘算法對各組漏洞分類提取關(guān)鍵字,形成頻繁項集, 進(jìn)而運(yùn)用挖掘算法產(chǎn)生關(guān)鍵詞間的關(guān)聯(lián)規(guī)則即每一類漏洞文檔模型對應(yīng)一組關(guān)聯(lián)規(guī)則;最 后將漏洞記錄的各數(shù)據(jù)項進(jìn)行對比分析,找出漏洞數(shù)據(jù)之間隱含的關(guān)聯(lián)關(guān)系,將關(guān)聯(lián)關(guān)系 納入漏洞知識庫中。優(yōu)選地,所述漏洞信息搜集系統(tǒng)的信息搜集,包括如下步驟A預(yù)先定義漏洞網(wǎng)頁的搜集規(guī)則,包括漏洞列表父網(wǎng)頁的起始鏈接地址、導(dǎo)航關(guān)鍵 字、采集網(wǎng)頁的范圍及增量,還有漏洞列表網(wǎng)頁中漏洞詳細(xì)信息子網(wǎng)頁地址的采集標(biāo)識;B預(yù)先定義與漏洞信息相關(guān)的搜集字段規(guī)則,包括字段名稱、類型、前標(biāo)識符、后標(biāo) 識符等關(guān)鍵信息;C創(chuàng)建用于網(wǎng)絡(luò)通信的套接字對象,連接目標(biāo)服務(wù)器,并向服務(wù)器發(fā)送HTTP下載請求,以流數(shù)據(jù)方式接收網(wǎng)頁內(nèi)容信息;D將漏洞詳細(xì)信息子網(wǎng)頁的標(biāo)識關(guān)鍵字作為索引,快速定位漏洞詳細(xì)所在鏈接地 址,并將頁面中所有子網(wǎng)頁的地址加入等待隊列集合中;E采用多線程技術(shù),提取漏洞詳細(xì)信息子頁面中的數(shù)據(jù),與用戶定義的關(guān)鍵字庫中 的關(guān)鍵字進(jìn)行信息過濾,根據(jù)前后標(biāo)識符定位漏洞信息的主體部分;F搜集到用戶所需的字段信息后,將各字段信息導(dǎo)入漏洞信息數(shù)據(jù)庫中。優(yōu)選地,所述漏數(shù)據(jù)管理系統(tǒng)的數(shù)據(jù)管理包括如下步驟1)通過DB接口中間件,實現(xiàn)對漏洞信息數(shù)據(jù)庫進(jìn)行各種模糊查詢及檢索的事務(wù) 操作;2)實現(xiàn)對漏洞信息數(shù)據(jù)庫中的記錄進(jìn)行修改事務(wù)操作,并更新到漏洞信息數(shù)據(jù)庫 中;3)實現(xiàn)對漏洞信息數(shù)據(jù)庫中的記錄進(jìn)行刪除事務(wù)操作,并更新到漏洞信息數(shù)據(jù)庫 中;4)采用預(yù)先定義漏洞網(wǎng)頁的搜集規(guī)則,及時地更新漏洞信息,將最新的漏洞記錄 存儲到本地漏洞信息數(shù)據(jù)庫中,所述漏洞網(wǎng)頁的搜集規(guī)則,包括漏洞列表父網(wǎng)頁的起始鏈 接地址、導(dǎo)航關(guān)鍵字、采集網(wǎng)頁的范圍及增量,還有漏洞列表網(wǎng)頁中漏洞詳細(xì)信息子網(wǎng)頁地 址的采集標(biāo)識。優(yōu)選地,所述漏洞數(shù)據(jù)挖掘系統(tǒng)的數(shù)據(jù)挖掘包括如下步驟a根據(jù)漏洞信息數(shù)據(jù)庫中的記錄信息,建立結(jié)構(gòu)化的訓(xùn)練文檔集,基于評估函數(shù)及 統(tǒng)計方法來提取漏洞特征向量;b利用已提取的多維特征向量,采用KNN文本分類算法將漏洞文檔模型進(jìn)行自動 分類,對每一類的漏洞信息進(jìn)行數(shù)據(jù)挖掘與知識發(fā)現(xiàn),納入漏洞知識庫中;c把分類模型按各個指標(biāo)對分類結(jié)果進(jìn)行評價或解釋,并以可視化的方式呈現(xiàn)給 用戶,使用戶能夠清晰明了地瀏覽漏洞分類結(jié)果;d運(yùn)用關(guān)聯(lián)規(guī)則挖掘算法,對各個漏洞分類進(jìn)行關(guān)聯(lián)規(guī)則挖掘,形成關(guān)聯(lián)規(guī)則庫, 并納入漏洞知識庫中;e若有最新的單個漏洞信息產(chǎn)生,根據(jù)已有的漏洞分類模型,對新的漏洞信息,進(jìn) 行分類及結(jié)果輸出。優(yōu)選地,所述步驟c具體包括cl對比類別及結(jié)果信息,查看每個類別中的漏洞信息分類結(jié)果,包括其記錄名、當(dāng) 前類、應(yīng)屬類等信息;c2查看該漏洞分類模型的性能,并以圖形化的方式呈現(xiàn)給用戶,具體包括各分類 的查準(zhǔn)率、查全率及兩者綜合指標(biāo)信息。 優(yōu)選地,所述步驟d具體包括dl利用Apriori關(guān)聯(lián)規(guī)則挖掘算法對各組漏洞分類提取關(guān)鍵字,形成頻繁項集, 進(jìn)而運(yùn)用挖掘算法產(chǎn)生關(guān)鍵詞間的關(guān)聯(lián)規(guī)則即每一類文檔對應(yīng)一組關(guān)聯(lián)規(guī)則;d2將漏洞記錄的各數(shù)據(jù)項進(jìn)行對比分析,找出漏洞數(shù)據(jù)之間隱含的關(guān)聯(lián)關(guān)系;d3將關(guān)聯(lián)分析結(jié)果納入漏洞知識庫中。本發(fā)明基于分類和關(guān)聯(lián)分析的漏洞數(shù)據(jù)挖掘方法一方面通過數(shù)據(jù)挖掘中的KNN
6文本分類算法來提取出漏洞信息中隱含的、新穎的、有效的并能被人理解的模式,即是平常 所說的知識。另一方面,通過Apriori關(guān)聯(lián)挖掘算法給出數(shù)據(jù)的某些特性或數(shù)據(jù)之間的規(guī) 則或關(guān)系,是對漏洞信息處理后獲取的更深層次的可用于決策支持的信息。相對于單純的 漏洞信息檢索及數(shù)據(jù)挖掘系統(tǒng)而言,本系統(tǒng)更加能夠有效地挖掘漏洞知識,以形象化的方 式將挖掘性能展現(xiàn)給用戶,有利于對漏洞危害進(jìn)行預(yù)警和防范。
圖1是本發(fā)明流程圖;圖2是對Web中的漏洞自動搜集模塊的流程圖;圖3是漏洞信息管理模塊的功能圖;圖4是構(gòu)造漏洞文檔模型的流程圖;圖5是KNN分類挖掘方法的流程圖;圖6是Apriori關(guān)聯(lián)挖掘算法的流程圖;圖7是本發(fā)明系統(tǒng)原理圖。
具體實施例方式下面結(jié)合附圖對發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說明本發(fā)明一種基于分類和關(guān)聯(lián)分析的漏洞數(shù)據(jù)挖掘方法如下①漏洞信息搜集系統(tǒng),對各安全知識網(wǎng)站公布的漏洞信息進(jìn)行自動搜集處理即網(wǎng) 絡(luò)爬蟲挖掘方法,將Internet上分散的海量信息下載到本地進(jìn)行數(shù)據(jù)處理,并建立原始漏 洞信息數(shù)據(jù)庫;②漏洞數(shù)據(jù)管理系統(tǒng),通過DB接口實現(xiàn)對已有的原始漏洞數(shù)據(jù)庫進(jìn)行信息管理, 包括漏洞查詢、修改、刪除、導(dǎo)入等,并利用漏洞爬蟲技術(shù),實時監(jiān)測是否公布最新漏洞,即 時地更新漏洞信息;③漏洞數(shù)據(jù)挖掘系統(tǒng),根據(jù)漏洞信息數(shù)據(jù)庫中記錄的漏洞信息,建立由漏洞文檔 模型構(gòu)成的結(jié)構(gòu)化的訓(xùn)練文檔集,提取漏洞信息的漏洞特征向量,采用KNN分類算法將漏 洞文檔模型進(jìn)行自動分類得到多組漏洞分類模型,對每一類的漏洞分類模型進(jìn)行數(shù)據(jù)挖掘 與知識發(fā)現(xiàn);把漏洞分類模型按各個指標(biāo)對分類結(jié)果進(jìn)行評價或解釋,并以可視化的方式 呈現(xiàn)給用戶;利用Apriori關(guān)聯(lián)規(guī)則挖掘算法對各組漏洞分類提取關(guān)鍵字,形成頻繁項集, 進(jìn)而運(yùn)用挖掘算法產(chǎn)生關(guān)鍵詞間的關(guān)聯(lián)規(guī)則即每一類漏洞文檔模型對應(yīng)一組關(guān)聯(lián)規(guī)則;最 后將漏洞記錄的各數(shù)據(jù)項進(jìn)行對比分析,找出漏洞數(shù)據(jù)之間隱含的關(guān)聯(lián)關(guān)系,將關(guān)聯(lián)關(guān)系 納入漏洞知識庫中。(如圖7所示)本發(fā)明首先需要將網(wǎng)絡(luò)公告中HTML格式的最新漏洞信息自動轉(zhuǎn)換成規(guī)整的漏洞 記錄數(shù)據(jù)庫中,并且建立漏洞信息管理系統(tǒng);再建立結(jié)構(gòu)化的訓(xùn)練文檔集,采用K-鄰接矩 陣(KNN)文本分類算法將漏洞文檔模型進(jìn)行自動分類,對每一類的漏洞信息進(jìn)行數(shù)據(jù)挖掘 與知識發(fā)現(xiàn);然后利用Apriori關(guān)聯(lián)規(guī)則挖掘算法對各組漏洞分類提取關(guān)鍵字,形成頻繁 項集,進(jìn)而運(yùn)用挖掘算法產(chǎn)生關(guān)鍵詞間的關(guān)聯(lián)規(guī)則(每一類文檔對應(yīng)一組關(guān)聯(lián)規(guī)則);最后 對分類模型和關(guān)聯(lián)規(guī)則進(jìn)行評價,將評價結(jié)果納入知識庫中。如圖1所示,提供了基于分類和關(guān)聯(lián)分析的漏洞數(shù)據(jù)挖掘系統(tǒng),該系統(tǒng)包括以下
7步驟步驟10對安全知識網(wǎng)站(綠盟科技靈nsfocus. net為例)公布的漏洞信息進(jìn) 行自動搜集處理,即通常所說的網(wǎng)絡(luò)爬蟲挖掘方法,將Internet上分散的海量信息下載到 本地進(jìn)行數(shù)據(jù)處理,并建立原始漏洞信息數(shù)據(jù)庫,用戶可以有效觀察到全面且及時的漏洞 fn息o如圖2所示,提供了漏洞自動搜集程序的處理流程,具體包括以下步驟步驟101預(yù)先定義漏洞網(wǎng)頁的搜集規(guī)則對象TaskRule,包括漏洞列表父網(wǎng)頁的起 始鏈接地址(StartLink)、導(dǎo)航關(guān)鍵字(NavigationTag)、采集網(wǎng)頁的范圍(Range)及增量 (Rise)等,其中type標(biāo)識是指漏洞所屬的類型,還有漏洞列表網(wǎng)頁中漏洞詳細(xì)信息子網(wǎng)頁 地址的采集標(biāo)識(CollectionTag),并用此初始化導(dǎo)航鏈接URL隊列;步驟101a判斷導(dǎo)航鏈接URL隊列中的每一地址URL(i),是否被已經(jīng)提取采集 URL(j),初始的隊列出隊完畢后,執(zhí)行步驟106 ;步驟102導(dǎo)航URL隊列的隊首出隊,采用多線程技術(shù),每個網(wǎng)址創(chuàng)建一個線程來處 理;步驟103創(chuàng)建用于網(wǎng)絡(luò)通信的套接字對象,連接目標(biāo)服務(wù)器,并向服務(wù)器發(fā)送 HTTP下載請求,以流數(shù)據(jù)方式接收URL(i)指向網(wǎng)頁的內(nèi)容;步驟104將漏洞詳細(xì)信息子網(wǎng)頁的標(biāo)識關(guān)鍵字作為索引,快速定位漏洞詳細(xì)所在 鏈接地址URL(j);步驟105將頁面中所有子網(wǎng)頁的地址URL(j)加入等待隊列集合中,并返回步驟 101a ;步驟106預(yù)先定義與漏洞信息相關(guān)的搜集字段規(guī)則,包括字段名稱(name)、類型 (type)、前標(biāo)識符(frontID)、后標(biāo)識符(backID)等關(guān)鍵信息,如表1,并將定義規(guī)則保存到 數(shù)據(jù)結(jié)構(gòu)(InfoRule)中;步驟106a判斷導(dǎo)航鏈接URL隊列中的每一地址URL (j),是否已經(jīng)被提取漏洞信 息,初始的隊列出隊完畢后,執(zhí)行步驟結(jié)束;步驟107導(dǎo)航URL隊列的隊首出隊,采用多線程技術(shù)處理;步驟108創(chuàng)建用于網(wǎng)絡(luò)通信的套接字對象,連接目標(biāo)服務(wù)器,并向服務(wù)器發(fā)送 HTTP下載請求,以流數(shù)據(jù)方式接收URL (j)指向網(wǎng)頁的內(nèi)容;步驟109提取漏洞詳細(xì)信息子頁面中的數(shù)據(jù),與用戶定義的關(guān)鍵字庫中的關(guān)鍵字 進(jìn)行信息過濾,根據(jù)前后標(biāo)識符定位漏洞信息的主體部分;步驟20搜集到用戶所需的漏洞字段信息后,將各字段信息導(dǎo)入漏洞信息數(shù)據(jù)庫 中;表1漏洞信息字段
字段名描述“序號”在該漏洞所在的漏洞類型中的唯一編號 如圖3所示,提供了漏洞信息管理程序的處理過程,具體包括以下部分漏洞查 詢、修改、刪除等,并利用漏洞爬蟲技術(shù),實時監(jiān)測是否公布最新漏洞,即時地更新漏洞信 肩、o步驟30將漏洞信息數(shù)據(jù)庫中的記錄數(shù)據(jù)轉(zhuǎn)換成相對應(yīng)的文本數(shù)據(jù),文本名為相 應(yīng)漏洞的名稱。本用例中共有6類漏洞文本數(shù)據(jù),按照表2來創(chuàng)建對應(yīng)的文件目錄。表2漏洞類型表 步驟40預(yù)處理過程主要包括一是要根據(jù)禁用詞集去除文檔中的語義虛泛的禁 用詞,例如“的、雖然、the、as”等;二是要利用特征詞典集(包括通用集和專業(yè)集)進(jìn)行分 詞,如果出現(xiàn)詞集中沒有的詞,則將它整體作為一詞,并且需要記錄以便人工分詞。步驟50在使用KNN分類算法挖掘知識之前,需要建立漏洞文檔模型,用空間向量 模型來代表漏洞文檔信息。如圖4所示,提供了構(gòu)造漏洞文檔模型的處理流程,具體包括以下步驟步驟501根據(jù)概念集將詞語映射為同一概念,如“計算機(jī)”和“電腦”,需要映射為 “計算機(jī)”;對于未登錄詞,則選擇與之共現(xiàn)率最多的詞作為其概念;步驟502根據(jù)特征詞在某一文檔中出現(xiàn)的頻率高低,提取出頻率較高的一般特征 集;步驟503利用5種特征評估函數(shù),包括信息增益、期望交叉熵、文本證據(jù)權(quán)、機(jī)率 比、詞頻法等,對一般特征集進(jìn)行縮減,將縮減結(jié)果存入文檔矢量庫;步驟504采用基于統(tǒng)計的自動生成方式,其基本思想是把文中與類別密切相關(guān)的 句子挑選出來,這樣的句子往往位于特殊的部分或含有較多的特征項,一般以句子權(quán)重函 數(shù)為評價標(biāo)準(zhǔn)。步驟505將提取出的信息,構(gòu)造漏洞文檔模型;步驟60用KNN分類挖掘方法將漏洞文檔模型進(jìn)行自動分類,對每一類的漏洞信息 進(jìn)行數(shù)據(jù)挖掘與知識發(fā)現(xiàn);如圖5所示,提供了 KNN分類挖掘算法的處理流程,具體包括以下步驟步驟601根據(jù)特征項集合重新描述訓(xùn)練漏洞文本向量;步驟602在新的漏洞到達(dá)后,根據(jù)特征詞分詞新文本,確定新文本的向量表示;步驟603在訓(xùn)練漏洞文本集中選出與新漏洞最相似的K個漏洞文本,計算公式為 其中,K值采用先定一個初始值,然后根據(jù)實驗測試的結(jié)果調(diào)整K值,一般初始值 定為幾百到幾千之間。
步驟604在新漏洞的K個鄰居中,依次計算每類的權(quán)重,計算公式為 其中,i為新漏洞的特征向量,及m(無式)為相似度計算公式,與上一步驟的計算公 式相同,而:為類別屬性函數(shù),g卩如果&屬于類Q,那么函數(shù)值為1,否則為0。步驟605比較類的權(quán)重,將該漏洞文檔分到權(quán)重最大的那個類別中。步驟70利用Apriori關(guān)聯(lián)規(guī)則挖掘算法對各漏洞分類提取關(guān)鍵字,形成頻繁項 集,進(jìn)而運(yùn)用挖掘算法產(chǎn)生關(guān)鍵詞間的關(guān)聯(lián)規(guī)則;如圖6所示,提供了 Apriori關(guān)聯(lián)規(guī)則挖掘算法的處理流程,具體包括以下步驟步驟701執(zhí)行初始化操作,主要包括遍歷漏洞事務(wù)數(shù)據(jù)庫D (在此漏洞文件相當(dāng)于 事務(wù)數(shù)據(jù)),設(shè)置最小支持度閥值min_SUp。步驟702找到所有支持度大于最小支持度的項集,這些項集稱為頻繁集I = {II, 12,…,Im},設(shè)A,Bczl,則A = B是所期望的關(guān)聯(lián)規(guī)則。步驟703規(guī)則挖掘過程中,剪枝是一個重要過程。候選集中至少有一個子集不是 頻繁數(shù)據(jù)項集,則刪除該數(shù)據(jù)項集合;步驟704計算支持度和置信度,公式如下支持度support(A => B)=P(A U B)置信度confid—A 々 B)=P(B|A)= support(MJB)
sup port(A)對于每個頻繁數(shù)據(jù)項集A,若BgA,B興①;(且 confidence (B ^ (A-B))彡 minconf,則構(gòu)成關(guān)聯(lián)規(guī)則 B — (A-B);步驟704a判斷支持度是否達(dá)到最小支持度閥值min_Sup,若未達(dá)到,則返回步驟 702;若達(dá)到,則結(jié)束;步驟80對漏洞分類挖掘效果進(jìn)行評價。其中KNN分類中的指標(biāo)是查準(zhǔn)率和召回
率,查準(zhǔn)率是所有判斷的漏洞中與人工分類結(jié)果吻合的文本所占的比率。其數(shù)學(xué)公式為
碰粉..、實際分類的漏洞數(shù) 查準(zhǔn)分難正確漏洞數(shù);查全率是人工分類結(jié)果應(yīng)有的漏洞中分類系統(tǒng)吻合的文本所占的比率,其數(shù)學(xué)公 式為
杳仝數(shù) m— 應(yīng)有漏洞數(shù)
lreCa 分類的正確漏洞數(shù); 步驟90將漏洞分類過程中提取出的每一類漏洞的特征向量,以及關(guān)聯(lián)挖掘過程
中提取的頻繁集及關(guān)聯(lián)規(guī)則,納入到漏洞知識庫中。
權(quán)利要求
一種基于分類和關(guān)聯(lián)分析的漏洞數(shù)據(jù)挖掘方法,其特征在于,所述方法括如下①漏洞信息搜集系統(tǒng),對各安全知識網(wǎng)站公布的漏洞信息進(jìn)行自動搜集處理即網(wǎng)絡(luò)爬蟲挖掘方法,將Internet上分散的海量信息下載到本地進(jìn)行數(shù)據(jù)處理,并建立原始漏洞信息數(shù)據(jù)庫;②漏洞數(shù)據(jù)管理系統(tǒng),通過DB接口實現(xiàn)對已有的原始漏洞數(shù)據(jù)庫進(jìn)行信息管理,包括漏洞查詢、修改、刪除、導(dǎo)入、更新,并利用漏洞爬蟲技術(shù),實時監(jiān)測是否公布最新漏洞,即時地更新漏洞信息;③漏洞數(shù)據(jù)挖掘系統(tǒng),根據(jù)漏洞信息數(shù)據(jù)庫中記錄的漏洞信息,建立由漏洞文檔模型構(gòu)成的結(jié)構(gòu)化的訓(xùn)練文檔集,提取漏洞信息的漏洞特征向量,采用KNN分類算法將漏洞文檔模型進(jìn)行自動分類得到多組漏洞分類模型,對每一類的漏洞分類模型進(jìn)行數(shù)據(jù)挖掘與知識發(fā)現(xiàn);把漏洞分類模型按各個指標(biāo)對分類結(jié)果進(jìn)行評價或解釋,并以可視化的方式呈現(xiàn)給用戶;利用Apriori關(guān)聯(lián)規(guī)則挖掘算法對各組漏洞分類提取關(guān)鍵字,形成頻繁項集,進(jìn)而運(yùn)用挖掘算法產(chǎn)生關(guān)鍵詞間的關(guān)聯(lián)規(guī)則即每一類漏洞文檔模型對應(yīng)一組關(guān)聯(lián)規(guī)則;最后將漏洞記錄的各數(shù)據(jù)項進(jìn)行對比分析,找出漏洞數(shù)據(jù)之間隱含的關(guān)聯(lián)關(guān)系,將關(guān)聯(lián)關(guān)系納入漏洞知識庫中。
2.如權(quán)利要求1所述的一種基于分類和關(guān)聯(lián)分析的漏洞數(shù)據(jù)挖掘方法,其特征在于所 述漏洞信息搜集系統(tǒng)的信息搜集,包括如下步驟A預(yù)先定義漏洞網(wǎng)頁的搜集規(guī)則,包括漏洞列表父網(wǎng)頁的起始鏈接地址、導(dǎo)航關(guān)鍵字、 采集網(wǎng)頁的范圍及增量,還有漏洞列表網(wǎng)頁中漏洞詳細(xì)信息子網(wǎng)頁地址的采集標(biāo)識;B預(yù)先定義與漏洞信息相關(guān)的搜集字段規(guī)則,包括字段名稱、類型、前標(biāo)識符、后標(biāo)識符 等關(guān)鍵信息;C創(chuàng)建用于網(wǎng)絡(luò)通信的套接字對象,連接目標(biāo)服務(wù)器,并向服務(wù)器發(fā)送HTTP下載請求, 以流數(shù)據(jù)方式接收網(wǎng)頁內(nèi)容信息;D將漏洞詳細(xì)信息子網(wǎng)頁的標(biāo)識關(guān)鍵字作為索引,快速定位漏洞詳細(xì)所在鏈接地址,并 將頁面中所有子網(wǎng)頁的地址加入等待隊列集合中;E采用多線程技術(shù),提取漏洞詳細(xì)信息子頁面中的數(shù)據(jù),與用戶定義的關(guān)鍵字庫中的關(guān) 鍵字進(jìn)行信息過濾,根據(jù)前后標(biāo)識符定位漏洞信息的主體部分;F搜集到用戶所需的字段信息后,將各字段信息導(dǎo)入漏洞信息數(shù)據(jù)庫中。
3.如權(quán)利要求1所述的一種基于分類和關(guān)聯(lián)分析的漏洞數(shù)據(jù)挖掘方法,其特征在于所 述漏數(shù)據(jù)管理系統(tǒng)的數(shù)據(jù)管理包括如下步驟1)通過DB接口中間件,實現(xiàn)對漏洞信息數(shù)據(jù)庫進(jìn)行各種模糊查詢及檢索的事務(wù)操作;2)實現(xiàn)對漏洞信息數(shù)據(jù)庫中的記錄進(jìn)行修改事務(wù)操作,并更新到漏洞信息數(shù)據(jù)庫中;3)實現(xiàn)對漏洞信息數(shù)據(jù)庫中的記錄進(jìn)行刪除事務(wù)操作,并更新到漏洞信息數(shù)據(jù)庫中;4)采用預(yù)先定義漏洞網(wǎng)頁的搜集規(guī)則,及時地更新漏洞信息,將最新的漏洞記錄存儲 到本地漏洞信息數(shù)據(jù)庫中,所述漏洞網(wǎng)頁的搜集規(guī)則,包括漏洞列表父網(wǎng)頁的起始鏈接地 址、導(dǎo)航關(guān)鍵字、采集網(wǎng)頁的范圍及增量,還有漏洞列表網(wǎng)頁中漏洞詳細(xì)信息子網(wǎng)頁地址的 采集標(biāo)識。
4.如權(quán)利要求1所述的一種基于分類和關(guān)聯(lián)分析的漏洞數(shù)據(jù)挖掘方法,其特征在于所 述漏洞數(shù)據(jù)挖掘系統(tǒng)的數(shù)據(jù)挖掘包括如下步驟a根據(jù)漏洞信息數(shù)據(jù)庫中的記錄信息,建立結(jié)構(gòu)化的訓(xùn)練文檔集,基于評估函數(shù)及統(tǒng)計 方法來提取漏洞特征向量;b利用已提取的多維特征向量,采用KNN文本分類算法將漏洞文檔模型進(jìn)行自動分類, 對每一類的漏洞信息進(jìn)行數(shù)據(jù)挖掘與知識發(fā)現(xiàn),納入漏洞知識庫中;c把分類模型按各個指標(biāo)對分類結(jié)果進(jìn)行評價或解釋,并以可視化的方式呈現(xiàn)給用戶, 使用戶能夠清晰明了地瀏覽漏洞分類結(jié)果;d運(yùn)用關(guān)聯(lián)規(guī)則挖掘算法,對各個漏洞分類進(jìn)行關(guān)聯(lián)規(guī)則挖掘,形成關(guān)聯(lián)規(guī)則庫,并納 入漏洞知識庫中;e若有最新的單個漏洞信息產(chǎn)生,根據(jù)已有的漏洞分類模型,對新的漏洞信息,進(jìn)行分 類及結(jié)果輸出。
5.如權(quán)利要求4所述的一種基于分類和關(guān)聯(lián)分析的漏洞數(shù)據(jù)挖掘方法,其特征在于, 所述步驟c具體包括Cl對比類別及結(jié)果信息,查看每個類別中的漏洞信息分類結(jié)果,包括其記錄名、當(dāng)前 類、應(yīng)屬類等信息;c2查看該漏洞分類模型的性能,并以圖形化的方式呈現(xiàn)給用戶,具體包括各分類的查 準(zhǔn)率、查全率及兩者綜合指標(biāo)信息。
6.如權(quán)利要求4所述的一種基于分類和關(guān)聯(lián)分析的漏洞數(shù)據(jù)挖掘方法,其特征在于, 所述步驟d具體包括dl利用Apriori關(guān)聯(lián)規(guī)則挖掘算法對各組漏洞分類提取關(guān)鍵字,形成頻繁項集,進(jìn)而 運(yùn)用挖掘算法產(chǎn)生關(guān)鍵詞間的關(guān)聯(lián)規(guī)則即每一類文檔對應(yīng)一組關(guān)聯(lián)規(guī)則;d2將漏洞記錄的各數(shù)據(jù)項進(jìn)行對比分析,找出漏洞數(shù)據(jù)之間隱含的關(guān)聯(lián)關(guān)系; d3將關(guān)聯(lián)分析結(jié)果納入漏洞知識庫中。
全文摘要
本發(fā)明一種基于分類和關(guān)聯(lián)分析的漏洞數(shù)據(jù)挖掘方法,將公告中HTML格式的最新漏洞信息自動轉(zhuǎn)換成規(guī)整的漏洞記錄數(shù)據(jù)庫中,并且建立漏洞信息管理系統(tǒng),通過數(shù)據(jù)庫(DB)接口對數(shù)據(jù)庫中的漏洞記錄信息進(jìn)行事務(wù)操作;根據(jù)漏洞數(shù)據(jù)庫中的記錄信息,提取漏洞特征向量;利用已提取的多維特征向量,并采用K-鄰接矩陣文本分類算法將漏洞文檔模型進(jìn)行自動分類,對每一類的漏洞信息進(jìn)行數(shù)據(jù)挖掘與知識發(fā)現(xiàn);把分類模型按各個指標(biāo)對分類結(jié)果進(jìn)行評價或解釋,并以可視化的方式呈現(xiàn)給用戶。利用Apriori關(guān)聯(lián)規(guī)則挖掘算法對各組漏洞分類提取關(guān)鍵字,形成頻繁項集,進(jìn)而運(yùn)用挖掘算法產(chǎn)生關(guān)鍵詞間的關(guān)聯(lián)規(guī)則;最后找出漏洞數(shù)據(jù)之間隱含的關(guān)聯(lián)關(guān)系。
文檔編號G06F17/30GK101853277SQ20101017379
公開日2010年10月6日 申請日期2010年5月14日 優(yōu)先權(quán)日2010年5月14日
發(fā)明者喬文文, 朱斌, 梁靜濤, 畢碩本, 王啟富 申請人:南京信息工程大學(xué)