張之剛,常朝穩(wěn),韓培勝,侯 湘
(1.戰(zhàn)略支援部隊信息工程大學(xué) 密碼工程學(xué)院,鄭州 450000;2.大唐中南電力試驗研究院,鄭州 450006;3.重慶大學(xué) 期刊社,重慶 400044)
隨著互聯(lián)網(wǎng)應(yīng)用深化,中國面臨的網(wǎng)絡(luò)安全問題日益復(fù)雜。網(wǎng)絡(luò)安全風(fēng)險評估技術(shù)通過感知并預(yù)測網(wǎng)絡(luò)系統(tǒng)中的安全風(fēng)險,通過遏制網(wǎng)絡(luò)風(fēng)險傳播以控制網(wǎng)絡(luò)安全態(tài)勢,對于改善網(wǎng)絡(luò)安全現(xiàn)狀有著十分重要的意義。目前已有一些學(xué)者提出網(wǎng)絡(luò)風(fēng)險評估方法:如基于層次分析法的網(wǎng)絡(luò)安全風(fēng)險評估方法,根據(jù)專家主觀經(jīng)驗為每個安全要素加權(quán),并基于線性或非線性函數(shù)進行加權(quán)求和。但這類方法過于依賴專家主觀經(jīng)驗,缺乏統(tǒng)一量化評估標(biāo)準(zhǔn);如基于線性或非線性時序分析的網(wǎng)絡(luò)安全風(fēng)險預(yù)測方法,依據(jù)前一時隙內(nèi)的網(wǎng)絡(luò)安全風(fēng)險,分析安全風(fēng)險短期時序變化規(guī)律。但該方法僅適用于短時宏觀風(fēng)險變化分析。
不僅如此,上述網(wǎng)絡(luò)風(fēng)險評估方法均未考慮網(wǎng)絡(luò)風(fēng)險傳播帶來的影響。由于網(wǎng)絡(luò)風(fēng)險并非靜態(tài)的,而是以威脅源為中心向周邊節(jié)點投射[1]。網(wǎng)絡(luò)風(fēng)險傳播受網(wǎng)絡(luò)拓撲、威脅源分布等因素的影響,并且單次網(wǎng)絡(luò)風(fēng)險傳播行為存在一定隨機性,使得網(wǎng)絡(luò)風(fēng)險傳播行為在時空上難以預(yù)測,給網(wǎng)絡(luò)風(fēng)險評估帶了挑戰(zhàn)。雖然已有一些方法在宏觀層面量化評估當(dāng)前的網(wǎng)絡(luò)風(fēng)險,并預(yù)測未來短時風(fēng)險變化規(guī)律,但這類方法難以細粒度地分析網(wǎng)絡(luò)風(fēng)險傳播及其分布。
針對上述問題,提出一種RiskRank網(wǎng)絡(luò)風(fēng)險傳播分析方法。基于DNS日志數(shù)據(jù),計算網(wǎng)絡(luò)節(jié)點間的相似關(guān)系和臨近關(guān)系,以構(gòu)建網(wǎng)絡(luò)風(fēng)險傳播圖譜,通過標(biāo)記圖譜中已知風(fēng)險的網(wǎng)絡(luò)節(jié)點,基于隨機游走方法迭代計算網(wǎng)絡(luò)風(fēng)險傳播模型,以分析網(wǎng)絡(luò)風(fēng)險傳播,并量化評估網(wǎng)絡(luò)風(fēng)險程度,最后采用密度聚類算法識別高風(fēng)險簇,通過隔離高風(fēng)險簇從而控制網(wǎng)絡(luò)安全態(tài)勢。
研究的貢獻包括:1)構(gòu)建網(wǎng)絡(luò)風(fēng)險傳播圖譜,以表示2種網(wǎng)絡(luò)風(fēng)險傳播途徑:相似網(wǎng)絡(luò)節(jié)點間傳播和臨近網(wǎng)絡(luò)節(jié)點間傳播;2)基于網(wǎng)絡(luò)風(fēng)險傳播圖譜,提出一種基于隨機游走方法的網(wǎng)絡(luò)風(fēng)險傳播模型,量化評估網(wǎng)絡(luò)風(fēng)險程度;3)實驗結(jié)果表明,提出的RiskRank網(wǎng)絡(luò)風(fēng)險傳播模型的準(zhǔn)確率為97.4%、精度為98.1%、召回率為86.4%。
Cai等[2]通過提取網(wǎng)絡(luò)安全關(guān)鍵要素,并基于層次分析法對網(wǎng)絡(luò)安全關(guān)鍵要素進行加權(quán),以綜合評估網(wǎng)絡(luò)安全風(fēng)險程度,但在評估過程中該方法過于依賴主觀經(jīng)驗,缺乏統(tǒng)一量化評估標(biāo)準(zhǔn)。Ghosh等[3]從損失成本和響應(yīng)成本的角度分析了網(wǎng)絡(luò)安全風(fēng)險。Almohri等[4]基于概率圖模型分析網(wǎng)絡(luò)中發(fā)生攻擊的概率。Wang等[5]提出一種網(wǎng)絡(luò)安全性評估模型用于分析網(wǎng)絡(luò)系統(tǒng)脆弱性帶來的風(fēng)險。潘順榮等[6]對網(wǎng)絡(luò)風(fēng)險傳播過程等進行了探討。田飛等[7-8]分析網(wǎng)絡(luò)病毒傳播規(guī)律。
張良富等[9]綜述了隨機游動方法的時間復(fù)雜度、空間復(fù)雜度、計算精確度以及可擴展性并在此基礎(chǔ)上總結(jié)了這些算法所對應(yīng)的計算場景。Alamgir等[10]采用隨機游走方法實現(xiàn)基于興趣點的局部聚類,該方法從興趣點開始隨機游走,訪問其他可達頂點,直到滿足停止條件。郭景峰等[11]在轉(zhuǎn)移概率模型的基礎(chǔ)上提出了一種基于兩類節(jié)點的隨機游走算法,以得到較高質(zhì)量的隨機游走序列。馬慧芳等[12]在關(guān)鍵詞提取中基于隨機游走算法計算節(jié)點的重要性分數(shù)。Su等[13-14]通過描述高斯反向傳播的消息傳遞過程,提出了新的置信度初始化設(shè)置方法。
筆者提出的RiskRank網(wǎng)絡(luò)傳播分析方法,從DNS日志數(shù)據(jù)中提取網(wǎng)絡(luò)節(jié)點間的連接,采用杰卡德距離計算節(jié)點間相似關(guān)系,并結(jié)合網(wǎng)絡(luò)拓撲中節(jié)點間臨近關(guān)系,構(gòu)建網(wǎng)絡(luò)風(fēng)險傳播圖譜,如圖1所示,圖中的節(jié)點表示網(wǎng)絡(luò)節(jié)點,圖中的邊表示兩兩網(wǎng)絡(luò)節(jié)點之間的相似關(guān)系和臨近關(guān)系[15]。通過標(biāo)記已知風(fēng)險的網(wǎng)絡(luò)節(jié)點以初始化風(fēng)險值,并基于隨機游走方法迭代計算網(wǎng)絡(luò)風(fēng)險傳播模型,最后基于收斂穩(wěn)定的模型評估圖譜中所有節(jié)點的風(fēng)險程度。
圖1 網(wǎng)絡(luò)風(fēng)險傳播分析方法
網(wǎng)絡(luò)風(fēng)險傳播主要是指網(wǎng)絡(luò)中的威脅源向周邊鄰接節(jié)點投射風(fēng)險,如利用惡意網(wǎng)站、攻擊服務(wù)器、移動介質(zhì)等,通過誘導(dǎo)或主動等方式,向周邊鄰接節(jié)點實施攻擊行為,包括植入惡意軟件、控制受控主機、拒絕服務(wù)攻擊等,使得網(wǎng)絡(luò)風(fēng)險從威脅源投射至周邊鄰接節(jié)點。由于越脆弱的網(wǎng)絡(luò)節(jié)點和越有價值的網(wǎng)絡(luò)節(jié)點,越容易遭受攻擊,因此高風(fēng)險的節(jié)點在網(wǎng)絡(luò)拓撲中呈現(xiàn)密集連接現(xiàn)象。
網(wǎng)絡(luò)風(fēng)險傳播途徑主要包括相似節(jié)點間傳播和臨近節(jié)點間傳播:1)網(wǎng)絡(luò)風(fēng)險之所以在相似節(jié)點間傳播是由于相似節(jié)點會具有相似的網(wǎng)絡(luò)行為,它們關(guān)聯(lián)著共同的域節(jié)點和服務(wù)器等,如果這些域節(jié)點和服務(wù)器等是威脅源,那么威脅源會向這些相似的網(wǎng)絡(luò)節(jié)點傳播風(fēng)險。2)網(wǎng)絡(luò)風(fēng)險之所以在臨近節(jié)點間傳播是由于臨近節(jié)點在網(wǎng)絡(luò)拓撲中存在較短連接路徑,容易通過網(wǎng)絡(luò)通信或移動介質(zhì)傳播風(fēng)險。
根據(jù)DNS數(shù)據(jù)中的節(jié)點間通信,計算相似網(wǎng)絡(luò)節(jié)點與相近網(wǎng)絡(luò)節(jié)點,對其進行關(guān)聯(lián),以構(gòu)建網(wǎng)絡(luò)風(fēng)險傳播圖譜,該圖譜描述了相近和相似節(jié)點之間的關(guān)聯(lián)關(guān)系。定義無向圖G=(V,E,S0)為網(wǎng)絡(luò)風(fēng)險傳播圖譜,其中V={v1,v2,……,vn}表示網(wǎng)絡(luò)節(jié)點,E={e1,e2,……,en}表示連接相似和相近網(wǎng)絡(luò)節(jié)點之間的邊(關(guān)系),分為兩種,一種相似關(guān)系、一種臨近關(guān)系。相似關(guān)系是指兩網(wǎng)絡(luò)節(jié)點和其他網(wǎng)絡(luò)節(jié)點之間的連接關(guān)系存在相似性,臨近關(guān)系是指兩網(wǎng)絡(luò)節(jié)點存在直接的通信連接。采用杰拉德距離計算網(wǎng)絡(luò)節(jié)點間的相似性,相似度公式如公式(1)所示,其中,vi和vj分別表示網(wǎng)絡(luò)節(jié)點i和網(wǎng)絡(luò)節(jié)點j所關(guān)聯(lián)的其他網(wǎng)絡(luò)節(jié)點集合。vi和vj的交集vi∩vj表示兩網(wǎng)絡(luò)節(jié)點共同連接的其他網(wǎng)絡(luò)節(jié)點數(shù),vi和vj的并集vi∪vj表示2網(wǎng)絡(luò)節(jié)點連接的其他網(wǎng)絡(luò)節(jié)點總數(shù)。vi和vj的相似度sim(vi,vj)表示兩網(wǎng)絡(luò)節(jié)點共同連接的其他網(wǎng)絡(luò)節(jié)點數(shù)在連接的其他網(wǎng)絡(luò)節(jié)點總數(shù)中的占比,如果sim(vi,vj)大于閾值0.5(sim(vi,vj)>0.5),那么說明vi和vj具有相似性。
(1)
表1 網(wǎng)絡(luò)風(fēng)險傳播圖譜構(gòu)建算法
通過構(gòu)建網(wǎng)絡(luò)風(fēng)險傳播圖譜,基于隨機游走方法提出一種RiskRank網(wǎng)絡(luò)風(fēng)險傳播模型,通過分析網(wǎng)絡(luò)風(fēng)險在網(wǎng)絡(luò)空間中隨機動態(tài)傳播過程,以評估網(wǎng)絡(luò)中的潛在安全風(fēng)險。對于未知風(fēng)險的網(wǎng)絡(luò)節(jié)點,通過初始化部分已知節(jié)點風(fēng)險值,基于隨機游走迭代計算圖譜中所有節(jié)點的風(fēng)險值,待風(fēng)險傳播圖譜迭代收斂后,所有未知風(fēng)險的節(jié)點均被標(biāo)記上風(fēng)險值,該風(fēng)險值作為這些節(jié)點的潛在風(fēng)險值。根據(jù)公式(2)迭代計算未知節(jié)點的風(fēng)險值,其中score(xi)為節(jié)點xi的風(fēng)險值,α=0.85為阻尼系數(shù),In(xi)是xi的入度,Out(xi)是xi的出度。網(wǎng)絡(luò)風(fēng)險傳播圖譜各節(jié)點的風(fēng)險值經(jīng)初始化后,根據(jù)公式(2)迭代其他節(jié)點的風(fēng)險值,每次迭代計算完成,計算所有節(jié)點迭代前和迭代后2次風(fēng)險值之間的平均差作為收斂誤差,當(dāng)收斂誤差小于一定閾值(如小于0.05)時,則說明網(wǎng)絡(luò)風(fēng)險傳播模型收斂,迭代計算結(jié)束。
(2)
通過設(shè)定閾值以區(qū)分高風(fēng)險節(jié)點和低風(fēng)險節(jié)點,由于閾值的設(shè)定會影響風(fēng)險評估的精度和召回率,設(shè)置合理的閾值以獲得較高精度和召回率。設(shè)置風(fēng)險臨界閾值的原則為:提升精度的條件下同時盡可能不降低召回率。經(jīng)實驗分析,當(dāng)閾值為0.8時,方法具有高精度和較高的召回率。
圖2 高風(fēng)險簇聚類算法
利用真實環(huán)境中的DNS數(shù)據(jù)進行實驗,以驗證所提出方法的有效性。首先介紹實驗環(huán)境和實驗數(shù)據(jù),并分析風(fēng)險傳播模型的準(zhǔn)確性,同時分析閾值選取對準(zhǔn)確性的影響,最后討論該模型的時間開銷。
實驗中涉及的方法均采用相同的編譯環(huán)境和配置環(huán)境中,其中,計算機CPU為2 Xeon 4116 12C/85W/2.1GHz,內(nèi)存為256 G DDR4 2 666 MHz,硬盤為2×480G SSD,操作系統(tǒng)為Ubuntu 16.04,編譯器采用Eclipse 3.5/JRE 1.8。
采用的DNS數(shù)據(jù)來源于國網(wǎng)河南省電力公司數(shù)據(jù)中心,數(shù)據(jù)規(guī)模超過230萬條,包含源地址、目的地址、端口號、域名、時間等字段。安全中心標(biāo)記了其中1 767個異常節(jié)點作為黑名單,包括1 623個惡意域節(jié)點以及144個異常主機節(jié)點,同時標(biāo)記了8 556個正常網(wǎng)絡(luò)節(jié)點作為白名單。進行10組實驗,測試驗證方法采用K(K=10)折交驗證法,每組實驗都在黑名單中隨機選取50%黑和50%白樣本作為已知的高風(fēng)險和低風(fēng)險網(wǎng)絡(luò)節(jié)點用于迭代計算,剩下50%黑和50%白樣本作為驗證集中“未知”的網(wǎng)絡(luò)節(jié)點用于測試。
采用準(zhǔn)確度(ACC)、精度(PRE)、召回率(REC)來評估網(wǎng)絡(luò)風(fēng)險傳播模型的預(yù)測效果,如公式(3)、公式(4)和公式(5)所示。其中,TP(true positive)表示驗證集中被模型正確識別的高風(fēng)險網(wǎng)絡(luò)節(jié)點數(shù)量,F(xiàn)P(false positive)表示驗證集中被模型錯誤識別的高風(fēng)險網(wǎng)絡(luò)節(jié)點數(shù)量,TN(true negative)表示驗證集中被模型正確識別的低風(fēng)險網(wǎng)絡(luò)節(jié)點數(shù)量,F(xiàn)N(false negative)表示驗證集中被模型錯誤識別的低風(fēng)險網(wǎng)絡(luò)節(jié)點數(shù)量。根據(jù)TP、FP、TN、FN,計算準(zhǔn)確度(ACC)、精度(PRE)、召回率(REC)。
(3)
(4)
(5)
從數(shù)據(jù)集中隨機選取部分已知高風(fēng)險網(wǎng)絡(luò)節(jié)點進行初始化,高風(fēng)險網(wǎng)絡(luò)節(jié)點的風(fēng)險值初始化為1.0,其他網(wǎng)絡(luò)節(jié)點初始化風(fēng)險值為0.0,作為“未知”風(fēng)險的網(wǎng)絡(luò)節(jié)點。通過構(gòu)建網(wǎng)絡(luò)風(fēng)險傳播圖譜,迭代計算RiskRank網(wǎng)絡(luò)風(fēng)險傳播模型,該模型計算所有未知節(jié)點的風(fēng)險值。通過設(shè)置風(fēng)險閾值(設(shè)置0.8),提取所有風(fēng)險值大于閾值的節(jié)點并潘定為高風(fēng)險網(wǎng)絡(luò)節(jié)點,并與驗證集中的標(biāo)簽進行比對,從而評估預(yù)測網(wǎng)絡(luò)風(fēng)險傳播模型的準(zhǔn)確率、精度和召回率。實驗結(jié)果表明,提出的基于RiskRank的網(wǎng)絡(luò)風(fēng)險傳播模型的準(zhǔn)確度為97.4%,精度為98.1%,召回率為86.4%。
由于不同的閾值會影響風(fēng)險傳播模型的準(zhǔn)確性,因此通過設(shè)置不同的閾值,以比較分析出較優(yōu)的風(fēng)險閾值。不同閾值下精度和召回率實驗結(jié)果如圖3所示,從中看出:總體趨勢上,隨著閾值不斷增大,精度隨之提升,召回率隨之下降,反之,隨著閾值不斷減小,精度隨之下降,召回率隨之提升。當(dāng)精度趨近于穩(wěn)定時,即閾值為0.8時,盡管閾值不斷增大,由于精度趨近100%,提升幅度有限,而召回率急劇下降。因此,當(dāng)閾值大于0.8時,雖然精度有較小提升,但召回率急劇下降,當(dāng)閾值小于0.8時,雖然召回率較高,但精度明顯不足。因此,設(shè)定閾值為0.8,在確保精度的情況下,盡可能不降低召回率,即當(dāng)精度趨近于穩(wěn)定且召回率仍較高時的臨界閾值。
圖3 不同閾值下的精度和召回率曲線
提出RiskRank網(wǎng)絡(luò)風(fēng)險傳播分析方法是基于隨機游走進行收斂的,收斂過程需要多次迭代計算。實驗如圖4所示,網(wǎng)絡(luò)風(fēng)險傳播模型收斂時的平均迭代次數(shù)為48次,平均時間開銷為62.3 s。結(jié)果表明:隨著迭代次數(shù)的增加,風(fēng)險傳播模型的損失在不斷減小,說明風(fēng)險傳播圖譜中網(wǎng)絡(luò)節(jié)點的風(fēng)險值趨近于穩(wěn)定,收斂時的風(fēng)險傳播模型處于動態(tài)平衡狀態(tài),該狀態(tài)下網(wǎng)絡(luò)節(jié)點的風(fēng)險值即為預(yù)測的風(fēng)險值。進行第一次迭代后,風(fēng)險傳播模型收斂速率較大,反映出風(fēng)險傳播模型可以快速收斂,同時表明提出的風(fēng)險傳播理論依據(jù)合理,即網(wǎng)絡(luò)風(fēng)險在相似節(jié)點和相近節(jié)點間進行傳播,如果一個網(wǎng)絡(luò)節(jié)點關(guān)聯(lián)更多高風(fēng)險節(jié)點,則說明該網(wǎng)絡(luò)節(jié)點存在較高的安全風(fēng)險,反之,如果一個網(wǎng)絡(luò)節(jié)點關(guān)聯(lián)更少高風(fēng)險節(jié)點,則說明該網(wǎng)絡(luò)節(jié)點存在較低的安全風(fēng)險。
圖4 風(fēng)險傳播模型收斂過程
針對傳統(tǒng)網(wǎng)絡(luò)安全風(fēng)險評估方法缺乏考慮網(wǎng)絡(luò)風(fēng)險動態(tài)傳播影響的問題,提出一種RiskRank網(wǎng)絡(luò)安全風(fēng)險傳播模型,以預(yù)測網(wǎng)絡(luò)安全風(fēng)險傳播態(tài)勢。通過采集網(wǎng)絡(luò)DNS數(shù)據(jù),基于相似網(wǎng)絡(luò)節(jié)點和相近網(wǎng)絡(luò)節(jié)點構(gòu)建網(wǎng)絡(luò)風(fēng)險傳播圖譜,以分析網(wǎng)絡(luò)風(fēng)險傳播行為,基于隨機游走理論,構(gòu)建網(wǎng)絡(luò)風(fēng)險傳播模型,迭代計算潛在網(wǎng)絡(luò)風(fēng)險分布。并提出一種基于密度聚類的高風(fēng)險簇識別方法,用于隔離高風(fēng)險簇以控制安全態(tài)勢。實驗測試結(jié)果表明,提出RiskRank網(wǎng)絡(luò)安全風(fēng)險傳播模型具有97.4%的準(zhǔn)確率、98.1%的精度和86.4%的召回率。