999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

S-C 特征提取的計(jì)算機(jī)漏洞自動(dòng)分類(lèi)算法*

2020-07-10 12:29:18任家東李亞洲劉佳新
計(jì)算機(jī)與生活 2020年7期
關(guān)鍵詞:特征提取分類(lèi)文本

任家東,王 倩+,王 菲,李亞洲,劉佳新

1.燕山大學(xué) 信息科學(xué)與工程學(xué)院,河北 秦皇島066001

2.河北省計(jì)算機(jī)虛擬技術(shù)與系統(tǒng)集成實(shí)驗(yàn)室,河北 秦皇島066001

1 引言

計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,使得計(jì)算機(jī)網(wǎng)絡(luò)在經(jīng)濟(jì)生產(chǎn)、社會(huì)生活、教育、科技、國(guó)防等領(lǐng)域發(fā)揮著極其重要的作用。網(wǎng)絡(luò)在為人們帶來(lái)諸多便利的同時(shí),也隨之產(chǎn)生了一系列的安全問(wèn)題,如惡意攻擊、盜竊機(jī)密數(shù)據(jù)、種植病毒等。通過(guò)網(wǎng)絡(luò)漏洞進(jìn)行網(wǎng)絡(luò)攻擊是攻擊者最常采用的手段之一,不僅會(huì)對(duì)大眾的生活產(chǎn)生嚴(yán)重的影響,威脅人們的信息安全、財(cái)產(chǎn)安全,甚至?xí)孤﹪?guó)家機(jī)密等,嚴(yán)重危害國(guó)家安全。近年來(lái)新發(fā)現(xiàn)的未知漏洞數(shù)量相比過(guò)去增長(zhǎng)迅速,根據(jù)國(guó)家信息安全漏洞庫(kù)數(shù)據(jù)(China National Vulnerability Database,CNNVD),網(wǎng)址為http://www.cnnvd.org.cn/,2018 年每個(gè)月平均發(fā)現(xiàn)未知漏洞多達(dá)2 013 個(gè)。當(dāng)網(wǎng)絡(luò)管理者發(fā)現(xiàn)未知的漏洞時(shí),需要整合漏洞信息以郵件的方式提交到國(guó)家信息安全漏洞庫(kù),再由工作人員進(jìn)行漏洞分析,若干個(gè)工作日后才可以將漏洞的類(lèi)別、危害值等信息發(fā)布在漏洞平臺(tái)。這不僅會(huì)給工作人員造成巨大的工作量,更重要的是無(wú)法及時(shí)獲取未知漏洞的類(lèi)型及危險(xiǎn)值,進(jìn)而無(wú)法采取防護(hù)措施。面對(duì)海量增長(zhǎng)的漏洞,如何對(duì)新發(fā)現(xiàn)的未知漏洞進(jìn)行及時(shí)有效的分析和管理,是十分重要且有待解決的問(wèn)題。低效率的人工分類(lèi)方法已無(wú)法滿(mǎn)足目前的需求,漏洞自動(dòng)化分類(lèi)成為漏洞相關(guān)研究的重點(diǎn)。

目前,機(jī)器學(xué)習(xí)算法被大量應(yīng)用在文本數(shù)據(jù)的研究中[1-2],如分析文檔數(shù)據(jù)的相似度、文本的語(yǔ)義以及情感態(tài)度等。比如,Baharum等人總結(jié)了機(jī)器學(xué)習(xí)在文本分類(lèi)領(lǐng)域的研究進(jìn)展[3],并探討了在處理文本分類(lèi)中所遇常見(jiàn)問(wèn)題的可能解決方法,肯定了這項(xiàng)技術(shù)未來(lái)的發(fā)展。在計(jì)算機(jī)漏洞描述的文本信息中,也包含了大量關(guān)于漏洞特征的信息,因此很多研究者利用機(jī)器學(xué)習(xí)的方法,對(duì)漏洞文本進(jìn)行有效的分析,從而實(shí)現(xiàn)對(duì)漏洞的自動(dòng)分類(lèi),并取得了進(jìn)展。Li 等人提出了一種基于漏洞特征包括錯(cuò)誤、資源的積累消費(fèi)、嚴(yán)格的時(shí)間要求和復(fù)雜的環(huán)境與軟件之間的互動(dòng)的軟件漏洞分類(lèi)方法[4]。Gawron 等人提出了基于機(jī)器學(xué)習(xí)的漏洞分類(lèi)方法[5],該方法中應(yīng)用了文本預(yù)處理技術(shù)對(duì)漏洞文本進(jìn)行預(yù)處理,分別介紹和構(gòu)建了基于樸素貝葉斯和神經(jīng)網(wǎng)絡(luò)的漏洞分類(lèi)器,評(píng)估了機(jī)器學(xué)習(xí)算法在漏洞分類(lèi)上的可行性。Shuai 等人提出了一種基于隱含狄利克雷分布模型(latent Dirichlet allocation,LDA)和支持向量機(jī)算法(support vector machine,SVM)的漏洞自動(dòng)分類(lèi)器[6],該方法將單詞位置信息引入加權(quán)位置LDA 模型(weighted location LDA,WL-LDA)中,通過(guò)在主題之外生成向量空間,然后再構(gòu)建基于漏洞分布的HTSVM(Huffman tree SVM)多分類(lèi)器;在美國(guó)國(guó)家通用漏洞數(shù)據(jù)庫(kù)(National Vulnerability Database,NVD)上進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)表明該方法可以獲得更高的分類(lèi)精度和效率。Davari 等人提出了一種基于激活漏洞條件的自動(dòng)漏洞分類(lèi)框架[7],使用不同的機(jī)器學(xué)習(xí)技術(shù),來(lái)構(gòu)建具有最高F-度量的分類(lèi)器,以標(biāo)記未知漏洞。基于漏洞之間相關(guān)性的漏洞分類(lèi)方法被Zhang等人提出[8]。該方法是基于詞頻-逆文本頻率(term frequency-inverse document frequency,TFIDF)和貝葉斯算法的漏洞自動(dòng)分類(lèi)模型,在Linux漏洞數(shù)據(jù)上進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明了該方法的有效性,使用這種方法能有效分析漏洞之間的相關(guān)性并將漏洞進(jìn)行分類(lèi)。

