Ni=Ei/CPUNi
(5)
通過公式(5)能夠獲得網(wǎng)關(guān)負載情況,如果經(jīng)過判斷后可以下達策略指令,則將該網(wǎng)關(guān)匯總到可以執(zhí)行指令的網(wǎng)關(guān)集合中,接著對網(wǎng)關(guān)下發(fā)指令的權(quán)重進行計算并選擇網(wǎng)關(guān)。主要根據(jù)網(wǎng)關(guān)到攻擊源的距離和網(wǎng)絡(luò)流量情況計算網(wǎng)關(guān)權(quán)重。
由于過濾規(guī)則會影響網(wǎng)關(guān)實際流量,因此,網(wǎng)關(guān)與攻擊源的距離越近,網(wǎng)關(guān)流量越小,給予的權(quán)重越高[9-10]。如果網(wǎng)關(guān)自身流量較高,再給予較多的過濾規(guī)則,則會進一步降低網(wǎng)關(guān)性能,網(wǎng)關(guān)的權(quán)重比計算如下:
(6)
公式(6)中,計算得到的網(wǎng)關(guān)的權(quán)重比值為R,網(wǎng)關(guān)的權(quán)重系數(shù)為k,網(wǎng)關(guān)在t時刻的流量用Ft表示,網(wǎng)絡(luò)攻擊源流量經(jīng)歷多個網(wǎng)關(guān)到被攻擊的距離用D表示。網(wǎng)關(guān)的權(quán)重比要按照實際的網(wǎng)關(guān)流量判定得出,如果獲得的網(wǎng)關(guān)權(quán)重值越小,則其更適合執(zhí)行網(wǎng)絡(luò)攻擊阻斷策略指令。
2 網(wǎng)絡(luò)攻擊阻斷權(quán)值計算模型構(gòu)建
2.1 攻擊拓撲樹計算方法
基于網(wǎng)絡(luò)攻擊拓撲樹的攻擊阻斷權(quán)值計算方法需要用到兩種數(shù)據(jù)結(jié)構(gòu),一是String數(shù)據(jù)結(jié)構(gòu),網(wǎng)絡(luò)防御系統(tǒng)會收集String數(shù)據(jù)結(jié)構(gòu)類型的網(wǎng)絡(luò)攻擊路徑集合,以“,”在字符串中進行間隔,將“,”作為分隔的節(jié)點,再將每個網(wǎng)絡(luò)攻擊路徑進行還原處理,得到真實的String數(shù)據(jù)結(jié)構(gòu)類型組,對其進行遍歷,Hash Map>數(shù)據(jù)結(jié)構(gòu)負責存儲網(wǎng)絡(luò)攻擊路徑信息,其網(wǎng)絡(luò)攻擊路徑的源節(jié)點用Hash Map>數(shù)據(jù)結(jié)構(gòu)中的鍵代表。使用Hash Set數(shù)據(jù)結(jié)構(gòu)能夠在還原網(wǎng)絡(luò)攻擊拓撲圖的同時,自動排除全部的重復(fù)的網(wǎng)絡(luò)節(jié)點。二是在完成String數(shù)據(jù)結(jié)構(gòu)類型組的遍歷后,開始對Hash Map數(shù)據(jù)結(jié)構(gòu)中的所有數(shù)據(jù)進行遍歷,存入Tree Node中,Tree Node數(shù)據(jù)結(jié)構(gòu)中的每個節(jié)點都包含了該節(jié)點在網(wǎng)絡(luò)攻擊拓撲樹中與根節(jié)點之間的距離。IP變量屬于String數(shù)據(jù)結(jié)構(gòu),其代表了包含的所有網(wǎng)關(guān)節(jié)點;變量R表示網(wǎng)絡(luò)攻擊阻斷權(quán)值;Tree Node數(shù)據(jù)結(jié)構(gòu)的數(shù)組節(jié)點存儲了全部子節(jié)點。
對Tree Node數(shù)據(jù)結(jié)構(gòu)類型中的根節(jié)點進行設(shè)置,標記為root,同時將其距離變量設(shè)置為0,通過Hash Map遍歷計算,得到對應(yīng)的Hash Set值,新建一個Tree Node類型數(shù)據(jù)結(jié)構(gòu),把Hash Set值中存儲的String數(shù)據(jù)結(jié)構(gòu)類型數(shù)據(jù)存儲到Tree Node中,此時,將距離變量“+1”,賦值給Tree Node變量,IP值賦值給String數(shù)據(jù)結(jié)構(gòu)變量,再將新建的已經(jīng)賦值給對應(yīng)子節(jié)點的Tree Node變量節(jié)點存儲到Stack棧,再讀取Stack棧數(shù)據(jù)并遍歷全部節(jié)點。重復(fù)以上直到Stack棧中沒有數(shù)據(jù)為止,該過程完成了對網(wǎng)絡(luò)攻擊拓撲樹的還原,以及網(wǎng)關(guān)到攻擊源距離的計算。
2.2 計算安全網(wǎng)關(guān)負載
只有設(shè)置多個網(wǎng)關(guān)參數(shù)值,才能夠?qū)W(wǎng)關(guān)負載進行計算。創(chuàng)建一個Hash Map遍歷,利用Connection變量與數(shù)據(jù)庫建立連接,選定目標時刻t,獲取網(wǎng)關(guān)在該時刻之前時間內(nèi)全部歷史測量結(jié)果。此時,Hash Map網(wǎng)絡(luò)攻擊路徑的源節(jié)點的鍵代表時間,遍歷值為該時間的網(wǎng)絡(luò)流量信息。設(shè)置一個全局變量,表示采集時間長度,標記為n;設(shè)置一個double類型變量,代表歷史測量值權(quán)重,標記為k=2/n+1,完成一次計算循環(huán),則將k計算k/2;變量Yt是從Hash Map遍歷中獲取的數(shù)據(jù),表示測量值;采取遞歸方式,根據(jù)公式(2)計算結(jié)果,每一次的結(jié)果與下一次遞歸計算結(jié)果相加。遞歸計算的參數(shù)包括Hash Map遍歷數(shù)據(jù)、遞減后的網(wǎng)關(guān)權(quán)重系數(shù)k、測量時間t、當參數(shù)k的數(shù)值為0時,代表遞歸結(jié)束,返回0,此時數(shù)據(jù)對結(jié)果影響程度最小。再根據(jù)公式(3),獲得最終的負載參數(shù)E。
根據(jù)公式(6)獲得節(jié)點的攻擊阻斷權(quán)值,創(chuàng)建一個double數(shù)據(jù)結(jié)構(gòu)類型的變量代表網(wǎng)關(guān)攻擊阻斷權(quán)值計算中攻擊距離以及網(wǎng)關(guān)負載的占比,記作kn,其默認值設(shè)為0.5。通過Tree Node數(shù)據(jù)結(jié)構(gòu)中對網(wǎng)關(guān)節(jié)點距離的計算,得到網(wǎng)關(guān)節(jié)點距離變量,表示在網(wǎng)絡(luò)攻擊路徑中,網(wǎng)關(guān)與攻擊源之間的距離,將得到的值通過公式(6)計算得到攻擊阻斷權(quán)值的最終結(jié)果,將結(jié)果賦值給變量R,得到該網(wǎng)絡(luò)節(jié)點在此次網(wǎng)絡(luò)攻擊阻斷中的阻斷權(quán)值。
3 實驗與結(jié)果驗證
3.1 網(wǎng)關(guān)負載與攻擊源距離影響因子驗證
該實驗主要驗證了在網(wǎng)關(guān)的網(wǎng)絡(luò)攻擊阻斷權(quán)值計算中,攻擊距離和網(wǎng)關(guān)負載占比對計算結(jié)果的影響。采用的是縱向比較模式,在設(shè)置了不同的攻擊距離和網(wǎng)關(guān)負載占比情況下,得到的網(wǎng)關(guān)攻擊阻斷權(quán)值結(jié)果,與預(yù)先設(shè)置的數(shù)值之間的實際差距,以得到最優(yōu)的攻擊距離和網(wǎng)關(guān)負載占比。實驗網(wǎng)絡(luò)拓撲結(jié)構(gòu)圖如圖1所示,攻擊源的網(wǎng)絡(luò)攻擊流量通過網(wǎng)關(guān)接入了一體化智能主干網(wǎng)絡(luò),在不同的互聯(lián)網(wǎng)網(wǎng)關(guān)中進行攻擊流量的轉(zhuǎn)發(fā),最終完成了一次完整的網(wǎng)絡(luò)攻擊。由于網(wǎng)關(guān)包含了兩張網(wǎng)卡,所以顯示為兩個IP地址,IP地址是該實驗自行設(shè)置的網(wǎng)絡(luò)地址。

