陶曉玲, 趙培超, 陳隆生
(1.桂林電子科技大學(xué) 廣西高校云計算與復(fù)雜系統(tǒng)重點實驗室,廣西 桂林 541004;2.桂林電子科技大學(xué) 計算機與信息安全學(xué)院,廣西 桂林 541004)
互聯(lián)網(wǎng)規(guī)模的不斷擴大和日益復(fù)雜的網(wǎng)絡(luò)環(huán)境給網(wǎng)絡(luò)安全防護工作造成了極大的挑戰(zhàn),為抵御層出不窮的網(wǎng)絡(luò)攻擊,并克服單一數(shù)據(jù)源產(chǎn)生的報警信息較為片面的缺陷,管理人員通過部署多個傳感器對網(wǎng)絡(luò)環(huán)境進行實時監(jiān)測。然而在實際運行時這些檢測單元往往各自為政,產(chǎn)生海量的報警數(shù)據(jù),這些多源異構(gòu)的報警數(shù)據(jù)中存在大量的冗余報警和重復(fù)報警,嚴(yán)重加大了管理人員的工作難度。與此同時多個檢測單元之間的相互不兼容也會導(dǎo)致誤報警的產(chǎn)生,從而影響檢測精度。因此,通過報警融合技術(shù)強化報警信息可讀性并提高檢測系統(tǒng)準(zhǔn)確率,對于網(wǎng)絡(luò)安全建設(shè)具有重要意義。
報警融合技術(shù)是一種將不同來源信息進行關(guān)聯(lián)和集成,以獲得更有效數(shù)據(jù)的信息處理過程。Adel[1]提出了一種基于主成分分析法的報警數(shù)據(jù)融合方法,從特征層的角度出發(fā)實現(xiàn)數(shù)據(jù)降維并去除冗余,但該方法在數(shù)據(jù)維度較大時主成分缺乏可解釋性,融合效果較差。文獻[2-3]利用報警特征相似度進行聚類與融合,提高了聚合結(jié)果準(zhǔn)確性,但該方法對數(shù)據(jù)一致性要求較高,不適用于多傳感器數(shù)據(jù)融合,并且未能減少誤報警數(shù)據(jù),存在一定的局限性。多傳感器部署擴展了入侵檢測系統(tǒng)的信息來源,保障了檢測結(jié)果的準(zhǔn)確性和全面性,但多源異構(gòu)的報警信息也為后續(xù)的分析和感知造成一定的困擾。為此,Smock等[4]利用遞歸合并的思想融合多源報警信息,將不同檢測器的置信輸出映射到一個共享范圍內(nèi),有效降低了誤報率,但該方案的計算復(fù)雜度與檢測器的數(shù)量成指數(shù)增長。邱輝等[5]采用時間對抗策略對一個較長時間窗口的報警數(shù)據(jù)進行深度融合,該方法提高了檢測率,并降低了誤報率,但最終的融合效果受時間窗的大小影響。隨著機器學(xué)習(xí)和深度學(xué)習(xí)的發(fā)展,諸如決策樹理論[6]、支持向量機[7]、動態(tài)貝葉斯網(wǎng)絡(luò)[8]以及長短期記憶網(wǎng)絡(luò)[9]等理論被廣泛應(yīng)用于報警數(shù)據(jù)融合,這些方法可主動獲取知識,不過分依賴專家知識,在海量異構(gòu)數(shù)據(jù)融合方面具有較好的處理效果。
雖然國內(nèi)外有大量研究對多源報警數(shù)據(jù)進行聚合分析,但至今未形成統(tǒng)一的融合方案和標(biāo)準(zhǔn),現(xiàn)有方法在提高融合率的同時不可避免地會加大時間開銷,難以達到實時的融合分析。與此同時,多數(shù)的研究方法并未關(guān)注較高的誤報率對檢測精度造成的影響。因此,針對多源報警數(shù)據(jù)海量、異構(gòu)的特點,提出一種基于模糊聚類的多源報警數(shù)據(jù)并行融合方法。
模糊聚類分析是一種無監(jiān)督機器學(xué)習(xí)算法,通過模糊理論建立對樣本類屬的不確定性描述,能夠客觀地反映現(xiàn)實世界。Dunn首次提出根據(jù)模糊聚類的概念,后來由Bezdek在聚類算法中加入模糊因子提出了模糊C-均值聚類(fuzzy C-means,簡稱FCM)算法。FCM算法通過優(yōu)化目標(biāo)函數(shù)得到每個樣本點對所有類中心的隸屬度,并經(jīng)過多次迭代運算尋找最優(yōu)化聚類中心,從而決定樣本點的類屬,以達到對樣本數(shù)據(jù)進行分類的目的。該算法將n個數(shù)據(jù)樣本點劃分到c個類中,通過反復(fù)迭代使目標(biāo)函數(shù)最小化,從而實現(xiàn)聚類。其目標(biāo)函數(shù)定義為
(1)
其中:uij為第i個聚類中心到第j個數(shù)據(jù)樣本點的隸屬度;m為模糊加權(quán)指數(shù),隸屬度uij計算式為
(2)
dij=‖xj-vi‖為第j個數(shù)據(jù)樣本點到第i個聚類中心的歐式距離。聚類中心的迭代式為
(3)
FCM算法具有設(shè)計簡單、聚類效果好的特點,已廣泛應(yīng)用于圖像處理、大規(guī)模數(shù)據(jù)分析及入侵檢測等領(lǐng)域。Jafari等[10]提出一種基于模糊理論的電動機故障診斷數(shù)據(jù)融合方法,并采用模糊C均值分析方法對感應(yīng)電動機的不同模式進行分類,降低了誤報率。Aparicio-Navarro等[11]在入侵檢測系統(tǒng)中將上下文信息納入檢測過程,并結(jié)合FCM算法定義DS證據(jù)理論中的基本概率分配值,從而進行數(shù)據(jù)融合,通過降低入侵檢測系統(tǒng)中的誤報率,提高了系統(tǒng)的檢測率。
雖然模糊聚類算法與傳統(tǒng)的硬聚類算法相比有更好的聚類效果,但仍存在一些不足?,F(xiàn)有的FCM算法對初始聚類中心較為敏感,由于該算法采用逐步迭代的思想,在迭代過程中目標(biāo)函數(shù)不斷減小,因此若開始時在所有樣本數(shù)據(jù)集中隨機選取的c個聚類中心之間的幾何距離較小,會導(dǎo)致最終的聚類結(jié)果陷入局部最優(yōu)解,不利于發(fā)現(xiàn)全局最優(yōu)解。因此,合理地選取初始聚類中心是解決局部最優(yōu)解的有效手段。最大最小距離算法是模式識別中的一種試探算法,其核心思想是尋找距離盡可能遠的樣本對象作為聚類中心。本研究借助最大最小距離算法來確定初始聚類中心,避免出現(xiàn)隨機選取的聚類中心之間的幾何距離較小或分布相對集中的情況。文獻[12]通過最大最小距離算法來動態(tài)地確定K-means聚類算法的初始聚類中心,但該方法未限制聚類中心的個數(shù),過多的聚類簇對聚類效果造成較大影響。因此,采用動態(tài)的方式確定FCM初始聚類中心,并對聚類中心的個數(shù)進行了限制。最大最小距離算法的具體步驟如下:
1)初始化θ值,θ∈(0,1),在所有數(shù)據(jù)樣本點集合X={x1,x2,…,xn}中隨機選取一個樣本作為第一個聚類中心Z1,即Z1=x1。
2)通過計算除x1以外的所有數(shù)據(jù)樣本到Z1的距離,距離最大的作為第一個聚類中心Z2。
3)計算剩下的所有數(shù)據(jù)樣本點到聚類中心Z1和Z2的距離,分別記為集合Di1和集合Di2。其中Di1=‖xi-Z1‖,Di2=‖xi-Z2‖。
4)若Dl=max{min(Di1,Di2)},i=3,4,…,n,同時滿足條件Dl>θD12,則取第3個聚類中心為Z3,Z3=x1,D12為聚類中心Z1到聚類中心Z2的距離。
5)若Z3存在,則計算新的閾值Dj:
Dj=max{min(Di1,Di2,Di3)},i=4,5,…,n。
(4)
若Dj>θD12,則把Zj=xj作為第4個聚類中心。依此類推,直到最大最小距離不大于θD12時,或者聚類中心的個數(shù)等于預(yù)先設(shè)定的閾值,結(jié)束聚類中心的尋找。
當(dāng)需要處理的數(shù)據(jù)量較大時,F(xiàn)CM算法的時間復(fù)雜度較高,算法的復(fù)雜度主要集中在各數(shù)據(jù)樣本點到聚類中心的隸屬度計算以及更新聚類中心2個過程。大量的數(shù)據(jù)樣本點導(dǎo)致聚類過程中迭代次數(shù)過多,直接影響了FCM算法的計算效率。具有高處理效率和可擴展性的MapReduce編程模型適用于對大型數(shù)據(jù)集的并行化處理。該模型由Map和Reduce兩個編程函數(shù)來共同實現(xiàn)分布式的并行計算任務(wù),因此,借助該模型將FCM算法分布到大數(shù)據(jù)集群的各個節(jié)點進行并行計算,可大幅提高FCM算法的運算效率。
并行FCM算法流程圖如圖1所示。FCM算法的并行化設(shè)計主要分為Map和Reduce兩個過程。首先接收來自網(wǎng)絡(luò)的Snort報警數(shù)據(jù)和來自主機的OSSEC報警數(shù)據(jù),對2種數(shù)據(jù)進行屬性篩選和數(shù)據(jù)標(biāo)準(zhǔn)化,然后將FCM算法的思想結(jié)合MapReduce模型進行數(shù)據(jù)融合,其中Map階段的主要功能是根據(jù)數(shù)據(jù)樣本點到聚類中心的隸屬度進行樣本數(shù)據(jù)的歸類,而Reduce階段的主要功能是對從屬于同一個聚類中心的數(shù)據(jù)進行合并,來減少冗余報警,最后判斷是否達到收斂或者超過預(yù)定義的迭代次數(shù),若不滿足,則把Reduce的結(jié)果輸入Map,并進行下一輪迭代運算,直到滿足收斂條件或者迭代次數(shù)超過閾值,就退出運算。
圖1 并行FCM算法流程圖
Map過程的主要任務(wù)是計算數(shù)據(jù)樣本點到聚類中心的幾何距離,再通過隸屬度計算公式將幾何距離轉(zhuǎn)化成隸屬度,最后將該樣本點數(shù)據(jù)、所屬的聚類中心點以及對應(yīng)的隸屬度輸出。首先從HDFS上讀取數(shù)據(jù),并以指定的(key,value)對輸入格式作為Map函數(shù)的輸入值,其中key為數(shù)據(jù)樣本點的id編號,value為整條樣本點數(shù)據(jù);然后讀取利用最大最小距離算法計算出來的初始聚類中心,并計算數(shù)據(jù)樣本點到各個聚類中心的歐式距離,并結(jié)合式(2)計算出隸屬度,比較該樣本點到不同聚類中心的隸屬度,找出最大值,把該數(shù)據(jù)樣本點歸類到最大值對應(yīng)的聚類中心所屬的類別;最后以〈center,(sample,membership)〉的鍵值對的形式作為Map函數(shù)的輸出。其中center表示聚類中心,sample表示該聚類中心所屬類的一個數(shù)據(jù)樣本點,membership表示該樣本點到聚類中心的隸屬度。Map函數(shù)設(shè)計的偽代碼如下:
Input:(key,value)
Output:〈center,(sample,membership)〉
Map(Text key,Text value,Context context)
{
center=readcenter.read(center); //讀取初始聚類中心
for(int h=0;h
{
uijcenter[h]=Fun uij(sample,center[h]);
}
for (int i=0;i { max uij=Funmax uij(uijcenter[i]); max index=i; } context.write〈center[max index], (sample,max uij)〉; } Reduce函數(shù)主要任務(wù)是接收來自Map函數(shù)輸出的若干個(key,value)對,并對其進行規(guī)約處理,找出聚類的全局最優(yōu)解。首先接收來自Map函數(shù)的鍵值對,其中key為聚類中心,value為該聚類中心對應(yīng)的數(shù)據(jù)樣本點;然后將屬于同一個聚類中心的樣本點放在同一個集合里面,分別對每個屬于不同聚類中心的集合的數(shù)據(jù)樣本進行數(shù)據(jù)融合,并根據(jù)式(3)計算出新的聚類中心;最后判斷新聚類中心與前一輪對應(yīng)的聚類中心之間的幾何距離是否足夠小或者迭代次數(shù)是否超過預(yù)定義的閾值,若滿足,則退出迭代運算,把最終的聚類結(jié)果存放到HDFS,否則就把新的聚類中心作為下一輪迭代運算的聚類中心,并把Reduce的輸出結(jié)果作為Map的輸入進行下一輪的迭代運算,直到滿足收斂條件或者迭代次數(shù)大于閾值。Reduce函數(shù)設(shè)計的偽代碼如下: Input: 〈center[max index], (sample,max uij)〉 Output:〈key,value〉 Reduce (Text Key, Iterable〈Text〉 Values, Context context) { for(Text va: Values) { classlist.add(va.toString()); } hebing.comb(classlist); String srtmp= updatecenter.newcenter(classlist,currutcenter); readcenter.filewriter(srtmp); if Convergence(cluster); output(key,value); else gobackMap(key,value); } 通過搭建真實的Ambari版本的大數(shù)據(jù)平臺來驗證所提方法的有效性。分布式大數(shù)據(jù)處理平臺環(huán)境為CentOS7開源平臺下的分布式集群。實驗環(huán)境的整體拓?fù)鋱D如圖2所示,其中Ambari分布式集群由4個節(jié)點組成,包括1臺服務(wù)器主節(jié)點Master和3臺服務(wù)器作為從節(jié)點,分別為Slave1、Slave2和Slave3。主節(jié)點負(fù)責(zé)整個集群的管理,從節(jié)點負(fù)責(zé)接收主節(jié)點分配的任務(wù),路由器的主要任務(wù)是負(fù)責(zé)4臺服務(wù)器之間的相互通信并給4臺服務(wù)器提供網(wǎng)絡(luò)服務(wù)。 圖2 Ambari大數(shù)據(jù)平臺拓?fù)鋱D 通過在OSSIM開源平臺下搭建真實的入侵檢測系統(tǒng)來采集報警數(shù)據(jù),整個環(huán)境由防火墻、內(nèi)外網(wǎng)交換機以及5個主機節(jié)點構(gòu)成,在7個月的時間內(nèi),攻擊手對目標(biāo)靶場不定時地發(fā)動各種攻擊,包括漏洞掃描、獲取用戶權(quán)限、暴力破解和資源搶占等。為了證明所提方法的有效性,同時采用了蜜罐數(shù)據(jù)集[13]作為對比實驗。蜜罐數(shù)據(jù)就是通過使用網(wǎng)絡(luò)誘騙技術(shù)來騙取攻擊者發(fā)動攻擊,然后捕獲攻擊數(shù)據(jù),并對其進行特征分析來發(fā)現(xiàn)攻擊者的攻擊缺陷,進而做出相應(yīng)的防御措施。 為了給本算法選擇合適的模糊指數(shù),以達到更好的數(shù)據(jù)融合效果,分別在真實入侵檢測數(shù)據(jù)集和蜜罐數(shù)據(jù)集上取不同的模糊值進行融合效果的對比,具體如圖3所示。從圖3可看出,當(dāng)模糊指數(shù)m=2時,融合率最高,當(dāng)2 圖3 不同模糊指數(shù)下的融合率對比 圖4 運行時間對比 圖5 融合率對比 同時,為驗證本設(shè)計的并行融合方法比常規(guī)的FCM融合方法在單臺服務(wù)器上運行的時間效率和數(shù)據(jù)融合率更高,通過控制大數(shù)據(jù)集群工作的服務(wù)器數(shù)量,來進行時間效率和數(shù)據(jù)融合率的對比。圖4和圖5分別給出了不同模糊指數(shù)下改進的并行融合方法和常規(guī)的FCM融合方法的運行時間和數(shù)據(jù)融合率對比圖。 由圖4可知,本算法提出的基于MapReduce編程模型的并行融合方法比常規(guī)的FCM融合方法在運行效率上有明顯的優(yōu)勢,當(dāng)1≤m≤3時,消耗的時間縮短,當(dāng)m>3時,融合所需要的時間開始變長,并隨著模糊指數(shù)的增大趨向平穩(wěn),雖然當(dāng)m=3時所消耗的時間最短,但是從圖5可知,m=2時的融合效果最好,而且模糊指數(shù)取2和3所消耗的時間相差并不大,經(jīng)綜合分析,模糊指數(shù)取值為2比較合理。 為進一步驗證以上結(jié)論,在取模糊指數(shù)m=2的基礎(chǔ)上,分別通過融合率、檢測率和誤報率3個指標(biāo)將本方法與文獻[14]的方法在真實入侵檢測環(huán)境中進行對比實驗。其中,融合率=(融合前的報警數(shù)量-融合后的報警數(shù)量)/原始報警數(shù)量×100%,檢測率=融合后真報警的數(shù)量/融合后的報警數(shù)量×100%,誤報率=融合后假報警的數(shù)量/融合后報警的數(shù)量×100%。兩者的對比情況如表1所示。 表1 融合率、檢測率與誤報率對比 % 針對現(xiàn)有的報警數(shù)據(jù)融合方法融合效率較差、檢測精度較低的問題,提出了一種基于模糊聚類的報警數(shù)據(jù)并行融合方法。本方法通過最大最小距離算法改進傳統(tǒng)的模糊C均值聚類算法,克服了聚類過程中初始聚類中心分布過于密集,導(dǎo)致聚類結(jié)果容易陷入局部最優(yōu)解的缺陷,同時結(jié)合MapReduce編程模型對各數(shù)據(jù)樣本點和聚類中心間的隸屬度進行并行化計算。實驗結(jié)果表明,本方法提高了多源異構(gòu)報警數(shù)據(jù)的融合率及入侵檢測系統(tǒng)的檢測率,并能對數(shù)據(jù)密度分布不均勻的數(shù)據(jù)集進行合理的分析處理,有效去除數(shù)據(jù)冗余。對并行化融合處理后的數(shù)據(jù)作進一步的安全分析和評估是下一步研究工作的重點。2.3 Reduce函數(shù)的設(shè)計
3 實驗及結(jié)果分析
3.1 實驗環(huán)境
3.2 實驗數(shù)據(jù)
3.3 實驗結(jié)果分析
4 結(jié)束語