這些機(jī)器學(xué)習(xí)分類(lèi)算法在許多領(lǐng)域取得了很好的效果,而且許多研究人員已經(jīng)驗(yàn)證了機(jī)器學(xué)習(xí)算法在漏洞分類(lèi)領(lǐng)域的有效性。但由于漏洞的描述信息為短文本,漏洞的數(shù)量和種類(lèi)又較多,使得漏洞特征詞的提取變得困難,以至漏洞分類(lèi)效果的提升并不明顯。因此本文提出的S-C特征提取方法,通過(guò)結(jié)合詞語(yǔ)的類(lèi)間重要程度和類(lèi)內(nèi)重要程度的綜合函數(shù)C,計(jì)算出詞語(yǔ)對(duì)于類(lèi)別的重要程度。再利用詞語(yǔ)對(duì)于類(lèi)別間的信息熵S,來(lái)弱化對(duì)于分類(lèi)較為混亂的詞語(yǔ)的重要程度。最終選取得到較好的特征詞集。并利用關(guān)聯(lián)了特征詞集間相互關(guān)系的平均一階依賴(lài)貝葉斯模型(averaged one-dependence estimators,AODE)對(duì)漏洞數(shù)據(jù)集進(jìn)行分類(lèi)。使用美國(guó)國(guó)家漏洞數(shù)據(jù)庫(kù)(National Vulnerability Database,NVD)中的文本數(shù)據(jù)進(jìn)行訓(xùn)練模型和測(cè)試,網(wǎng)址為http://nvd.nist.gov/。實(shí)驗(yàn)顯示,本文構(gòu)建的漏洞自動(dòng)分類(lèi)模型能有效提高漏洞分類(lèi)性能。

2 基于熵改進(jìn)的S-C 特征提取方法

數(shù)據(jù)預(yù)處理是對(duì)數(shù)據(jù)分析的第一步。圖1 是數(shù)據(jù)預(yù)處理流程圖。首先,對(duì)漏洞數(shù)據(jù)進(jìn)行獲取,提取有效字段;其次,對(duì)描述漏洞的文本進(jìn)行分詞操作,去除停用詞以減少數(shù)據(jù)冗余;再次,利用基于熵改進(jìn)的S-C算法提取特征詞;最后,通過(guò)特征集合建立樣本的詞語(yǔ)向量,完成漏洞文本數(shù)據(jù)預(yù)處理。

Fig.1 Data preprocessing flow chart圖1 數(shù)據(jù)預(yù)處理流程圖

2.1 數(shù)據(jù)的獲取

目前的漏洞數(shù)據(jù)庫(kù)主要是結(jié)構(gòu)化的漏洞數(shù)據(jù)庫(kù),結(jié)構(gòu)化漏洞庫(kù)中的漏洞數(shù)據(jù)具有統(tǒng)一的格式,以統(tǒng)一格式收集、存儲(chǔ)和發(fā)布。主要包括:美國(guó)國(guó)家漏洞數(shù)據(jù)庫(kù)NVD、開(kāi)源漏洞數(shù)據(jù)庫(kù)(Open Source Vulnerability Database,OSVDB)和中國(guó)國(guó)家漏洞數(shù)據(jù)庫(kù)CNNVD。中國(guó)國(guó)家信息安全漏洞庫(kù)將漏洞分為SQL(structured query language)注入、資源管理錯(cuò)誤、數(shù)字錯(cuò)誤、緩沖區(qū)溢出等26個(gè)類(lèi)別,實(shí)現(xiàn)了對(duì)漏洞的分類(lèi)化管理。本文以國(guó)際公認(rèn)的美國(guó)國(guó)家計(jì)算機(jī)通用漏洞數(shù)據(jù)庫(kù)NVD 中的descript 漏洞描述字段作為實(shí)驗(yàn)數(shù)據(jù)。并依據(jù)中國(guó)國(guó)家漏洞數(shù)據(jù)庫(kù)CNNVD 中的漏洞類(lèi)別,根據(jù)NVD 與CNNVD 中每條漏洞的CVE(common vulnerabilities&exposures)編號(hào),確定漏洞的漏洞類(lèi)型,完成漏洞數(shù)據(jù)的獲取。

2.2 數(shù)據(jù)的特征提取

