彭 華,李宗壽
(吉首大學(xué)信息科學(xué)與工程學(xué)院,湖南吉首 416000)
基于SVM的CVE漏洞分類框架構(gòu)造*
彭 華,李宗壽
(吉首大學(xué)信息科學(xué)與工程學(xué)院,湖南吉首 416000)
針對CVE字典缺少分類和歸納能力,無法為多重系統(tǒng)漏洞設(shè)計(jì)有效防御策略的局限,提出了CVE分類器的CVE漏洞分類框架.該CVE分類器根據(jù)不同的分類特征對CVE進(jìn)行分類,在支持向量機(jī)的幫助下,CVE分類器自動地從相關(guān)的漏洞數(shù)據(jù)庫(包括BID,X-Force和Secunia)中抽取訓(xùn)練數(shù)據(jù),并基于該訓(xùn)練數(shù)據(jù)為分類特征建立學(xué)習(xí)模型.
支持向量機(jī)(SVM);公共漏洞和暴露(CVE);分類特征
安全漏洞是在硬件、軟件、協(xié)議的具體實(shí)現(xiàn)或系統(tǒng)安全策略上存在的缺陷,使攻擊者能夠在未授權(quán)的情況下訪問或破壞系統(tǒng).[1]CVE字典報(bào)告了安全漏洞每年顯著的擴(kuò)展,目前保存著30 648個(gè)漏洞信息[2].通過公開列舉已知的漏洞并以合適的方式命名,多年以來CVE字典在促進(jìn)安全信息交換、脆弱性分析方面發(fā)揮著重要作用,而現(xiàn)在主要為眾多安全資源充當(dāng)索引.然而,由于其缺少分類和歸納能力,在為多重漏洞設(shè)計(jì)防御策略時(shí),該字典就無能為力了.盡管基于一定分類特征的漏洞分類框架已經(jīng)存在,但由于其特征抽取和分類過程效率不高,使得它們很少被應(yīng)用于現(xiàn)實(shí)世界的事件響應(yīng).為解決該問題并加強(qiáng)CVE字典在漏洞分析和預(yù)防入侵的作用,本文提出了一個(gè)稱為CVE分類器的CVE漏洞分類框架.
通過使用機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘技術(shù),本文提出的CVE漏洞分類框架將CVE字典從漏洞的枚舉器轉(zhuǎn)換成擁有分類和歸納能力的分類器.該框架將漏洞的分類作為1個(gè)監(jiān)督學(xué)習(xí)問題,使用SVM為每個(gè)分類特征構(gòu)造1個(gè)學(xué)習(xí)模型;并自動從漏洞數(shù)據(jù)庫(主要來自BID,X-Force和Secunia)中為分類特征抽取訓(xùn)練數(shù)據(jù)以避免費(fèi)時(shí)的手工操作.此外,本文還使用了詞干法和停用詞過濾技術(shù)來減少由CVE特征向量創(chuàng)建的特征空間的維度.
CVE字典中所有條目使用相同的模板進(jìn)行描述,該模板包括3個(gè)組成部分:基本信息(General),引用(Citation)和摘要(Summary),如表1所示,表1中列出了CVE-2004-0445和CVE-2007-2151的漏洞信息.
表1 CVE字典中CVE-2004-0445和CVE-2007-2151的漏洞
在基本信息部分中,每個(gè)CVE條目被賦予1個(gè)唯一標(biāo)識符,其狀態(tài)信息(candidate或standard)也可被跟蹤.引用部分提供了與該漏洞相關(guān)的引用資源集,通常包括與該漏洞相關(guān)的安全報(bào)告網(wǎng)址和在不同漏洞數(shù)據(jù)庫中的位置.由表1中可以看到這2個(gè)漏洞在BID,X-Force和Secunia中的引用.摘要部分則描述了該漏洞的概要信息,通常提供有漏洞的系統(tǒng)及安全漏洞被利用后的征兆等信息,從表1還可以很清晰地看到CVE字典很少提供分類特征(如:漏洞成因和影響)的信息,即使這些分類信息確實(shí)存在,也會因?yàn)槠淞闵⒌奈淖置枋鍪沟眯畔⒑茈y抽取.
分類特征的存在使得針對成群的漏洞設(shè)計(jì)安全策略成為了可能.此外,根據(jù)分類特征將安全漏洞系統(tǒng)地分類進(jìn)一個(gè)有組織的結(jié)構(gòu)中,能夠自動地對新出現(xiàn)的安全漏洞進(jìn)行分類.顯而易見,分類和歸納能力依賴于所選擇的分類特征集合.
本文設(shè)計(jì)的框架能自動地集成存在于各種漏洞數(shù)據(jù)庫(包括BID,X-Force和Secunia)中的分類特征.例如:從X-Force和Secunia中獲得Vulnerability Impact的特征,從BID和Secunia中獲得Exploitation Location的特征.對于每個(gè)分類特征,CVE分類器定義了其維度(例如:分類的個(gè)數(shù)),在此上下文中,該漏洞在漏洞的影響(Vulnerability Impact)和漏洞的嚴(yán)重性(Vulnerability Severity)的分類特征上分別有11,5個(gè)分類.若1個(gè)CVE條目同時(shí)屬于多個(gè)分類,該分類特征是多元的,否則是一元的.在CVE分類器中,由于1個(gè)CVE條目存在多方面不好的影響,因此,Vulnerability Impact特征是多元的.例如:CVE-2004-0445可能導(dǎo)致DoS和非授權(quán)系統(tǒng)訪問.另外,Vulnerability Severity特征是一元的,在該特征上,CVE-2004-0445被標(biāo)記為極度嚴(yán)重,CVE-2007-2151被標(biāo)記為較嚴(yán)重.
本框架以分類特征為基礎(chǔ)對CVE漏洞進(jìn)行分類的過程分為3個(gè)階段:CVE描述;構(gòu)造學(xué)習(xí)模型;無標(biāo)記樣例的分類.在第1階段中,1個(gè)CVE的文本片段被轉(zhuǎn)換成可用于機(jī)器學(xué)習(xí)的格式.即:文本中詞的位置被忽略,每個(gè)CVE被當(dāng)做1個(gè)詞包,并且使用特征向量進(jìn)一步描述,詞包中的每個(gè)詞將充當(dāng)1個(gè)特征(或?qū)傩?,該特征的值就是對應(yīng)CVE條目中該詞出現(xiàn)的次數(shù).為減少由所有CVE特征向量構(gòu)成的特征空間的維度(特征的數(shù)目),CVE分類器使用詞干法將具有相同詞干的詞進(jìn)行合并.停用詞由于僅僅具有語法功能,如典型的冠詞、助詞、連詞、代詞、助動詞、介詞等,因此可以過濾停用詞以便進(jìn)一步減少特征空間的維度.通過正?;卣飨蛄坎坏薈VE條目長度上的差異,而且讓它們擁有了相同的單位長度.
在學(xué)習(xí)模型構(gòu)建階段,CVE分類器首先為每個(gè)特征自動地從漏洞數(shù)據(jù)庫BID,X-Force和Secunia中搜集訓(xùn)練數(shù)據(jù),然后建立SVM學(xué)習(xí)模型.每個(gè)CVE條目的極度簡短的描述使得CVE特征向量是稀疏的,這也使得能夠?qū)VM應(yīng)用到此框架中.由于CVE文本通常是由領(lǐng)域?qū)<視鴮懙?,不太可能包含有噪聲的或多余的信息,因此SVM在框架中的應(yīng)用也避免了復(fù)合特征選擇的過程.數(shù)據(jù)過分?jǐn)M合的SVM的魯棒性和獨(dú)立于特征空間維度的學(xué)習(xí)能力,也有助于CVE分類過程的簡化和自動化.
最后階段中,對不能包含在訓(xùn)練數(shù)據(jù)中的無標(biāo)記CVE條目,由CVE分類器進(jìn)行分類.對于1個(gè)多元特征,學(xué)習(xí)模型由多個(gè)相互區(qū)別的SVM二類分類器組成;對于1個(gè)一元特征,通常建立1個(gè)多類分類器.借助該學(xué)習(xí)模型,CVE字典中所有CVE漏洞根據(jù)分類特征系統(tǒng)地進(jìn)行組織.例如,若順序地根據(jù)1組分類特征(如Service Type、Vulnerability Cause、Exploitation Location)進(jìn)行分類,則能建立1個(gè)漏洞層次結(jié)構(gòu).
2.1 構(gòu)建CVE條目的特征向量
為將CVE條目轉(zhuǎn)換成對應(yīng)的結(jié)構(gòu)化描述(適合于使用機(jī)器學(xué)習(xí)算法進(jìn)行自動化的描述),CVE分類器首先將每個(gè)CVE條目摘要部分的文本作為1個(gè)token的序列,通過忽略文本中token的具體位置,該CVE條目被描述為1個(gè)詞包.CVE的特征向量可表示為:每個(gè)不同的token作為一個(gè)特征,且某token的出現(xiàn)次數(shù)作為對應(yīng)特征的值.CVE分類的特征空間由所有CVE的特征向量的集合構(gòu)成,其維度是該學(xué)習(xí)任務(wù)計(jì)算復(fù)雜性的關(guān)鍵性決定因素.為減少特征空間的維度,本框架使用了信息檢索中的Porter詞干算法[3].具有相同詞干根的token通過去除復(fù)數(shù)、過去分詞和其他后綴來進(jìn)行合并;得到的詞干又進(jìn)一步轉(zhuǎn)換成對應(yīng)的小寫形式以便壓縮特征空間.例如:詞干法處理完后且被放入特征向量中之前,表1中CVE-2004-0445的token:security,firewall和cause,分別被轉(zhuǎn)換成它們的詞干secur,firewal和caus.CVE-2004-0445和CVE-2007-2151條目的詞干法處理結(jié)果如表2的“Word Count”所示.
表2 CVE字典中CVE-2004-0445和CVE-2007-2151的特征向量
本框架為進(jìn)一步減少特征空間的維度使用了停用詞過濾過程.若某個(gè)token僅僅只有語法功能,在句子中沒有增加新的語義,該token就被當(dāng)作1個(gè)停用詞.本框架中的停用詞列表包含了418個(gè)token,大多數(shù)都是冠詞、助詞、連詞、代詞、助動詞和介詞.例如:在停用詞過濾過程中,CVE-2004-0445中形如the、in和through這樣的token將從其特征向量中移除.本框架將在整個(gè)CVE條目中出現(xiàn)次數(shù)超過某指定的閾值(默認(rèn)為3)的詞配置為候選特征.
為消除CVE條目長度的不一致,本框架對每個(gè)CVE特征向量正?;癁閱挝婚L度,通過將CVE特征向量中每個(gè)屬性的權(quán)重除以該向量的歐幾里德長度來得到.
2.2 使用SVM進(jìn)行CVE分類
對于1個(gè)給定的訓(xùn)練數(shù)據(jù)集T={,yi}(i=1,…,m),每個(gè)數(shù)據(jù)點(diǎn)(或樣例)∈Rd具有d個(gè)特征和一個(gè)真標(biāo)記yi∈Y={l1,…,lk}.監(jiān)督學(xué)習(xí)任務(wù)是為了構(gòu)建1個(gè)模型,該模型試圖平衡T上的分類準(zhǔn)確性和在不可見樣例上的歸納能力.當(dāng)模型賦予給某個(gè)樣例的標(biāo)記與其真標(biāo)記沖突時(shí),分類錯(cuò)誤就發(fā)生了.SVM試圖構(gòu)建在隨機(jī)選擇樣例上最小化分類錯(cuò)誤上邊界的模型[4],當(dāng)標(biāo)記集Y={l1=-1,l2=+1}時(shí),該學(xué)習(xí)模型就是1個(gè)二類分類器,通過尋找分離超平面來區(qū)分?jǐn)?shù)據(jù)點(diǎn)是屬于正值類還是負(fù)值類.這樣,從超平面到最近的正例和負(fù)例的最短路徑的總和被最大化.分離超平面可以表示為+b=0,權(quán)重向量ˉw∈Rd對于超平面是正常的,操作符(·)計(jì)算了向量和的內(nèi)積,b是偏移量.1個(gè)SVM二類分類器的目標(biāo)函數(shù)可以表示為最小化‖w‖2,其中,Cb是分類錯(cuò)誤的懲罰參數(shù),ξi(ξi≥0,i=1,…,m)為T中第i個(gè)樣例的非負(fù)松弛變量;對于正例,ˉw·ˉxi+b≥+1-ξi;而對于負(fù)例+b≤-1+ξi.顯然,參數(shù)Cb控制了訓(xùn)練錯(cuò)誤和分類準(zhǔn)確性間的平衡.
圖1描述了Vulnerability Impact特征的gain system access分類的二元模型.正例(如CVE-2004-0445)以實(shí)心圓表示;負(fù)例(如CVE-2007-2151)以空心圓表示;數(shù)據(jù)點(diǎn)則充當(dāng)支持向量,在圖1中以額外的圓表示.例如:CVE-2004-0445和CVE-2007-2151就是支持向量并且各自存在于超平面Hpos:+b=1和Hneg:+b=-1上.顯然,沒有任何數(shù)據(jù)點(diǎn)落在Hpos和Hneg間,分離超平面與Hpos和Hneg的距離是相等的.無標(biāo)記的CVE-2008-0005被圖1的二類分類器賦予負(fù)值,因?yàn)樗湓诜蛛x超平面的負(fù)的一邊.
圖1 不可分離訓(xùn)練數(shù)據(jù)集的超平面
圖2 多類模型下對樣例的正確分類
圖2描述了通過多類優(yōu)化方法建立的學(xué)習(xí)模型,其中,帶有不同標(biāo)記的圓賦予到數(shù)據(jù)點(diǎn)上,帶有Labeli圓的高度表示其信任度,該信任度由數(shù)據(jù)點(diǎn)ˉx的特征向量和W的第i行的內(nèi)積進(jìn)行定義,正確的標(biāo)記被繪制為1個(gè)實(shí)心圓.顯而易見,圖2的學(xué)習(xí)模型正確地對數(shù)據(jù)點(diǎn)進(jìn)行分類.從目標(biāo)函數(shù)的Wolfe對偶形式和1個(gè)SVM分類器的解決方案來看,能觀察到數(shù)據(jù)點(diǎn)僅僅以內(nèi)積的形式出現(xiàn).通過指定1個(gè)映射函數(shù)Ф:Rd→H,能將訓(xùn)練數(shù)據(jù)的特征向量從空間Rd轉(zhuǎn)換至擁有更高維度(可能無限)的空間H,這樣,構(gòu)建在空間H中的模型僅僅通過Ф(xi)Ф(xj)形式的函數(shù)依賴于數(shù)據(jù)點(diǎn).使用核心函數(shù)K(xi,xj)=Ф(xi)Ф(xj)能在目標(biāo)函數(shù)及其約束中用K(xi,xj)替換xi·xj;并通過使用K而不是Ф進(jìn)行計(jì)算來建立空間H下的學(xué)習(xí)模型.同樣,1個(gè)不可見樣例的標(biāo)記可以通過函數(shù)K而不是Ф,計(jì)算其特征向量和參數(shù)w的內(nèi)積來獲得.本框架中的核心函數(shù)可以是多項(xiàng)式函數(shù),徑向基函數(shù)或sigmoid函數(shù)[4].
3.1分類特征的訓(xùn)練數(shù)據(jù)生成
作為1個(gè)監(jiān)督學(xué)習(xí)任務(wù),為分類特征構(gòu)建的學(xué)習(xí)模型要求訓(xùn)練數(shù)據(jù)以T={,yi}(i=1,…,m)形式進(jìn)行表達(dá).其中∈Rd是第i個(gè)數(shù)據(jù)點(diǎn)的特征向量;yi∈Y={l1,…,lk}是其真標(biāo)記.顯然,若是手動地搜集和標(biāo)記T,將費(fèi)時(shí)費(fèi)力.因此,本框架通過使用每個(gè)CVE條目中的引用池(如:表1中CVE-2004-0445或CVE-2007-2151的引用部分)來自動產(chǎn)生訓(xùn)練數(shù)據(jù).CVE中大量的引用為CVE分類器提供了搜集分類信息的豐富資源,另一方面,不同資源中私有的數(shù)據(jù)格式、沖突的分類模式以及不一致的特征含義使整個(gè)信息抽取過程復(fù)雜化了.考慮到特征數(shù)據(jù)的引用次數(shù)和質(zhì)量,本框架主要使用漏洞數(shù)據(jù)庫BID,X-Force和Secunia作為來源產(chǎn)生訓(xùn)練數(shù)據(jù).
BID的條目使用模板來進(jìn)行創(chuàng)建,該模板由4個(gè)部分組成:Info,Vulnerable,Discussion和Exploit,其中Info部分包含了問題中條目的唯一性標(biāo)識和描述性標(biāo)題,如表3所示.Vulnerable部分則列出了有漏洞的系統(tǒng)或產(chǎn)品,用“+”號來表示漏洞的主要貢獻(xiàn)者,用“-”號表示次要的貢獻(xiàn)者.與BID比較而言,Secunia漏洞數(shù)據(jù)庫也通過一定的特征對安全漏洞進(jìn)行分類,BID和Secunia在一些公共的分類特征(如:Exploitation Location)上對漏洞進(jìn)行分類.同時(shí),它們在其他的分類特征上是互補(bǔ)的,例如:Vulnerability Cause僅存在于BID,而Vulnerability Severity僅在Secunia出現(xiàn).
表3 BID漏洞數(shù)據(jù)庫中BID-10336和BID-23544條目
續(xù)表
3.2 構(gòu)造SVM學(xué)習(xí)模型
在為分類特征搜集完訓(xùn)練數(shù)據(jù)后,就可使用SVM建立學(xué)習(xí)模型.當(dāng)分類特征的維度(標(biāo)記集Y的大小)是2時(shí),學(xué)習(xí)模型就是1個(gè)SVM二類分類器.對于|Y|>2的分類特征,學(xué)習(xí)問題使用多類到二類削減方法被分解成|Y|個(gè)二類分類任務(wù).然后,使用1對多訓(xùn)練方法建立|Y|個(gè)二類分類器;通過將訓(xùn)練數(shù)據(jù)中具有l(wèi)i標(biāo)記的數(shù)據(jù)點(diǎn)作為正例,剩余的數(shù)據(jù)點(diǎn)作為負(fù)例,將Y的li標(biāo)記的學(xué)習(xí)任務(wù)轉(zhuǎn)換為2個(gè)分類.例如: Gain System Access是分類特征Vulnerability Impact中11個(gè)分類中的1個(gè).在其訓(xùn)練數(shù)據(jù)中,CVE-2004-0445被認(rèn)為是正例,CVE-2007-2151被認(rèn)為是負(fù)例,即使后者擁有DoS的真標(biāo)記.當(dāng)分類特征是一元的情況下,本框架也為其創(chuàng)建1個(gè)多類分類器而不是將其削減為二類分類任務(wù).
通過命名標(biāo)準(zhǔn)化和按時(shí)間順序列舉所有已知漏洞,CVE字典已成為安全資源和信息交互的媒介和中樞.本文通過設(shè)計(jì)一種新的CVE分類框架即CVE分類器,提供了漏洞的分類和歸納的能力,加強(qiáng)了CVE字典的功能.為下一步研究數(shù)據(jù)融合和數(shù)據(jù)清理過程來消除訓(xùn)練數(shù)據(jù)的不一致,采用n倍交叉驗(yàn)證方法來評估學(xué)習(xí)模型的效果.
[1] 賈俊新.基于CVE知識庫的主機(jī)入侵防御系統(tǒng)[D].哈爾濱:哈爾濱理工大學(xué),2008.
[2] 李 菲.基于CVE的網(wǎng)絡(luò)入侵防御系統(tǒng)的研究和實(shí)現(xiàn)[D].哈爾濱:哈爾濱理工大學(xué),2008.
[3] 吳恩竹,錢 慶,胡鐵軍,等.詞干提取方法及工具的對比分析研究[J].圖書情報(bào)工作,2012,56(15):109-115.
[4] 何其慧,王 翠,王軍軍.基于隨機(jī)模糊樣本的統(tǒng)計(jì)學(xué)習(xí)理論基礎(chǔ)[J].合肥學(xué)院學(xué)報(bào):自然科學(xué)版,2011,21(3):5-11.
(責(zé)任編輯 陳炳權(quán))
Construction of a Categorization Framework for CVE Based on SVM
PENG Hua,LI Zong-shou
(College of Information Science and Engineering,Jishou University,Jishou 416000,Hunan China)
The CVE dictionary can not design effective defense strategies for clustered system’s vulnerabilities because of it’s lack of categorization and generalization capabilities.To address such shortcomings,this paper propose a CVE categorization framework called CVE Classifier,which can categorize CVEs according to various taxonomic features.CVE classifier automatically extract the training data from the associated vulnerability databases (including:BID,X-Force and Secunia)and builds learning models for taxonomic features based on it by using SVM.
Support Vector Machine(SVM);Common Vulnerabilities and Exposures(CVE);taxonomic feature
TP393.08
A
10.3969/j.issn.1007-2985.2013.01.016
1007-2985(2013)01-0066-06
2012-10-26
湖南省科技廳科技計(jì)劃資助項(xiàng)目(2011FJ3209);湖南省教育廳科學(xué)研究資助項(xiàng)目(11C1025)
彭 華(1980-),男,湖南吉首人,吉首大學(xué)信息科學(xué)與工程學(xué)院講師,碩士,主要從事網(wǎng)絡(luò)安全和嵌入式系統(tǒng)研究.