歐陽(yáng)廣津
(1.黔南民族師范學(xué)院 實(shí)驗(yàn)實(shí)訓(xùn)中心,貴州 都勻 558000;2.黔南民族師范學(xué)院 計(jì)算機(jī)與信息學(xué)院,貴州 都勻 558000)
隨著信息安全的重要性逐步上升,如何有效并準(zhǔn)確地防范網(wǎng)絡(luò)入侵攻擊以保障服務(wù)器和主機(jī)的安全性受到各界的重視。常見(jiàn)的手段是在內(nèi)網(wǎng)的出口處部署硬件防火墻對(duì)其進(jìn)出數(shù)據(jù)進(jìn)行過(guò)濾,避免網(wǎng)絡(luò)上的計(jì)算機(jī)對(duì)其主機(jī)進(jìn)行攻擊。
Kaspersky2019 年的互聯(lián)網(wǎng)安全威脅調(diào)查報(bào)告顯示[1],2019 年共發(fā)生來(lái)自世界各國(guó)和地區(qū)的攻擊975 491 360 次,其中一年中有19.8%的用戶(hù)計(jì)算機(jī)遭受了至少一次惡意Web 攻擊。因此,針對(duì)網(wǎng)絡(luò)攻擊的入侵檢測(cè)研究顯得愈發(fā)重要。當(dāng)前,入侵檢測(cè)系統(tǒng)(Intrusion Detection System,IDS)已經(jīng)成為大多數(shù)局域網(wǎng)和校園網(wǎng)必不可少的基礎(chǔ)設(shè)施。
入侵檢測(cè)系統(tǒng)是一種網(wǎng)絡(luò)安全設(shè)備,可以通過(guò)監(jiān)控進(jìn)出的數(shù)據(jù)流,檢查是否有可疑活動(dòng)或網(wǎng)絡(luò)攻擊,并及時(shí)發(fā)出警示和主動(dòng)采取措施。然而,隨著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)絡(luò)攻擊手段和方式層出不窮,如何準(zhǔn)確在海量的網(wǎng)絡(luò)事件中將正常事件(Normal)和異常事件(Anomaly)區(qū)分出來(lái),是檢驗(yàn)入侵檢測(cè)性能的指標(biāo)。根據(jù)文獻(xiàn)[2],主流的入侵檢測(cè)系統(tǒng)主要分為基于主機(jī)和基于網(wǎng)絡(luò)兩大類(lèi)?;谥鳈C(jī)是指將入侵檢測(cè)系統(tǒng)安裝在網(wǎng)絡(luò)體系結(jié)構(gòu)中重要的主機(jī)上,讀取該主機(jī)上重要日志文件和審計(jì)記錄等來(lái)對(duì)其進(jìn)行檢測(cè)?;诰W(wǎng)絡(luò)是指入侵檢測(cè)系統(tǒng)安裝在網(wǎng)絡(luò)的核心節(jié)點(diǎn)上,系統(tǒng)會(huì)讀進(jìn)出網(wǎng)絡(luò)的數(shù)據(jù)進(jìn)行檢測(cè)。目前,大部分的入侵檢測(cè)系統(tǒng)是基于網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)[3]。
衡量一個(gè)入侵檢測(cè)系統(tǒng)的性能指標(biāo)是準(zhǔn)確率和誤報(bào)率。一個(gè)優(yōu)秀的入侵檢測(cè)系統(tǒng)應(yīng)該能夠提供高準(zhǔn)確率和低誤報(bào)率。目前,許多入侵檢測(cè)常和其他技術(shù)相結(jié)合。文獻(xiàn)[4]提出一種改進(jìn)的樸素貝葉斯入侵檢測(cè)系統(tǒng),在貝葉斯模式上引入屬性加值算法,能有效簡(jiǎn)化數(shù)據(jù)模型的復(fù)雜度;文獻(xiàn)[5]提出一種新型加權(quán)粗糙樸素貝葉斯算法,通過(guò)對(duì)數(shù)據(jù)集進(jìn)行約簡(jiǎn),再利用最大似然估計(jì)對(duì)數(shù)條件對(duì)其尋找最優(yōu)值;文獻(xiàn)[6]提出一種基于特征選擇的入侵檢測(cè)方法,利用特征選擇和離散化處理數(shù)據(jù)集,建立了對(duì)應(yīng)的模型。
本文在之前研究的基礎(chǔ)上,提出一種新型的樸素貝葉斯算法,在原有樸素貝葉斯模型上巧妙引入卡方檢驗(yàn)算法,篩選數(shù)據(jù)集中的特征,避免維數(shù)災(zāi)難,最后結(jié)合實(shí)驗(yàn)測(cè)試與傳統(tǒng)樸素貝葉斯算法進(jìn)行比較,對(duì)入侵檢測(cè)事件分類(lèi)的準(zhǔn)確率和召回率都有明顯提升。
本文第1 節(jié)詳細(xì)介紹特征選擇和改進(jìn)后的樸素貝葉斯算法;第2 節(jié)采用經(jīng)典的KDD99 數(shù)據(jù)集對(duì)本算法的入侵檢測(cè)進(jìn)行模擬實(shí)驗(yàn),并給出實(shí)驗(yàn)結(jié)果,同時(shí)與傳統(tǒng)算法進(jìn)行比較;第3 節(jié)對(duì)論文的工作進(jìn)行總結(jié),并闡述其中的不足。
特征選擇是數(shù)據(jù)預(yù)處理中的重要過(guò)程,是指從給定的數(shù)據(jù)集中選擇相關(guān)的特征過(guò)程。通過(guò)篩選重要的特征子集,降低數(shù)據(jù)維度,減少分類(lèi)器建模的時(shí)間,提高入侵檢測(cè)的準(zhǔn)確率。事實(shí)上,當(dāng)特征數(shù)量超過(guò)一定限度時(shí),會(huì)導(dǎo)致數(shù)據(jù)建模的結(jié)果變差。數(shù)據(jù)集中某些特征沒(méi)有包含或者包含極少信息,對(duì)于建模影響很小。
卡方檢驗(yàn)又稱(chēng)χ2檢驗(yàn),由英國(guó)人K.Pearson 于1900 年提出,是一種假設(shè)檢驗(yàn)方法。它對(duì)于獨(dú)立的行、列表等進(jìn)行檢驗(yàn),以及檢驗(yàn)?zāi)硞€(gè)連續(xù)變量分布是否與理論分布一致,常用于獨(dú)立性或者相關(guān)性檢驗(yàn)。它的基本思想是統(tǒng)計(jì)樣本理論值與實(shí)際值的偏離程度。χ2越大表示兩者偏離越大,分布不符合,χ2越小,表示兩者分布趨向符合[7]。
卡方檢驗(yàn)的基本公式:
其中,A為實(shí)際值,T為理論值,χ2用于衡量實(shí)際值與理論值的偏離程度。由于平方的存在,當(dāng)存在偏移時(shí),差異會(huì)被放大。
貝葉斯定理是概率論中在已知一些條件下某事件發(fā)生的概率,基本公式為:
其中:P(A|B)指已知B 發(fā)生后A 的條件概率,通常也稱(chēng)后驗(yàn)概率;P(A)是A 的先驗(yàn)概率;P(B|A)是已知A 發(fā)生后B 的條件概率;P(B)是B 的先驗(yàn)概率。
樸素貝葉斯(Naive Bayes)法是基于貝葉斯定理與特征條件獨(dú)立假設(shè)的分類(lèi)方法[8]。樸素貝葉斯簡(jiǎn)化了計(jì)算模型,假設(shè)樣本中各個(gè)特征相互獨(dú)立且互不影響。在這種情況下,概率的計(jì)算非常簡(jiǎn)單。實(shí)踐證明,它是目前使用度最廣泛的分類(lèi)模型之一。在文獻(xiàn)[9]中,Levent Koc 等人提出了一種基于隱藏貝葉斯分類(lèi)器的入侵檢測(cè),解決了高維度和高特征相關(guān)的數(shù)據(jù)流分類(lèi)。文獻(xiàn)[10]中,Dr.Saurabh Mukherjee 提出了一種基于特征縮減的樸素貝葉斯算法,通過(guò)提取特征識(shí)別影響較大的特征,并應(yīng)用在構(gòu)建貝葉斯模型中,達(dá)到較高的準(zhǔn)確率。
本文在以上論文的基礎(chǔ)上,針對(duì)前文的不足,提出了一種新型改進(jìn)的樸素貝葉斯檢測(cè)方法。引入特征選擇卡方檢驗(yàn)和數(shù)值歸一化等預(yù)處理手段,降低數(shù)據(jù)集的復(fù)雜度和特征數(shù)量,以提升樸素貝葉斯分類(lèi)器的準(zhǔn)確率,核心算法如下。
設(shè)輸入n χ?? 為n維向量的集合,輸出空間為類(lèi)標(biāo)記集合Y={c1,c2,…,ck},輸入為特征向量x∈χ,輸出為類(lèi)標(biāo)記為y∈Y。訓(xùn)練數(shù)據(jù)集T={(x1,y1),(x2,y2),…,(xN,yN)},假 設(shè)xi={},xi是 第i個(gè) 樣 本 的 第j個(gè) 特 征,xi(j)∈{aj1,aj2,…,ajsj},ajl是第j個(gè)特征可能取的第l個(gè)值。其中,j=1,2,…,n,l=1,2,…,Sj,yi={c1,c2,…,ck}。
(1)對(duì)數(shù)據(jù)集進(jìn)行歸一化,消除特征之間范圍不同而導(dǎo)致的結(jié)果影響,歸一化公式為:
其中max為樣本數(shù)據(jù)集中的最大值,min為樣本數(shù)據(jù)集中的最小值。
(2)通過(guò)卡方檢驗(yàn)抽取數(shù)據(jù)集中的特征,得到精簡(jiǎn)特征的數(shù)據(jù)集。
(3)計(jì)算樣本的先驗(yàn)概率P(Y=ck):
其中:N為樣本總和;I為指示函數(shù);括號(hào)內(nèi)為真則指示函數(shù)等于1,反之為0。
(4)計(jì)算樣本的條件概率P(X(j)=ajl|Y=ck):
(5)后驗(yàn)概率計(jì)算根據(jù)樸素貝葉斯定理,可以得出:
由于分母對(duì)所有ck都是相同的,所以有:
將式(4)和式(5)帶入式(7),可以計(jì)算出實(shí)例x的分類(lèi)。
通過(guò)前文的描述,可以得到改進(jìn)樸素貝葉斯檢測(cè)流程如圖1 所示。
根據(jù)圖1 的流程結(jié)構(gòu)可知:首先對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行預(yù)處理,通過(guò)歸一化操作將數(shù)值范圍縮小在同一區(qū)間;其次,采用卡方檢驗(yàn)對(duì)預(yù)處理后的數(shù)據(jù)進(jìn)行特征抽取得到精簡(jiǎn)的數(shù)據(jù)集;再次,使用樸素貝葉斯算法對(duì)原有數(shù)據(jù)集進(jìn)行建模,形成貝葉斯分類(lèi)器;最后,對(duì)測(cè)試數(shù)據(jù)進(jìn)行預(yù)處理,使用貝葉斯分類(lèi)器對(duì)其所有數(shù)據(jù)進(jìn)行分類(lèi),得出分類(lèi)結(jié)果。
圖1 基于改進(jìn)的樸素貝葉斯流程
整個(gè)訓(xùn)練過(guò)程采用的數(shù)據(jù)集為KDD99數(shù)據(jù)集。KDD99 來(lái)源于美國(guó)國(guó)防部高級(jí)計(jì)劃署DARPA 的入侵檢測(cè)評(píng)估項(xiàng)目,是網(wǎng)絡(luò)入侵檢測(cè)的標(biāo)準(zhǔn)數(shù)據(jù)集[11],收集了9 周時(shí)間的網(wǎng)絡(luò)連接和審計(jì)數(shù)據(jù)。本文采用kddcup.data10percent.gz 訓(xùn)練集,總共494 021 條記錄。測(cè)試集用采用corrected.gz,總共311 029 條記錄,其中特征包含4 大類(lèi)標(biāo)簽,分別為DoS、R2L、U2R 和PROBE。39 種攻擊類(lèi)型,其中22 種攻擊類(lèi)型出現(xiàn)在訓(xùn)練集中,另外17 種攻擊類(lèi)型出現(xiàn)在測(cè)試集中。4 大類(lèi)標(biāo)簽和描述如表1 所示。
表1 異常類(lèi)型
為了準(zhǔn)確評(píng)價(jià)分類(lèi)器的性能,采用混淆矩陣真正(TP)和真負(fù)(TN)、假正(FP)和假負(fù)(FN)?;煜仃囉脕?lái)對(duì)分類(lèi)器在訓(xùn)練數(shù)據(jù)上的模型進(jìn)行評(píng)價(jià),如表2 所示。
表2 混淆矩陣
True Positive(TP)是將正類(lèi)預(yù)測(cè)為正類(lèi)數(shù),True Negative(TN)將負(fù)類(lèi)預(yù)測(cè)為負(fù)類(lèi)數(shù),F(xiàn)alse Positive(FP)將負(fù)類(lèi)預(yù)測(cè)為正類(lèi)數(shù)誤報(bào),F(xiàn)alse Negative(FN)將正類(lèi)預(yù)測(cè)為負(fù)類(lèi)數(shù)漏報(bào)。因此,準(zhǔn)確率計(jì)算公式為:
召回率計(jì)算公式為:
實(shí)驗(yàn)過(guò)程中環(huán)境平臺(tái)為Windows10 64 位, CPU Intel i5-7300HQ 2.50 GHz,內(nèi)存16 GB,編程工具PyCharm 2018,訓(xùn)練集使用kddcup.data10percent.gz, 測(cè)試集使用corrected.gz,實(shí)驗(yàn)結(jié)果如表3 所示。
表3 實(shí)驗(yàn)結(jié)果
本文提出了基于改進(jìn)的樸素貝葉斯的入侵檢測(cè)方法,在卡方檢驗(yàn)的基礎(chǔ)上,先針對(duì)數(shù)據(jù)特征進(jìn)行預(yù)處理,降低數(shù)據(jù)維度,然后對(duì)數(shù)據(jù)建立貝葉斯模型,并用KDD99 數(shù)據(jù)集進(jìn)行測(cè)試檢驗(yàn)。實(shí)驗(yàn)結(jié)果顯示,該算法能顯著提升了準(zhǔn)確率和召回率。在特征抽取的大小方面,特征如果過(guò)小,則數(shù)據(jù)模型的準(zhǔn)確率降低;如果特征過(guò)大,在建立模型階段會(huì)花費(fèi)大量時(shí)間,也會(huì)影響建模的性能。因此,特征抽取的大小將是下一步研究的重點(diǎn)。