文本特征提取[9]是指基于一定的評(píng)估標(biāo)準(zhǔn),從漏洞文本描述的詞語(yǔ)中,選擇出能夠有效描述漏洞的類(lèi)別信息的關(guān)鍵詞。由于本文分析的數(shù)據(jù)是文本類(lèi)型的數(shù)據(jù),在對(duì)漏洞進(jìn)行分詞后,產(chǎn)生了大量的詞語(yǔ),多達(dá)6萬(wàn)多個(gè)。這使得漏洞樣本在向量化時(shí)產(chǎn)生了巨大維度的向量,在后續(xù)利用機(jī)器學(xué)習(xí)算法進(jìn)行文本挖掘時(shí),效率以及準(zhǔn)確率變得異常低下。因此要對(duì)文本樣本進(jìn)行特征詞的提取,選出對(duì)分類(lèi)貢獻(xiàn)較高的詞語(yǔ),作為樣本的特征。通過(guò)特征詞選取,可大大降低漏洞特征的向量維度,節(jié)省時(shí)間和空間資源,提高分類(lèi)器的準(zhǔn)確率和效率。本文通過(guò)分析漏洞樣本文本的特征,定義了綜合函數(shù)C來(lái)表示詞語(yǔ)對(duì)于類(lèi)別的重要程度,并結(jié)合信息熵S最終確定出S-C算法來(lái)提取數(shù)據(jù)集的特征集。

2.2.1 綜合函數(shù)C

一個(gè)詞語(yǔ)對(duì)于類(lèi)別的重要程度,通過(guò)兩方面確定。一方面是詞語(yǔ)對(duì)于類(lèi)別內(nèi)部的重要程度,詞語(yǔ)在本類(lèi)中出現(xiàn)的文檔數(shù)越多,并且分布得越均勻,說(shuō)明這個(gè)詞語(yǔ)能夠很好地代表本類(lèi)。但若某個(gè)詞語(yǔ)在其他多數(shù)類(lèi)別中,都很頻繁地出現(xiàn),則也不能很好地代表本類(lèi)漏洞。因此另一方面,是詞語(yǔ)在類(lèi)間重要程度,若詞語(yǔ)在本類(lèi)出現(xiàn)的頻率大于在全部樣本中出現(xiàn)的頻率,說(shuō)明這個(gè)詞語(yǔ)可以更好地代表本類(lèi)漏洞,通過(guò)這兩方面確立出綜合函數(shù)C。以下給出公式中用到的符號(hào)說(shuō)明以及相關(guān)定義:N表示漏洞樣本的總數(shù)量;Di表示類(lèi)別i的漏洞樣本數(shù)量;dit表示類(lèi)別i中詞語(yǔ)t出現(xiàn)的漏洞樣本數(shù)量;ft表示詞語(yǔ)t出現(xiàn)的頻數(shù);fit表示類(lèi)別i中詞語(yǔ)t出現(xiàn)的頻數(shù);pit=表示在類(lèi)別i中詞語(yǔ)t的平均分布頻數(shù);pt=表示在總樣本中詞語(yǔ)t的平均分布頻數(shù)。

定義1(類(lèi)內(nèi)重要程度I)若詞語(yǔ)t在第i類(lèi)漏洞中頻繁出現(xiàn),且均勻分布在各個(gè)漏洞上,則說(shuō)明詞語(yǔ)t對(duì)i類(lèi)內(nèi)的重要程度越高,對(duì)于漏洞類(lèi)別i的判定有著更加重要的意義。公式如下:

定義2(類(lèi)間重要程度E)若詞語(yǔ)t在第i類(lèi)漏洞中的分布頻數(shù)大于詞語(yǔ)t在總樣本中分布頻數(shù),則認(rèn)為詞語(yǔ)t對(duì)第i類(lèi)別有著比對(duì)其他類(lèi)別更重要的意義。公式如下:

定義3(綜合函數(shù)C)代表詞語(yǔ)t對(duì)于類(lèi)別i的重要程度,由類(lèi)間重要程度與類(lèi)內(nèi)重要程度相乘得出。公式如下:

2.2.2 S-C 特征提取算法

在選取漏洞特征詞時(shí),是根據(jù)詞語(yǔ)對(duì)分類(lèi)的重要程度的值來(lái)選取,但是由于特征詞和漏洞類(lèi)別之間不是非此即彼的關(guān)系,即同一特征詞可能對(duì)多個(gè)類(lèi)別都表現(xiàn)出具有重要的意義。此時(shí)若依舊選取此詞語(yǔ)作為關(guān)鍵詞,則會(huì)對(duì)分類(lèi)的效果產(chǎn)生負(fù)面影響。為了解決這一問(wèn)題,引入信息熵來(lái)弱化這些詞語(yǔ)的重要程度。使用信息熵S與綜合函數(shù)C相結(jié)合的方式,應(yīng)用于特征提取上。

定義4(信息熵[10])用于信息論中,是度量信息量大小的一個(gè)概念。越是有序的系統(tǒng),信息熵越低;相反,越是混亂的系統(tǒng),信息熵就越高。因此,也用信息熵來(lái)度量系統(tǒng)有序化的程度。其公式如下:

定義5(特征詞t的信息熵S(t))表示特征詞t隸屬類(lèi)別的混亂程度。S(t)越大,表示特征詞t越無(wú)法較好地區(qū)分出類(lèi)別。n表示漏洞類(lèi)別數(shù),公式如下:

定義6(特征詞的S-C值)表示利用S-C算法計(jì)算出的特征詞t對(duì)于類(lèi)別i的重要程度值。公式如下:

算法1S-C特征提取算法

3 基于AODE的漏洞分類(lèi)算法

