李峻屹
(陜西警官職業(yè)學(xué)院 ,陜西 西安 710021)
互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展為人們帶來了極大的便利,但與此同時也逐漸暴露出了一系列由于網(wǎng)絡(luò)自身的設(shè)計缺陷、安全漏洞等因素引起的安全問題,而網(wǎng)絡(luò)安全是一切應(yīng)用程序得以平穩(wěn)運行的保障與基礎(chǔ),因此對網(wǎng)絡(luò)入侵檢測技術(shù)提出了更高的要求。在此需求背景下,數(shù)據(jù)挖掘技術(shù)應(yīng)運而生,利用各類算法對數(shù)據(jù)進行清洗與統(tǒng)計分析,充分挖掘出數(shù)據(jù)的潛在價值,為后續(xù)決策提供科學(xué)、合理的依據(jù)。聚類分析是數(shù)據(jù)挖掘中的主要分支,以數(shù)據(jù)的相似性作為依據(jù)完成數(shù)據(jù)劃分,目前已經(jīng)在機器學(xué)習(xí)、人工智能、網(wǎng)絡(luò)安全等眾多領(lǐng)域得到廣泛應(yīng)用。因此本文結(jié)合多種聚類分析算法的優(yōu)點構(gòu)建多級入侵檢測算法,對入侵類型進行聚類分析與研究,為網(wǎng)絡(luò)入侵檢測提供技術(shù)支撐。
隨著計算機和網(wǎng)絡(luò)信息技術(shù)的不斷發(fā)展與完善,網(wǎng)絡(luò)空間中的數(shù)據(jù)量呈指數(shù)增長,最早Lee等在入侵檢測系統(tǒng)中引入了數(shù)據(jù)挖掘技術(shù),發(fā)現(xiàn)了用戶和程序的特征模式,對入侵行為實現(xiàn)了有效的識別。目前入侵檢測所使用的數(shù)據(jù)挖掘技術(shù)已經(jīng)取得了一定的研究成果,包括基于樸素貝葉斯算法、SVM(支持向量機)算法、BP神經(jīng)網(wǎng)絡(luò)算法等多種數(shù)據(jù)挖掘算法[1],但由于參數(shù)調(diào)整過于依賴人工、易陷入局部極小值、計算過程耗時長、檢測精度較低等缺點導(dǎo)致整體入侵檢測質(zhì)量及效率均比較低。相對來說,聚類分析算法簡單、復(fù)雜度低,在網(wǎng)絡(luò)入侵檢測中具備較高的適應(yīng)性,其中較為常用的是K-means聚類算法,但該算法的聚類結(jié)果比較依賴初始簇中心點的選擇,容易陷入局部最優(yōu)解。因此在進行網(wǎng)絡(luò)安全檢測時,需對傳統(tǒng)的K-means聚類算法進行改進與優(yōu)化,力求提高入侵檢測效率及準確性,降低誤報率。
ELM算法(極限學(xué)習(xí)機算法)主要針對單隱含層前向神經(jīng)網(wǎng)絡(luò),不需要迭代,隨機產(chǎn)生的隱含層神經(jīng)元閾值以及輸入層與隱含層之間的連接權(quán)重向量顯著簡化了訓(xùn)練過程,只需設(shè)定隱含層的神經(jīng)元數(shù)量即可,在學(xué)習(xí)速度、泛化性能等方面比傳統(tǒng)算法更具優(yōu)勢。
ELM算法雖然可以滿足入侵攻擊分類的檢測需求,但算法在選擇激活函數(shù)方面存在較高的依賴性,激活函數(shù)的質(zhì)量直接影響分類效果。傳統(tǒng)ELM算法采用S型的Sigmoid函數(shù)作為激活函數(shù),為了提升分類效果,引入基于核函數(shù)的極限學(xué)習(xí)機算法,將ELM隱含層的激勵函數(shù)使用徑向基RBF核函數(shù)代替,采用具有稀疏激活性的基于修正線性單元 PReLU激活函數(shù),降低在深度卷積神經(jīng)網(wǎng)絡(luò)中的訓(xùn)練耗時。PReLU激活函數(shù)通過引入修正參數(shù)提升準確率,另外在考慮權(quán)重總數(shù)時可引入少量的額外參數(shù)避免過度擬合及額外風(fēng)險,從而實現(xiàn)對ELM算法學(xué)習(xí)效果的優(yōu)化[2]。
2.2.1傳統(tǒng)的K-means算法
K-means算法是一種迭代求解的聚類分析算法,預(yù)先將數(shù)據(jù)分為k組,隨機選取k個對象作為初始的聚類中心,通過計算每個對象與各個聚類中心之間的距離將數(shù)據(jù)對象劃分到距離它最近的聚類中心,每分配一個樣本后重新計算聚類中心,不斷重復(fù)直到滿足終止條件。該算法可以在同一類中聚集較高相似度的樣本,考慮到網(wǎng)絡(luò)入侵檢測時對算法復(fù)雜度的要求,在計算樣本間的距離時通常采用算法復(fù)雜度較小的歐氏距離。
假設(shè)數(shù)據(jù)集D包含n個樣本對象,每個數(shù)據(jù)樣本的特征維度是m維,則第i個數(shù)據(jù)對象可以表示為Xi=(x1i,x2i,…,xmi),其中xmi為數(shù)據(jù)對象Xi的第m維特征,i=1,2,…,n。隨機抽取k個數(shù)據(jù)作為初始聚類中心,則第j個聚類中心可以表示為Cj=(c1j,c2j,…,cmj),其中cmj為聚類中心Cj的第m維特征,j=1,2,…,k。則兩個數(shù)據(jù)對象Xi和Xj之間的歐氏距離d(i,j)具體計算表達式如下[3]:
d(i,j)=
(1)
K-means算法的準則函數(shù)通常采用誤差平方和函數(shù),設(shè)Ci為聚類簇,Y為聚類空間的數(shù)據(jù)對象,mi為Ci的中心(即平均值),則均方誤差E可通過以下公式計算:
(2)
2.2.2基于距離閾值的K-means算法
在K-means算法中,不同初始聚類中心的聚類效果不同,不合適的初始聚類中心極易陷入局部最優(yōu),而且K-means算法難以準確判斷出聚類數(shù)目是否合適。因此對傳統(tǒng)算法進行優(yōu)化與改進:首先,通過設(shè)定距離閾值選擇初始聚類中心,并根據(jù)計算結(jié)果實現(xiàn)聚類數(shù)目的自動生成;然后,計算數(shù)據(jù)點同鄰近點之間的距離,并與閾值進行比較,實現(xiàn)對K-means算法的聚類改進。改進的K-means算法可描述為:設(shè)D為數(shù)據(jù)集,n為其中包括的數(shù)據(jù)對象數(shù)量,λ為距離閾值,以此作為輸入,D′為最終分為k組的聚類中心數(shù)據(jù)集,作為輸出。具體操作流程如下[4]。
1)隨機選擇樣本數(shù)據(jù)對象αi作為初始聚類中心C1,αi∈D,聚類中心數(shù)量初始值k=1;
2)for(αi∈D,i≠j);
3)if(歐氏距離d(αi,Cn)>λ);
4)k=k+1;
5)end if;
6)以Cn為中心完成d(αi,Cn)的計算,將αi劃分到歐氏距離d(αi,Cn)最小的類中;
8)end for;
9)for(?αi∈D);
10)重復(fù)步驟6)、7);
11)if(生成的Cn保持穩(wěn)定);
12)輸出聚類中心數(shù)據(jù)集D′;
13)end if;
end for;
在入侵檢測中,分別計算測試集中的各樣本點β同改進算法中獲取的各Cn(聚類中心)的歐氏距離,從中選取出p個距離最小的點,對其聚類中心的攻擊類別進行判斷,在類別數(shù)目相等的情況下將β劃分到與它距離最近的點的聚類之中[5]。由此,在網(wǎng)絡(luò)入侵攻擊的訓(xùn)練數(shù)據(jù)集中,即可通過改進的K-means算法實現(xiàn)正常網(wǎng)絡(luò)連接與網(wǎng)絡(luò)入侵攻擊的聚類劃分。
NSL-KDD數(shù)據(jù)集有效解決了KDDCPU99的數(shù)據(jù)冗余問題,將其作為網(wǎng)絡(luò)入侵檢測的數(shù)據(jù)集,其中包含的網(wǎng)絡(luò)流量數(shù)據(jù)中各條網(wǎng)絡(luò)連接數(shù)據(jù)均由1個類別標簽和41個連接屬性值構(gòu)成。取NSL-KDD中125 973條網(wǎng)絡(luò)連接記錄作為訓(xùn)練集,22 544條網(wǎng)絡(luò)連接記錄作為測試集,其中測試集包括正常數(shù)據(jù)連接Normal類型以及DOS、Probe、U2R、R2L等39種攻擊類型,訓(xùn)練集中包含22種攻擊類型,以此進行算法訓(xùn)練。
綜合基于 PReLU激活函數(shù)的ELM算法和改進的K-means算法的優(yōu)點構(gòu)建多級混合式網(wǎng)絡(luò)入侵檢測算法流程,如圖1所示。首先,由于DOS和Probe攻擊會快速將大量連接請求發(fā)送至同一目標計算機,并且這兩種網(wǎng)絡(luò)入侵類型和正常的Normal網(wǎng)絡(luò)連接數(shù)據(jù)有較大的差異性,因此采用基于PReLU激活函數(shù)的ELM算法在第一、二層先將DOS和Probe兩類攻擊區(qū)分出來。其次,由于U2R和R2L類攻擊需獲得目標計算機的非法訪問權(quán)限,生成的網(wǎng)絡(luò)連接記錄與正常的Normal網(wǎng)絡(luò)連接記錄具有較高的相似性,攻擊的數(shù)量相對較少,在區(qū)分完DOS和Probe兩類攻擊后,對剩余數(shù)據(jù)再采用改進的K-means算法進行聚類分析。
圖1 多級混合式網(wǎng)絡(luò)入侵檢測算法流程
為了驗證設(shè)計的多級混合式入侵檢測算法的實際檢測效果,采用intel corei5 CPU、RAM計算機和MATLAB完成實驗平臺軟硬件環(huán)境的搭建,基于NSL-KDD數(shù)據(jù)集進行仿真實驗,具體實驗參數(shù)定義見表1。
表1 實驗參數(shù)定義
為評價算法的檢測效果,基于表1的實驗參數(shù)采用精確率、召回率、準確率、F1值、檢測率、誤報率6項指標進行綜合分析與衡量,計算方式如下:
1)精確度,Precision=TP/(TP+FP);
2)召回率,Recall=TP/(TP+FN);
3)準確率,Accuracy=(TP+TN)/(TP+TN+FP+FN);
4)F1值,F(xiàn)1-measure=2×precision×Recall/(precision+Recall);
5)檢測率,DetectionRate,指正確分類數(shù)據(jù)在總體測試集中的占比;
6)誤報率,F(xiàn)alseAlarmRate=FP/(TP+FP)[6]。
分別從NSL-KDD的訓(xùn)練集與測試集中抽取10 000條數(shù)據(jù)驗證算法的有效性,樣本中網(wǎng)絡(luò)連接的數(shù)據(jù)類別見表2。
表2 樣本中網(wǎng)絡(luò)連接的數(shù)據(jù)類別
首先,對數(shù)據(jù)進行預(yù)處理,將字符型特征轉(zhuǎn)化到數(shù)值特征,根據(jù)標注的攻擊類型將訓(xùn)練數(shù)據(jù)分為Normal、DOS、Probe、U2R、R2L共5類。
再次,對數(shù)據(jù)進行歸一化處理。設(shè)Y1min和Y1max分別表示特征值標準化后的最小值和最大值,則進行歸一化處理后得到特征值的歸一值Y2為:
將本文算法同BP神經(jīng)網(wǎng)絡(luò)、SVM和ELM算法進行比較實驗,得到不同算法的檢測率以及檢測效果的對比結(jié)果見表3、表4。
表3 不同算法檢測率比較 %
表4 不同算法檢測效果比較 %
實驗結(jié)果表明,與傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)、SVM和ELM算法相比,本文方法在正常的Normal類型以及各類攻擊類型方面均表現(xiàn)出了較佳的檢測效果,Normal類型檢測率為99.38%,DOS類型檢測率為98.98%,R2L類型檢測率為99.08%,Probe類型和U2R類型由于樣本數(shù)量較少,整體檢測率偏低,但與傳統(tǒng)算法相比仍有較大提升。在整體檢測效果上,本文算法有效降低了檢測的誤報率,顯著提高了檢測準確率,足以證明本文算法在網(wǎng)絡(luò)入侵檢測方面行之有效[7]。
為了準確、高效地檢測出網(wǎng)絡(luò)正常數(shù)據(jù)和異常攻擊,本文綜合多種數(shù)據(jù)挖掘算法的優(yōu)點完成了一種多級混合式入侵檢測方法的設(shè)計,在傳統(tǒng)ELM 算法中引入了PReLU 激活函數(shù)提升檢測算法的分類效果,利用改進的K-means算法提高了聚類分析的準確性。通過NSL-KDD數(shù)據(jù)集進行的仿真實驗結(jié)果表明,與BP神經(jīng)網(wǎng)絡(luò)、SVM、ELM算法等傳統(tǒng)檢測方法相比,本文方法檢測率更高,且精確度高、誤報率低,在網(wǎng)絡(luò)入侵檢測方面具有良好的實際應(yīng)用效果。