古險峰
(鄭州工業(yè)應(yīng)用技術(shù)學(xué)院信息工程學(xué)院,河南鄭州451100)
隨著互聯(lián)網(wǎng)規(guī)模的快速發(fā)展,網(wǎng)絡(luò)已成為人們生活不可或缺的一部分,網(wǎng)絡(luò)安全也面臨著各種各樣的挑戰(zhàn)[1].黑客對計算機(jī)網(wǎng)絡(luò)的非法入侵、病毒的攻擊都給網(wǎng)絡(luò)和信息系統(tǒng)帶來了巨大的挑戰(zhàn),針對這些情況,人們對網(wǎng)絡(luò)系統(tǒng)進(jìn)行了各種保護(hù).常見的網(wǎng)絡(luò)安全措施有數(shù)字簽名技術(shù)、生物識別技術(shù)、內(nèi)容過濾技術(shù)、網(wǎng)絡(luò)隔離技術(shù)等,這些防御措施雖然在一定程度上使得網(wǎng)絡(luò)免受外界的干擾,保證信息快速及時有效傳輸,但也存在誤報、漏報率過高等缺陷,難以真實(shí)有效地對攻擊進(jìn)行檢測,且只能對已有數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行檢測,隨著攻擊的增多,數(shù)據(jù)庫越來越大,導(dǎo)致檢測效率低下,同時帶來系統(tǒng)的臃腫[2].基于數(shù)據(jù)挖掘的網(wǎng)絡(luò)入侵檢測,通過對大量的數(shù)據(jù)進(jìn)行挖掘得到隱含的、未知的潛在有用信息,精準(zhǔn)得到入侵?jǐn)?shù)據(jù)之間的關(guān)聯(lián)特性,避免手工分析帶來的巨大工作量和人為因素的干擾,減輕運(yùn)行和維護(hù)成本[3].
20 世紀(jì)80 年代入侵檢測技術(shù)(IDS)作為一種積極主動的防御技術(shù)被提出,通過收集計算機(jī)中的關(guān)鍵信息進(jìn)行分析,進(jìn)而得出網(wǎng)絡(luò)中是否有違反安全策略和被攻擊行為的發(fā)生[4].入侵行為分為內(nèi)部入侵和外部入侵,內(nèi)部入侵主要指合法用戶的越權(quán)行為,外部入侵則指黑客或者非法用戶的侵入,入侵行為會對網(wǎng)絡(luò)數(shù)據(jù)的完整性、有效性和私密性帶來威脅,針對不同的入侵行為檢測技術(shù)側(cè)重點(diǎn)不一樣[5].入侵檢測的分類,依據(jù)不同的對象結(jié)果不同,異常檢測和誤用檢測是根據(jù)檢測技術(shù)不同劃分的;基于網(wǎng)絡(luò)和基于主機(jī)則是依據(jù)數(shù)據(jù)來源不同進(jìn)行劃分的;按照檢測時間則可以劃分為實(shí)時和非實(shí)時[6].入侵檢測系統(tǒng)模型有統(tǒng)一模型和Snort 模型,主要由事件產(chǎn)生器和事件發(fā)生器以及響應(yīng)單元和數(shù)據(jù)庫構(gòu)成,模型如圖1所示.
圖1 入侵檢測系統(tǒng)模型Fig. 1 Intrusion detection system model
面對入侵行為,網(wǎng)絡(luò)系統(tǒng)的檢測主要由4 個步驟組成:①數(shù)據(jù)收集階段,通過外置傳感器或不同的代理主機(jī)來搜索系統(tǒng)的初始信息,主要包括用戶的行為和狀態(tài)以及網(wǎng)絡(luò)的基礎(chǔ)數(shù)據(jù);②數(shù)據(jù)處理階段,針對收集到的不同類型數(shù)據(jù),將其進(jìn)行加工,變換為計算機(jī)識別的統(tǒng)一格式,提高檢測的時效性;③數(shù)據(jù)分析,對收集來的信息進(jìn)行初步的分析,通過與已知數(shù)據(jù)庫進(jìn)行模式匹配或者利用概率論進(jìn)行統(tǒng)計分析,將得到的不確定危險數(shù)據(jù)傳輸給控制模塊;④系統(tǒng)響應(yīng),通過與規(guī)則庫進(jìn)行匹配,采取相應(yīng)的應(yīng)對措施,如重新配置路由器、隔離入侵者IP、修改文件屬性等[7].入侵檢測過程如圖2 所示.
圖2 入侵檢測過程Fig. 2 Intrusion detection process
數(shù)據(jù)挖掘是在大量模糊的、有噪聲的無規(guī)則數(shù)據(jù)中,發(fā)掘潛在的、有關(guān)聯(lián)性的模式或規(guī)則.數(shù)據(jù)挖掘的實(shí)現(xiàn)主要由3 個過程構(gòu)成:①數(shù)據(jù)的準(zhǔn)備階段,包括數(shù)據(jù)目標(biāo)選取發(fā)現(xiàn)操作對象、不同類型數(shù)據(jù)的預(yù)處理和噪聲消除、數(shù)據(jù)的降維變換等;②數(shù)據(jù)挖掘,根據(jù)不同的數(shù)據(jù)挖掘模型,確定與之匹配的挖掘算法,從大量不完整、無規(guī)則的數(shù)據(jù)中發(fā)現(xiàn)潛在有關(guān)聯(lián)性的數(shù)據(jù),以便對結(jié)果進(jìn)行預(yù)測;③數(shù)據(jù)的表示和評估,對數(shù)據(jù)挖掘得到的信息進(jìn)行關(guān)聯(lián)規(guī)則、分類、聚類分析,從而得到挖掘數(shù)據(jù)的價值,進(jìn)而以一種簡單的易于理解的形式表現(xiàn)出來,實(shí)現(xiàn)數(shù)據(jù)的可視化[8].數(shù)據(jù)挖掘系統(tǒng)結(jié)構(gòu)如圖3 所示.
圖3 數(shù)據(jù)挖掘系統(tǒng)結(jié)構(gòu)Fig. 3 Data mining system structure
面向入侵檢測的數(shù)據(jù)挖掘算法是入侵檢測系統(tǒng)中最重要的一環(huán),不同的數(shù)據(jù)挖掘算法針對不同的模型有不同的優(yōu)缺點(diǎn),統(tǒng)計分析、特征分析、變化和偏差分析、聚類是數(shù)據(jù)挖掘的經(jīng)常使用的分析方法,而關(guān)聯(lián)規(guī)則則是數(shù)據(jù)挖掘算法的重點(diǎn),代表數(shù)據(jù)相互之間的關(guān)系[9].關(guān)聯(lián)規(guī)則的數(shù)學(xué)描述為:假設(shè)存在數(shù)據(jù)庫D,數(shù)據(jù)庫中有m 個信息,每個信息為Ti,每個信息由n 個單元I 構(gòu)成,它們之間的關(guān)系為描述為:D={T1,T2……Tm},T={I1,I2,……In},數(shù)據(jù)庫的子集用A 表示,如果存在 A =K,那么稱A 為K 的項(xiàng)目集,數(shù)據(jù)庫D 包含項(xiàng)目集A 的支持度用Cx表示,如果存在項(xiàng)目集A、B 那么它們之間的關(guān)聯(lián)規(guī)則為
式(1)、式(2)中:Support(A)為數(shù)據(jù)庫D 中項(xiàng)目集A 的支持度,Confidence(A)為置信度,計算方式為
因此,我們可以通過項(xiàng)目集A、B 之間的支持度和置信度來確定兩個項(xiàng)目之間的關(guān)聯(lián)規(guī)則,假設(shè)關(guān)聯(lián)規(guī)則 A ?B的置信度 Confidence ( A ?B)不小于項(xiàng)目集的最小置信度,且 A ?B的支持度大于或等于最小支持度,那就意味著項(xiàng)目集A、B 之間存在強(qiáng)關(guān)聯(lián)規(guī)則,反之則意味著它們之間關(guān)聯(lián)規(guī)則極弱.項(xiàng)目集A、B 之間相關(guān)性也可以通過度量來表示
式(4)中:A、B 的平均值為 A, B ,標(biāo)準(zhǔn)差為 σA,σB.
關(guān)聯(lián)規(guī)則可以提取出入侵行為之間的關(guān)聯(lián)性,進(jìn)而可以發(fā)掘潛在的、有關(guān)聯(lián)性入侵模式或規(guī)則,通過Apriori 算法,對已有的入侵?jǐn)?shù)據(jù)進(jìn)行數(shù)據(jù)挖掘,得出關(guān)聯(lián)規(guī)則,部分代碼為:
Apriori begin
L1=find_frequent_1-itemse(tD);
Fo(rk=2;Lk-1≠ Φ;k++);
{Cx=aprior(iLk-1,min_sup);
For each transaction tD;// 掃描數(shù)據(jù)庫D
Ct=subse(tCk,t);// 從候選集中選擇關(guān)聯(lián)子集
for each candidate c Ct;
c.count++;
}
Lk={c∈Ck}
}
Return L=UkLk;
if S ∈Lk-1then;
return TRUE;
return FALSE;
為了實(shí)現(xiàn)對網(wǎng)絡(luò)數(shù)據(jù)的及時有效分析,本文將入侵檢測系統(tǒng)總體設(shè)計的核心定義為挖掘數(shù)據(jù)之間的關(guān)聯(lián)規(guī)則、數(shù)據(jù)間的序列規(guī)則以及根據(jù)規(guī)則定義的分類識別[10].由于不同系統(tǒng)模型對應(yīng)不同的數(shù)據(jù)挖掘算法, 因此首先需要找到一種合適的入侵檢測系統(tǒng),Snort 檢測模型作為輕量級的開源入侵檢測系統(tǒng),可以有效應(yīng)對大部分網(wǎng)絡(luò)攻擊,但是Snort 檢測模型效率不高、存在誤報漏報現(xiàn)象、無法實(shí)時進(jìn)行動態(tài)檢測,因此需要對Snort 檢測模型改進(jìn).總體設(shè)計思想為:
(1)在傳統(tǒng)Snort 檢測模型上增加正常行為模塊,有針對性的對網(wǎng)絡(luò)行為進(jìn)行規(guī)則關(guān)聯(lián)分析和聚類分析,根據(jù)這些規(guī)則過濾掉大部分已知行為信息,進(jìn)而得到異常數(shù)據(jù);
(2)通過增加規(guī)則匹配模塊,對異常數(shù)據(jù)進(jìn)行匹配,在減少誤報漏報的同時,提升系統(tǒng)的檢測效果;
(3)增加規(guī)則動態(tài)生成模塊,使新系統(tǒng)具有動態(tài)擴(kuò)充機(jī)制,及時有效地對規(guī)則庫進(jìn)行更新迭代,提升規(guī)則庫的完備性.
改進(jìn)后的Snort 系統(tǒng)模型見圖4.
圖4 改進(jìn)后的Snort 系統(tǒng)模型Fig. 4 Improved Snort system model
基于數(shù)據(jù)挖掘的網(wǎng)絡(luò)入侵檢測,通過對大量的已知數(shù)據(jù)進(jìn)行挖掘和分析,找出攻擊特征作為檢測依據(jù).首先需要進(jìn)行數(shù)據(jù)采集,數(shù)據(jù)采集的完整性、準(zhǔn)確性是系統(tǒng)實(shí)現(xiàn)的關(guān)鍵.本文采用具有典型代表性的KDD CUP99 數(shù)據(jù)集,該數(shù)據(jù)集信息豐富,包含未經(jīng)訓(xùn)練的網(wǎng)絡(luò)數(shù)據(jù)作為測試集以及有標(biāo)識的訓(xùn)練集,模擬真實(shí)網(wǎng)絡(luò)攻擊環(huán)境.訓(xùn)練集包含有完整的基礎(chǔ)信息:DOS 代表具有攻擊特征的數(shù)據(jù)、Normal 代表正常行為數(shù)據(jù)、U2R 代表內(nèi)部低層用戶的越層訪問、R2L 代表外部程序的不正常來訪、Probing 代表系統(tǒng)本身具有的探測和監(jiān)視活動.
由于采集的原始數(shù)據(jù)含有噪聲、冗余信息等,不能直接進(jìn)行數(shù)據(jù)挖掘,因此需要對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理、標(biāo)準(zhǔn)化處理后的數(shù)據(jù)采用Apriori 決策樹算法得到關(guān)聯(lián)規(guī)則,進(jìn)而實(shí)現(xiàn)數(shù)據(jù)挖掘.算法實(shí)現(xiàn)流程為:
(1)對采集到的數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理,尋找發(fā)現(xiàn)決策樹項(xiàng)集;
(2)循環(huán)處理,得出訓(xùn)練集的決策樹k 項(xiàng)集合;
(3)對每個待測目標(biāo)數(shù)據(jù)進(jìn)行閱歷,得出目標(biāo)數(shù)據(jù)的決策樹項(xiàng)集支持頻度;
(4)通過計算網(wǎng)絡(luò)數(shù)據(jù)包與決策樹正常選項(xiàng)集的支持頻度來確定是異常數(shù)據(jù)還是正常數(shù)據(jù),進(jìn)而實(shí)現(xiàn)網(wǎng)絡(luò)入侵檢測.
實(shí)驗(yàn)驗(yàn)證首先需要搭建軟硬件環(huán)境,本文采用的主機(jī)服務(wù)器為Intel i7 處理器、32 G 內(nèi)存、1T 硬盤,軟件環(huán)境為VC++6.0 作為開發(fā)語言,實(shí)驗(yàn)數(shù)據(jù)集為KDD CUP99,數(shù)據(jù)庫采用MySQL8.0.11 版本,操作系統(tǒng)為Windows 7,通過對不同網(wǎng)絡(luò)入侵檢測系統(tǒng)的誤報率、漏報率以及檢測時間進(jìn)行驗(yàn)證,來評價系統(tǒng)的有效性.不同算法檢測性能比較結(jié)果見表1.
表1 不同算法檢測性能比較Tab. 1 Comparison of detection performance of different algorithms %
由表1 可知,本文設(shè)計的檢測系統(tǒng)模型在相同測試樣本下,相對于其他檢測系統(tǒng)具有較高的準(zhǔn)確率,同時在誤報率、漏報率方面也低于其他系統(tǒng),具有一定的優(yōu)勢.同時為了驗(yàn)證算法的時效性,需要對不同算法在檢測時間上進(jìn)行比較,以驗(yàn)證系統(tǒng)的檢測效率,測試集樣本數(shù)采用全部測試集,來驗(yàn)證系統(tǒng)的普適性,具體效果見表2.
表2 不同系統(tǒng)性能比較Tab. 2 Performance comparison of different systems
由表2 可知,本文算法在保證檢測準(zhǔn)確率的同時,檢測時間相對于其他系統(tǒng)也具有一定的優(yōu)勢,具有一定的理論和應(yīng)用價值.
網(wǎng)絡(luò)的飛速發(fā)展一方面豐富了人們的生活,同時也帶來了許多網(wǎng)絡(luò)安全問題.網(wǎng)絡(luò)入侵檢測系統(tǒng)作為網(wǎng)絡(luò)防護(hù)的重要一環(huán)起著非常重要的作用,但隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大以及網(wǎng)絡(luò)攻擊的多樣化,傳統(tǒng)的入侵檢測系統(tǒng)已不能很好地適應(yīng)環(huán)境.文章首先分析了入侵檢測的分類及模型,以及常用的數(shù)據(jù)挖掘算法,將數(shù)據(jù)挖掘與入侵檢測結(jié)合起來,并通過Apriori 決策樹得到關(guān)聯(lián)規(guī)則,進(jìn)行數(shù)據(jù)挖掘,最終實(shí)現(xiàn)檢測系統(tǒng)的設(shè)計與實(shí)現(xiàn),并與其他系統(tǒng)在準(zhǔn)確率和檢測時間上進(jìn)行比較,得出本系統(tǒng)的應(yīng)用價值.同時,在面對入侵行為的多樣化以及多元化時,應(yīng)用層侵檢和自適應(yīng)侵檢是未來入侵檢測技術(shù)的主要發(fā)展方向.