目前有大量的機(jī)器學(xué)習(xí)模型以及算法應(yīng)用于文本分類(lèi)的研究中,大量學(xué)者將貝葉斯分類(lèi)器運(yùn)用到文本分類(lèi)的領(lǐng)域中。貝葉斯是一種結(jié)構(gòu)簡(jiǎn)單且分類(lèi)效率高的分類(lèi)技術(shù),在應(yīng)用于某些領(lǐng)域的分類(lèi)問(wèn)題中能夠與決策樹(shù)、神經(jīng)網(wǎng)絡(luò)相媲美,且運(yùn)行效率很高。貝葉斯分類(lèi)器的原理,是根據(jù)樣本的先驗(yàn)概率以及條件概率,計(jì)算出待分樣本的后驗(yàn)概率。由于不是將樣本絕對(duì)地分給某一類(lèi),而是通過(guò)計(jì)算待分樣本的后驗(yàn)概率,去確定樣本的類(lèi)別,具有最大概率的類(lèi)就是待分樣本所屬的類(lèi)別。這在理論上保證了分類(lèi)器具有最小概率誤差。因此貝葉斯分類(lèi)器非常適用于處理多分類(lèi)問(wèn)題。考慮到本文研究數(shù)據(jù)集的特征,由于漏洞分類(lèi)是多分類(lèi)問(wèn)題,且數(shù)據(jù)量龐大,為了保證準(zhǔn)確率以及運(yùn)行效率,本文選取貝葉斯分類(lèi)器作為研究對(duì)象。

3.1 樸素貝葉斯分類(lèi)模型

樸素貝葉斯分類(lèi)模型(naive Bayes classifier,NB)[11]的核心是具有條件獨(dú)立性假設(shè),也就是每一個(gè)屬性獨(dú)立地對(duì)分類(lèi)結(jié)果發(fā)生影響。這樣的假設(shè)降低了模型計(jì)算過(guò)程的復(fù)雜性,從而大大提高了分類(lèi)的效率。樸素貝葉斯分類(lèi)模型的原理,是根據(jù)樣本中類(lèi)別ci的先驗(yàn)概率p(ci)和類(lèi)別ci與樣本X的條件概率p(X|ci),計(jì)算出后驗(yàn)概率p(ci|X),選擇后驗(yàn)概率最大的類(lèi)別即為樣本所屬類(lèi)別。

假設(shè)數(shù)據(jù)集D={(X1,X2,…,Xm,ci),…},其中X={X1,X2,…,Xm}為某一個(gè)樣本的特征向量,ci為此樣本所屬類(lèi)別。在對(duì)一條未知類(lèi)別的樣本x={x1,x2,…,xm}進(jìn)行分類(lèi)時(shí),選取p(ci|x)最大的ci作為其所屬的類(lèi)別。計(jì)算公式如下所示:

由于樸素貝葉斯分類(lèi)模型的條件獨(dú)立性假設(shè),計(jì)算公式簡(jiǎn)化為:

3.2 平均一階依賴(lài)貝葉斯模型

樸素貝葉斯的條件獨(dú)立假設(shè),假定了屬性之間是相互獨(dú)立的,即詞與詞之間不存在任何依賴(lài)關(guān)系。顯然,這樣的獨(dú)立性假設(shè)在實(shí)際的漏洞描述文本中是不成立的。在有些類(lèi)別中,多個(gè)詞語(yǔ)經(jīng)常同時(shí)出現(xiàn),因此不能忽略詞語(yǔ)之間的依賴(lài)關(guān)系。本文使用樸素貝葉斯的改進(jìn)算法——平均一階依賴(lài)貝葉斯模型(AODE)[12]來(lái)對(duì)漏洞進(jìn)行分類(lèi)。AODE 的分類(lèi)準(zhǔn)確度要優(yōu)于樸素貝葉斯,這主要得力于其自身的集成學(xué)習(xí)機(jī)制。AODE 是一個(gè)集成的一階依賴(lài)貝葉斯模型,在其每一個(gè)子模型中,令所有特征詞都依賴(lài)于同一個(gè)特征詞節(jié)點(diǎn),即超父節(jié)點(diǎn),每一個(gè)特征詞都輪流做一遍超父節(jié)點(diǎn)。這樣就關(guān)聯(lián)了所有特征詞之間的關(guān)系,改善了樸素貝葉斯中認(rèn)為每一個(gè)特征詞都相互獨(dú)立的缺點(diǎn)。

AODE分類(lèi)器中有兩個(gè)公共的父節(jié)點(diǎn),除了類(lèi)別節(jié)點(diǎn)作為父節(jié)點(diǎn)外,每個(gè)特征詞節(jié)點(diǎn)都會(huì)輪流作為其他剩余特征詞節(jié)點(diǎn)的父節(jié)點(diǎn)。若樣本的特征向量中,有m個(gè)特征,AODE分類(lèi)器就會(huì)形成m個(gè)分類(lèi)器子模型,其中每一個(gè)子分類(lèi)器結(jié)構(gòu)都是一個(gè)1-依賴(lài)分類(lèi)器,最終將這些1-依賴(lài)分類(lèi)器進(jìn)行平均。假設(shè)給定一個(gè)具有4 個(gè)特征值的樣本集D={(X1,X2,X3,X4),(X1,X2,X3,X4)…},其AODE分類(lèi)器中的4個(gè)子分類(lèi)器如圖2 所示,4 個(gè)子分類(lèi)器分別以類(lèi)別和一個(gè)特征詞節(jié)點(diǎn)作為父節(jié)點(diǎn)。

