楊光輝,封均康
(1. 華北理工大學(xué)理學(xué)院,河北 唐山 063210;2. 西蘇格蘭大學(xué)工程與計(jì)算機(jī)科學(xué)學(xué)院,英國(guó) 佩斯利 PA1 2BE)
大量的信息每天以人們想象不到的速度在網(wǎng)絡(luò)上進(jìn)行傳播[1],人們每天都被各種各樣的網(wǎng)絡(luò)信息所包圍,網(wǎng)絡(luò)成為人們?nèi)粘I钪胁豢扇鄙俚囊徊糠諿2]。隨之而來(lái)的網(wǎng)絡(luò)信息數(shù)據(jù)安全問題逐漸成為熱點(diǎn)話題。傳統(tǒng)的網(wǎng)絡(luò)安全技術(shù)早已經(jīng)滿足不了現(xiàn)今日益進(jìn)步的網(wǎng)絡(luò)信息技術(shù),在網(wǎng)絡(luò)信息中存在大量的不安全信息,因此需要對(duì)網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)進(jìn)行挖掘[3]。
文獻(xiàn)[4]提出在云環(huán)境中改進(jìn)FCM和規(guī)則參數(shù)優(yōu)化的網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)挖掘方法,該方法通過互信息特征選擇對(duì)樣本特征進(jìn)行降維,再運(yùn)用改進(jìn)模糊C均值聚類(IFCM)方法進(jìn)行對(duì)網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)聚類訓(xùn)練,依據(jù)各個(gè)數(shù)據(jù)集群對(duì)應(yīng)關(guān)系和樣本特征取得初始模糊規(guī)則庫(kù)。然后進(jìn)行參數(shù)調(diào)優(yōu),獲取準(zhǔn)確規(guī)則庫(kù)。最后利用規(guī)則庫(kù)連接網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)進(jìn)行模糊推理以此實(shí)現(xiàn)網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)挖掘。該方法在網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)規(guī)模較大時(shí)檢測(cè)率較高且趨于平穩(wěn)但是由于缺少改進(jìn)Apriori算法所產(chǎn)生的網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)間的關(guān)聯(lián)規(guī)則,所以在小型網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)樣本檢測(cè)時(shí)檢測(cè)率卻偏低,達(dá)不到效果。
文獻(xiàn)[5]提出基于OSELM分類器和連接數(shù)據(jù)分析的網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)挖掘方法,該方法分析入侵?jǐn)?shù)據(jù)庫(kù)中存在的網(wǎng)絡(luò)數(shù)據(jù),并利用特征選擇算法構(gòu)建特征子集,進(jìn)行多次迭代驗(yàn)證,采用Alpha剖析方法對(duì)樣本尺寸進(jìn)行調(diào)整,通過調(diào)整后的樣本特征集對(duì)OSELM分類器進(jìn)行訓(xùn)練,采用OSELM分類器實(shí)現(xiàn)網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)的挖掘,該方法雖然在檢測(cè)正確率上較為穩(wěn)定但是因其沒有完整的基于關(guān)聯(lián)規(guī)則的特征抽取環(huán)節(jié),導(dǎo)致其漏報(bào)率低下。
為了解決上述方法中存在的問題,提出基于改進(jìn)Apriori算法的網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)挖掘方法。
傳統(tǒng)Apriori算法[6]進(jìn)行網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)挖掘時(shí)不但需要對(duì)網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)庫(kù)進(jìn)行多次重復(fù)掃描而且會(huì)產(chǎn)生海量的候選項(xiàng)集,針對(duì)這些問題,對(duì)Apriori算法進(jìn)行改進(jìn):
通過MapReduce并行技術(shù)和矩陣進(jìn)行結(jié)合,加強(qiáng)Apriori算法的并行處理能力,提升算法性能。
具體過程如下:
1)并行化:先將入侵?jǐn)?shù)據(jù)庫(kù)D區(qū)分為若干塊τ0,τ1,…,τN,再將這若干塊數(shù)據(jù)矩陣化,最后將矩陣化的數(shù)據(jù)分給對(duì)應(yīng)的項(xiàng)集,進(jìn)行Map和Reduce計(jì)算;
2)矩陣化:掃描事物數(shù)據(jù)庫(kù)D,把轉(zhuǎn)化來(lái)的信息用矩陣來(lái)儲(chǔ)存,矩陣中的每一行代表一個(gè)事物,每一列代表事務(wù)中的一個(gè)項(xiàng)目,將數(shù)字“0”和“1”來(lái)代表該項(xiàng)是否存在于當(dāng)前事務(wù)中,若存在就為“1”,不存在則為“0”;
3)計(jì)算支持度:根據(jù)項(xiàng)目集中事物和事物中的集進(jìn)行排序。對(duì)于頻繁的兩個(gè)(k-1)項(xiàng)集lx和ly,若它們的前(k-2)項(xiàng)相同,那么它們就可以連接生成一個(gè)候選k項(xiàng)集Xk,若Xk的前(k-2)項(xiàng)來(lái)自于兩者前(k-2)項(xiàng),那么會(huì)產(chǎn)生兩項(xiàng)候選集IX[k-1]與Iy[k-1]。通過IX[k-1]與Iy[k-1]的邏輯計(jì)算獲取矩陣中頻繁的兩個(gè)(k-1)項(xiàng)集lx和ly的支持度。矩陣化直接縮減了對(duì)數(shù)據(jù)庫(kù)的掃描次數(shù),修改后對(duì)數(shù)據(jù)庫(kù)只需進(jìn)行兩次掃描,就可以迅速獲得頻繁項(xiàng)目集及關(guān)聯(lián)規(guī)則[7]。
通過改進(jìn)后的Apriori算法挖掘數(shù)據(jù)可以使挖掘得到的規(guī)則更具準(zhǔn)確性[8],利用對(duì)目標(biāo)項(xiàng)的預(yù)先設(shè)置來(lái)實(shí)現(xiàn)數(shù)據(jù)挖掘過程中所包含于候選項(xiàng)里的所有目標(biāo)項(xiàng)。該方法不僅滿足了用戶需求,還縮減了頻繁項(xiàng)目集的規(guī)模、節(jié)省了數(shù)據(jù)挖掘時(shí)間、提高了效率。
設(shè)挖掘目標(biāo)項(xiàng)為NT,挖掘過程如下:
1)獲取一項(xiàng)頻繁項(xiàng)目集集合L1,如果L1當(dāng)中包含NT兩項(xiàng),繼續(xù),若不包含,結(jié)束;
2)計(jì)算NT候選項(xiàng)目集的支持度,小于最小支持度停止挖掘,若大于或等于就繼續(xù);
3)連接目標(biāo)項(xiàng)與頻繁項(xiàng)目集L1中不屬于N和T的項(xiàng)集,獲取新的候選集A3,這時(shí)A3中的所有項(xiàng)目集都是NT*式,以此獲得支持度。選取出大于最小支持度的頻繁項(xiàng)目集L3,這時(shí)L3的每個(gè)項(xiàng)目集都包含了目標(biāo)項(xiàng)NT,此后連接頻繁項(xiàng)目集L3的候選項(xiàng)集都會(huì)包含NT項(xiàng),最后獲取的挖掘規(guī)則也都包含有NT項(xiàng)。利用此方法通過修改后的Apriori算法對(duì)數(shù)據(jù)進(jìn)行挖掘會(huì)更大程度上的提高挖掘的準(zhǔn)確性。
采用改進(jìn)后Apriori算法挖掘關(guān)聯(lián)規(guī)則的具體過程如下:
1)掃描數(shù)據(jù)庫(kù)獲取頻繁項(xiàng)目集L1進(jìn)行并行化與矩陣化處理。通過矩陣化分辨網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)是否處于當(dāng)前目標(biāo)項(xiàng),以此來(lái)分析是否需要?jiǎng)h減數(shù)據(jù)或劃分給相應(yīng)項(xiàng)目集;
2)連接頻繁項(xiàng)目集L1與目標(biāo)項(xiàng)中所有不屬于目標(biāo)項(xiàng)的數(shù)據(jù),獲得的項(xiàng)集L(t+1)中每個(gè)項(xiàng)集都包含了目標(biāo)項(xiàng),且t為目標(biāo)項(xiàng)數(shù)量,以此實(shí)現(xiàn)算法目的;
3)通過改進(jìn)后Apriori算法進(jìn)行頻繁項(xiàng)目集數(shù)據(jù)挖掘工作,運(yùn)用項(xiàng)目集的邏輯運(yùn)算獲取目標(biāo)項(xiàng)的局部支持度。通過Reduce運(yùn)算,取得整合后各個(gè)項(xiàng)集、候選集的局部支持度,最后獲取全局的頻繁項(xiàng)目集。
改進(jìn)后的Apriori算法只需要對(duì)網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)庫(kù)進(jìn)行兩次掃描,第一次掃描生成頻繁項(xiàng)目集,第二次掃描將其它數(shù)據(jù)轉(zhuǎn)化為矩陣進(jìn)行邏輯運(yùn)算生成關(guān)聯(lián)規(guī)則。對(duì)比傳統(tǒng)的Apriori算法縮減了對(duì)于數(shù)據(jù)庫(kù)的掃描次數(shù),并在候選項(xiàng)集的處理中運(yùn)用MapReduce對(duì)候選項(xiàng)集進(jìn)行剪枝處理,連接目標(biāo)項(xiàng)L1與目標(biāo)項(xiàng)以外的項(xiàng)A3,使頻繁項(xiàng)目集的每項(xiàng)都包含目標(biāo)項(xiàng),從而使改進(jìn)后的Apriori算法更具目的性。很大程度上減少了候選項(xiàng)集,加快了對(duì)數(shù)據(jù)的挖掘速度。
根據(jù)挖掘的關(guān)聯(lián)規(guī)則,采用KPCA方法提取網(wǎng)絡(luò)數(shù)據(jù)的特征。
假設(shè)x1,x2,…,xa為訓(xùn)練數(shù)據(jù),用{x1}表示輸入空間。設(shè)相應(yīng)的映射為Φ,將映射Φ與核函數(shù)相結(jié)合來(lái)實(shí)現(xiàn)特征的高維空間映射F,使網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)能滿足特征空間中所需要的中心化條件。
設(shè)當(dāng)前有M個(gè)網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù),其中單獨(dú)的每一個(gè)數(shù)據(jù)具有N個(gè)特征(不包括類別特征),根據(jù)KPCA基本原理,對(duì)M個(gè)入侵?jǐn)?shù)據(jù)進(jìn)行特征提取,具體過程如下:
1)將網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)中獲取的N個(gè)特征,特征中存在的M個(gè)樣本相結(jié)合,得到一個(gè)(M×N)維數(shù)據(jù)矩陣。
(1)
式中,α代表的是網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù);
2)對(duì)得到的矩陣進(jìn)行計(jì)算,獲取矩陣中的函數(shù)參數(shù)與高斯徑向基,再由下式計(jì)算矩陣K
Kμν:=(Φ(xμ)·Φ(xν))
(2)
式中,ν=1,2,…,m,μ=1,Φ為對(duì)應(yīng)的映射;
3)通過下式修正核矩陣得到KL:
(3)
4)通過修正的矩陣對(duì)KL的特征向量υ0,…,υM以及所屬矩陣的特征值λ0,…,λM進(jìn)行測(cè)試計(jì)算。
5)對(duì)特征值λ0,…,λM進(jìn)行降序處理,相對(duì)應(yīng)的特征向量υ0,…,υM進(jìn)行修改。
6)利用Schmidt正交化處理特征向量,獲取β1,…,βm。
7)依據(jù)特征向量計(jì)算得出的累計(jì)貢獻(xiàn)率B1,…,BM根據(jù)指定的信息提取率P,若B1≥P且B1-t
8)對(duì)改正過的核矩陣KL進(jìn)行計(jì)算,獲得特征向量上的投影Y=KL.β,且β=(β1,…,βl)。
在函數(shù)替換原則的基礎(chǔ)上對(duì)網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行KPCA降維處理,獲得網(wǎng)絡(luò)數(shù)據(jù)的特征β=(β1,…,βl),函數(shù)替換原則通過下式進(jìn)行描述。
(4)
式中,νk為特征向量的空間投影,x為輸入空間。
根據(jù)網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)特征抽取,運(yùn)用貝葉斯數(shù)據(jù)分類器對(duì)網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)進(jìn)行挖掘,如圖1所示。
P=(A/B)表示在已知事件B發(fā)生的前提下,事件A可能發(fā)生的概率,求解為下式
(5)
然而在樸素貝葉斯分類中,更注重P=(A|B),所以通過條件概率公式變形,可以得到下式
(6)
貝葉斯數(shù)據(jù)分類用一個(gè)N維的屬性向量樣本Χ={x1,x2,…,xN}來(lái)表示每個(gè)入侵?jǐn)?shù)據(jù),詳細(xì)說(shuō)明了貝葉斯分類賦予了每個(gè)網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)的屬性值a1,a2,…,an及測(cè)量每個(gè)入侵?jǐn)?shù)據(jù)被賦予的n個(gè)屬性的測(cè)量值。分類集合為:C={c0,c1,c2,…,cM}。
利用貝葉斯數(shù)據(jù)分類器分辨網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)中的單一數(shù)據(jù)是否屬于Ci,當(dāng)其屬于且僅滿足于條件
P(Cι|X)>P(Cj|X)
(7)
如此,最大后驗(yàn)假定P(Ci|X)的最大值為Ci。根據(jù)取得的式(6),可知下式
(8)
其中P(Ci|X)是指特定的X={x1,x2,…,xN}狀態(tài)下,分類集Ci有可能會(huì)出現(xiàn)的概率,而P(Ci)則是Ci選定狀態(tài)下將要發(fā)生的概率。
因?yàn)榉诸惣疌i在P(X)的狀態(tài)下都是常量,所以預(yù)設(shè)的P(X)取值在先驗(yàn)概率未能得到準(zhǔn)確值的情況下都是相等的常量,即表示為P(Ci)=P(C2)=…=P(CM)。因此分類是只需求得P(X|Ci)最大項(xiàng)集就能得到P(Ci)的發(fā)生概率的最大值,最后完成預(yù)定的數(shù)據(jù)分類。
因?yàn)樾枰跅l件、類別所給定的屬性極多的情況下對(duì)P(X|Ci)求解,計(jì)算要求多且數(shù)量巨大,所以在貝葉斯數(shù)據(jù)分類集X相互比較獨(dú)立的各種條件屬性下對(duì)其進(jìn)行簡(jiǎn)便算法,過程中依賴關(guān)系不屬于各個(gè)條件屬性內(nèi),過程如下式
=P(X1|Ci)×P(X2|Ci)×…×P(Xn|Ci)
(9)
若a1是分類屬性,則P(X1|C1)=S1j/S1,在這之中a1是屬于S1j的屬性,Ci是包含于值X1中的網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)的常量,分類集Ci所包括的Si是目標(biāo)項(xiàng)目集中全部網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)量。
若a1有連續(xù)值的屬性,則a1屬性服從于一般假設(shè),采用高斯分布,存在下式
(10)
其中,Ci是網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)屬性Aj的值,g(xj,μcl,σcl)是屬性Aj的高斯密度函數(shù),其中μcl為所屬函數(shù)平均值σcl為所屬函數(shù)標(biāo)準(zhǔn)差。
貝葉斯數(shù)據(jù)分類器的最后目的是將選定后的網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)劃分給相應(yīng)項(xiàng)目集(項(xiàng)目集為后驗(yàn)概率最大項(xiàng)目集)進(jìn)行計(jì)算,過程如下式:
(11)
將提取到的特征輸入分類模型中,實(shí)現(xiàn)網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)的挖掘。
樸素貝葉斯分類器的工作流程如圖2所示:
圖2 貝葉斯分類器工作流程圖
為了驗(yàn)證方法的整體有效性,需要對(duì)此方法進(jìn)行測(cè)試。實(shí)驗(yàn)環(huán)境為:采用的CPU為Pentium(R)Dual-Core、操作系統(tǒng)為WindowsXP、120G硬盤、內(nèi)存為2G。實(shí)驗(yàn)數(shù)據(jù)庫(kù)是Access2000。
分別采用基于改進(jìn)Apriori算法的網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)挖掘方法、文獻(xiàn)[4]方法、文獻(xiàn)[5]方法進(jìn)行測(cè)試。
1)在相同量的數(shù)據(jù)下對(duì)比不同方法挖掘網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)所需的時(shí)間,測(cè)試結(jié)果如圖3所示。
圖3 挖掘時(shí)間測(cè)試結(jié)果
分析圖4可知,所提方法對(duì)比文獻(xiàn)[4]方法與文獻(xiàn)[5]方法來(lái)看,所提方法明顯在挖掘數(shù)據(jù)時(shí)間上要比文獻(xiàn)[4]方法與文獻(xiàn)[5]方法的效率更高,因?yàn)樗岱椒▽?duì)傳統(tǒng)的Apriori算法進(jìn)行了矩陣化改進(jìn),使原來(lái)要進(jìn)行的多次對(duì)網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)庫(kù)的掃描現(xiàn)在只需要進(jìn)行兩次掃描,就可以獲得數(shù)據(jù)之間存在的關(guān)聯(lián)規(guī)則,在關(guān)聯(lián)規(guī)則的基礎(chǔ)上實(shí)現(xiàn)網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)的挖掘,減少了挖掘數(shù)據(jù)所需的時(shí)間,提高了挖掘效率。
2)通過對(duì)比網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)的檢測(cè)率,進(jìn)一步對(duì)所提方法、文獻(xiàn)[4]方法和文獻(xiàn)[5]方法進(jìn)行測(cè)試,測(cè)試結(jié)果分別如圖4所示。
圖4 挖掘檢測(cè)率測(cè)試結(jié)果
分析圖4可知,所提方法的檢測(cè)率對(duì)比文獻(xiàn)[4]方法和文獻(xiàn)[5]方法來(lái)看,所提方法在網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)挖掘的檢測(cè)率要高于文獻(xiàn)方法,且多次檢測(cè)下來(lái)所提方法的檢測(cè)率隨著檢測(cè)次數(shù)的增加效率下降較為平穩(wěn),主要因?yàn)樗岱椒ɡ肁priori算法在短時(shí)間內(nèi)迅速挖掘了關(guān)聯(lián)規(guī)則,并在挖掘過程中運(yùn)用MapReduce對(duì)候選項(xiàng)集進(jìn)行剪枝處理,通過剪枝處理,提高了關(guān)聯(lián)規(guī)則的精準(zhǔn)度,將高精準(zhǔn)度的關(guān)聯(lián)規(guī)則應(yīng)用在網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)的特征提取中,提高了特征提取的準(zhǔn)確率,進(jìn)而提高了方法的檢測(cè)率。
3)在測(cè)試過網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)挖掘的檢測(cè)時(shí)間和檢測(cè)率后,通過對(duì)所提方法、文獻(xiàn)[4]方法、文獻(xiàn)[5]方法進(jìn)行誤報(bào)率測(cè)試,進(jìn)一步檢測(cè)基于改進(jìn)Apriori算法的網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)挖掘方法的可行性,測(cè)試結(jié)果如圖5所示。
圖5 挖掘誤報(bào)率測(cè)試結(jié)果
分析圖5可知,測(cè)試過程中所提方法與文獻(xiàn)[4]方法、文獻(xiàn)[5]方法在多次檢測(cè)下誤報(bào)率都相對(duì)增大但是所提方法比文獻(xiàn)[4]方法和文獻(xiàn)[5]方法穩(wěn)定且誤報(bào)率低?;诟倪M(jìn)的Apriori算法在抽取特征過程中修改了核矩陣獲取了新的特征向量,讓特征抽取更具針對(duì)性以此降低網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)挖掘過程中的誤報(bào)率。
傳統(tǒng)的Apriori算法在進(jìn)行網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)挖掘時(shí)挖掘時(shí)間長(zhǎng),檢測(cè)效率低,誤報(bào)效率高。提出基于改進(jìn)Apriori算法的網(wǎng)絡(luò)入侵挖掘方法,該方法基于改進(jìn)的Apriori算法對(duì)數(shù)據(jù)進(jìn)行并行化矩陣化生成關(guān)聯(lián)規(guī)則,利用關(guān)聯(lián)規(guī)則對(duì)網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)進(jìn)行特征抽取,最后將抽取的特征放入貝葉斯分類器中完成數(shù)據(jù)分類。實(shí)驗(yàn)結(jié)果表明基于改進(jìn)的Apriori算法的網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)挖掘,解決了挖掘過程中挖掘時(shí)間長(zhǎng),檢測(cè)效率低、誤報(bào)效率高的問題。