圖1 實驗網(wǎng)絡(luò)拓撲結(jié)構(gòu)圖
實驗步驟為:構(gòu)建網(wǎng)絡(luò)拓撲結(jié)構(gòu)圖,設(shè)置一個網(wǎng)關(guān)路由表;對攻擊主機和被攻擊主機的IP和路由表進行設(shè)置,實現(xiàn)攻擊主機與被攻擊機的網(wǎng)絡(luò)通信;在攻擊主機上安裝網(wǎng)絡(luò)惡意攻擊軟件,將攻擊目標IP設(shè)置為被攻擊主機的IP地址,并進行分布式拒絕服務(wù)攻擊(DDos);更改系統(tǒng)程序,設(shè)置多個網(wǎng)關(guān)負載k值,對被攻擊主機發(fā)起多次網(wǎng)絡(luò)攻擊,獲得網(wǎng)絡(luò)攻擊阻斷權(quán)值計算結(jié)果。
在完成實驗需要的網(wǎng)絡(luò)拓撲結(jié)構(gòu)圖之后,采用虛擬機的方式搭建了接入網(wǎng)關(guān)和互聯(lián)網(wǎng)網(wǎng)關(guān)之間的通道。表1為設(shè)置的網(wǎng)關(guān)路由表,同時包括了網(wǎng)絡(luò)拓撲圖中的各個網(wǎng)關(guān)地址、攻擊主機和被攻擊主機的IP地址。目標地址是攻擊流量需要到達的被攻擊主機的IP地址,當網(wǎng)關(guān)轉(zhuǎn)發(fā)攻擊流量并達到目標地址時,網(wǎng)關(guān)地址為下一個攻擊目標的IP地址。
表2給出了不同k值的實驗結(jié)果,攻擊阻斷策略下發(fā)網(wǎng)關(guān)的個數(shù),以及各個網(wǎng)關(guān)的流量總和的乘積用以判斷攻擊阻斷的效果。對于攻擊阻斷