Fig.2 AODE submodel diagram圖2 AODE子模型圖

具有m個(gè)特征{x1,x2,…,xm},n個(gè)類(lèi)別的數(shù)據(jù)集,共構(gòu)成m個(gè)子模型。子模型的后驗(yàn)概率計(jì)算公式如下:

接下來(lái)對(duì)子模型求平均值,選擇后驗(yàn)概率最大的類(lèi)別作為樣本所屬類(lèi)別,AODE 分類(lèi)器計(jì)算公式如下:

算法2AODE漏洞分類(lèi)器算法

輸入:漏洞訓(xùn)練數(shù)據(jù)集D={X1,X2,…,Xm},漏洞測(cè)試數(shù)據(jù)集X。

輸出:每個(gè)漏洞測(cè)試樣本的類(lèi)別C(X)。

步驟1輪流使每個(gè)特征詞節(jié)點(diǎn)作為父節(jié)點(diǎn),構(gòu)造m個(gè)1-依賴(lài)分類(lèi)器;

步驟2對(duì)每一個(gè)1-依賴(lài)子分類(lèi)器,利用式(9)計(jì)算漏洞樣本的后驗(yàn)概率;

步驟3得到每一個(gè)1-依賴(lài)子分類(lèi)器后驗(yàn)概率后,利用式(10)求平均值;

步驟4選擇平均后驗(yàn)概率最大的漏洞類(lèi)別存儲(chǔ)于C(X)中;

步驟5輸出測(cè)試集漏洞類(lèi)別C(X)。

可以看出,與樸素貝葉斯相比,AODE 分類(lèi)器關(guān)聯(lián)了屬性間的聯(lián)系,弱化了條件獨(dú)立性假設(shè),使分類(lèi)器算法更加符合實(shí)際需求。

4 實(shí)驗(yàn)與結(jié)果分析

通過(guò)對(duì)實(shí)驗(yàn)數(shù)據(jù)的獲取,得到了漏洞文本分類(lèi)實(shí)驗(yàn)所用的漏洞數(shù)據(jù)。包括漏洞ID、漏洞描述文本、漏洞對(duì)應(yīng)的類(lèi)別標(biāo)簽。接下來(lái)要通過(guò)獲取的漏洞樣本,訓(xùn)練漏洞分類(lèi)模型,要進(jìn)行以下步驟。首先,對(duì)漏洞文本數(shù)據(jù)進(jìn)行預(yù)處理,進(jìn)行分詞和停用詞過(guò)濾,去除數(shù)據(jù)冗余。其次,利用本文提出的S-C特征提取算法進(jìn)行漏洞特征詞的提取,利用獲取的特征詞集合對(duì)漏洞樣本進(jìn)行向量化。再次,利用AODE 分類(lèi)器對(duì)漏洞樣本進(jìn)行分類(lèi)。最后,利用準(zhǔn)確率指標(biāo)對(duì)比不同的特征提取算法和不同分類(lèi)器模型,驗(yàn)證本文提出模型的優(yōu)越性。

4.1 實(shí)驗(yàn)環(huán)境

為了驗(yàn)證本文提出的漏洞自動(dòng)分類(lèi)算法的準(zhǔn)確性,實(shí)驗(yàn)在Windows 7操作系統(tǒng),Intel?CoreTMi7-4510U處理器,主頻為2.60 GHz,內(nèi)存為8.00 GB的PC上進(jìn)行。在Anaconda3版本的Spyder上進(jìn)行編程建模,完成建模。

4.2 實(shí)驗(yàn)數(shù)據(jù)描述

本文以國(guó)際公認(rèn)的美國(guó)國(guó)家計(jì)算機(jī)通用漏洞數(shù)據(jù)庫(kù)NVD 中的descript 漏洞描述字段作為實(shí)驗(yàn)數(shù)據(jù)。并依據(jù)中國(guó)國(guó)家漏洞數(shù)據(jù)庫(kù)CNNVD 中的漏洞類(lèi)別,根據(jù)NVD與CNNVD中每條漏洞的CVE編號(hào),確定出NVD 漏洞庫(kù)中每條漏洞的類(lèi)型,得到帶有類(lèi)別標(biāo)簽的實(shí)驗(yàn)數(shù)據(jù)。實(shí)驗(yàn)數(shù)據(jù)總共包含NVD漏洞庫(kù)在1999—2018年間發(fā)布的72 005條漏洞記錄。截至2018年年底,NVD漏洞數(shù)據(jù)庫(kù)共包含了24種漏洞類(lèi)型。其中包含了1 個(gè)未知漏洞類(lèi)型,這類(lèi)漏洞多達(dá)15 521 條,且屬于未知類(lèi)別的類(lèi)型,因此對(duì)漏洞分類(lèi)并無(wú)實(shí)際作用,將這類(lèi)漏洞去除。最終得到本實(shí)驗(yàn)所用的56 484 條漏洞數(shù)據(jù)。從中選取20%的漏洞數(shù)據(jù)進(jìn)行實(shí)驗(yàn),利用其中90%的數(shù)據(jù)作為訓(xùn)練集,10%的數(shù)據(jù)作為測(cè)試集進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)所用漏洞數(shù)據(jù)的年份分布以及類(lèi)別分布,如圖3和圖4所示。

Fig.3 Year distribution of experimental data圖3 實(shí)驗(yàn)數(shù)據(jù)年份分布圖

