鄭志嫻,王 敏
(福建船政交通職業(yè)學(xué)院 信息工程系, 福州 350007)
?
基于大數(shù)據(jù)的K-means聚類算法在網(wǎng)絡(luò)安全檢測中的應(yīng)用
鄭志嫻,王敏
(福建船政交通職業(yè)學(xué)院 信息工程系, 福州 350007)
摘要:隨著云時(shí)代的到來,大數(shù)據(jù)的應(yīng)用受到了越來越多的關(guān)注。大數(shù)據(jù)的核心在于挖掘數(shù)據(jù)中蘊(yùn)藏的價(jià)值鏈,為決策提供可借鑒參考。聚類算法是數(shù)據(jù)挖掘的一種歸類方法,K-means則是基于劃分的聚類方法。在網(wǎng)絡(luò)安全檢測中,應(yīng)用K-means建立網(wǎng)絡(luò)異常檢測模型,可有效提高大數(shù)據(jù)環(huán)境下集中選取數(shù)據(jù)準(zhǔn)確性的能力,控制檢測誤報(bào)率,縮短網(wǎng)絡(luò)異常數(shù)據(jù)選取時(shí)間。但是,傳統(tǒng)的K-means聚類算法在數(shù)據(jù)類型預(yù)處理、初始中心選取和K值確定等方面存在不確定性,導(dǎo)致對入侵檢測的效率降低。本文提出一種改進(jìn)的K-means算法,并通過利用KDDCup99數(shù)據(jù)集進(jìn)行仿真實(shí)驗(yàn),證明改進(jìn)后的K-Means算法的檢測準(zhǔn)確率與檢測效率要優(yōu)于傳統(tǒng)算法。
關(guān)鍵詞:大數(shù)據(jù);網(wǎng)絡(luò)安全檢測;K-means聚類算法
網(wǎng)絡(luò)安全是網(wǎng)絡(luò)應(yīng)用研究永恒的話題,面對復(fù)雜多變的網(wǎng)絡(luò)環(huán)境,對網(wǎng)絡(luò)異常的檢測是維護(hù)網(wǎng)絡(luò)安全的熱點(diǎn)之一。網(wǎng)絡(luò)安全檢測首先要設(shè)定網(wǎng)絡(luò)正常狀態(tài)下的行為模型,預(yù)設(shè)模型閾值,如果在網(wǎng)絡(luò)應(yīng)用中,檢測到用戶行為超出預(yù)設(shè)模型閾值,則判定其為網(wǎng)絡(luò)入侵[1]。由此,設(shè)置網(wǎng)絡(luò)正常狀態(tài)的的行為模型和預(yù)設(shè)模型閾值是網(wǎng)絡(luò)安全檢測的核心,這就需要在大量的網(wǎng)絡(luò)數(shù)據(jù)中有效的篩選出正常用戶行為模式,因此,將正常行為與異常行為進(jìn)行歸類劃分是網(wǎng)絡(luò)安全檢測的關(guān)鍵,所以采用K-means聚類算法進(jìn)行網(wǎng)絡(luò)安全檢測具有一定的可行性。
1大數(shù)據(jù)環(huán)境下的K-means聚類算法
在網(wǎng)絡(luò)應(yīng)用越來越普及、越來越多樣化的今天,網(wǎng)絡(luò)數(shù)據(jù)不僅數(shù)量龐大而且數(shù)據(jù)結(jié)構(gòu)非常復(fù)雜,在如此環(huán)境下,對大量的數(shù)據(jù)和不同數(shù)據(jù)類型和結(jié)構(gòu)的數(shù)據(jù)進(jìn)行準(zhǔn)確、高效、快速的挖掘是一件非常困難的事,由此,對于網(wǎng)絡(luò)異常檢測和網(wǎng)絡(luò)安全防護(hù)來講具有非常大的壓力。這里以數(shù)據(jù)活動訓(xùn)練集中具有代表性的數(shù)據(jù)進(jìn)行分析,采用有效的數(shù)據(jù)挖掘算法,來提高網(wǎng)絡(luò)檢測的準(zhǔn)確性就具有非常重要的作用。聚類算法[2]是一種以群分析的數(shù)據(jù)挖掘算法,其將數(shù)據(jù)集劃分為若干模式子集,并將具有較高相似度的數(shù)據(jù)集中在同一集合中,不同集合之間具有較為明顯的屬性差異性。而K-means算法是聚類算法思想中的一種,K-means算法是根據(jù)數(shù)據(jù)的層次將數(shù)據(jù)分類劃分,每一類數(shù)據(jù)都具有極高的相似度,以其相似度的平均值為標(biāo)準(zhǔn)將其劃分為k個(gè)聚類[3]。
大數(shù)據(jù)環(huán)境下K-means 算法[4]的工作過程說明如下:
首先,在網(wǎng)絡(luò)安全檢測中,所檢測的數(shù)據(jù)不僅數(shù)量多,而且結(jié)構(gòu)復(fù)雜,這正符合大數(shù)據(jù)的形態(tài)。所以要從網(wǎng)絡(luò)大數(shù)據(jù)n個(gè)對象中隨機(jī)選擇 k 個(gè)對象作為初始聚類中心,并要求每一個(gè)對象的屬性都具有較為鮮明的特點(diǎn),彼此之間存在較大的屬性差異化,將所有對象按照與k對象的距離劃分聚類,以到k個(gè)對象的距離為劃分標(biāo)準(zhǔn),分別將這些對象分配給與其最為相似的聚類;其次,通過計(jì)算獲取新的聚類,并對新聚類所有對象的中心求均值,此計(jì)算過程反復(fù)的重復(fù),不斷的形成新的距離,再求均值,直到均方差所標(biāo)記的標(biāo)準(zhǔn)測度函數(shù)開始出現(xiàn)收斂為止,以達(dá)到最佳準(zhǔn)確度的均值。由此可以看出,K-means算法是一種基于樣本間相似性的聚類算法。此算法以k為參數(shù),將在網(wǎng)絡(luò)大數(shù)據(jù)中所隨機(jī)提取的n 個(gè)對象分為k個(gè)簇,這些簇的特點(diǎn)是具有較高的屬性相似度,并且簇之間的屬性具有明顯的不同,以此為方法對每一個(gè)簇中的對象求平均值,已達(dá)到將其歸為某一準(zhǔn)確類。
在傳統(tǒng)的K-Means算法中,通常采用均方誤差作為標(biāo)準(zhǔn)測量函數(shù)[5],即:
當(dāng)聚類數(shù)據(jù)對象為密集型數(shù)據(jù),并且所有數(shù)據(jù)對象各個(gè)類之間具有較大明顯區(qū)別時(shí),采用傳統(tǒng)K-means進(jìn)行聚類效果較好,能滿足網(wǎng)絡(luò)安全檢測需求。但是在實(shí)際應(yīng)用中,入侵檢測網(wǎng)絡(luò)數(shù)據(jù)包[6]通常都為隨機(jī)實(shí)時(shí)抓取的,因此要事先確定出聚類數(shù),進(jìn)行初始聚類中心選取則較為困難,而K值不準(zhǔn)確,則聚類結(jié)果不穩(wěn)定。另一方面,傳統(tǒng)的K-means算法只能處理連續(xù)型數(shù)值,不能處理離散型數(shù)值,應(yīng)用范圍狹窄。
2K-means算法改進(jìn)
本文提出K-means的改進(jìn)方案,用以解決網(wǎng)絡(luò)安全檢測過程中,數(shù)據(jù)預(yù)處理、初始中心選取和K值確定這三個(gè)方面的問題。
(1)數(shù)據(jù)預(yù)處理。網(wǎng)絡(luò)數(shù)據(jù)包中的屬性值有連續(xù)型和離散型[7](比如協(xié)議和服務(wù)名稱等都屬于字符型離散屬性),為了使數(shù)據(jù)更有利于進(jìn)行數(shù)據(jù)挖掘處理,需要將離散型數(shù)據(jù)預(yù)處理轉(zhuǎn)化為數(shù)值型。參照文獻(xiàn)[8][9][10],需要定義如下:
定義1 報(bào)警數(shù)據(jù)庫D所包含有n個(gè)警告記錄集T={T1,T2,…,Tn}(n≥1)。其屬性集X由m個(gè)特征屬性組成,X={X1,X2,…,Xm},滿足原則X=Xc∪Xd且Xc∩Xd=φ且,其中Xd為數(shù)值屬性子集,Xc為字符型屬性子集。每個(gè)警告記錄Ti由m維屬性組成,即:Ti=(xi1,xi2,…,xim)。
對象間的相似度可以用對象間的距離來計(jì)算,這里使用歐式距離來計(jì)算。
定義2假設(shè)Ti,Tj為警告記錄中的任意兩條,則Ti與Tj之間相似度距離為:
定義3假定聚類集C={Ci}(i=1,2,…,K);Ci={Tf,Tr,…Tg}為包含r個(gè)記錄的第i個(gè)聚類。
定義5警告記錄Ti與當(dāng)前聚類Cj相似度用其與聚類中心mj相似度距離表示為:
Sim(Ti,mj)=Simd(Ti,mj)+Simc(Ti,mj)。
最小距離為:
Min(Sim(Ti,C)=Min(Sim(Ti,Cj))
定義6任意兩個(gè)聚類Ci和Cj之間最小相似度距離SBC=min(Sim(mi,mj))(i≠j)
包含r個(gè)數(shù)據(jù)對象的第Ci類內(nèi)數(shù)據(jù)對象相似度平均值SWCi可表示為:
定義7所收到的警告記錄與某一類的最大相似度為標(biāo)準(zhǔn),對其進(jìn)行歸類,按照距離最近的原則,某類的最大相似度距離為:SWC=Max(SWCi)(i=1,2,...k)
(2)對初始聚類中心進(jìn)行確定。選擇符合類中心的樣本點(diǎn)密度較高且類中心間相似距離較大的聚類,考慮密度和相似度距離對初始聚類中心的影響,從警告數(shù)據(jù)庫D(包含n條記錄)中隨機(jī)抽取q個(gè)數(shù)據(jù)子集D1,D2,…Dq,每個(gè)子集包含n’條記錄,n’=(l,n’< FindM(D,q,n’)函數(shù)具體步驟: 首先對隨機(jī)抽取的q個(gè)數(shù)據(jù)子集Dj(1≤j≤q)進(jìn)行遍歷,根據(jù)定義8計(jì)算出Dj各記錄的分布密度di(1≤i≤n’), mj=Max(di),并根據(jù)定義4得出{mj}的聚類中心設(shè)為m1。然后根據(jù)定義2計(jì)算sim(m1,mj),得出Max(Sim(m1,mj))設(shè)為m2。同理,計(jì)算Sim(m2,mj),m3=Max((Sim(m1,mj)+Sim(m2,mj)),輸出初始聚類中心m1、m2、m3。 (3)生成新聚類和確定K值。通過多次迭代計(jì)算出類間相似度距離最小和類內(nèi)相似度距離最大。在聚類過程中,以動態(tài)的方式調(diào)整K值,使其能夠以類內(nèi)最近和類間最遠(yuǎn)為標(biāo)準(zhǔn)進(jìn)行歸類,算法流程如圖1所示: 圖1 生成新聚類和確定K值流程 3基于大數(shù)據(jù)的K-means聚類算法網(wǎng)絡(luò)安全檢測模型設(shè)計(jì) 在K-means算法中,首先,隨機(jī)選取k個(gè)對象,根據(jù)對象相對聚類質(zhì)心距離最近的方式對其進(jìn)行聚類;其次,重復(fù)計(jì)算對象的聚類質(zhì)心,直到簇內(nèi)均方差準(zhǔn)測度函數(shù)收斂為止。 基于大數(shù)據(jù)的K-means聚類算法網(wǎng)絡(luò)安全檢測模型如圖2所示: 圖2 基于大數(shù)據(jù)的K-means聚類算法網(wǎng)絡(luò)安全檢測模型 在基于大數(shù)據(jù)的K-means聚類算法網(wǎng)絡(luò)安全檢測模型設(shè)計(jì)中,可分為兩個(gè)階段,一個(gè)是訓(xùn)練階段,一個(gè)是檢測階段。 在訓(xùn)練階段首先要對網(wǎng)絡(luò)中的正常數(shù)據(jù)進(jìn)行抓取,對于能反映網(wǎng)絡(luò)正常狀態(tài)的特征數(shù)據(jù)進(jìn)行篩選,為構(gòu)建網(wǎng)絡(luò)安全檢測模型準(zhǔn)備正常行為數(shù)據(jù)集。其次,將所采集到的正常行為數(shù)據(jù)集特征通過Hash函數(shù)進(jìn)行處理,將特征數(shù)據(jù)轉(zhuǎn)換為模型可以識別和處理的數(shù)據(jù),以便于進(jìn)行算法分析。然后,運(yùn)用K-means聚類算法對數(shù)據(jù)進(jìn)行分類,構(gòu)建數(shù)據(jù)樹形結(jié)構(gòu),對數(shù)據(jù)進(jìn)行訓(xùn)練,完成正常行為數(shù)據(jù)的基準(zhǔn)庫建立。 第二階段是檢測階段,首先對網(wǎng)絡(luò)中所采集到的原始正常行為數(shù)據(jù)進(jìn)行監(jiān)控,以保證所抓取的待檢網(wǎng)絡(luò)數(shù)據(jù)的可用性。其次,應(yīng)用Hash函數(shù)對網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行處理,主要是將數(shù)據(jù)特征進(jìn)行轉(zhuǎn)換,在進(jìn)行算法分析。然后,以K-means聚類算法將數(shù)據(jù)按照數(shù)據(jù)特征進(jìn)行分類,利用在訓(xùn)練階段所構(gòu)建的樹形結(jié)構(gòu)找出K鄰近的對象(K-Nearest、Neigh-bors)。最后,將數(shù)據(jù)帶入直推式(transduction)異常檢測算法,對比正常網(wǎng)絡(luò)數(shù)據(jù)基準(zhǔn)庫,計(jì)算出P值,由此判斷網(wǎng)絡(luò)中的數(shù)據(jù)是否存在異常。 直推式異常檢測算法[11]是對所采集到的網(wǎng)絡(luò)樣本通過訓(xùn)練所獲得的數(shù)據(jù)隨機(jī)性檢測,并進(jìn)行置信度估算,用P值定義為待分類的數(shù)據(jù)進(jìn)行空間概率分析,如果P值相對于正常網(wǎng)絡(luò)數(shù)據(jù)基準(zhǔn)庫的空間值越大,則表明其類屬于網(wǎng)絡(luò)正常行為的可能性就越大。 4網(wǎng)絡(luò)安全檢測模型應(yīng)用測試分析 以網(wǎng)絡(luò)安全評測基準(zhǔn)評測數(shù)據(jù)集KDD Cup99[12,13]為模型數(shù)據(jù)采集參考,攻擊類型主要包括:DoS、Probe、R2L、U2R。在檢測模型中,記錄的屬性值包括34個(gè),字符屬性包括7個(gè)。其中,正常數(shù)據(jù)占18.69%,異常數(shù)據(jù)占81.34%。在網(wǎng)絡(luò)數(shù)據(jù)庫中,以隨機(jī)的方式抽取10個(gè)數(shù)據(jù)子集,其中每條子集都包含有1000個(gè)記錄,用此進(jìn)行安全檢測模型應(yīng)用測試。在進(jìn)行性能評估時(shí),在這些數(shù)據(jù)中隨機(jī)抽取3組,作為樣本數(shù)據(jù)。其中,每個(gè)數(shù)據(jù)子集都包含有10000條記錄,其中已知異常記錄數(shù)約為1.8%-2.0%。數(shù)據(jù)樣本如表1所示: 表1 樣本 傳統(tǒng)K-means算法與改進(jìn)后的K-means算法在檢測率、誤檢率、檢測時(shí)間上的試驗(yàn)結(jié)果比對如表2所示: 表2 檢測結(jié)果比對 通過表2可以看出,改進(jìn)后的算法在檢測率上提高了約為7.68%,誤檢率降低了2.86%,檢測時(shí)間減少了15%。 傳統(tǒng)Kmeans與改進(jìn)后的Kmeans對不同攻擊類型檢測的效率試驗(yàn)如表3所示: 表3 傳統(tǒng)Kmeans與改進(jìn)后的 由表3可知,改進(jìn)后的K-means算法的入侵檢測的效果都明顯優(yōu)于傳統(tǒng)K-means算法的檢測效果,對DOS、Probe入侵類型入侵攻擊的檢測率比較高,但對于U2L和U2R的檢測效率較低。U2L和U2R的檢測率較低主要是因?yàn)闇y試數(shù)據(jù)集中這2種入侵記錄數(shù)較少,訓(xùn)練時(shí)對其分類處理不太理想從而導(dǎo)致后期檢測效果差,而且這2種入侵方式都是偽裝成合法用戶身份進(jìn)行入侵攻擊,其表現(xiàn)特征與正常網(wǎng)絡(luò)數(shù)據(jù)包的特征十分相似,容易造成較低的檢測率。另一方面,改進(jìn)后的K-means算法在誤檢率方面都比傳統(tǒng)的K-means算法來得降低,但訓(xùn)練時(shí)很多R2L入侵記錄混進(jìn)了正常聚類,造成了其攻擊類型的誤檢率普遍較高。 綜合模型的檢測結(jié)果分析,K值的取值對于網(wǎng)絡(luò)安全檢測的準(zhǔn)確性和識別率具有關(guān)鍵性的作用,所以在實(shí)際應(yīng)用中應(yīng)結(jié)合各方面的因素,進(jìn)行K值的選擇,已達(dá)網(wǎng)絡(luò)安全檢測最優(yōu)結(jié)果。 在大數(shù)據(jù)時(shí)代,對網(wǎng)絡(luò)安全檢測中異常數(shù)據(jù)與正常數(shù)據(jù)的歸類以K-maeans聚類算法所設(shè)計(jì)的網(wǎng)絡(luò)安全檢測模型具有一定的可行性和實(shí)用型。值得注意的是,在模型的數(shù)據(jù)選擇方面應(yīng)充分考慮數(shù)據(jù)特征的代表性,避免數(shù)據(jù)冗余而造成算法效率的降低,同時(shí)在訓(xùn)練時(shí),要采用分層訓(xùn)練的方式,提取少量關(guān)鍵數(shù)據(jù)進(jìn)行運(yùn)算,逐步提高訓(xùn)練的難度,以增強(qiáng)訓(xùn)練的邏輯性,減少訓(xùn)練的耗時(shí)。 參考文獻(xiàn): [1] Nikolova E, Jecheva V. Some similarity coefficients and application of data mining techniques to the anomaly-based IDS[J].Telecommunication Systems,2012,50(2): 127-135. [2]謝卓.基于聚類學(xué)習(xí)算法的網(wǎng)絡(luò)入侵檢測研究[J].現(xiàn)代電子技術(shù),2012,35(2):91-93. [3]費(fèi)歡,李光輝.基于K-means聚類的WSN異常數(shù)據(jù)檢測算法[J].計(jì)算機(jī)工程,2015,(7). [4]王祥斌.數(shù)據(jù)挖掘技術(shù)在入侵檢測系統(tǒng)中的應(yīng)用研究[J].計(jì)算機(jī)測量與控制,2012,(2). [5]劉長騫.K均值算法改進(jìn)及在網(wǎng)絡(luò)入侵檢測中的應(yīng)用[J].計(jì)算機(jī)仿真,2011,(3). [6] Bahraani B, Moseley B, Vattani A, et al. Scalable K-means++ [J]. Proceedings of the VLDB Endowment, 2012, 5(7): 622-633. [7]傅濤,孫亞民.基于PSO的K-means算法及其在網(wǎng)絡(luò)入侵檢測中的應(yīng)用[J].計(jì)算機(jī)科學(xué), 2011,38(5):54-55. [8]李紅巖,胡林林,王江波,周紅芳.基于K-means的最佳聚類數(shù)確定方法研究[J].電腦知識與技術(shù),2014,(01). [9]王茜,劉勝會.改進(jìn)K-means算法在入侵檢測中的應(yīng)用研究[J].計(jì)算機(jī)工程與應(yīng)用,2015,(17). [10]杜強(qiáng),孫敏.基于改進(jìn)聚類分析算法的入侵檢測系統(tǒng)研究[J].計(jì)算機(jī)工程與應(yīng)用,2011, 47(11):106-108. [11]李向軍,張華薇,鄭思維,霍艷麗,張新萍.基于相對領(lǐng)域熵的直推式網(wǎng)絡(luò)異常檢測算法[J].計(jì)算機(jī)工程,2015,8(8):132-139. [12]Tavallaee, M.,Bagheri, E., Lu, W., & Ghorbani, A. A. (2009). A detailed analysis of the KDD cup99 data set. In Paper presented at the IEEE symposium on computational intelligence in security and defense applications (CISDA2009). [13]王潔松,張小飛.KDDCup99網(wǎng)絡(luò)入侵檢測數(shù)據(jù)的分析和預(yù)處理[J].科技信息,2008,15 (9): 443-494. The Application of K-means Clustering Algorithm Based on Big Data in Network Security Detection ZHENG Zhi-xian, WANG Min (Information Engineering Department, Fujian Chuanzheng Communications College, Fuzhou 350007, China) Abstract:With the advent of the cloud era, the application of big data has attracted increasingly great attention. The core of big data is to mine the hidden value chain in data, thus providing reference for decision-making. The clustering algorithm is a classification method of data mining, K-means is a clustering algorithm based on partition. In the network security detection, the establishment of network anomaly detection model based on K-means can effectively improve the ability to centrally select data with accuracy in large data environment, control the detection false alarm rate and shorten the time for network anomaly data selection. However, the traditional K-means clustering algorithm has its uncertainty in the aspects of the selection of data type pretreatment, the selection of initial center and determination of K value and so on, which leads to lower efficiency in intrusion detection. This paper proposes an improved K-means algorithm, and uses the KDDCup99 data set to carry out the simulation experiment, which proves that the improved K-Means algorithm is better in the detection accuracy and detection efficiency than the traditional algorithm. Key words:big data; the network security detection; K-means clustering algorithm 收稿日期:2016-01-02 基金項(xiàng)目:福建省教育廳B類科技項(xiàng)目(JB13292) 作者簡介:鄭志嫻(1979-),女,福建福州人,講師,碩士,研究方向?yàn)橛?jì)算機(jī)技術(shù)。 中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1674-344X(2016)02-0036-05 王敏(1976-),女,重慶人,副教授,碩士,研究方向?yàn)橛?jì)算機(jī)技術(shù)。