段仁武
(六安職業(yè)技術(shù)學(xué)院信息與電子工程學(xué)院 安徽六安 237158)
互聯(lián)網(wǎng)與各生產(chǎn)領(lǐng)域的融合使得計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境日益復(fù)雜化,不合法的網(wǎng)絡(luò)入侵行為大幅度增加。各種入侵檢測(cè)方案層出不窮,其目的是動(dòng)態(tài)監(jiān)控網(wǎng)絡(luò)環(huán)境中的數(shù)據(jù)傳輸情況,發(fā)現(xiàn)可疑攻擊行為進(jìn)一步進(jìn)行數(shù)據(jù)挖掘,最終準(zhǔn)確分辨出入侵行為及攻擊類型,增強(qiáng)網(wǎng)絡(luò)運(yùn)行的安全系數(shù)與保密特性[1]。入侵檢測(cè)本質(zhì)是網(wǎng)絡(luò)的第二道安全防線,在防火墻的基礎(chǔ)上進(jìn)行安全檢測(cè)優(yōu)化,高強(qiáng)度防御外部入侵?jǐn)?shù)據(jù)與行為。網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)之間存在一定的關(guān)聯(lián)性,挖掘其中的關(guān)聯(lián)規(guī)則即可探尋當(dāng)前傳輸?shù)臄?shù)據(jù)中是否存在入侵行為[2]。據(jù)此,文章使用關(guān)聯(lián)規(guī)則算法Apriori算法設(shè)計(jì)一套可以處理海量數(shù)據(jù)的網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)挖掘方案,解決當(dāng)前入侵攻擊行為方法檢測(cè)效率低、檢測(cè)誤差大等問題。
Apriori算法是基于關(guān)聯(lián)規(guī)則挖掘數(shù)據(jù)的主要實(shí)現(xiàn)方法,首先描述關(guān)聯(lián)規(guī)則完成計(jì)算機(jī)網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)挖掘的主要原理。關(guān)聯(lián)規(guī)則可以探尋計(jì)算機(jī)網(wǎng)絡(luò)數(shù)據(jù)項(xiàng)目之間或者是項(xiàng)目?jī)?nèi)部的關(guān)聯(lián)關(guān)系,表達(dá)形式描述為X→Y,X項(xiàng)集與Y項(xiàng)集的關(guān)系為相互獨(dú)立,X∩Y≠?。公式(1)與公式(2)為關(guān)聯(lián)規(guī)則關(guān)聯(lián)性的完整體現(xiàn):
(1)
(2)
公式(1)與公式(2)分別對(duì)項(xiàng)集間的支持度與置信度進(jìn)行了描述。X、Y的總數(shù)用N表示,公式可解釋為:使用支持度與置信度挖掘不同數(shù)據(jù)項(xiàng)集間的內(nèi)在關(guān)聯(lián)[3]。因此關(guān)聯(lián)規(guī)則定義為:存在集合I={l1,l2,…,lq},項(xiàng)集則是其中的lj項(xiàng),j取值在1與q之間。用T對(duì)項(xiàng)集集合命名,T關(guān)系集合定義為D,此時(shí)T?L。關(guān)聯(lián)規(guī)則中的每一個(gè)關(guān)系都存在一個(gè)標(biāo)識(shí)TID。經(jīng)上述描述可以將關(guān)聯(lián)規(guī)則總結(jié)為:對(duì)所有符合支持度與置信度的項(xiàng)集進(jìn)行匹配,且使其大于預(yù)設(shè)的最小支持度與置信度[4]。頻繁項(xiàng)集生成與關(guān)聯(lián)規(guī)則生成是算法實(shí)現(xiàn)的兩個(gè)關(guān)鍵步驟,前者負(fù)責(zé)挖掘最小支持度閾值項(xiàng)集,后者以前者生成的頻繁項(xiàng)集為前提挑選強(qiáng)關(guān)聯(lián)規(guī)則。
在計(jì)算機(jī)網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)挖掘問題中,將挖掘算法生成的警報(bào)視為事務(wù),入侵者正式入侵前進(jìn)行多次嘗試行為,形成重復(fù)模式,對(duì)應(yīng)的重復(fù)序列則是頻繁產(chǎn)生的警報(bào)集合。Apriori算法挖掘計(jì)算機(jī)網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)關(guān)聯(lián)規(guī)則的過程描述為:
(1)D表示事務(wù)數(shù)據(jù)庫(kù),E1表示1-候選項(xiàng)集,掃描數(shù)據(jù)庫(kù)后求取全部E1的支持度;比較最小支持度與當(dāng)前計(jì)算得到的支持度值,將不小于最小支持度的結(jié)果作為頻繁1項(xiàng)集的元素,構(gòu)成H1。
(2)將H1添加到自身項(xiàng)集中,通過修剪操作得到1-候選項(xiàng)集命名為E2;繼續(xù)利用不小于最小支持度的項(xiàng)目作為元素構(gòu)成頻繁2項(xiàng)集,構(gòu)成H2。
(3)繼續(xù)利用H1得到H3,如此循環(huán)操作,Hk為空集時(shí)終止迭代,算法停止運(yùn)行。
傳統(tǒng)的Apriori算法挖掘網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)關(guān)聯(lián)規(guī)則存在提取規(guī)則過程繁瑣、冗長(zhǎng)等問題,最終導(dǎo)致算法收斂效率低、精確度不足等問題。為提升計(jì)算機(jī)網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)挖掘性能,基于粒子群優(yōu)化算法改進(jìn)Apriori算法提取關(guān)聯(lián)規(guī)則的過程,選擇最優(yōu)的關(guān)聯(lián)規(guī)則,準(zhǔn)確識(shí)別網(wǎng)絡(luò)入侵行為。
引力搜索粒子群算法運(yùn)算參數(shù)少、適應(yīng)性強(qiáng),與粒子群算法結(jié)合的優(yōu)點(diǎn)在于能夠吸引質(zhì)量低于本身的粒子,提升粒子信息交互的頻次與有效性,豐富粒子多樣性[5]。為此將引力搜索算法與粒子群算法結(jié)合,聯(lián)合改進(jìn)傳統(tǒng)Apriori算法提取規(guī)則的性能。
基于引力搜索粒子群算法改進(jìn)Apriori算法過程中,其編碼方式與策略如下:基于離散二進(jìn)制編碼方法確定粒子位置信息,因?yàn)殛P(guān)聯(lián)規(guī)則對(duì)應(yīng)的數(shù)據(jù)挖掘解空間是一個(gè)離散性質(zhì)的數(shù)據(jù)庫(kù);具體將單個(gè)粒子視為一條關(guān)聯(lián)規(guī)則,事務(wù)集包含n個(gè)事務(wù)時(shí)利用n維數(shù)組描述粒子位置;各項(xiàng)目包含兩部分,0、1是這兩部分的可能性數(shù)值構(gòu)成。
基于引力搜索粒子群算法改進(jìn)Apriori算法過程中,適應(yīng)度函數(shù)設(shè)計(jì)如下:將粒子群算法的目標(biāo)函數(shù)作為粒子搜索的引導(dǎo)依據(jù),以評(píng)價(jià)個(gè)體的適應(yīng)度值[6]。所以構(gòu)造適應(yīng)度函數(shù)作為評(píng)價(jià)函數(shù)精準(zhǔn)評(píng)估每個(gè)個(gè)體情況。置信度與支持度在適應(yīng)度函數(shù)構(gòu)造中的定義為:
(1)X和Y的事務(wù)在數(shù)據(jù)庫(kù)中的比重描述為K(X→Y),計(jì)算表達(dá)式如下:
(3)
(2)全部涵蓋X的事務(wù)且涵蓋Y的事務(wù)比重用Z(X→Y)描述,計(jì)算表達(dá)式為:
(4)
利用支持度與置信度構(gòu)造的適應(yīng)度函數(shù)如公式(5)所示:
F(X)=δK(X)+θZ(X)
(5)
式(5)中,置信度與支持度用Z(X)、K(X)表示;引入δ、θ作為支持度與置信度在適應(yīng)度函數(shù)中的調(diào)節(jié)參數(shù),取值均在0~1之間,且滿足δ、θ之和為1的條件。公式中如果δ取值為0說明此時(shí)規(guī)則中僅包含置信度概念,生成的規(guī)則可能是支持度較低、置信度較高的狀態(tài),所以這類規(guī)則對(duì)于解決網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)挖掘問題而言無效。同時(shí),若θ取值為0說明當(dāng)前規(guī)則僅包含支持度,因此那些置信度高、支持度較低的規(guī)則往往不包含其中,但是這一部分規(guī)則對(duì)于解決網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)挖掘問題而言存在一定的價(jià)值。
此外,粒子的速度、位置更新方法參照謝國(guó)民等人的研究[7]。
當(dāng)前計(jì)算機(jī)網(wǎng)絡(luò)每日產(chǎn)生的數(shù)據(jù)量巨大,其中不明身份的數(shù)據(jù)入侵行為逐漸增多,為了優(yōu)化Apriori算法挖掘入侵?jǐn)?shù)據(jù)的效率,在Hadoop框架下運(yùn)行數(shù)據(jù)挖掘算法,提高入侵行為檢測(cè)的并行化水平。Hadoop大數(shù)據(jù)運(yùn)行集群采用MapReduce編程模型實(shí)現(xiàn)并行運(yùn)算[8]:
(1)Map映射函數(shù)負(fù)責(zé)接收樣本數(shù)據(jù)將其轉(zhuǎn)換為
(2)Reduce歸約函數(shù)以Map函數(shù)鍵值為基礎(chǔ)歸約value值,減少
Jobtracker和tasktracker是兩個(gè)關(guān)鍵的后臺(tái)運(yùn)行程序,前者任務(wù)是將作業(yè)任務(wù)合理分配到各節(jié)點(diǎn),實(shí)時(shí)監(jiān)督任務(wù)執(zhí)行情況,提供相關(guān)數(shù)據(jù)管理服務(wù);后者負(fù)責(zé)執(zhí)行Jobtracker分配的任務(wù),階段性向其提供任務(wù)執(zhí)行反饋。
在Hadoop集群下搭建計(jì)算機(jī)網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)挖掘測(cè)試環(huán)境,部署一臺(tái)Name Node節(jié)點(diǎn),10臺(tái)Data Node節(jié)點(diǎn),節(jié)點(diǎn)計(jì)算機(jī)使用英特爾?酷睿i7處理器。以從事網(wǎng)絡(luò)運(yùn)營(yíng)的公司為對(duì)象采集計(jì)算機(jī)網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù),構(gòu)建G1、G2、G3、G4、G5入侵測(cè)試數(shù)據(jù)集。同時(shí)將基于神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)挖掘方法、基于k-means的網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)挖掘方法作為對(duì)比測(cè)試方法,以評(píng)估本文方法在網(wǎng)絡(luò)數(shù)據(jù)入侵挖掘中的性能。表1和圖1分別為實(shí)驗(yàn)過程中記錄的三種方法挖掘網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)的準(zhǔn)確度與用時(shí)情況。
表1三種方法挖掘網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)的準(zhǔn)確度統(tǒng)計(jì)(%)
圖1三種方法挖掘網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)的時(shí)間開銷
結(jié)合圖1和表1數(shù)據(jù)可知,文章方法挖掘計(jì)算機(jī)網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)的準(zhǔn)確度在96%以上,可信度較強(qiáng);隨著節(jié)點(diǎn)數(shù)量的增加,文章方法數(shù)據(jù)挖掘的用時(shí)大幅度降低,當(dāng)計(jì)算機(jī)節(jié)點(diǎn)數(shù)量由4個(gè)增加至6個(gè)時(shí),數(shù)據(jù)挖掘的時(shí)間開銷由1580s降低至約1040s,隨后時(shí)間開銷保持在980s左右。相比之下,基于神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)挖掘方法、基于k-means的網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)挖掘方法的準(zhǔn)確度低于文章方法且沒有達(dá)到理想狀態(tài),隨著節(jié)點(diǎn)增加算法運(yùn)行時(shí)間減少的幅度較小,數(shù)據(jù)挖掘效率不佳。
文章提出一種基于Apriori算法的計(jì)算機(jī)網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)挖掘方法,為高精度識(shí)別網(wǎng)絡(luò)入侵行為提供可行性方案。文章方法在運(yùn)行效率與挖掘精度上基本可以滿足網(wǎng)絡(luò)數(shù)據(jù)入侵識(shí)別的要求。這是因?yàn)楸疚姆椒▽?duì)傳統(tǒng)Apriori算法進(jìn)行改進(jìn),利用引力搜索粒子群算法優(yōu)化Apriori算法的規(guī)則提取性能,剔除更多強(qiáng)度不高的關(guān)聯(lián)規(guī)則;同時(shí)在Hadoop集群MapReduce編程模型下執(zhí)行改進(jìn)Apriori算法,實(shí)現(xiàn)數(shù)據(jù)挖掘任務(wù)的并行式運(yùn)行。以上兩種策略分別從挖掘準(zhǔn)確度與效率兩個(gè)層面改進(jìn)了傳統(tǒng)Apriori算法,經(jīng)測(cè)試,文章方法在網(wǎng)絡(luò)入侵檢測(cè)領(lǐng)域具有較高的推廣應(yīng)用價(jià)值。