Fig.4 Class distribution diagram of experimental data圖4 實(shí)驗(yàn)數(shù)據(jù)類(lèi)別分布圖

本文根據(jù)進(jìn)行實(shí)驗(yàn)所需的漏洞數(shù)據(jù),利用Python導(dǎo)入漏洞信息,包括CVE 編號(hào)、漏洞文本描述、漏洞類(lèi)型三部分。部分?jǐn)?shù)據(jù)如表1所示。

4.3 實(shí)驗(yàn)過(guò)程描述

4.3.1 漏洞數(shù)據(jù)預(yù)處理

(1)對(duì)漏洞文本數(shù)據(jù)進(jìn)行分詞

分詞是文本數(shù)據(jù)預(yù)處理過(guò)程中最關(guān)鍵的步驟之一,目的是將連貫漏洞文本描述語(yǔ)句切分成一個(gè)一個(gè)的獨(dú)立的單詞,以便將整個(gè)文本信息轉(zhuǎn)化為可以進(jìn)行數(shù)學(xué)統(tǒng)計(jì)及復(fù)雜分析的詞語(yǔ)集合。由于本文漏洞的描述信息是英文文本,而英文文本是以單詞為單位,詞與詞之間由空格或者標(biāo)點(diǎn)符號(hào)分隔開(kāi)來(lái),因此只需要以空格或者標(biāo)點(diǎn)作為分隔符,便可以將整個(gè)英文文本切分成獨(dú)立的詞語(yǔ)。

Table 1 Vulnerability data sheet表1 漏洞數(shù)據(jù)表

實(shí)驗(yàn)使用正則表達(dá)式進(jìn)行漏洞描述文本的分詞。如編號(hào)為CVE-1999-1431 的漏洞文本描述為“ZAK in Appstation mode allows users to bypass the"Run only allowed apps" policy by starting Explorer from Office 97...”。經(jīng)過(guò)分詞操作后,得到了單詞的集合為['zak','in','appstation','mode','allows','users','to','bypass','the','','run','only','allowed','apps','','policy','by','starting','explorer','from','office','97'...]。

(2)對(duì)漏洞文本數(shù)據(jù)進(jìn)行停用詞過(guò)濾

停用詞過(guò)濾是指去除掉在文檔樣本中頻繁出現(xiàn),但是對(duì)文本的內(nèi)容、類(lèi)別等不提供或提供非常少量信息的詞,如連詞、助詞、介詞以及代詞等。另外,對(duì)于漏洞描述文本來(lái)說(shuō),“vulnerability”“allow”等詞對(duì)于漏洞的分類(lèi)幾乎不能提供實(shí)質(zhì)性信息,因此這類(lèi)詞語(yǔ)也應(yīng)去掉。通過(guò)去除停用詞,以大大減少文本數(shù)據(jù)的冗余信息,從而提高數(shù)據(jù)的處理效率以及后續(xù)分類(lèi)算法的準(zhǔn)確性。

如編號(hào)為CVE-1999-1431 的漏洞文本經(jīng)過(guò)去除停用詞后得到的詞語(yǔ)集合為['zak','appstation','mode','users','bypass''run','only','allowed','apps','policy','starting','explorer','from','office','97','a pplications'...]。此漏洞文本經(jīng)過(guò)分詞處理后,得到52個(gè)詞,經(jīng)過(guò)過(guò)濾停用詞后詞語(yǔ)個(gè)數(shù)變?yōu)?0 個(gè)。可見(jiàn),去除停用詞可以減少數(shù)據(jù)的冗余。

4.3.2 使用S-C 特征提取法提取特征

實(shí)驗(yàn)數(shù)據(jù)通過(guò)上述的文本預(yù)處理操作之后,得到候選的特征詞集。使用本文提出的S-C特征提取法進(jìn)行特征詞的提取。首先計(jì)算每個(gè)詞語(yǔ)的綜合函數(shù)C與信息熵S,其次計(jì)算出每個(gè)詞語(yǔ)的S-C值。下面以SQL注入類(lèi)別中的幾個(gè)詞語(yǔ)為例,可以看出,由于信息熵的作用,詞語(yǔ)的重要程度排序發(fā)生了改變。本實(shí)驗(yàn)中部分詞語(yǔ)的C值、S值、S-C值,以及詞語(yǔ)重要程度排序如表2所示。

Table 2 WordC/S/S-C value sort table表2 詞語(yǔ)C/S/S-C 值排序表

選取特征時(shí),將每個(gè)漏洞類(lèi)別的特征詞根據(jù)S-C值進(jìn)行降序排序,每個(gè)類(lèi)別分別選取前n個(gè)詞語(yǔ)共同構(gòu)成最終的特征詞集合。本實(shí)驗(yàn)最終選取每個(gè)類(lèi)別前10個(gè)特征詞構(gòu)成特征集合,實(shí)驗(yàn)選取的特征如表3所示。

4.3.3 建立特征詞向量