表1 網(wǎng)關(guān)路由表

表2 網(wǎng)關(guān)的攻擊阻斷權(quán)值計算性能對比
效果實際情況看,如果各個網(wǎng)關(guān)的總流量越低,同時阻斷策略下發(fā)對網(wǎng)關(guān)影響越小,攻擊阻斷的效果越佳。網(wǎng)絡(luò)攻擊流量的值可以通過安裝的網(wǎng)絡(luò)攻擊軟件進行控制,實驗將網(wǎng)絡(luò)攻擊流量設(shè)置為1 000MB,通過創(chuàng)建定時的網(wǎng)絡(luò)流量采集腳本,對網(wǎng)關(guān)流量進行實時采集存儲,用于實驗分析。通過設(shè)置專門的網(wǎng)關(guān)負載計算腳本,對網(wǎng)關(guān)負載進行計算并實時記錄,用于計算網(wǎng)絡(luò)攻擊過程中,網(wǎng)關(guān)負載的平均值。為了提高實驗的有效性和可靠性,保證不同環(huán)境下測試結(jié)果的準確性,增加了網(wǎng)關(guān)負載測試,其值無限接近各個網(wǎng)關(guān)的最高網(wǎng)關(guān)負載情況,保證阻斷權(quán)值計算過程中因子取值的可靠性。由表2可以看出,當網(wǎng)關(guān)負載因子在0.5~0.6之間,發(fā)生網(wǎng)絡(luò)攻擊時,使用網(wǎng)關(guān)阻斷權(quán)值計算方法能夠提高阻斷效果。
實驗結(jié)果顯示,在接近網(wǎng)絡(luò)攻擊源的攻擊阻斷方法中,攻擊距離和網(wǎng)關(guān)負載的占比,對于網(wǎng)絡(luò)攻擊阻斷權(quán)值的計算結(jié)果影響較大。通過對網(wǎng)絡(luò)負載占比變量k值的改變,采用縱向?qū)Ρ鹊姆绞?,對計算結(jié)果進行比較,分析攻擊阻斷算法的實際效果。最終獲得了當網(wǎng)絡(luò)負載占比k值在0.5~0.6之間,采用攻擊阻斷算法獲得的阻斷效果最好。
3.2 歷史加權(quán)因子影響驗證
實驗主要驗證歷史加權(quán)因子變化在網(wǎng)關(guān)負載計算中的影響。為此,采用了兩種網(wǎng)關(guān)負載計算方式,用于計算網(wǎng)絡(luò)攻擊阻斷權(quán)值。采用加權(quán)因子在攻擊阻斷權(quán)值中的計算方法,與歷史加權(quán)因子在攻擊阻斷權(quán)值中的計算方法進行橫向?qū)Ρ?,對攻擊阻斷算法計算結(jié)果的有效性和實際阻斷效果進行驗證,以判斷采用歷史加權(quán)因子對攻擊阻斷權(quán)值計算影響是否具有有效性。
實驗步驟為:配置好攻擊主機和被攻擊主機的路由表,部署網(wǎng)關(guān);開啟安裝在網(wǎng)關(guān)的網(wǎng)關(guān)流量采集腳本,每間隔0.1秒記錄并存儲網(wǎng)關(guān)流量信息;配置每秒執(zhí)行一次任務(wù)的定時腳本,通過開啟兩種網(wǎng)關(guān)負載計算方式,將計算結(jié)果記錄并存儲到系統(tǒng)中;對攻擊主機的網(wǎng)絡(luò)攻擊流量進行調(diào)試,增加或減少攻擊主機數(shù)量,形成網(wǎng)絡(luò)流量較大的攻擊模式;分析數(shù)據(jù)得到實驗結(jié)果。通過對網(wǎng)關(guān)流量的實時采集,得到網(wǎng)關(guān)流量波動圖如圖2所示。

