金海波,趙欣越
(遼寧工程技術(shù)大學(xué)軟件學(xué)院,遼寧 葫蘆島 125105)
隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,網(wǎng)絡(luò)攻擊行為的識別問題在網(wǎng)絡(luò)安全領(lǐng)域中備受關(guān)注。入侵檢測系統(tǒng)(Intrusion Detection System,IDS)已成為一種廣泛使用的信息安全保障技術(shù)[1]。IDS 的主要作用是監(jiān)控和收集實(shí)時(shí)的數(shù)據(jù)節(jié)點(diǎn),通過分析網(wǎng)絡(luò)流量以發(fā)現(xiàn)惡意活動(dòng)的跡象,建立相應(yīng)的分類模型和評估機(jī)制,從而判斷是否為安全數(shù)據(jù)并采取相應(yīng)的措施。網(wǎng)絡(luò)信息安全的發(fā)展同時(shí)也伴隨著入侵病毒類型的增加。入侵病毒逐漸呈現(xiàn)大規(guī)模、多步協(xié)同、分布式處理等特點(diǎn),普通的單一檢測無法應(yīng)對不同類型病毒的攻擊[2]。在一些要求高可靠低容錯(cuò)的網(wǎng)絡(luò)系統(tǒng)領(lǐng)域(如遠(yuǎn)程醫(yī)療、工業(yè)控制)中,保證入侵?jǐn)?shù)據(jù)預(yù)測的高可靠性具有重要意義。
研究人員提出一系列基于機(jī)器學(xué)習(xí)的IDS 相關(guān)算法,如支持向量機(jī)(Support Vector Machine,SVM)[3-4]、決策樹(Decision Tree,DT)[5-6]、隨機(jī)森林(Random Forest,SF)[7-9]、貝葉斯網(wǎng)絡(luò)(Bayesian network)[10]、人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN)[11-13]、K 近鄰(K-Nearest Neighbor,K-NN)[14-15]算法等,并有效地應(yīng)用在IDS 中。文獻(xiàn)[6]構(gòu)建一種基于粗糙集理論的增量DT 算法并應(yīng)用到IDS 中。該算法在處理一條新數(shù)據(jù)時(shí),只需更改活動(dòng)決策樹中的某個(gè)已知子節(jié)點(diǎn)或添加一個(gè)新子節(jié)點(diǎn),無須重建整個(gè)決策樹,從而提高增量決策樹的計(jì)算效率。文獻(xiàn)[10]提出針對無線傳感網(wǎng)絡(luò)的局部時(shí)間序列異常檢測算法,該算法利用貝葉斯網(wǎng)絡(luò)對每個(gè)傳感器節(jié)點(diǎn)采集的數(shù)據(jù)進(jìn)行異常檢測與預(yù)測。文獻(xiàn)[16]提出一種應(yīng)用于智能電網(wǎng)的分布式IDS 框架,利用SVM 和人工免疫系統(tǒng)分類算法確定入侵時(shí)間、入侵類型和入侵發(fā)起者,從而解決智能電網(wǎng)來自物理層和網(wǎng)絡(luò)層的入侵攻擊。文獻(xiàn)[17]提出將Elman神經(jīng)網(wǎng)絡(luò)(Elman Neural Network,ENN)和魯棒SVM相結(jié)合的入侵檢測方法。該方法結(jié)合ENN 的包絡(luò)優(yōu)勢進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)包文本聚類,利用魯棒SVM 對含有噪聲的數(shù)據(jù)去噪,有效地改善了網(wǎng)絡(luò)數(shù)據(jù)包文本信息丟失的缺陷,從而提高整體方案的檢測精度。
上述研究大多基于單一的傳統(tǒng)機(jī)器學(xué)習(xí)方法,雖然在樣本識別能力上都有提升,但是對復(fù)雜函數(shù)的表達(dá)能力有限,泛化能力較弱,不能很好地處理復(fù)雜分類問題。這些分類算法只輸出預(yù)測結(jié)果標(biāo)簽,“非黑即白”式的判斷樣本數(shù)據(jù)的標(biāo)簽,缺少對預(yù)測結(jié)果置信度的評價(jià)機(jī)制,因此無法保證預(yù)測結(jié)果的可靠性。文獻(xiàn)[18]提出共形預(yù)測(Conformal Prediction,CP)算法。該算法利用有效的置信度來衡量預(yù)測結(jié)果的可靠性,基于一致性原理且定義明確的數(shù)學(xué)框架,用于衡量校準(zhǔn)集與測試實(shí)例的符合程度,使用數(shù)據(jù)實(shí)例的奇異度(不一致性)確定新實(shí)例預(yù)測的置信值,同時(shí)生成在某一范圍內(nèi)具有限定錯(cuò)誤率的預(yù)測類標(biāo)簽(假設(shè)訓(xùn)練集樣本和被預(yù)測實(shí)例需獨(dú)立分布)。
近年來,共形預(yù)測被逐漸應(yīng)用于各個(gè)領(lǐng)域。文獻(xiàn)[19]提出一種基于主動(dòng)學(xué)習(xí)的CP 算法,結(jié)合預(yù)測數(shù)據(jù)的不確定性、多樣性和典型性,通過求解帶約束條件的線性回歸問題以確定預(yù)測數(shù)據(jù)之間的關(guān)聯(lián)性,基于CP 計(jì)算預(yù)測結(jié)果的可信度和置信值,將該算法應(yīng)用在人臉識別上并取得較優(yōu)的效果。文獻(xiàn)[20]使用回歸樹進(jìn)行預(yù)測,多個(gè)測試實(shí)例會(huì)劃分到一個(gè)葉子節(jié)點(diǎn)中,但是出現(xiàn)不同預(yù)測區(qū)間的現(xiàn)象,驗(yàn)證了使用CP 解釋這種現(xiàn)象發(fā)生的合理性。文獻(xiàn)[21]構(gòu)建ICP-CNN 模型,將CP 算法融入到卷積神經(jīng)網(wǎng)絡(luò)中,不僅在一定程度上增加了對新對象預(yù)測的可靠性,還提高了CNN 的分類性能。文獻(xiàn)[22]將CP 算法與矩陣分解技術(shù)相結(jié)合運(yùn)用在推薦系統(tǒng)中,提出并分析基于矩陣分解的不一致度量。CP 模型在不斷變化的條件下具有較強(qiáng)的通用性。文獻(xiàn)[23]將CP 算法與隨機(jī)森林的基礎(chǔ)算法相結(jié)合用于解決無聲語音識別可靠性問題,利用CP 算法對無標(biāo)簽數(shù)據(jù)進(jìn)行預(yù)測,不僅降低了識別的錯(cuò)誤率,還可獲得單個(gè)數(shù)據(jù)預(yù)測的置信區(qū)間。文獻(xiàn)[24]基于CP算法提出一種分布回歸的區(qū)間預(yù)測算法,通過內(nèi)核平均嵌入將輸入分布嵌入到復(fù)制內(nèi)核希爾伯特空間中,構(gòu)建可靠的預(yù)測系統(tǒng),并將此方法首次應(yīng)用于溫度和降水氣候綜合預(yù)測領(lǐng)域中。因此,CP 算法及相關(guān)框架正逐漸走向成熟并在預(yù)測結(jié)果可靠性計(jì)算上起到了積極的作用。
本文提出一種共形預(yù)測框架下的入侵檢測算法。采用傳統(tǒng)機(jī)器學(xué)習(xí)分類算法對數(shù)據(jù)進(jìn)行首次預(yù)測,利用共形預(yù)測算法計(jì)算預(yù)測結(jié)果的p-value,采用支持向量機(jī)對可靠度低的預(yù)測結(jié)果進(jìn)行二次精細(xì)預(yù)測,并將可靠度高的預(yù)測結(jié)果作為最終結(jié)果。根據(jù)傳統(tǒng)機(jī)器學(xué)習(xí)算法的各自特點(diǎn),構(gòu)造共形框架下與之對應(yīng)的不一致性計(jì)算公式,通過引入平滑因子改進(jìn)p-value 的計(jì)算公式,使其能夠以更平滑的方式度量預(yù)測實(shí)例與校準(zhǔn)集的不一致程度。
共形預(yù)測是在機(jī)器學(xué)習(xí)算法基礎(chǔ)上對預(yù)測結(jié)果進(jìn)行置信度計(jì)算,因此許多分類算法(如DT、SVM、KNN、ANN、貝葉斯網(wǎng)絡(luò)等)在CP 框架下被稱為底層算法。本文底層算法采用DT 和SVM。
1.1.1 決策樹
決策樹是一種樹形結(jié)構(gòu)預(yù)測算法,其中每個(gè)內(nèi)部節(jié)點(diǎn)表示一個(gè)特征的分類預(yù)測,每個(gè)分支代表一個(gè)測試輸出,每個(gè)葉子節(jié)點(diǎn)代表一種預(yù)測結(jié)果。決策樹學(xué)習(xí)算法的實(shí)質(zhì)是特征選擇過程,在確定每一層劃分樣本的特征時(shí),按照一定的標(biāo)準(zhǔn)計(jì)算每個(gè)特征,每次都選擇最重要的特征作為樣本劃分特征。
文獻(xiàn)[25]提出的決策樹算法(CART)是在ID3算法基礎(chǔ)上進(jìn)行優(yōu)化的決策樹。在CART 構(gòu)造決策樹時(shí)根據(jù)每個(gè)特征的所有可能取值計(jì)算樣本集的基尼指數(shù),將基尼指數(shù)最小的特征和取值作為當(dāng)前節(jié)點(diǎn)和最優(yōu)切分點(diǎn),并生成兩個(gè)子節(jié)點(diǎn),根據(jù)最優(yōu)切分點(diǎn)將數(shù)據(jù)分成兩個(gè)子集并分別分配到兩個(gè)子節(jié)點(diǎn)中。從根節(jié)點(diǎn)開始,按照上述過程遞歸計(jì)算每個(gè)節(jié)點(diǎn)的基尼指數(shù),并確定特征和生成兩個(gè)子節(jié)點(diǎn),直至樣本的基尼指數(shù)小于閾值或樣本的節(jié)點(diǎn)數(shù)小于閾值后,停止計(jì)算。
CART 算法分類準(zhǔn)確率高、魯棒性強(qiáng),但容易受樣本的影響使得子樹在決策樹中可能重復(fù)多次,導(dǎo)致過擬合現(xiàn)象的發(fā)生。針對過擬合現(xiàn)象,本文采用基于預(yù)測誤差增益和交叉驗(yàn)證的方式進(jìn)行剪枝,從而提高泛化能力。
1.1.2 多分類支持向量機(jī)
SVM 是機(jī)器學(xué)習(xí)常用的一種分類算法。傳統(tǒng)的SVM 是一種二分類模型,通過構(gòu)造分類超平面尋找最優(yōu)的超平面,即對樣本數(shù)據(jù)進(jìn)行最大間隔的分割。在實(shí)際中,網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)往往呈現(xiàn)非線性的特點(diǎn),因此,本文利用樣本數(shù)據(jù)構(gòu)造非線性多分類SVM 模型。
設(shè)一組帶有標(biāo)簽的樣本(xi,yi),i=1,2,…,n,其中,yi為樣本標(biāo)簽,分類超平面如式(1)所示:
引入拉格朗日乘子,將式(2)轉(zhuǎn)化為對偶形式,求解該二次規(guī)劃問題。
針對高維或無窮維問題,本文采用徑向基核函數(shù)(Radial Basis kernel Function,RBF)進(jìn)行計(jì)算,求解后得到分類函數(shù)如式(3)所示:
二分類非線性SVM 模型構(gòu)造完成。
由于網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)的多樣性,即數(shù)據(jù)標(biāo)簽具有多種類別,因此在二分類SVM 基礎(chǔ)上,構(gòu)造相應(yīng)的多分類SVM 模型。本文采用一對多構(gòu)造方法,即根據(jù)樣本數(shù)據(jù)構(gòu)造k個(gè)SVM 模型,其中k表示樣本數(shù)據(jù)標(biāo)簽的數(shù)量,每個(gè)模型負(fù)責(zé)區(qū)分該類數(shù)據(jù)和其他類別數(shù)據(jù),最后得到k個(gè)超平面距離最大的預(yù)測標(biāo)簽作為最終預(yù)測結(jié)果。
共形預(yù)測是不使用復(fù)雜概率模型進(jìn)行可靠預(yù)測的框架。對于任意的顯著性水平ε?[0,1],CP 將生成一個(gè)預(yù)測結(jié)果的集合。在該集合中預(yù)測正確結(jié)果的概率不低于1-ε。CP 的原理是設(shè)集合Z包含n個(gè)元素,即Z={z1,z2,…,zn},其中zn={xn,yn},xn是第n個(gè)數(shù)據(jù)樣本,yn是xn的標(biāo)簽。度量不一致性定義的函數(shù)A(Z,z)。該函數(shù)計(jì)算實(shí)例z與集合Z的不一致程度,得到衡量該程度的得分,即α=A(Z,z)。通過函數(shù)A(Z,z)計(jì)算Z中任何一個(gè)元素zi(i=1,2,…,n)的不一致得分αi,即αi=A((Z-zi),zi),其中Z-zi表示兩 個(gè)集合的差集。之后對新的數(shù)據(jù)實(shí)例xn+j(j=1,2,…,n),利用底層算法得到預(yù)測標(biāo)簽yn+j,此時(shí)得到zn+j=(xn+j,yn+j)。根據(jù)底層算法輸出,計(jì)算zn+j的不一致得分αn+j,再計(jì)算zn+j的p-value,其計(jì)算如式(4)所示:
網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)具有海量、高維的特點(diǎn),在對原始高維數(shù)據(jù)進(jìn)行處理時(shí)存在計(jì)算耗時(shí)長、檢測精度低的問題。因此,通過對原始高維數(shù)據(jù)進(jìn)行降維是提高入侵檢測算法計(jì)算效率的必要前提。本文采用主成分分析(Principal Component Analysis,PCA)法進(jìn)行數(shù)據(jù)降維。
入侵檢測數(shù)據(jù)高維樣本的矩陣如式(5)所示:
其中:n為樣本數(shù)量;m為樣本維度。入侵檢測算法確定輸入的樣本數(shù)據(jù)X后,通過對樣本的特征進(jìn)行均值運(yùn)算,如式(6)所示:
其中:xi為樣本X的第i行向量。X的協(xié)方差矩陣C如式(7)所示:
其中:LLT是m階方陣。矩陣X的特征值和特征向量的求解是將特征向量按照對應(yīng)特征值由大到小的順序排列成矩陣,根據(jù)貢獻(xiàn)率取該矩陣的前ξ行(ξ 貢獻(xiàn)率μ是度量每個(gè)特征攜帶有效信息的量,如式(9)所示: 其中:πi是矩陣LLT的第i個(gè)特征值。為保證用較少的特征攜帶較多的有效信息,通過PCA 對數(shù)據(jù)進(jìn)行降維后,本文將貢獻(xiàn)率占總貢獻(xiàn)95%的前l(fā)個(gè)特征作為最終的降維結(jié)果。 本文將DT 算法和多分類SVM 算法與CP 框架相結(jié)合,以CP 框架下的p-value 作為橋梁將兩者有效地結(jié)合。本文構(gòu)造決策樹算法的的過程如算法1所示。算法1 的停止條件為節(jié)點(diǎn)中的樣本個(gè)數(shù)小于指定閾值或樣本集的基尼指數(shù)小于指定閾值。 算法1決策樹構(gòu)造(DS,Ai) DT 分類算法已訓(xùn)練完畢。當(dāng)采用DT 算法預(yù)測入侵?jǐn)?shù)據(jù)時(shí),算法只輸出預(yù)測結(jié)果,無法確保預(yù)測結(jié)果的可靠性,而CP 算法基于預(yù)測結(jié)果計(jì)算p-value,通過p-value 與顯著性水平ε的比較,可得預(yù)測結(jié)果的可靠性。當(dāng)時(shí),當(dāng)前入侵?jǐn)?shù)據(jù)xn+1的預(yù)測標(biāo)簽yq置信值較低。本文使用多分類SVM 模型對xn+1重新預(yù)測,從而提高預(yù)測的整體精度。 算法2多分類SVM 模型構(gòu)建(D) CP 算法的核心過程包含2 個(gè)部分:1)根據(jù)底層算法輸出結(jié)果確定屬于每個(gè)預(yù)測標(biāo)簽的不一致得分;2)根據(jù)這些得分,計(jì)算每個(gè)預(yù)測標(biāo)簽的p-value。 2.3.1 不一致得分確定 在CP 框架下采用底層算法進(jìn)行預(yù)測分為2 個(gè)部分:1)采用DT 算法對網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)進(jìn)行初步預(yù)測;2)采用SVM 進(jìn)行精細(xì)預(yù)測。由于DT 算法和SVM 算法在分類原理上有很大區(qū)別,因此本文根據(jù)這2 個(gè)算法的各自特點(diǎn)分別確定預(yù)測結(jié)果不一致得分的方法。 DT 算法在輸出預(yù)測結(jié)果的同時(shí)輸出該條數(shù)據(jù)屬于每個(gè)標(biāo)簽的概率,將概率值最大的標(biāo)簽作為預(yù)測結(jié)果。設(shè)o1,o2,…,oM(M是分類標(biāo)簽類型的數(shù)量)是DT 算法輸出數(shù)據(jù)實(shí)例x屬于每個(gè)標(biāo)簽的概率,滿足x不一致得分的計(jì)算如式(11)所示: SVM 算法按照分類標(biāo)簽種類輸出相應(yīng)得分,該得分反映一個(gè)點(diǎn)與最優(yōu)超平面的距離,最大得分表明點(diǎn)到超平面的間隔最大,即表明該條數(shù)據(jù)屬于哪類標(biāo)簽。為清晰反映每類標(biāo)簽與對應(yīng)得分之間的占比關(guān)系,本文以預(yù)測數(shù)據(jù)得分的最小值作為基準(zhǔn),計(jì)算其他標(biāo)簽得分與基準(zhǔn)的相對距離,如式(12)所示: 由式(11)和式(13)可知,α均隨著oq和的增大而減小。因此,本文構(gòu)造關(guān)于DT 和SVM 算法預(yù)測結(jié)果的不一致得分與CP 理論相一致。 2.3.2p-value 計(jì)算 p-value 是CP 算法中另一個(gè)重要組成部分。p-value 反映新的數(shù)據(jù)實(shí)例xn+j與校準(zhǔn)集C={(x1,y1),(x2,y2),…,(xn,yn)}的差異程度。隨著校準(zhǔn)集規(guī)模逐漸增大,通過式(4)計(jì)算p-value 會(huì)出現(xiàn)隨機(jī)抖動(dòng)現(xiàn)象。為避免該現(xiàn)象的發(fā)生,本文對式(4)進(jìn)行改進(jìn),采用更平滑的方式計(jì)算p-value,改進(jìn)的p-value 計(jì)算如式(14)所示: 其中:τ?[0,1]。由式(14)可知越大,預(yù)測數(shù)據(jù)xn+j與校準(zhǔn)集越一致。 2.3.3 可信度與置信值 CP 框架提供預(yù)測結(jié)果的可信度和置信值這2 個(gè)關(guān)鍵性能指標(biāo)。 置信值定義如式(16)所示: 可信度反映預(yù)測標(biāo)簽與真實(shí)標(biāo)簽之間的符合程度,而置信值反映預(yù)測標(biāo)簽等于真實(shí)標(biāo)簽的可信程度。 設(shè)數(shù)據(jù)集為Z={z1,z2,…,zn},n?R,其中zi=(xi,yi),xi表示一個(gè)多維數(shù)據(jù)實(shí)例,yi是這個(gè)數(shù)據(jù)實(shí)例對應(yīng)的標(biāo)簽。在集合Z中某些元素可能彼此相同。入侵檢測算法主要分為以下6 個(gè)步驟: 1)將含有n條數(shù)據(jù)的數(shù)據(jù)集Z分成訓(xùn)練集TS 和校準(zhǔn)集CS,并將TS 分成2 個(gè)子集TS1和TS2,CS分成2個(gè)子集CS1和CS2。TS1用于訓(xùn)練DT算法,TS2用于訓(xùn)練SVM模型。CS1用作DT 算法的校準(zhǔn)集,CS2用作SVM 模型的校準(zhǔn)集。其中,|TS1|=n1,|TS2|=n2,|CS1|=n3,|CS2|=n4,滿足=n,n1>>n2,n1+n2>>n3+n4。 2)分別用TS1和TS2進(jìn)行訓(xùn)練,得到DT 算法和SVM 算法。 3)利用DT 算法對CS1中所有數(shù)據(jù)實(shí)例進(jìn)行分類,通過式(11)計(jì)算所有分類結(jié)果的不一致得分,構(gòu)成不一致得分集αDT={α1,α2,…,αn3}。同理,采用SVM算法對CS2中所有數(shù)據(jù)實(shí)例進(jìn)行分類,利用式(12)和式(13)計(jì)算所有分類結(jié)果的不一致得分,構(gòu)成集合αSVM={α1,α2,…,αn4}。 4)利用DT 算法對新的數(shù)據(jù)實(shí)例xn+j(j=1,2,…,n)進(jìn)行預(yù)測,輸出預(yù)測結(jié)果yn+j。采用式(14)計(jì)算yn+j的p-value,當(dāng)p-value>ε時(shí),計(jì)算yn+j的可信度和置信值,并擴(kuò)充預(yù)測結(jié)果集Re=Re+{(xn+j,yn+j)}。 5)當(dāng)步驟4 中的p-value<ε時(shí),用SVM 模型對該數(shù)據(jù)實(shí)例進(jìn)行重新預(yù)測,輸出預(yù)測結(jié)果yn+j。采用式(14)計(jì)算yn+j的p-value。當(dāng)p-value>ε時(shí),計(jì)算yn+j的可信度和置信值,并擴(kuò)充預(yù)測結(jié)果集Re=Re+{(xn+j,yn+j)},返回步驟4,直至測試集中的所有數(shù)據(jù)預(yù)測完畢。 6)當(dāng)步驟5中p-value<ε時(shí),判定該數(shù)據(jù)為異常數(shù)據(jù),丟棄該數(shù)據(jù),返回步驟4,直至測試集中的所有數(shù)據(jù)處理完畢。 入侵檢測算法流程如圖1 所示。 圖1 入侵檢測算法流程Fig.1 Procedure of intrusion detection algorithm 實(shí)驗(yàn)平臺為蘋果操作系統(tǒng),CPU 2.4 GHz,內(nèi)存8.0 GB 的PC 機(jī),編程軟件為MATLABR2018a,分別對KDD CUP 99 數(shù)據(jù)集和AWID 數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)。 在KDD CUP99 數(shù)據(jù)集中每條樣本數(shù)據(jù)由41 個(gè)特征屬性和1 個(gè)類別標(biāo)簽組成。特征屬性包括protocol_type、service、flag等,其中3個(gè)symbolic類型,38個(gè)numeric類型。KDDCUP99數(shù)據(jù)集的特征屬性如表1所示。 表1 KDD CUP99 數(shù)據(jù)集的特征屬性Table 1 Characteristics attribute of KDD CUP99 dataset 標(biāo)簽類別包括1 種正常類型(Normal)和4 種攻擊類型。攻擊類型分別為DoS、R2L、U2R、Probe,又可劃分為39 類攻擊。KDD CUP99 數(shù)據(jù)集的數(shù)據(jù)標(biāo)簽類別如表2 所示。 表2 KDD CUP99 數(shù)據(jù)集的數(shù)據(jù)標(biāo)簽類型Table 2 Data label categories of KDD CUP99 dataset 3.1.1 數(shù)據(jù)選擇與劃分 本文采用KDD CUP99 原始數(shù)據(jù)集中前10%的部分?jǐn)?shù)據(jù)進(jìn)行實(shí)驗(yàn),根據(jù)KDD CUP99 原始數(shù)據(jù)集前10%的數(shù)據(jù)分布情況可知,數(shù)據(jù)集中的標(biāo)簽具有高度不平衡的特點(diǎn)。本文將數(shù)據(jù)集按適當(dāng)比例劃分為訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集。實(shí)驗(yàn)數(shù)據(jù)劃分情況如表3 所示。 表3 在KDD CUP99 數(shù)據(jù)集中實(shí)驗(yàn)數(shù)據(jù)標(biāo)簽的劃分情況Table 3 Division of experimental data labels on KDD CUP99 dataset 3.1.2 在KDD CUP99 數(shù)據(jù)集上的數(shù)據(jù)預(yù)處理 數(shù)據(jù)預(yù)處理包括對離散特征數(shù)值化、歸一化和降維處理。 1)離散特征數(shù)值化。為滿足底層分類算法輸入輸出數(shù)據(jù)類型均為numeric 類型的要求,本文將數(shù)據(jù)集中所有symbolic 類型數(shù)據(jù)轉(zhuǎn)換成numeric 類型數(shù)據(jù)。本文將特征protocol_type 中數(shù)據(jù)取值TCP、UDP 和ICMP 分別轉(zhuǎn)換為數(shù)字1、2、3;特征service 的數(shù)據(jù)取值共有70 種,包括http、ftp、smtp 等,依次轉(zhuǎn)換為數(shù)字1~70;特征flag 的取值共有11 種,包括OTH、REJ、RSTO 等,依次轉(zhuǎn)換為數(shù)字1~11;數(shù)據(jù)標(biāo)簽共有Normal、Probe、DoS、U2R、R2L 這5 種,依次轉(zhuǎn)換為數(shù)字1~5。 2)數(shù)據(jù)歸一化處理。由于在數(shù)據(jù)集中各個(gè)特征取值的數(shù)量級和量綱均不相同,因此需將原始數(shù)據(jù)進(jìn)行歸一化處理,從而增強(qiáng)實(shí)驗(yàn)結(jié)果的可靠性。本文使用z-score 法進(jìn)行歸一化,該方法是基于特征數(shù)據(jù)的均值和標(biāo)準(zhǔn)差進(jìn)行計(jì)算,如式(17)所示: 其中:xi為觀測值;E(x)為特征數(shù)據(jù)的均值;D(x)為特征數(shù)據(jù)的方差。標(biāo)準(zhǔn)化后的數(shù)據(jù)均值為0,標(biāo)準(zhǔn)差為1。 3)數(shù)據(jù)降維處理。為降低數(shù)據(jù)特征間的冗余并加快數(shù)據(jù)的處理速度,本文采用PCA 算法對數(shù)據(jù)進(jìn)行降維,保留主成分累計(jì)貢獻(xiàn)率達(dá)95%的特征,即前20 個(gè)特征作為降維后的特征。 3.1.3 在KDD CUP99 數(shù)據(jù)集上的參數(shù)設(shè)置 入侵檢測算法的參數(shù)設(shè)置如表4 所示。 表4 入侵檢測算法的參數(shù)Table 4 Parameters of intrusion detection algorithm 3.1.4 在KDD CUP99 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果 為驗(yàn)證本文算法的高效性,本文算法與DT 算法、SVM 算法、DT-SVM 算法在相同訓(xùn)練集與測試集上從混淆矩陣準(zhǔn)確率、查準(zhǔn)率和誤報(bào)率三個(gè)方面進(jìn)行對比實(shí)驗(yàn)。準(zhǔn)確率如式(18)所示: 查準(zhǔn)率如式(19)所示: 召回率如式(20)所示: 誤報(bào)率如式(21)所示: 其中:TTP表示真實(shí)值是positive,模型認(rèn)為是positive的數(shù)量;FFN為真實(shí)值是positive,模型認(rèn)為是negative的數(shù)量;FFP表示真實(shí)值是negative,模型認(rèn)為是positive 的數(shù)量;TTN表示真實(shí)值是negative,模型認(rèn)為是negative 的數(shù)量。 在KDD CUP99 數(shù)據(jù)集中DT、SVM、DT-SVM 和本文算法的混淆矩陣如圖2 所示。從圖2 可以看出,混淆矩陣分別為5 行5 列。底側(cè)數(shù)字1~5 表示數(shù)據(jù)真實(shí)標(biāo)簽,左側(cè)數(shù)字1~5 表示預(yù)測分類出的標(biāo)簽。最后一行格子(右下角格子除外)上面和下面的百分比分別表示預(yù)測各標(biāo)簽成功和失敗的召回率。最后一列格子(右下角格子除外)上面和下面的百分比分別表示預(yù)測各標(biāo)簽成功和失敗的查準(zhǔn)率。右下角格子上面的百分比表示預(yù)測準(zhǔn)確率,下面的百分比為預(yù)測失敗率。其他格子下面百分比則表示該分類樣本數(shù)占全部測試集樣本數(shù)的比例。。 圖2 不同算法的混淆矩陣Fig.2 Confusion matrices of different algorithms 在KDD CUP99 數(shù)據(jù)集中,DT、SVM、DT-SVM和本文算法的準(zhǔn)確率對比如圖3 所示。本文算法的準(zhǔn)確率總體優(yōu)于SVM 算法、DT 算法和DT-SVM 算法,分別提高11.1、4.6 和3.7 個(gè)百分點(diǎn)。KDD CUP99數(shù)據(jù)集標(biāo)簽類型具有不平衡性,其中Normal 與DoS標(biāo)簽類型的數(shù)據(jù)在訓(xùn)練集中的占比較大,Probe、U2R、R2L 類型數(shù)據(jù)占比較少,因此在測試結(jié)果中數(shù)據(jù)各項(xiàng)性能的評估率有較明顯的波動(dòng)。 圖3 不同算法的準(zhǔn)確率對比Fig.3 Accuracy comparison among different algorithms 在KDD CUP99 數(shù)據(jù)集中,DT、SVM、DT-SVM和本文算法的查準(zhǔn)率對比如圖4 所示。 圖4 不同算法的查準(zhǔn)率對比Fig.4 Precision comparison among different algorithms 從圖4可以看出,本文算法在Normal、Probe、U2R和R2L標(biāo)簽類型上的查準(zhǔn)率較SVM 算法分別提高14.4、14.8、95.3 和29.4 個(gè)百分點(diǎn),在DoS 標(biāo)簽類型上降低5.8 個(gè)百分點(diǎn)。因此,本文算法的查準(zhǔn)性能優(yōu)于SVM 算法。本文算法在Normal、Probe、U2R 和R2L 標(biāo)簽類型上的查準(zhǔn)率較DT 算法分別提高5.3、8.7、79.6和53.4個(gè)百分點(diǎn),在DoS標(biāo)簽類型上降低5.9個(gè)百分點(diǎn)。因此,本文算法的查準(zhǔn)率性能優(yōu)于DT 算法。本文算法在Probe、DoS、U2R 和R2L 標(biāo)簽類型上的查準(zhǔn)率較DT-SVM 算法分別提高7.2、7.4、42.9和27.9個(gè)百分點(diǎn),在Normal標(biāo)簽類型上降低4.2個(gè)百分點(diǎn)。因此,本文算法的查準(zhǔn)率性能優(yōu)于DT-SVM算法。 在KDD CUP99 數(shù)據(jù)集上不同算法的評價(jià)指標(biāo)對比如表5 所示。從表5 可以看出,本文算法的各數(shù)據(jù)標(biāo)簽類型誤報(bào)率與其他算法相比有所降低。本文算法在Normal、Probe、U2R和R2L標(biāo)簽類型上的誤報(bào)率較SVM算法分別降低了11.85、3.97、3.08 和0.81 個(gè)百分點(diǎn);在DoS 標(biāo)簽類型上增加了4.38 個(gè)百分點(diǎn)。因此,本文算法的誤報(bào)性能優(yōu)于SVM 算法。本文算法在Normal、Probe、U2R 和R2L 標(biāo)簽類型上的誤報(bào)率較DT 算法分別減少了3.59、2.43、1.01 和2.89 個(gè)百分點(diǎn),在DoS 標(biāo)簽類型上增加了4.28 個(gè)百分點(diǎn)。因此,本文算法的誤報(bào)性能優(yōu)于DT算法。本文算法在Probe、DoS、U2R和R2L標(biāo)簽類型上的誤報(bào)率較DT-SVM 算法分別降低1.75、6.16、0.02 和0.71 個(gè)百分點(diǎn),在Normal標(biāo)簽類型上增加了2.97 個(gè)百分點(diǎn)。因此,本文算法的誤報(bào)性能優(yōu)于DT-SVM 算法。 表5 在KDD CUP99 數(shù)據(jù)集上不同算法的評價(jià)指標(biāo)對比Table 5 Evaluation indexs comparison among different algorithms on KDD CUP99 dataset % 在AWID 數(shù)據(jù)集上的每條數(shù)據(jù)都由154 個(gè)特征和1 個(gè)標(biāo)簽組成。AWID 數(shù)據(jù)集根據(jù)數(shù)據(jù)標(biāo)簽種類的數(shù)量,又分為AWID-ATK 和AWID-CLS 數(shù)據(jù)集。本文在AWID-CLS-R-Trn 數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)。該數(shù)據(jù)集共有1 795 575 個(gè)數(shù)據(jù),數(shù)據(jù)標(biāo)簽由3 種攻擊類型標(biāo)簽Injection、Flooding、Impersonation 和1 種正常類型標(biāo)簽Normal 組成。在AWID 數(shù)據(jù)集中每種數(shù)據(jù)標(biāo)簽的分布情況如表6 所示。 表6 在AWID 數(shù)據(jù)集中每種數(shù)據(jù)標(biāo)簽的分布情況Table 6 Distribution of each data label on AWID dataset 3.2.1 數(shù)據(jù)集選擇 由于在AWID-CLS-R-Trn 數(shù)據(jù)集中各個(gè)類型的數(shù)據(jù)不均衡,因此本文隨機(jī)選擇部分?jǐn)?shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù)集,使得該數(shù)據(jù)集中4種數(shù)據(jù)類型的數(shù)量相當(dāng)。在AWID數(shù)據(jù)集中實(shí)驗(yàn)數(shù)據(jù)的劃分情況如表7 所示。 表7 在AWID 數(shù)據(jù)集中實(shí)驗(yàn)數(shù)據(jù)標(biāo)簽的劃分情況Table 7 Division of experimental data labels on AWID dataset 3.2.2 在AWID 數(shù)據(jù)集上的數(shù)據(jù)預(yù)處理 數(shù)據(jù)預(yù)處理包括離散特征數(shù)值化、數(shù)據(jù)歸一化處理和數(shù)據(jù)降維處理。 1)離散特征數(shù)值化。本文將原始訓(xùn)練集中所有數(shù)據(jù)進(jìn)行“清洗”,并將清洗后的數(shù)據(jù)都轉(zhuǎn)換成numeric 類型。將特征數(shù)據(jù)中存在的空值,即“?”轉(zhuǎn)換為數(shù)字0;將特征數(shù)據(jù)中的十六進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)字;丟棄即不考慮表示MAC地址的特征數(shù)據(jù);將4種數(shù)據(jù)標(biāo)簽類型Normal、Flooding、Injection、Impersonation 依次轉(zhuǎn)換為數(shù)字1~4。 2)數(shù)據(jù)歸一化處理,同式(17)。 3)數(shù)據(jù)降維處理。采用PCA 算法對數(shù)據(jù)進(jìn)行降維,保留主成分累計(jì)貢獻(xiàn)率達(dá)95% 的特征,即前46 個(gè)特征作為降維后的特征。 3.2.3 在AWID 數(shù)據(jù)集上的參數(shù)設(shè)置 算法中參數(shù)γ、σ和τ的設(shè)置與表4 相同。其他參數(shù)設(shè)置如表8 所示。 表8 在AWID 數(shù)據(jù)集上入侵檢測算法的參數(shù)Table 8 Parameters of intrusion detection algorithm on AWID dataset 3.2.4 在AWID 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果 在AWID數(shù)據(jù)集上SVM算法、DT算法、DT-SVM 算法和本文算法的混淆矩陣如圖5 所示。從圖5 可以看出,混淆矩陣分別為4 行4 列。底側(cè)數(shù)字1~4 表示數(shù)據(jù)真實(shí)標(biāo)簽,左側(cè)數(shù)字1~4 表示預(yù)測分類出的標(biāo)簽。最后一行格子(右下角格子除外)上面和下面的百分比分別表示預(yù)測各標(biāo)簽成功和失敗的召回率。最后一列格子(右下角格子除外)上面和下面的百分比分別表示預(yù)測各標(biāo)簽成功和失敗的查準(zhǔn)率。右下角格子上面的百分比表示預(yù)測準(zhǔn)確率,下面的百分比為預(yù)測失敗率。其他格子下面百分比則表示該分類樣本數(shù)占全部測試集樣本數(shù)的比例。 圖5 在AWID 數(shù)據(jù)集上不同算法的混淆矩陣Fig.5 Confusion matrices of different algorithms on AWID dataset 在AWID 數(shù)據(jù)集上不同算法的準(zhǔn)確率對比如圖6 所示。從圖6 可以看出,本文算法的準(zhǔn)確率總體上優(yōu)于SVM 算法、DT 算法和DT-SVM 算法,分別提高4、2.5 和1.3 個(gè)百分點(diǎn)。由于AWID 數(shù)據(jù)集的標(biāo)簽類型具有較優(yōu)的平衡性,因此在測試結(jié)果中數(shù)據(jù)各項(xiàng)性能的評估率不存在較為明顯的波動(dòng)。 圖6 在AWID 數(shù)據(jù)集上不同算法的準(zhǔn)確率對比Fig.6 Accuracy comparison among different algorithms on AWID dataset 在AWID 數(shù)據(jù)集上不同算法的查準(zhǔn)率對比如圖7 所示。從圖7 可以看出,本文算法在Normal、Flooding 和Impersonation 標(biāo)簽類型上的查準(zhǔn)率較SVM算法分別提高4.5、2.5和11.2個(gè)百分點(diǎn);在Injection 標(biāo)簽類型上近乎相同。因此,本文算法的查準(zhǔn)性能優(yōu)于SVM 算法。本文算法在Normal 和Impersonation 標(biāo)簽類型上的查準(zhǔn)率較DT 算法分別提高5.1和2.9個(gè)百分點(diǎn),在Flooding、Injection標(biāo)簽類型上近乎相同。因此,本文算法的查準(zhǔn)率性能優(yōu)于DT算法。本文算法在Normal、Flooding 和Impersonation 標(biāo)簽類型上的查準(zhǔn)率較DT-SVM 算法分別提高2.5、1.4 和2.3 個(gè)百分點(diǎn),在Injection 標(biāo)簽類型上近乎相同。因此,本文算法的查準(zhǔn)率性能優(yōu)于DT-SVM 算法。 圖7 在AWID 數(shù)據(jù)集上不同算法的查準(zhǔn)率對比Fig.7 Precision comparison among different algorithms on AWID dataset 在AWID 數(shù)據(jù)集上不同算法的評價(jià)指標(biāo)對比如表9 所示。本文算法在Normal 和Flooding 標(biāo)簽類型上的誤報(bào)率較SVM 算法分別降低了1.15 和0.7 個(gè)百分點(diǎn)。因此,本文算法的誤報(bào)性能優(yōu)于SVM算法。本文算法在Normal、Flooding 和Impersonation標(biāo)簽類型上的誤報(bào)率較DT 算法分別減少了1.86、0.72 和0.81 個(gè)百分點(diǎn),在Injection 標(biāo)簽類型上增加了0.05 個(gè)百分點(diǎn)。因此,本文算法的誤報(bào)性能優(yōu)于DT 算法。本文算法在Normal、Flooding 和Impersonation標(biāo)簽類型上的誤報(bào)率較DT-SVM 算法分別降低了0.58、0.42 和0.76 個(gè)百分點(diǎn)。因此,本文算法的誤報(bào)性能優(yōu)于DT-SVM 算法。 表9 在AWID 數(shù)據(jù)集上不同算法的評價(jià)指標(biāo)對比Table 9 Evaluation indexs comparison among different algorithms on AWID dataset % 本文提出共形預(yù)測框架下的入侵檢測算法。結(jié)合共形預(yù)測算法能夠給出置信值的優(yōu)點(diǎn),通過構(gòu)造適應(yīng)機(jī)器學(xué)習(xí)分類算法的不一致得分函數(shù),得到預(yù)測結(jié)果的改進(jìn)p-value,同時(shí)采用支持向量機(jī)對置信值低于閾值的預(yù)測結(jié)果進(jìn)行二次精細(xì)預(yù)測,提高各類數(shù)據(jù)標(biāo)簽的預(yù)測精度。實(shí)驗(yàn)結(jié)果表明,與DT、SVM 和DT-SVM 算法相比,本文算法在保證檢測結(jié)果可靠性的情況下具有較優(yōu)的檢測性能。下一步將把概率圖理論與共形預(yù)測算法相融合,使得共形預(yù)測算法中的數(shù)據(jù)無需滿足獨(dú)立同分布的要求,進(jìn)一步提高檢測結(jié)果的可靠度。2.2 CP 框架下的底層算法
2.3 CP 算法
2.4 入侵檢測算法架構(gòu)
3 仿真實(shí)驗(yàn)與結(jié)果分析
3.1 KDD CUP99 數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果與分析
3.2 AWID 數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果與分析
4 結(jié)束語