任學(xué)臻 張 永
(遼寧師范大學(xué)計(jì)算機(jī)與信息技術(shù)學(xué)院 遼寧 大連 116081)
隨著網(wǎng)絡(luò)的迅速發(fā)展,網(wǎng)絡(luò)環(huán)境都很依賴網(wǎng)絡(luò)信息的安全性。如果網(wǎng)絡(luò)環(huán)境不安全,會(huì)導(dǎo)致許多問題,諸如隱私泄露,資源盜用等,這將給人們的工作生活帶來許多的損失,因此提高互聯(lián)網(wǎng)的網(wǎng)絡(luò)信息安全是當(dāng)務(wù)之急,網(wǎng)絡(luò)入侵檢測系統(tǒng)應(yīng)運(yùn)而生,它是維護(hù)網(wǎng)絡(luò)信息安全的有效手段。
網(wǎng)絡(luò)入侵通常分為非法訪問信息、修改信息和破壞用戶系統(tǒng)[1]。而當(dāng)下保護(hù)計(jì)算機(jī)使之不受到網(wǎng)絡(luò)攻擊的最安全的方法就是進(jìn)行網(wǎng)絡(luò)入侵檢測。網(wǎng)絡(luò)入侵檢測分為誤用檢測和異常檢測兩種,誤用檢測對攻擊的突變無法較好地識(shí)別,只能去檢測已知攻擊,沒有實(shí)際應(yīng)用價(jià)值;而異常檢測不需要先驗(yàn)知識(shí),雖然檢測率略低,但是可以檢測到一些全新的或者突變的入侵攻擊行為,已成為目前該領(lǐng)域的主要研究方向[2-3]。
此外,入侵檢測的數(shù)據(jù)集太大,這些數(shù)據(jù)往往是高維的,每個(gè)屬性和屬性之間都有相關(guān)性和冗余性。這將對入侵檢測的效率產(chǎn)生很大影響,導(dǎo)致精度降低,因此大多數(shù)研究工作都對數(shù)據(jù)進(jìn)行了預(yù)優(yōu)化。文獻(xiàn)[4]提出了一種使用深度神經(jīng)網(wǎng)絡(luò)(DNN)的新型入侵檢測系統(tǒng),構(gòu)建DNN結(jié)構(gòu)的參數(shù)用于概率的特征向量訓(xùn)練,再利用深度置信網(wǎng)絡(luò)(DBN)的無監(jiān)督預(yù)訓(xùn)練來初始化參數(shù),提高了檢測的精度。文獻(xiàn)[5]提出了一種基于改進(jìn)量子粒子群算法(IQPSO)和改進(jìn)差分算法(IDE)相融合的算法,將該算法應(yīng)用于支持向量機(jī)的參數(shù)優(yōu)化,設(shè)計(jì)了對應(yīng)網(wǎng)絡(luò)入侵檢測的算法和模型。文獻(xiàn)[6]提出了一種適應(yīng)大樣本集的網(wǎng)絡(luò)入侵檢測算法,該算法分成離線和在線兩個(gè)階段,離線階段構(gòu)建樣本集的聚簇索引,在線階段采用聚簇索引搜索得到最近鄰,再利用KNN算法對大樣本集分類。文獻(xiàn)[7]提出了基于改進(jìn)的進(jìn)化神經(jīng)網(wǎng)絡(luò)建立的混合入侵檢測模型,采用改進(jìn)的進(jìn)化神經(jīng)網(wǎng)絡(luò)作為檢測引擎,彌補(bǔ)了遺傳算法中實(shí)數(shù)編碼全局尋優(yōu)能力差的缺陷,進(jìn)而提高了神經(jīng)網(wǎng)絡(luò)的分類能力。文獻(xiàn)[8]介紹了一種使用深度置信網(wǎng)絡(luò)(DBN)和概率神經(jīng)網(wǎng)絡(luò)(PNN)的入侵檢測方法,先利用DBN的非線性學(xué)習(xí)能力將高維數(shù)據(jù)轉(zhuǎn)化成低維數(shù)據(jù),再利用粒子群優(yōu)化算法優(yōu)化每層隱藏節(jié)點(diǎn)數(shù)量,最后使用PNN分類。
本文提出一種信息增益和粗糙集相結(jié)合的屬性簡約算法,并將其應(yīng)用到入侵檢測的特征提取階段[9]。該算法首先使用信息增益技術(shù)對數(shù)據(jù)進(jìn)行第一次的簡約,簡單地刪除冗余屬性,然后再利用粗糙集理論(Rough Set Theory,RST)從數(shù)據(jù)中提取分明函數(shù),求得簡約后的屬性。該方法可以避免生成過多的分明矩陣,這樣不僅可以保證各屬性相互獨(dú)立且不會(huì)陷入局部最優(yōu)的情況,更好地避免數(shù)據(jù)中存在過多的冗余屬性,同時(shí)可有效減少信息損失,加快收斂速度。
本文設(shè)計(jì)了一種將信息增益和粗糙集相結(jié)合的屬性簡約算法,并將其應(yīng)用于基于隨機(jī)森林的網(wǎng)絡(luò)入侵檢測模型中,可以較好地檢測到系統(tǒng)中的每一類惡意入侵行為。該模型采用信息增益算法和粗糙集理論來進(jìn)行屬性簡約,最后使用相應(yīng)分類器進(jìn)行分類,得出結(jié)果,檢測模型架構(gòu)如圖1所示。