圖2 網(wǎng)關(guān)流量波動圖

表3 固定因子與呈指數(shù)遞減因子計算方式對比
如表3所示,給出了針對網(wǎng)關(guān)流量波動圖進行負載計算的最終結(jié)果。采用網(wǎng)關(guān)負載因子中間值及網(wǎng)關(guān)負載因子呈指數(shù)遞減的兩種方式,分別計算得到網(wǎng)關(guān)負載。根據(jù)結(jié)果可以看出,當網(wǎng)絡(luò)流量處于比較穩(wěn)定的狀態(tài)時,兩種因子的網(wǎng)關(guān)負載計算結(jié)果相近,且比較準確。但是,當網(wǎng)絡(luò)流量在某一時間段內(nèi)出現(xiàn)了較大波動時,采用固定因子得到的計算結(jié)果偏離較大;相反,歷史數(shù)據(jù)加權(quán)計算得到的網(wǎng)關(guān)負載結(jié)果更貼近真實情況。
由該實驗可以得出,在網(wǎng)絡(luò)流量比較穩(wěn)定時,固定歷史因子進行網(wǎng)絡(luò)負載計算得到的結(jié)果具有良好的可靠性。當網(wǎng)絡(luò)流量出現(xiàn)較大波動,且網(wǎng)絡(luò)連接狀況不夠穩(wěn)定時,采用固定歷史因子的方式不能夠準確計算網(wǎng)絡(luò)負載,加權(quán)歷史因子方法計算的網(wǎng)絡(luò)負載結(jié)果可以預(yù)測網(wǎng)絡(luò)波動的情況,能夠?qū)W(wǎng)關(guān)負載情況做出準確判斷。因此,加權(quán)歷史因子網(wǎng)關(guān)負載計算方式更適用于攻擊阻斷算法。
4 結(jié)論
提出了基于指數(shù)加權(quán)移動平均值(EWMA)的攻擊阻斷權(quán)值計算模型,給出了攻擊阻斷權(quán)值的計算方法,針對網(wǎng)絡(luò)攻擊拓撲結(jié)構(gòu)分析了影響攻擊阻斷權(quán)值計算結(jié)果的因素,分別是網(wǎng)關(guān)與攻擊源距離、網(wǎng)關(guān)負載兩個因素。通過基于指數(shù)加權(quán)移動平均值(EWMA)的攻擊阻斷權(quán)值計算模型實現(xiàn)了對阻斷權(quán)值的計算。最后,通過實驗對該模型的有效性和可行性進行驗證,采用網(wǎng)關(guān)負載因子中間值和網(wǎng)關(guān)負載因子呈指數(shù)遞減的方式進一步討論了不同權(quán)重因子對計算結(jié)果的影響。實驗表明,該模型計算方法可以充分滿足網(wǎng)關(guān)阻斷權(quán)值計算的現(xiàn)實需求。