要通過(guò)機(jī)器學(xué)習(xí)算法對(duì)文本數(shù)據(jù)進(jìn)行分析,要先把文本信息轉(zhuǎn)化成離散的數(shù)字表示的向量,以便利用算法對(duì)文本數(shù)據(jù)進(jìn)行操作。利用經(jīng)過(guò)預(yù)處理得到的一個(gè)個(gè)漏洞的詞集合,根據(jù)S-C特征提取法提取的n個(gè)特征,將每一個(gè)漏洞描述文本信息轉(zhuǎn)換成一個(gè)n維的向量vi={t1,t2,…,tn}。由于漏洞文本屬于短文本,特征詞是否出現(xiàn)是決定類(lèi)別的關(guān)鍵,本實(shí)驗(yàn)并不關(guān)心特征詞出現(xiàn)的頻率。將漏洞樣本的向量化定義為:如果特征詞tj出現(xiàn)在第i個(gè)漏洞詞集中,則令vi(j)=1;如果特征詞tj沒(méi)有出現(xiàn)在第i個(gè)漏洞詞集中,則令vi(j)=0;以此完成漏洞的向量表示。例如,CVE-2001-1376的向量表示如表4所示。

4.3.4 使用AODE分類(lèi)器分類(lèi)

實(shí)驗(yàn)利用經(jīng)過(guò)預(yù)處理和向量化的漏洞數(shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù),使用AODE分類(lèi)器訓(xùn)練出分類(lèi)模型。

4.4 實(shí)驗(yàn)結(jié)果分析

為驗(yàn)證本文提出漏洞分類(lèi)器的有效性,實(shí)驗(yàn)用不同的特征提取方法和不同的分類(lèi)器算法分別對(duì)漏洞數(shù)據(jù)進(jìn)行分類(lèi),并利用準(zhǔn)確率Accuracy作為評(píng)價(jià)指標(biāo),評(píng)價(jià)分類(lèi)器的優(yōu)劣。

Table 3 Set of feature words表3 特征詞集合

Table 4 CVE-2001-1376 vectors表4 CVE-2001-1376的向量表示

4.4.1 評(píng)價(jià)指標(biāo)

為了對(duì)特征提取算法以及分類(lèi)器算法進(jìn)行優(yōu)劣的比較,需要統(tǒng)一評(píng)價(jià)標(biāo)準(zhǔn)。本文使用準(zhǔn)確率Accuracy作為評(píng)價(jià)指標(biāo),準(zhǔn)確率是指漏洞樣本屬于分類(lèi)器所判定的漏洞類(lèi)別的概率。公式如下所示:

其中,TPi是指屬于第i類(lèi)的漏洞樣本被分類(lèi)器判定為第i類(lèi)的漏洞個(gè)數(shù);FPi是指屬于第i類(lèi)的漏洞樣本被分類(lèi)器判定為其他類(lèi)別的漏洞個(gè)數(shù)。因此,利用準(zhǔn)確率這一評(píng)價(jià)指標(biāo),可以計(jì)算出分類(lèi)器將漏洞分對(duì)類(lèi)別的比例,以判定分類(lèi)器的優(yōu)劣。

4.4.2 不同特征提取方法的比較

為了驗(yàn)證本文提出的S-C特征提取方法的有效性,實(shí)驗(yàn)使用TFIDF 特征提取法[13]、綜合函數(shù)C特征提取法和S-C特征提取法分別提取特征,利用樸素貝葉斯分類(lèi)器進(jìn)行漏洞分類(lèi),最終將漏洞分類(lèi)的準(zhǔn)確性進(jìn)行比較,實(shí)驗(yàn)結(jié)果如圖5所示。

Fig.5 Comparison chart of feature selection accuracy圖5 特征選擇準(zhǔn)確率對(duì)比圖

由實(shí)驗(yàn)結(jié)果可以看出,本文所提出的綜合函數(shù)C特征提取法相比較TFIDF 特征提取法,準(zhǔn)確率高出2.6 個(gè)百分點(diǎn)。驗(yàn)證了綜合函數(shù)C,利用漏洞詞語(yǔ)類(lèi)間重要程度和類(lèi)內(nèi)重要程度,共同作為判定漏洞詞語(yǔ)對(duì)區(qū)分類(lèi)別的貢獻(xiàn)程度的合理性。其次,基于信息熵改進(jìn)的S-C特征提取法,相較TFIDF 特征提取法和綜合函數(shù)C特征提取法,準(zhǔn)確率分別高出5.6個(gè)百分點(diǎn)和3個(gè)百分點(diǎn)。驗(yàn)證了基于信息熵改進(jìn)的S-C特征提取法能夠有效地提高特征的選取質(zhì)量,選取出了對(duì)分類(lèi)更加有意義的特征詞。

4.4.3 不同分類(lèi)算法的比較

為了驗(yàn)證AODE 分類(lèi)算法對(duì)于漏洞數(shù)據(jù)集的適用性,本文選取K近鄰分類(lèi)算法(K-nearest neighbor,KNN)[14]、決策樹(shù)(decision tree,DT)[15]分類(lèi)算法、樸素貝葉斯分類(lèi)算法(na?ve Bayes,NB)與平均一階依賴(lài)貝葉斯分類(lèi)算法(AODE)進(jìn)行對(duì)比。實(shí)驗(yàn)結(jié)果如圖6所示。

Fig.6 Comparison of classifier accuracy圖6 分類(lèi)器準(zhǔn)確率對(duì)比圖