圖1 入侵檢測系統(tǒng)架構(gòu)
主要模塊如下:
(1) 預(yù)處理模塊。因?yàn)槭占降脑紨?shù)據(jù)過于復(fù)雜,所以要對原始數(shù)據(jù)進(jìn)行數(shù)字化和離散化的處理,然后再將離散化后的數(shù)據(jù)傳輸?shù)綄傩院喖s模塊。離散化主要是因?yàn)榇植诩荒芴幚磉B續(xù)的數(shù)據(jù)。本文采用數(shù)據(jù)歸一化來實(shí)現(xiàn)對數(shù)據(jù)的預(yù)處理,使數(shù)據(jù)和數(shù)據(jù)之間不會(huì)存在較大的差值,使所有數(shù)據(jù)的均值更接近于0。
(2) 屬性簡約模塊。信息增益能通過統(tǒng)計(jì)每個(gè)屬性在每個(gè)類別中出現(xiàn)的個(gè)數(shù),計(jì)算每個(gè)屬性對每個(gè)類別的信息增益,簡單地篩選掉一些冗余屬性。粗糙集理論能處理不精確、非完整的信息,可以對大量、無規(guī)律的數(shù)據(jù)進(jìn)行分析、推理,并能在過程中挖掘出潛在規(guī)則,對屬性進(jìn)行簡約,得到最終的數(shù)據(jù)集。兩者結(jié)合后獲取最優(yōu)的數(shù)據(jù)子集。
(3) 分析檢測模塊。分析檢測過程分為訓(xùn)練階段和測試階段。在訓(xùn)練階段,對隨機(jī)森林分類器進(jìn)行參數(shù)尋優(yōu),找到最優(yōu)參數(shù),得到效率更高的分類器。在測試階段,對數(shù)據(jù)進(jìn)行檢測,得到結(jié)果。
熵(Entropy)是信息論中的一個(gè)重要概念。熵代表能量在空間中的分布是否均勻,能量分布越不均勻,熵就越小,反之熵越大。Shannon最早將熵應(yīng)用到信息處理研究中,提出了"信息熵”的概念。信息熵其實(shí)就是將信息量化,是衡量一個(gè)隨機(jī)變量取值的不確定性程度[10]。
信息增益(Information Gain,IG)是信息論中的一個(gè)重要概念,被廣泛應(yīng)用于機(jī)器學(xué)習(xí)領(lǐng)域。對于數(shù)據(jù)分類來說,信息增益是通過統(tǒng)計(jì)每個(gè)屬性在各個(gè)類別中是否出現(xiàn)的數(shù)量來計(jì)算該屬性對每個(gè)類別的信息增益。
令向量X和Y分別表示樣本屬性(X1,X2,…,Xm)以及類別屬性(Y1,Y2,…,Yn)。對于給定的屬性X與相關(guān)聯(lián)的類別屬性Y之間的信息增益。相關(guān)公式如下:
IG(Y,X)=H(Y)-H(Y|X)
(1)
(2)
(3)
式中:IG(Y,X)表示屬性X對類別Y的信息增益,H(Y)是Y的熵,H(Y|X)是條件熵。在本實(shí)驗(yàn)中X為數(shù)據(jù)的特征項(xiàng),而Y值表示類別。
粗糙集理論是Pawlak[11]最早提出的,這是一種應(yīng)用在數(shù)學(xué)領(lǐng)域的方法。其具有強(qiáng)大的數(shù)據(jù)分析及推理能力,可以用來刪除冗余屬性,因此也廣泛應(yīng)用于數(shù)據(jù)簡約、決策規(guī)則或知識(shí)提取等問題上。屬性約簡是粗糙集理論的核心問題之一。粗糙集的描述方法有兩種:一種是代數(shù)描述,一種是信息描述。粗糙集的代數(shù)描述是通過引入上近似集和下近似集來進(jìn)行的[12]。
粗糙集的信息描述則是假定一個(gè)信息系統(tǒng),可表示為一個(gè)四元組S=(U,A,V,f)。設(shè)U為論域,代表元素的非空有限集合;A為屬性集合,A=(C∪D),C稱為條件屬性集,D稱為決策屬性集;V=∪Va(a∈A)是信息系統(tǒng)中所有屬性值的集合,Va則是屬性a的值域;f:U×A→V是一個(gè)函數(shù),它為每個(gè)元素的每個(gè)屬性進(jìn)行賦值,即?a∈A,x∈U,f(x,a)∈Va。
網(wǎng)絡(luò)入侵檢測數(shù)據(jù)過于龐大,其中冗余屬性過多會(huì)對分類產(chǎn)生影響,會(huì)耗費(fèi)大量的時(shí)間和精力,不僅影響準(zhǔn)確性,還會(huì)影響分類的有效性。而且,在使用粗糙集對數(shù)據(jù)進(jìn)行屬性簡約時(shí)會(huì)產(chǎn)生分明矩陣,這必然會(huì)造成時(shí)間和空間上大量的開銷。因此,本文提出了信息增益和粗糙集相結(jié)合的屬性簡約算法,可以減少檢測系統(tǒng)時(shí)間復(fù)雜度,提高檢測效率。首先,通過信息增益技術(shù),先將屬性中重要性較小的部分屬性刪除,即先求出網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)中各個(gè)屬性的信息增益,此時(shí)需要設(shè)置一個(gè)閾值,將每一個(gè)屬性所求出的信息增益與閾值相比較,如果其信息增益大于最先設(shè)定的閾值,則保留該屬性。這里使用信息增益對入侵?jǐn)?shù)據(jù)的屬性進(jìn)行相關(guān)分析,可減小屬性簡約的復(fù)雜度。利用粗糙集理論進(jìn)行特征選擇時(shí),中間環(huán)節(jié)會(huì)產(chǎn)生分明矩陣,這會(huì)造成時(shí)間和空間上的大量開銷。
在本文的算法中,信息增益先對數(shù)據(jù)集進(jìn)行特征提取,構(gòu)造屬性的分明函數(shù),中間沒有矩陣的生成,也避免了數(shù)組元素的存取,這樣就會(huì)節(jié)省很多時(shí)間和空間,提高了算法的效率。在該算法進(jìn)行屬性簡約的過程中,首先計(jì)算網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)集中每個(gè)屬性的信息增益,設(shè)置閾值T,如果屬性得到的信息增益大于閾值T,則保留該屬性,否則刪除該屬性。從而獲取刪除后的新的數(shù)據(jù)子集,然后再提取分明函數(shù)f(x)=(1,2,3,…,n),最后求得Λf(x)最小析取范式,得到屬性簡約。本文提出的屬性簡約算法描述如算法1所示。
算法1IG-RST屬性簡約
輸入:入侵檢測數(shù)據(jù)集S=(U,A,V,f),其中A=C∪D,C和D分別為條件屬性集和決策屬性集,信息增益閾值T。
輸出:數(shù)據(jù)集S=(U,A,V,f)的屬性約簡f′。
1.Pro=C;
//這里C是條件屬性集
2. For eacht∈Pro
計(jì)算條件屬性t的信息增益IG(t)
3. 把t∈C按IG(t)值從小到大排序,并記為{ti};
//屬性個(gè)數(shù)為n,i=1,2,…,n
4. Fori←1 ton
5. IfIG(ti) 6.Pro←Pro-{ti}; //Pro中為信息增益處理后留下的屬性集 7. End If 8. End For 9. 從Pro中提取分明函數(shù)f(k); //k為對象個(gè)數(shù),k=1,2,…,m 10.f′=Λf(k); 11. 輸出f′ //f′為該決策表的屬性約簡 隨機(jī)森林[13]是由Leo Breiman提出的基于決策樹的一種集成學(xué)習(xí)算法,因不像別的集成由多種不同分類器構(gòu)成,其集成的基分類器為決策樹,隨機(jī)森林因此得名。決策樹本身就是一種分類器,在各個(gè)領(lǐng)域里應(yīng)用廣泛,決策樹進(jìn)行分類時(shí)要進(jìn)行剪枝處理,直到無法剪枝,則就建立好了一個(gè)決策樹分類器。 隨機(jī)森林是一個(gè)集成學(xué)習(xí)模型,但它的基分類器都是決策樹,如圖2所示,當(dāng)輸入網(wǎng)絡(luò)入侵檢測數(shù)據(jù)時(shí),最終的分類結(jié)果是集成學(xué)習(xí)算法常規(guī)投票決定的。其基本原理是對參與分類的每一個(gè)決策樹分類器進(jìn)行投票。因此,隨機(jī)森林分類器就出現(xiàn)了一個(gè)參數(shù)的設(shè)定,就是選擇決策樹分類器的多少。隨機(jī)森林在降噪處理上體現(xiàn)出了杰出的性能,異常值處理上具有不錯(cuò)的容忍性,可以對高維數(shù)據(jù)分類有著較好的延展性和并行性,優(yōu)于其他集成分類器。 圖2 隨機(jī)森林的算法圖解 本實(shí)驗(yàn)仿真環(huán)境為MATLAB 7.12.0(R2011a),內(nèi)存為4 GB,處理器為Intel(R)Core(TM) i3-4160 CPU 3.60 GHz,系統(tǒng)為Windows 7。本文實(shí)驗(yàn)數(shù)據(jù)集采用美國Lincoln實(shí)驗(yàn)室的KDD CUP 99數(shù)據(jù)集[14],該數(shù)據(jù)集包括了網(wǎng)絡(luò)中的5 209 460條入侵?jǐn)?shù)據(jù),每條數(shù)據(jù)包括42個(gè)屬性。數(shù)據(jù)共分為5大類:Normal,DoS,Porbe,U2R,R2L,其中Normal為正常數(shù)據(jù),其他4種為攻擊數(shù)據(jù)。本文僅采用的KDD Cup 99的10%的訓(xùn)練數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),其分布以及標(biāo)識(shí)類型如表1所示。 表1 KDDup99的10%入侵檢測數(shù)據(jù)集中的 五大攻擊的標(biāo)識(shí)類型及分布 如表1所示,Normal為1類,其余四種攻擊類型分別為2、3、4、5類。本文的評(píng)價(jià)標(biāo)準(zhǔn)為混淆矩陣、精度(Precision)、召回率(Recall)、虛報(bào)率(FPR)、準(zhǔn)確率(Accuracy),其中混淆矩陣如表2所示,其他性能指標(biāo)也可以通過混淆矩陣求得,公式詳見表3。 表2 混淆矩陣 表3 相關(guān)公式 實(shí)驗(yàn)先對數(shù)據(jù)進(jìn)行離散化處理和歸一化處理,然后進(jìn)行屬性簡約,最后利用隨機(jī)森林進(jìn)行分類檢測。經(jīng)過對隨機(jī)森林分類器的參數(shù)k進(jìn)行尋優(yōu)分析,實(shí)驗(yàn)結(jié)果如圖3和圖4所示,本文選擇k=10為最終實(shí)驗(yàn)參數(shù)。 圖3 不同參數(shù)k下的準(zhǔn)確率 圖4 不同參數(shù)k下的隨機(jī)森林的運(yùn)行時(shí)間 在本文的實(shí)驗(yàn)中,先利用信息增益將屬性簡約,設(shè)置閾值T=1.2,獲得子集,再利用粗糙集的可分明矩陣對子集進(jìn)行簡約獲得最終的子集。子集簡約后得到如下12個(gè)特征:2,4,6,10,24,25,29,31,35,36,39,40。由于數(shù)據(jù)集中U2R和R2L數(shù)據(jù)較少,我們首先將數(shù)據(jù)分為少數(shù)類和多數(shù)類,再運(yùn)用本文提出的算法進(jìn)行驗(yàn)證。結(jié)果表明,屬性12、23和32對少數(shù)類有一定的影響,因此實(shí)驗(yàn)最終采用了15個(gè)特征:2,4,6,10,12,23,24,25,29,31,32,35,36,39,40。本實(shí)驗(yàn)采用了十則交叉驗(yàn)證的方法對數(shù)據(jù)集進(jìn)行10次驗(yàn)證,最后取10次交叉驗(yàn)證的均值,求得最終結(jié)果,以保證實(shí)驗(yàn)評(píng)估的準(zhǔn)確性。 首先,將本文提出的方法與傳統(tǒng)的隨機(jī)森林方法進(jìn)行了實(shí)驗(yàn)對比,結(jié)果如表4所示。由表4可知,本文提出的模型不僅對于準(zhǔn)確率有所提高,而且召回率也有不錯(cuò)的提升,尤其是對于少數(shù)類(U2R),召回率從原來的0.649增加到0.976。相對于傳統(tǒng)的隨機(jī)森林方法,本文提出的方法建立模型的時(shí)間更短。 表4 性能對比表 續(xù)表4 由于本文實(shí)驗(yàn)采用的是KDD CUP 99數(shù)據(jù)集的10%作為訓(xùn)練數(shù)據(jù)集,少數(shù)類U2R占總體僅有0.01%,這可能會(huì)導(dǎo)致U2R召回率過低。 為了解決數(shù)據(jù)集分布不平衡的問題,本文實(shí)驗(yàn)使用了SMOTE過采樣算法來增加少數(shù)類,把少數(shù)類提高整數(shù)倍。本實(shí)驗(yàn)將少數(shù)類U2R樣本增至9倍,達(dá)到468條,此時(shí)該數(shù)據(jù)集分布如表5所示,U2R占總體比例接近0.1%。此時(shí),再次實(shí)驗(yàn)表明,本文提出方法在U2R類的召回率達(dá)到了97.58%。由此可見,只要少數(shù)類所占總數(shù)比例稍微提高接近于0.1%時(shí),召回率就會(huì)有明顯的改善。 表5 改變數(shù)據(jù)后各類型數(shù)據(jù)的分布 其次,為了進(jìn)一步體現(xiàn)本文算法的優(yōu)越性,我們與文獻(xiàn)[15]和文獻(xiàn)[16]的實(shí)驗(yàn)結(jié)果進(jìn)行了對比,如圖5和圖6所示。 圖5 不同算法的召回率比較 圖6 不同算法的準(zhǔn)確率比較 由圖5和圖6可以看出,本文提出算法的召回率和準(zhǔn)確率都持平或略優(yōu)于文獻(xiàn)[15]和文獻(xiàn)[16]的召回率和準(zhǔn)確率。這表明本文方法可以緊跟當(dāng)前的入侵檢測領(lǐng)域研究,也為當(dāng)前網(wǎng)絡(luò)入侵檢測提供了一個(gè)新的方法和思路。 本文利用隨機(jī)森林分類器構(gòu)建了一個(gè)有效的入侵檢測系統(tǒng)。對于原始數(shù)據(jù)集中冗余過多、數(shù)據(jù)集類別不平衡等問題進(jìn)行了改善,實(shí)驗(yàn)結(jié)果表明本文的方法節(jié)約了模型構(gòu)建所需的時(shí)間,數(shù)據(jù)集中少數(shù)類(R2L和U2R)的召回率和精度也得到了較明顯的提升。本文只對于靜態(tài)已知的入侵?jǐn)?shù)據(jù)進(jìn)行了實(shí)驗(yàn),而現(xiàn)實(shí)中網(wǎng)絡(luò)入侵是實(shí)時(shí)未知的,下一步的研究計(jì)劃是將本文的方法與其他機(jī)器學(xué)習(xí)技術(shù)相結(jié)合來開發(fā)一個(gè)對于實(shí)時(shí)數(shù)據(jù)入侵的檢測系統(tǒng),在面對未知的數(shù)據(jù)流時(shí),能夠?qū)ξ粗艉土鲃?dòng)數(shù)據(jù)達(dá)到自適應(yīng),這樣就可以有效地應(yīng)用到當(dāng)下的網(wǎng)絡(luò)環(huán)境中,來檢測出新的攻擊類別。2.4 隨機(jī)森林

3 實(shí)驗(yàn)結(jié)果與分析










4 結(jié) 語