鮑海燕
(晉中學(xué)院信息技術(shù)與工程學(xué)院,晉中030619)
隨著互聯(lián)網(wǎng)的發(fā)展,傳統(tǒng)的防護(hù)手段如加密手段、認(rèn)證技術(shù)以及防火墻等對(duì)保護(hù)網(wǎng)絡(luò)安全來(lái)說(shuō)越來(lái)越無(wú)能為力。入侵檢測(cè)技術(shù)能夠進(jìn)行相應(yīng)策略制定,制定出比以往防火墻更加嚴(yán)格的審查方案,對(duì)內(nèi)部程序的實(shí)時(shí)監(jiān)測(cè),有效地進(jìn)行惡意軟件的隔離與刪除提示。入侵檢測(cè)系統(tǒng)(IDS)使網(wǎng)管人員及時(shí)的處理入侵警報(bào),識(shí)別防火墻不能識(shí)別的攻擊,在發(fā)現(xiàn)入侵企圖后提供必要的信息。IDS 需要更多的智能,它首先對(duì)數(shù)據(jù)進(jìn)行分析,并且得出結(jié)果。
入侵檢測(cè)系統(tǒng)對(duì)于系統(tǒng)配置、界面以及通信方面的管理,數(shù)據(jù)源有很多種,主要有電腦主機(jī)上的信息、網(wǎng)絡(luò)信息以及其他系統(tǒng)信息,這里的入侵檢測(cè)系統(tǒng)具體如圖1 所示。
圖1 入侵檢測(cè)系統(tǒng)結(jié)構(gòu)圖
聚類(lèi)分析是數(shù)據(jù)挖掘的主要任務(wù)之一。它從樣本數(shù)據(jù)出發(fā),自動(dòng)進(jìn)行分類(lèi)。該過(guò)程主要體現(xiàn)了數(shù)據(jù)的中值處理方法,首先需要進(jìn)行類(lèi)的劃分,該類(lèi)主要設(shè)定一個(gè)閾值,并且把這一閾值中的程序數(shù)據(jù)看成擁有同一個(gè)中心的數(shù)據(jù)格式,并且將這些數(shù)據(jù)進(jìn)行中心化處理,得到一個(gè)類(lèi)的平均值,然后對(duì)這些類(lèi)再次劃分,進(jìn)行高一層級(jí)的類(lèi)劃分,如此以往,到準(zhǔn)則函數(shù)收斂完成為止。K-means 算法描述如表1 所示。
表1 K-means 算法描述
K-means 算法存在如下問(wèn)題:首先傳統(tǒng)K-means算法的聚類(lèi)個(gè)數(shù)是假設(shè)已知的,但事實(shí)卻很難得到;其次選擇合理的初始聚類(lèi)中心是不容易實(shí)現(xiàn)的;無(wú)關(guān)點(diǎn)的影響會(huì)導(dǎo)致聚類(lèi)中心偏離設(shè)定的位置,從而導(dǎo)致聚類(lèi)不準(zhǔn)確;對(duì)非球型的數(shù)據(jù)集聚類(lèi)誤差較大。
使用Snort 現(xiàn)有的六個(gè)模塊的成熟技術(shù),加上關(guān)聯(lián)分析器、聚類(lèi)分析模塊和異常檢測(cè)引擎,便可從所需的訓(xùn)練數(shù)據(jù)中提取出入侵檢測(cè)所需的數(shù)據(jù)和模式[3]。系統(tǒng)通過(guò)嗅探器發(fā)現(xiàn)問(wèn)題,解碼器進(jìn)行解碼,預(yù)處理器進(jìn)行規(guī)則庫(kù)里特征提取,檢測(cè)引擎檢測(cè)網(wǎng)絡(luò)正常行為模式,進(jìn)而進(jìn)行聚類(lèi)分析和日志記錄。
入侵檢測(cè)系統(tǒng)的模塊包括數(shù)據(jù)包嗅探器、解碼器、預(yù)處理器、檢測(cè)引擎、規(guī)則庫(kù)、輸出模塊、關(guān)聯(lián)分析器、聚類(lèi)分析模塊、異常檢測(cè)引擎[4]。
入侵檢測(cè)模型的數(shù)據(jù)挖掘流程:首先進(jìn)行相應(yīng)網(wǎng)絡(luò)中數(shù)據(jù)文件的收集,對(duì)正?;顒?dòng)集利用K-means 算法進(jìn)行數(shù)據(jù)挖掘,得到的正常數(shù)據(jù)用于異常入侵檢測(cè);其次收集出現(xiàn)的異常入侵?jǐn)?shù)據(jù)集,在正?;顒?dòng)數(shù)據(jù)集中過(guò)濾入侵訓(xùn)練數(shù)據(jù)集,用分類(lèi)算法實(shí)現(xiàn)挖掘及區(qū)分正常網(wǎng)絡(luò)行為和入侵行為的區(qū)別,得到誤用檢測(cè)規(guī)則,誤用檢測(cè)便利用了這個(gè)不斷更新獲得的數(shù)據(jù)模型。基于數(shù)據(jù)挖掘的入侵檢測(cè)的主要環(huán)節(jié)設(shè)計(jì)和總體流程如圖2 所示。
圖2 基于數(shù)據(jù)挖掘的入侵檢測(cè)總體流程圖
改進(jìn)的K-means 算法的基本思想是,在原有算法的基礎(chǔ)上,用優(yōu)化初始中心位置的方法,提高運(yùn)行效率和質(zhì)量。獲取集合中分布密度高的數(shù)據(jù)塊,為了使初始位置落在不同的類(lèi)中,盡可能在距離相差大的塊中獲取初始位置。
文獻(xiàn)[8]提出基于最優(yōu)劃分的初始中心選擇方法,本文亦用數(shù)據(jù)集的概率分布特點(diǎn)和此方法結(jié)合起來(lái)得出改進(jìn)的K-means 算法的起始中心。聚類(lèi)密度是指為了得到k 個(gè)初始類(lèi)劃分,需要估計(jì)數(shù)據(jù)集的類(lèi)分布情況(依據(jù)每個(gè)數(shù)據(jù)對(duì)象附近的數(shù)據(jù)分布集估計(jì))。此初始聚類(lèi)中心采用對(duì)象位置ai表示(ai為數(shù)據(jù)集中的每一個(gè)對(duì)象),取距離ai最近的mins(mins 為類(lèi)密度數(shù)量)個(gè)對(duì)象,密度參數(shù)θ為對(duì)應(yīng)的最小半徑范圍,θ的值和ai的值是反比關(guān)系。密度閾用z(表示密度參數(shù)的規(guī)定的臨界值)表示,若θ比z 小,此數(shù)據(jù)對(duì)象稱(chēng)為高密度點(diǎn)。高密度集合V 是指所有的數(shù)據(jù)集中的高密度點(diǎn)的集合。在V 中選取k 個(gè)分布分散的高密度點(diǎn),最大的對(duì)象稱(chēng)為b1,距離b1最遠(yuǎn)的對(duì)象稱(chēng)為高密度點(diǎn)b2,若密度點(diǎn)數(shù)量mins=7,假設(shè)有三個(gè)中心點(diǎn),密度參數(shù)分別為5,9,3,密度閾值z(mì)=6,則三個(gè)中心點(diǎn)鐘有兩個(gè)小于密度閾值,這兩個(gè)點(diǎn)為高密度點(diǎn),組成的集合V 為高密度集合。計(jì)算V 中每個(gè)高密度點(diǎn)ai到每個(gè)類(lèi)中心點(diǎn)的距離v(ai,b1),v(ai,b2),v(ai,bf-1),則第f 個(gè)類(lèi)中心點(diǎn)滿(mǎn)足:max(min(v(ai,b1),v(ai,b2),v(ai,bf-1))),第k 個(gè)高密度點(diǎn)集合為(b1,b2,…,bk)。
如果想得到較好的K-means 初始中心,就需要運(yùn)用粒子群優(yōu)化算法得到k 個(gè)初始類(lèi)劃分靠近類(lèi)中心的位置。利用文獻(xiàn)[1]迭代POS 算法(初始化每個(gè)粒子的位置、速度、全局最優(yōu)位置和歷史最有位置)找出個(gè)各類(lèi)的最優(yōu)全局位置,最終輸出聚類(lèi)結(jié)果。對(duì)于數(shù)據(jù)集A,集中包含m 個(gè)對(duì)象,n 個(gè)屬性。對(duì)于數(shù)據(jù)集中的數(shù)據(jù)對(duì)象ai,初始最優(yōu)位置為qi,數(shù)據(jù)集所有對(duì)象中第j個(gè)屬性的變化范圍:
第j 個(gè)屬性的初始值為:
每一個(gè)對(duì)象都利用公式得到初始化最優(yōu)位置,第l個(gè)對(duì)象局部最優(yōu)位置到數(shù)據(jù)集中其他對(duì)象的最大距離,取其中最小值為全局最優(yōu)位置,如公式(3)所示。
若第l 個(gè)對(duì)象的當(dāng)前位置al滿(mǎn)足,則用對(duì)象當(dāng)前位置al更新局部最優(yōu)位置ql,可得到新的局部最優(yōu)位置,更新兩個(gè)最優(yōu)位置后,更新數(shù)據(jù)集中的對(duì)象速度(與對(duì)象的當(dāng)前速度、局部最優(yōu)位置、全局最優(yōu)位置線(xiàn)性相關(guān))。如此的迭代尋優(yōu),會(huì)在每個(gè)類(lèi)中產(chǎn)生一個(gè)全局最優(yōu)位置(當(dāng)PSO 算法達(dá)到最大迭代次數(shù)時(shí)),此位置為類(lèi)心。
將這k 個(gè)全局最有位置作為改進(jìn)后的K-means 算法的起始聚類(lèi)位置,改進(jìn)后的K-means 算法描述如表2 所示。
表2 改進(jìn)的K-means 算法描述
根據(jù)改進(jìn)的K-means 算法,提出了新的基于聚類(lèi)的網(wǎng)絡(luò)入侵檢測(cè)模型,如圖3 所示。
圖3 改進(jìn)的K-means算法入侵檢測(cè)系統(tǒng)模型
上述模型中的原始數(shù)據(jù)來(lái)自網(wǎng)絡(luò)運(yùn)行中產(chǎn)生的以服務(wù)器網(wǎng)絡(luò)日志為主的數(shù)據(jù),數(shù)據(jù)收集模塊的數(shù)據(jù)來(lái)源于檢測(cè)及網(wǎng)上用抓包工具采集的IP 數(shù)據(jù)包。
采用數(shù)據(jù)挖掘技術(shù)提升入侵行為的檢測(cè)率,通過(guò)訓(xùn)練數(shù)據(jù)提取出可用于入侵檢測(cè)的模式及知識(shí),將部分?jǐn)?shù)據(jù)用來(lái)分析,建立起基于數(shù)據(jù)挖掘的入侵檢測(cè)系統(tǒng),系統(tǒng)具有以下幾個(gè)優(yōu)點(diǎn)[5]:
(1)智能性好
系統(tǒng)具有較高的自動(dòng)化運(yùn)行的能力,容易擴(kuò)展,不僅提高了該系統(tǒng)的適用范圍,通過(guò)研究人員的努力,也提高了檢測(cè)的正確率。
(2)檢測(cè)效率高
通過(guò)數(shù)據(jù)挖掘,可以大大提高處理數(shù)據(jù)的能力,通過(guò)對(duì)樣本的一次提取,在一次提取過(guò)程中,抽取其中正確的部分與數(shù)據(jù)同時(shí)進(jìn)行預(yù)處理,可以大大提高信息處理量。
(3)自適應(yīng)能力比較強(qiáng)
由于系統(tǒng)選擇的方法是一種應(yīng)用數(shù)據(jù)挖掘方法,因此具有較高的適應(yīng)能力,同時(shí)又能夠?qū)τ谌肭謱?duì)象及其變種進(jìn)行檢測(cè)。
(4)誤警率低
數(shù)據(jù)挖掘能夠有效地去除重復(fù)的多種攻擊數(shù)據(jù),所以將數(shù)據(jù)挖掘應(yīng)用于入侵檢測(cè)中可以達(dá)到較低的誤警率。
入侵檢測(cè)實(shí)驗(yàn)系統(tǒng)是在Windows 10 的系統(tǒng)下搭建的,數(shù)據(jù)集采用的UCI 官網(wǎng)數(shù)據(jù),實(shí)驗(yàn)用對(duì)iris 數(shù)據(jù)集、4k2_far 數(shù)據(jù)集和wine 數(shù)據(jù)集在傳統(tǒng)K-means 算法和改進(jìn)的K-means 算法的聚類(lèi)效果進(jìn)行比較,實(shí)驗(yàn)采用的是聚類(lèi)評(píng)估指標(biāo)是聚類(lèi)純度Purity 指標(biāo)(0-1 之間),N 為數(shù)據(jù)集中數(shù)據(jù)對(duì)象數(shù),k 是聚類(lèi)數(shù),Bj 是第j個(gè)聚類(lèi)結(jié)果中聚類(lèi)對(duì)象個(gè)數(shù)。定義如下:
聚類(lèi)結(jié)果的準(zhǔn)確率與Purity 指標(biāo)成正比。本次仿真實(shí)驗(yàn)聚類(lèi)效果如表3 所示。
表3 聚類(lèi)效果對(duì)比表
改進(jìn)的K-means 算法使用的數(shù)據(jù)集是KDD CUP99 數(shù)據(jù)集中的kddcup.data_10_percent 訓(xùn)練數(shù)據(jù)集中的4000 條數(shù)據(jù),其中100 條標(biāo)記為DoS 攻擊類(lèi)型的數(shù)據(jù)(smurf 攻擊、pod 攻擊、back 攻擊各30 條,剩余的為teardrop 攻擊),其余為正常數(shù)據(jù)。
使用K-means 算法聚類(lèi)時(shí)的迭代代數(shù)F2=100,類(lèi)密度數(shù)Mins=100,密度閾值w=1.45,利用PSO 迭代尋優(yōu)時(shí)的最大迭代次數(shù)F1=10,取聚類(lèi)值為k=3 和k=4 時(shí)做分析,傳統(tǒng)的K-means 算法和改進(jìn)的K-means 算法對(duì)比試驗(yàn),每種聚類(lèi)進(jìn)行了兩次實(shí)驗(yàn)。如表4-表5 所示。
表4 k=3 的聚類(lèi)中心變化表
當(dāng)k=3 時(shí),傳統(tǒng)的K-means 算法第2 次聚類(lèi)實(shí)驗(yàn)出現(xiàn)了一個(gè)空聚類(lèi),改進(jìn)的K-means 算法沒(méi)有出現(xiàn)空聚類(lèi)。
表5 k=4 的聚類(lèi)中心變化表
當(dāng)k=4 時(shí),傳統(tǒng)的K-means 算法第1 次聚類(lèi)實(shí)驗(yàn)出現(xiàn)了兩個(gè)空聚類(lèi),第2 次聚類(lèi)實(shí)驗(yàn)出現(xiàn)了一個(gè)空聚類(lèi),改進(jìn)的K-means 算法沒(méi)有出現(xiàn)空聚類(lèi)。
從上述的實(shí)驗(yàn)數(shù)據(jù)可以得到,在kddcup.data_10_percent 數(shù)據(jù)集進(jìn)行聚類(lèi)分析的過(guò)程中,K-means 算法可能出現(xiàn)空聚類(lèi),聚類(lèi)結(jié)果波動(dòng)較大。而改進(jìn)的Kmeans 算法基本不會(huì)出現(xiàn)空聚類(lèi)的現(xiàn)象,穩(wěn)定性顯著提高。
入侵檢測(cè)的仿真模型有兩個(gè)重要指標(biāo),檢測(cè)率(JC)和誤報(bào)率(WB),JC 由檢測(cè)出來(lái)的異常記錄數(shù)量除以測(cè)試集中總的異常記錄數(shù)量。WB 由誤判入侵的正常記錄數(shù)除以測(cè)試集中總的正常記錄數(shù)量。在k=3 和k=4 的情況下,取類(lèi)標(biāo)記β=2.75%,通過(guò)分析得到JC 和WB 的結(jié)果如表6 所示。
表6 入侵檢測(cè)結(jié)果分析
從表中可以看出,傳統(tǒng)K-means 算法的平均檢測(cè)率為42%,改進(jìn)的K-means 算法的平均檢測(cè)率為74%,檢測(cè)率提高了32%。傳統(tǒng)K-means 算法的誤報(bào)平均率為0.337%,改進(jìn)的K-means 算法的誤報(bào)平均率為0.179%,誤報(bào)率下降了0.158%。
本文主要是對(duì)K-means 算法應(yīng)用于入侵檢測(cè)系統(tǒng)做了詳細(xì)的闡述。介紹了傳統(tǒng)的K-means 算法和它的優(yōu)缺點(diǎn),提出了優(yōu)化初始中心的K-means 算法的改進(jìn)措施,改進(jìn)的K-means 算法應(yīng)用到入侵檢測(cè)系統(tǒng)中,可提高入侵檢測(cè)的成功率和降低誤報(bào)率。
入侵檢測(cè)技術(shù)和數(shù)據(jù)挖掘技術(shù)的結(jié)合,能在以前的入侵檢測(cè)系統(tǒng)的基礎(chǔ)上,更好地檢測(cè)出入侵并加以防范。