根據(jù)實(shí)驗(yàn)結(jié)果對(duì)比可以看出,決策樹(shù)分類(lèi)算法和K近鄰分類(lèi)算法在漏洞數(shù)據(jù)集上的準(zhǔn)確率分別為70.3%和74.8%,要低于樸素貝葉斯分類(lèi)器和AODE分類(lèi)器的準(zhǔn)確率。說(shuō)明在短文本的分類(lèi)中,貝葉斯分類(lèi)器有著良好的適用性。S-C-AODE 漏洞分類(lèi)算法的準(zhǔn)確率為86.9%,分別高于S-C-KNN 分類(lèi)器和S-C-DT 分類(lèi)器12.1 個(gè)百分點(diǎn)、16.6 個(gè)百分點(diǎn),對(duì)比S-C-NB 分類(lèi)器提高了2.1 個(gè)百分點(diǎn)。證明了SC-AODE 漏洞分類(lèi)算法對(duì)于漏洞文本分類(lèi)的準(zhǔn)確性,要優(yōu)于傳統(tǒng)的機(jī)器學(xué)習(xí)算法。

5 結(jié)束語(yǔ)

為了對(duì)海量增長(zhǎng)的計(jì)算機(jī)漏洞實(shí)現(xiàn)有效的自動(dòng)化分類(lèi)管理,本文對(duì)計(jì)算機(jī)漏洞數(shù)據(jù)進(jìn)行了分析研究。獲取了NVD 和CNNVD 漏洞數(shù)據(jù)庫(kù)中的數(shù)據(jù),通過(guò)對(duì)漏洞描述字段的分析,本文定義了綜合函數(shù)C來(lái)表明詞語(yǔ)對(duì)類(lèi)別的重要程度,并利用詞語(yǔ)對(duì)于類(lèi)別的信息熵,修正詞語(yǔ)的重要程度。提出了基于S-C特征提取方法,并有效提取了漏洞的特征詞集合。結(jié)合AODE分類(lèi)器對(duì)計(jì)算機(jī)漏洞進(jìn)行了文本分類(lèi)。通過(guò)實(shí)驗(yàn)對(duì)比表明,S-C特征提取法能夠有效提取較優(yōu)特征詞集,并且結(jié)合AODE 分類(lèi)器的分類(lèi)效果要優(yōu)于傳統(tǒng)的分類(lèi)器模型,驗(yàn)證了本文提出模型分類(lèi)的準(zhǔn)確性。

猜你喜歡
特征提取分類(lèi)文本
分類(lèi)算一算
在808DA上文本顯示的改善
基于Gazebo仿真環(huán)境的ORB特征提取與比對(duì)的研究
電子制作(2019年15期)2019-08-27 01:12:00
分類(lèi)討論求坐標(biāo)
基于doc2vec和TF-IDF的相似文本識(shí)別
電子制作(2018年18期)2018-11-14 01:48:06
數(shù)據(jù)分析中的分類(lèi)討論
教你一招:數(shù)的分類(lèi)
一種基于LBP 特征提取和稀疏表示的肝病識(shí)別算法
文本之中·文本之外·文本之上——童話(huà)故事《坐井觀天》的教學(xué)隱喻
基于MED和循環(huán)域解調(diào)的多故障特征提取
主站蜘蛛池模板: 欧美成人午夜视频| 一级片一区| 91香蕉国产亚洲一二三区| 亚洲日本韩在线观看| 69综合网| 国产午夜无码片在线观看网站| 国产国模一区二区三区四区| 国产剧情伊人| 538国产视频| 成人在线欧美| 国产麻豆91网在线看| 国产网友愉拍精品| 中文字幕1区2区| 国产91在线|日本| 亚欧美国产综合| 亚洲人成网站日本片| 免费看一级毛片波多结衣| h网址在线观看| 在线观看国产精美视频| 999精品色在线观看| 制服丝袜一区| 强奷白丝美女在线观看| 国产午夜精品一区二区三| 呦女亚洲一区精品| 波多野结衣亚洲一区| 一区二区三区高清视频国产女人| h视频在线观看网站| 亚洲乱码精品久久久久..| 成人免费网站久久久| 在线日本国产成人免费的| 69视频国产| 天堂在线www网亚洲| 国产白浆一区二区三区视频在线| 熟女成人国产精品视频| 亚洲欧美天堂网| 国产女主播一区| 91久久国产综合精品| 亚洲美女一级毛片| 亚洲欧洲日产国产无码AV| 婷婷亚洲视频| 福利小视频在线播放| 中文字幕1区2区| 亚洲天堂精品在线| 成人福利在线视频| 日韩福利在线观看| 本亚洲精品网站| 国产精品久久久久久久伊一| 伊人久久大香线蕉成人综合网| 亚洲成人一区二区三区| 不卡无码网| 97狠狠操| 欧美不卡在线视频| 2020国产免费久久精品99| 一本久道热中字伊人| 国产美女丝袜高潮| 久久国产精品电影| 欧美精品高清| 国产99热| 午夜少妇精品视频小电影| 国产精品永久久久久| 国产亚洲精品91| 欧美无遮挡国产欧美另类| 人妻无码一区二区视频| 亚洲 成人国产| 国产理论一区| 超碰aⅴ人人做人人爽欧美| 国产精品福利导航| 国产午夜精品鲁丝片| 国产九九精品视频| 尤物精品国产福利网站| 国产丰满大乳无码免费播放| 2020国产在线视精品在| 国产黄在线观看| 国产www网站| 欧美成人怡春院在线激情| 成人午夜精品一级毛片| 亚洲婷婷在线视频| 亚洲床戏一区| 思思99思思久久最新精品| 欧美日韩亚洲综合在线观看| 最新国产麻豆aⅴ精品无| 日本精品中文字幕在线不卡|