康海燕,龍墨瀾
(北京信息科技大學(xué)信息管理學(xué)院,北京 100192)
隨著大數(shù)據(jù)、云計(jì)算、人工智能等網(wǎng)絡(luò)信息技術(shù)的不斷發(fā)展,互聯(lián)網(wǎng)已經(jīng)成為我國(guó)信息化建設(shè)的基礎(chǔ)設(shè)施。與此同時(shí),國(guó)家、企業(yè)和個(gè)人的網(wǎng)絡(luò)安全也面臨嚴(yán)峻的挑戰(zhàn),攻擊者通過(guò)軟件應(yīng)用漏洞、不安全網(wǎng)絡(luò)協(xié)議等進(jìn)行網(wǎng)絡(luò)攻擊,入侵目標(biāo)主機(jī)并獲得高級(jí)權(quán)限,或植入病毒以獲利,給國(guó)家和企業(yè)帶來(lái)了難以估量的損失。因此,發(fā)現(xiàn)網(wǎng)絡(luò)中潛在的安全隱患,及時(shí)采取有效的防護(hù)措施,對(duì)提高網(wǎng)絡(luò)整體的安全性有著重要的意義。在對(duì)網(wǎng)絡(luò)的安全性進(jìn)行分析時(shí),從攻擊者的角度出發(fā)往往可以獲得更全面的評(píng)估結(jié)果,攻擊者從網(wǎng)絡(luò)中的某個(gè)邊界點(diǎn)滲透網(wǎng)絡(luò),利用網(wǎng)絡(luò)和主機(jī)中的漏洞逐步轉(zhuǎn)移,最終獲得目標(biāo)狀態(tài)節(jié)點(diǎn)的權(quán)限。通過(guò)模擬攻擊者的攻擊過(guò)程,分析潛在的攻擊路徑,找出網(wǎng)絡(luò)中的薄弱環(huán)節(jié)和潛在威脅并及時(shí)修復(fù),能夠有效保護(hù)國(guó)家、企業(yè)和個(gè)人的網(wǎng)絡(luò)空間安全。
攻擊圖技術(shù)作為網(wǎng)絡(luò)安全分析和評(píng)估手段,可以有效滿足上述需求。攻擊圖以圖形化的方式展示了攻擊者連續(xù)的攻擊行為所組成的攻擊路徑,構(gòu)建目標(biāo)網(wǎng)絡(luò)拓?fù)涞墓魣D既可以分析攻擊者的攻擊路徑,對(duì)該路徑上的重點(diǎn)環(huán)節(jié)進(jìn)行保護(hù),也可以實(shí)時(shí)分析攻擊者的攻擊意圖和動(dòng)向,并及時(shí)采取防御和反制措施。由于攻擊圖技術(shù)在網(wǎng)絡(luò)安全評(píng)估領(lǐng)域具有良好的應(yīng)用前景,目前已經(jīng)成為學(xué)術(shù)界和工業(yè)界的重點(diǎn)研究?jī)?nèi)容。
攻擊圖根據(jù)其頂點(diǎn)和邊所代表的不同意義,可以劃分為不同種類的攻擊圖,如狀態(tài)攻擊圖[1]和屬性攻擊圖[2]等。在狀態(tài)攻擊圖中,頂點(diǎn)代表網(wǎng)絡(luò)狀態(tài)信息,邊代表節(jié)點(diǎn)狀態(tài)的遷移。Bhattacharya 等[3]使用狀態(tài)搜索技術(shù)來(lái)構(gòu)建目標(biāo)網(wǎng)絡(luò)的狀態(tài)攻擊圖。然而,隨著網(wǎng)絡(luò)規(guī)模的不斷擴(kuò)大,網(wǎng)絡(luò)的狀態(tài)數(shù)量爆炸性增長(zhǎng),狀態(tài)攻擊圖難以分析大規(guī)模網(wǎng)絡(luò)拓?fù)洌虼?,針?duì)狀態(tài)攻擊圖的研究逐漸減少。為了擴(kuò)大可分析網(wǎng)絡(luò)的規(guī)模,研究人員開(kāi)始研究屬性攻擊圖。屬性攻擊圖的頂點(diǎn)表示條件和漏洞,邊表示漏洞利用條件,相對(duì)于狀態(tài)攻擊圖,屬性攻擊圖的結(jié)構(gòu)簡(jiǎn)潔,生成效率更高,適合大規(guī)模的網(wǎng)絡(luò)拓?fù)洵h(huán)境。為了解決屬性攻擊圖中的環(huán)路問(wèn)題,陳鋒等[4]提出n-有效攻擊路徑的概念,假設(shè)無(wú)環(huán)攻擊路徑理論最大長(zhǎng)度為n并提出n-有效攻擊路徑的發(fā)現(xiàn)算法。
上述研究主要集中在攻擊圖的構(gòu)建以及復(fù)雜度的優(yōu)化等方向,為后續(xù)研究提供了堅(jiān)實(shí)的基礎(chǔ),但缺乏對(duì)網(wǎng)絡(luò)環(huán)境中關(guān)聯(lián)信息的考慮。近些年,攻擊圖技術(shù)更多地應(yīng)用在風(fēng)險(xiǎn)評(píng)估、威脅分析及網(wǎng)絡(luò)加固等領(lǐng)域。通過(guò)構(gòu)建目標(biāo)網(wǎng)絡(luò)的攻擊圖,模擬攻擊者的行為,并且結(jié)合網(wǎng)絡(luò)配置信息及漏洞信息,分析網(wǎng)絡(luò)中潛在的攻擊路徑、具有安全隱患的軟件程序以及服務(wù)應(yīng)用的漏洞。Kaynar 等[5]分析了攻擊圖的研究現(xiàn)狀,認(rèn)為當(dāng)前研究的重點(diǎn)是攻擊圖的可達(dá)性分析和路徑研究。楊宏宇等[6]考慮了主機(jī)節(jié)點(diǎn)間的關(guān)聯(lián)關(guān)系對(duì)其風(fēng)險(xiǎn)值的影響,根據(jù)資產(chǎn)保護(hù)價(jià)值和攻擊圖結(jié)構(gòu)計(jì)算主機(jī)的重要度,并利用節(jié)點(diǎn)最大路徑概率及主機(jī)重要度來(lái)度量主機(jī)節(jié)點(diǎn)風(fēng)險(xiǎn)值,全面分析了目標(biāo)網(wǎng)絡(luò)中主機(jī)節(jié)點(diǎn)的風(fēng)險(xiǎn)。以上研究實(shí)現(xiàn)了對(duì)網(wǎng)絡(luò)環(huán)境的靜態(tài)風(fēng)險(xiǎn)評(píng)估,幫助防御者更加清晰地認(rèn)知脆弱節(jié)點(diǎn)之間的關(guān)聯(lián),并采取相應(yīng)的防護(hù)措施,及時(shí)使用補(bǔ)丁或更安全的服務(wù)應(yīng)用來(lái)減少網(wǎng)絡(luò)的安全風(fēng)險(xiǎn)。除了基于網(wǎng)絡(luò)環(huán)境中的拓?fù)湫畔⑦M(jìn)行靜態(tài)風(fēng)險(xiǎn)評(píng)估外,動(dòng)態(tài)分析網(wǎng)絡(luò)環(huán)境中的威脅因素也十分重要。羅智勇等[7]在預(yù)測(cè)攻擊路徑時(shí),加入了攻擊代價(jià)和入侵意圖等影響因素,通過(guò)綜合計(jì)算攻擊成本、漏洞價(jià)值和攻擊收益來(lái)定義攻擊圖中的狀態(tài)轉(zhuǎn)移概率,為動(dòng)態(tài)評(píng)估網(wǎng)絡(luò)風(fēng)險(xiǎn)提供了依據(jù)。王文娟等[8]提出了一種概率攻擊圖更新算法,通過(guò)構(gòu)建動(dòng)態(tài)概率攻擊圖模型,設(shè)計(jì)算法推斷攻擊意圖及攻擊路徑,為還原針對(duì)云計(jì)算環(huán)境的滲透攻擊過(guò)程提供了有價(jià)值的參考依據(jù)。Hu 等[9]提出了基于動(dòng)態(tài)貝葉斯攻擊圖的威脅預(yù)測(cè)算法,通過(guò)實(shí)時(shí)攻擊檢測(cè)和多維度告警信息,評(píng)估攻擊者能力并計(jì)算漏洞利用成功率,實(shí)現(xiàn)了對(duì)網(wǎng)絡(luò)威脅程度以及遭受攻擊風(fēng)險(xiǎn)的量化。
除了依靠關(guān)聯(lián)信息分析網(wǎng)絡(luò)安全狀態(tài)外,攻擊圖還可以與概率論相結(jié)合。攻擊圖反映了網(wǎng)絡(luò)內(nèi)可能的攻擊路徑,判斷圖中哪些路徑更有可能被攻擊者使用是攻擊圖的一個(gè)重要功能?;诠魣D中狀態(tài)連續(xù)變化這一特點(diǎn),研究人員通過(guò)引入貝葉斯網(wǎng)絡(luò)與馬爾可夫模型來(lái)計(jì)算節(jié)點(diǎn)的狀態(tài)轉(zhuǎn)移概率。陳小軍等[10]將轉(zhuǎn)移概率表引入攻擊圖,從觀測(cè)事件出發(fā),推導(dǎo)出單步攻擊發(fā)生的概率,提出了一種計(jì)算成功概率最高的攻擊路徑的方法,能夠有效推斷攻擊意圖并計(jì)算攻擊路徑。胡浩等[11]使用馬爾可夫鏈(MC,Markov chain)對(duì)網(wǎng)絡(luò)攻擊中的狀態(tài)遷移過(guò)程進(jìn)行刻畫(huà),認(rèn)為現(xiàn)有研究大多圍繞理想攻擊場(chǎng)景,然而實(shí)際情況中攻擊者采用的攻擊路徑不一定是理想攻擊路徑,因此提出了基于吸收馬爾可夫鏈的入侵路徑預(yù)測(cè)方法,基于通用漏洞評(píng)分標(biāo)準(zhǔn),從多種層次出發(fā),全面感知網(wǎng)絡(luò)中的威脅。張凱等[12]針對(duì)基于馬爾可夫鏈的分析方法中存在的計(jì)算狀態(tài)轉(zhuǎn)移概率不合理等問(wèn)題,提出了狀態(tài)節(jié)點(diǎn)轉(zhuǎn)移失敗的計(jì)算方法,該方法得到的結(jié)果更加符合真實(shí)的網(wǎng)絡(luò)攻防狀況。Durkota 等[13]提出了一種基于攻擊圖的博弈模型,該模型將攻擊圖轉(zhuǎn)換為馬爾可夫決策過(guò)程,并通過(guò)修剪技術(shù),使安全研究人員可以通過(guò)蜜罐技術(shù)提高網(wǎng)絡(luò)的安全性。Malik 等[14]設(shè)計(jì)了一種將攻擊樹(shù)轉(zhuǎn)換為馬爾可夫決策模型的算法,對(duì)攻擊場(chǎng)景進(jìn)行建模并對(duì)其進(jìn)行網(wǎng)絡(luò)安全分析,該算法結(jié)合馬爾可夫決策過(guò)程和概率模型,克服攻擊樹(shù)中狀態(tài)爆炸的問(wèn)題,實(shí)驗(yàn)結(jié)果表明,該算法能夠顯著提高網(wǎng)絡(luò)安全分析能力。此外,考慮到漏洞生命周期[15]對(duì)網(wǎng)絡(luò)攻擊分析過(guò)程的影響,胡浩等[16]以漏洞先驗(yàn)歷史信息為輸入,構(gòu)造了基于馬爾可夫鏈的漏洞生命周期模型,在時(shí)間維度上對(duì)漏洞演化過(guò)程進(jìn)行推導(dǎo),對(duì)其生命周期各狀態(tài)的演化規(guī)律進(jìn)行了分析和總結(jié)。表1 對(duì)上述研究?jī)?nèi)容進(jìn)行了劃分整理。
表1 研究?jī)?nèi)容劃分
梳理上述研究后發(fā)現(xiàn),早期文獻(xiàn)多使用單一攻擊圖分析攻擊路徑,但由于網(wǎng)絡(luò)規(guī)模的不斷擴(kuò)大,構(gòu)建攻擊圖的復(fù)雜度也在不斷增加,并且生成的攻擊圖過(guò)于龐大,難以直觀地供研究人員分析。文獻(xiàn)[1,3-4]對(duì)攻擊圖的生成算法及路徑規(guī)劃進(jìn)行優(yōu)化,降低了攻擊圖生成的復(fù)雜度并簡(jiǎn)化了攻擊圖,對(duì)基于攻擊圖的入侵路徑研究做出了貢獻(xiàn)。文獻(xiàn)[5-7]考慮了除網(wǎng)絡(luò)基本拓?fù)湫畔⑼饽軌蛟u(píng)估目標(biāo)網(wǎng)絡(luò)安全性的因素,可以更全面地輔助安全人員進(jìn)行防御決策。文獻(xiàn)[2,8-9]構(gòu)建了基于圖論的動(dòng)態(tài)風(fēng)險(xiǎn)量化與評(píng)估模型,進(jìn)一步完善了網(wǎng)絡(luò)風(fēng)險(xiǎn)評(píng)估體系。文獻(xiàn)[10-14]基于概率論將馬爾可夫模型應(yīng)用于攻擊圖中,提供了一種網(wǎng)絡(luò)攻擊分析的新思路。上述研究為網(wǎng)絡(luò)攻擊研究領(lǐng)域做出了巨大貢獻(xiàn),推動(dòng)了該領(lǐng)域的進(jìn)步,然而,這些方法仍存在一些不足,例如,基于攻擊圖的研究中通過(guò)安全研究人員的主觀經(jīng)驗(yàn)確定節(jié)點(diǎn)的狀態(tài)轉(zhuǎn)移概率,在計(jì)算狀態(tài)轉(zhuǎn)移概率時(shí)缺乏統(tǒng)一的標(biāo)準(zhǔn),同時(shí)也缺乏準(zhǔn)確性與合理性(狀態(tài)轉(zhuǎn)移概率依賴主觀經(jīng)驗(yàn));現(xiàn)有文獻(xiàn)的研究?jī)?nèi)容大多基于理想的攻擊場(chǎng)景,未考慮實(shí)際環(huán)境中漏洞的生命周期對(duì)原子攻擊成功概率的影響(攻擊圖中狀態(tài)轉(zhuǎn)移概率影響因素考慮不全面);在構(gòu)建漏洞生命周期風(fēng)險(xiǎn)度量模型后,沒(méi)有具體應(yīng)用于真實(shí)網(wǎng)絡(luò)場(chǎng)景中。針對(duì)上述研究中存在的不足,本文提出了一種基于吸收馬爾可夫鏈攻擊圖的網(wǎng)絡(luò)攻擊分析方法,該方法摒棄了傳統(tǒng)攻擊圖研究中概率確定的主觀因素,并且充分考慮了節(jié)點(diǎn)上漏洞生命周期對(duì)狀態(tài)轉(zhuǎn)移概率的影響,從攻擊路徑長(zhǎng)度、節(jié)點(diǎn)威脅程度、預(yù)期影響(EI,expected impact)3 個(gè)方面進(jìn)行全面分析,能夠?yàn)榘踩芯咳藛T提供科學(xué)的指導(dǎo)依據(jù)。本文的主要貢獻(xiàn)如下。
1) 針對(duì)吸收馬爾可夫鏈攻擊圖中對(duì)狀態(tài)轉(zhuǎn)移概率影響因素考慮不全面的問(wèn)題,在通用漏洞評(píng)分系統(tǒng)(CVSS,common vulnerability scoring system)的基礎(chǔ)上,引入漏洞生命周期模型,并提出了基于吸收馬爾可夫鏈攻擊圖的網(wǎng)絡(luò)攻擊分析方法,能夠輔助安全研究人員掌控網(wǎng)絡(luò)整體的安全狀態(tài),為進(jìn)一步分析網(wǎng)絡(luò)攻擊提供理論基礎(chǔ)。
2) 針對(duì)傳統(tǒng)攻擊圖模型中狀態(tài)轉(zhuǎn)移概率的確定依賴主觀經(jīng)驗(yàn)的問(wèn)題,設(shè)計(jì)了一種基于漏洞生命周期的狀態(tài)轉(zhuǎn)移概率(STPVL,state transition probability based on vulnerability life cycle)歸一化度量算法,將攻擊圖映射為吸收馬爾可夫鏈攻擊圖,為分析網(wǎng)絡(luò)攻擊提供了定量數(shù)據(jù)參考,提高了分析結(jié)果的準(zhǔn)確性與可靠性。
3) 針對(duì)映射后的吸收馬爾可夫鏈攻擊圖,提出了3 種網(wǎng)絡(luò)攻擊分析方法:攻擊路徑長(zhǎng)度分析方法、節(jié)點(diǎn)訪問(wèn)頻度分析方法以及預(yù)期影響分析方法,為防御人員掌握網(wǎng)絡(luò)中潛在攻擊路徑、攻擊開(kāi)銷以及各節(jié)點(diǎn)的重要程度提供了方法支撐。
4) 對(duì)實(shí)驗(yàn)網(wǎng)絡(luò)環(huán)境進(jìn)行分析驗(yàn)證,實(shí)驗(yàn)結(jié)果表明,本文方法可以有效預(yù)測(cè)節(jié)點(diǎn)威脅程度、攻擊路徑長(zhǎng)度以及預(yù)期影響。同時(shí),通過(guò)模擬實(shí)驗(yàn)統(tǒng)計(jì)1 000 次模擬攻擊中的路徑選擇分布與節(jié)點(diǎn)威脅程度變化趨勢(shì),實(shí)驗(yàn)結(jié)果與本文方法分析得到的理論預(yù)期具有一致性。最后通過(guò)對(duì)比實(shí)驗(yàn),將本文方法與典型方法進(jìn)行比較,證明了本文方法的有效性和合理性。
為了解決現(xiàn)有攻擊圖模型中狀態(tài)轉(zhuǎn)移概率的確定依賴主觀經(jīng)驗(yàn)的問(wèn)題,以及攻擊圖中存在的狀態(tài)轉(zhuǎn)移概率影響因素考慮不全面等問(wèn)題,本文提出了一種基于吸收馬爾可夫鏈攻擊圖的網(wǎng)絡(luò)攻擊路徑分析方法。首先,該方法在原有攻擊圖技術(shù)的基礎(chǔ)上,引入吸收馬爾可夫鏈的概念,將攻擊圖技術(shù)與吸收馬爾可夫鏈相結(jié)合;其次,在CVSS 漏洞評(píng)分標(biāo)準(zhǔn)的基礎(chǔ)上,設(shè)計(jì)了一種將普通攻擊圖映射為吸收馬爾可夫鏈攻擊圖的算法——STPVL 歸一化度量算法,該算法以攻擊圖為輸入,以基于吸收馬爾可夫鏈的狀態(tài)轉(zhuǎn)移概率矩陣為輸出,將攻擊圖映射到吸收馬爾可夫鏈中;最后,利用算法結(jié)束后輸出的狀態(tài)轉(zhuǎn)移概率矩陣的相關(guān)性質(zhì),對(duì)節(jié)點(diǎn)威脅程度、攻擊路徑長(zhǎng)度以及預(yù)期影響逐一分析,為安全研究人員提供有價(jià)值的參考信息。
本文方法摒棄了傳統(tǒng)概率確定方法中的主觀性,有效提高了計(jì)算狀態(tài)轉(zhuǎn)移概率的準(zhǔn)確性,同時(shí),考慮到現(xiàn)有基于攻擊圖技術(shù)的攻擊路徑研究未分析漏洞時(shí)效性因素的影響,不利于網(wǎng)絡(luò)拓?fù)湎到y(tǒng)整體的動(dòng)態(tài)安全性,本文將漏洞的生命周期作為計(jì)算因子融入狀態(tài)轉(zhuǎn)移概率的計(jì)算中,設(shè)計(jì)了基于吸收馬爾可夫鏈攻擊圖的網(wǎng)絡(luò)攻擊路徑分析模型,共分為3 個(gè)階段:攻擊圖的生成階段、攻擊圖到吸收馬爾可夫鏈攻擊圖的映射階段和網(wǎng)絡(luò)攻擊分析階段,如圖1 所示,包括以下5 個(gè)步驟。
圖1 本文方法模型
步驟1網(wǎng)絡(luò)環(huán)境信息收集。使用Nessus 等漏洞掃描及IP 探測(cè)工具掃描目標(biāo)網(wǎng)絡(luò)拓?fù)湫畔ⅰ⒅鳈C(jī)服務(wù)器存在的漏洞信息、網(wǎng)絡(luò)節(jié)點(diǎn)的配置信息以及其他相關(guān)信息等,作為構(gòu)建攻擊圖的要素。
步驟2一般攻擊圖生成。將步驟1 中收集到的網(wǎng)絡(luò)環(huán)境信息作為輸入,使用Mulval 等攻擊圖生成工具構(gòu)建目標(biāo)網(wǎng)絡(luò)的一般攻擊圖。
步驟3一般攻擊圖到吸收馬爾可夫鏈攻擊圖的映射。根據(jù)STPVL 算法將目標(biāo)網(wǎng)絡(luò)的一般攻擊圖重構(gòu)為吸收馬爾可夫鏈攻擊圖。
步驟4狀態(tài)轉(zhuǎn)移概率及相關(guān)矩陣的計(jì)算。通過(guò)STPVL 算法得到吸收馬爾可夫鏈攻擊圖的狀態(tài)轉(zhuǎn)移概率矩陣P,并利用其相關(guān)性質(zhì)計(jì)算節(jié)點(diǎn)訪問(wèn)頻度矩陣N,攻擊路徑長(zhǎng)度期望矩陣t,具體計(jì)算方法見(jiàn)第4 節(jié)。
步驟5網(wǎng)絡(luò)攻擊路徑分析。利用得到的目標(biāo)網(wǎng)絡(luò)攻擊圖以及矩陣P、N、t,從攻擊者的角度對(duì)網(wǎng)絡(luò)攻擊路徑進(jìn)行安全分析。
在不同類型的攻擊圖中,頂點(diǎn)可以表示主機(jī)、服務(wù)、漏洞、權(quán)限等網(wǎng)絡(luò)安全相關(guān)要素,也可以表示權(quán)限獲取等網(wǎng)絡(luò)安全相關(guān)狀態(tài);邊表示攻擊者的攻擊行為。攻擊圖技術(shù)通過(guò)構(gòu)建完整的網(wǎng)絡(luò)安全模型,能夠直觀地反映網(wǎng)絡(luò)環(huán)境的脆弱性并發(fā)現(xiàn)潛在的攻擊路徑,彌補(bǔ)了以往技術(shù)只能通過(guò)漏洞數(shù)量與威脅等級(jí)對(duì)網(wǎng)絡(luò)安全性進(jìn)行分析,而不能根據(jù)節(jié)點(diǎn)在網(wǎng)絡(luò)中的位置和功能進(jìn)行評(píng)估的不足。根據(jù)攻擊圖中節(jié)點(diǎn)類型的不同,攻擊圖可以分為屬性攻擊圖和狀態(tài)攻擊圖,為合理分析和評(píng)估主機(jī)安全狀況,本文選用狀態(tài)攻擊圖從主機(jī)層面對(duì)主機(jī)進(jìn)行安全評(píng)估。
定義1攻擊圖(AG,attack graph)。AG 由四元組(S,A,V,E)構(gòu)成,其中,S表示狀態(tài)節(jié)點(diǎn)集合,A表示原子攻擊集合,V表示漏洞集合,E表示狀態(tài)轉(zhuǎn)移的有向邊集合。
1)S= {Si|i= 1,2,…,n}由n個(gè)狀態(tài)節(jié)點(diǎn)組成,其中包括3 種不同類型的節(jié)點(diǎn):初始狀態(tài)節(jié)點(diǎn)、過(guò)渡狀態(tài)節(jié)點(diǎn)、目標(biāo)狀態(tài)節(jié)點(diǎn)(吸收狀態(tài)節(jié)點(diǎn))。初始狀態(tài)節(jié)點(diǎn)指攻擊發(fā)起時(shí)的狀態(tài)節(jié)點(diǎn),目標(biāo)狀態(tài)節(jié)點(diǎn)指攻擊結(jié)束時(shí)想要到達(dá)的狀態(tài)節(jié)點(diǎn),不屬于以上兩類的節(jié)點(diǎn)均為過(guò)渡狀態(tài)節(jié)點(diǎn)。
2)A表示對(duì)漏洞的一次利用,若攻擊成功,則發(fā)生節(jié)點(diǎn)之間的狀態(tài)轉(zhuǎn)移;反之,則視為狀態(tài)節(jié)點(diǎn)到自身的一次自我訪問(wèn)。
3)V= {Vi|i= 1,2,…,m},可利用漏洞Vi表示攻擊圖中狀態(tài)躍遷過(guò)程所利用的主機(jī)漏洞或服務(wù)器漏洞,Score(Vi)表示該漏洞的可利用得分。
4)E= {Ei,j|i,j= 1,2,…,n},Ei,j是從節(jié)點(diǎn)Si指向節(jié)點(diǎn)Sj的有向邊,對(duì)應(yīng)一次狀態(tài)轉(zhuǎn)移過(guò)程。若Ei,j存在,則表明可從狀態(tài)節(jié)點(diǎn)Si轉(zhuǎn)移至狀態(tài)節(jié)點(diǎn)Sj。
根據(jù)收集到的漏洞信息與主機(jī)通信規(guī)則構(gòu)建攻擊圖。由于真實(shí)網(wǎng)絡(luò)環(huán)境中主機(jī)可能存在多種漏洞,為簡(jiǎn)化攻擊圖規(guī)模,分析攻擊者最可能的攻擊意圖,當(dāng)多條邊同時(shí)指向同一主機(jī)時(shí),僅保留原子攻擊概率最大漏洞所在的邊,攻擊圖示例如圖2 所示。對(duì)于攻擊圖示例中的一般攻擊圖(如圖2(a)所示),S1~S4表示攻擊者所在主機(jī)的不同狀態(tài),其中,S1為攻擊者初始狀態(tài)節(jié)點(diǎn),S4為攻擊者的目標(biāo)狀態(tài)節(jié)點(diǎn),S2和S3均為過(guò)渡狀態(tài)節(jié)點(diǎn)。節(jié)點(diǎn)之間的有向邊E1,2~E3,4表示攻擊圖中攻擊者成功利用漏洞從前置主機(jī)滲透到后置主機(jī)的過(guò)程,節(jié)點(diǎn)指向自身的邊表示攻擊失敗,狀態(tài)轉(zhuǎn)移可以看作原狀態(tài)節(jié)點(diǎn)到自身的一次轉(zhuǎn)移。圖2(b)是圖2(a)所對(duì)應(yīng)的馬爾可夫鏈攻擊圖,其中,邊上的數(shù)值表示狀態(tài)轉(zhuǎn)移發(fā)生的概率,其數(shù)值由狀態(tài)轉(zhuǎn)移概率矩陣計(jì)算得出。
圖2 攻擊圖示例
本文基于CVSS,設(shè)計(jì)了一種將一般攻擊圖映射為吸收馬爾可夫鏈攻擊圖的算法,該算法通過(guò)計(jì)算輸入攻擊圖的狀態(tài)轉(zhuǎn)移概率矩陣,為后續(xù)網(wǎng)絡(luò)攻擊分析提供計(jì)算依據(jù)。本節(jié)將依次對(duì)吸收馬爾可夫鏈、CVSS 漏洞評(píng)分標(biāo)準(zhǔn)以及吸收馬爾可夫鏈攻擊圖的映射算法進(jìn)行詳細(xì)介紹。
定義2馬爾可夫鏈[17]。馬爾可夫鏈?zhǔn)且粋€(gè)包含有限狀態(tài)的隨機(jī)序列集合X={X1,X2,…,XN},其時(shí)間和狀態(tài)都是離散的。馬爾可夫鏈的無(wú)后效性使從節(jié)點(diǎn)Si轉(zhuǎn)移至下一個(gè)節(jié)點(diǎn)Sj的概率Pi,j僅與當(dāng)前狀態(tài)有關(guān),而與之前的狀態(tài)無(wú)關(guān),Pi,j為馬爾可夫鏈的狀態(tài)轉(zhuǎn)移概率,P為由Pi,j組成的狀態(tài)轉(zhuǎn)移概率矩陣。
定義3吸收馬爾可夫鏈(AMC,absorbing Markov chain)。滿足以下2 個(gè)條件的馬爾可夫鏈被稱為吸收馬爾可夫鏈:至少具有一個(gè)吸收狀態(tài),從每個(gè)狀態(tài)節(jié)點(diǎn)都能夠轉(zhuǎn)移至吸收狀態(tài)。吸收馬爾可夫鏈的狀態(tài)轉(zhuǎn)移概率矩陣的標(biāo)準(zhǔn)形式為
其中,Q是大小為a×a的過(guò)渡狀態(tài)轉(zhuǎn)移概率矩陣;R是大小為a×b的矩陣,表示從過(guò)渡狀態(tài)轉(zhuǎn)移到吸收狀態(tài)的概率;0 是大小為b×a的零矩陣;I是大小為b×b的單位矩陣;P的大小為(a+b)×(a+b),a+b表示狀態(tài)總數(shù)。
CVSS 是由美國(guó)國(guó)家基礎(chǔ)建設(shè)咨詢委員會(huì)委托制作、美國(guó)國(guó)家漏洞庫(kù)(NVD,national vulnerability database)[18]發(fā)布的漏洞領(lǐng)域的公開(kāi)測(cè)評(píng)標(biāo)準(zhǔn),其評(píng)分用于表示漏洞利用的難易程度,如表2 所示。網(wǎng)絡(luò)的安全性取決于與靶機(jī)機(jī)器上運(yùn)行的服務(wù)相關(guān)的不同漏洞的可利用性等級(jí)。CVSS 定義了基本可利用得分Score(v)度量漏洞v的脆弱性,CVSS 標(biāo)準(zhǔn)提供了漏洞可利用得分的計(jì)算框架,定義如下。
定義4漏洞可利用得分(VES,vulnerability exploitability score)。CVSS 給出了漏洞可利用得分通用標(biāo)準(zhǔn),計(jì)算式為
其中,AV、AC 和Au 分別代表漏洞的攻擊向量(AV,access vector)、攻擊復(fù)雜度(AC,access complex)和身份認(rèn)證(Au,authentication),如表2 所示,不同漏洞的具體數(shù)值可由NVD 查詢得到。Score(v)的范圍為0~10,漏洞的利用難度與Score(v)成反比,即得分越高,漏洞越容易被利用;得分越低,漏洞越難被利用。例如,漏洞CVE-2014-0416 的攻擊向量、攻擊復(fù)雜度和身份認(rèn)證分別為1.000、0.710 和0.704,通過(guò)式(2)計(jì)算該漏洞的可利用得分為10.0,表明其具有很高的可利用性。本文基于CVSS 漏洞可利用得分,度量攻擊圖中的狀態(tài)轉(zhuǎn)移概率,并提出一種STPVL 歸一化度量算法,有效增強(qiáng)了研究的通用性。
表2 CVSS 漏洞評(píng)分標(biāo)準(zhǔn)
在攻擊圖中,當(dāng)前狀態(tài)能否向下一個(gè)狀態(tài)轉(zhuǎn)移只取決于當(dāng)前狀態(tài)是否滿足漏洞利用的前置條件,而與之前的狀態(tài)無(wú)關(guān),若將攻擊圖中的狀態(tài)節(jié)點(diǎn)集合當(dāng)作馬爾可夫鏈的狀態(tài)空間,則狀態(tài)空間的轉(zhuǎn)移正好符合馬爾可夫鏈的無(wú)后效性;攻擊圖中原子攻擊的成功率可以作為馬爾可夫鏈的狀態(tài)轉(zhuǎn)移概率;由于攻擊圖中必然包括目標(biāo)狀態(tài)節(jié)點(diǎn),而攻擊圖的目標(biāo)狀態(tài)可被視為馬爾可夫鏈中的吸收狀態(tài),因此,攻擊圖能夠映射到吸收馬爾可夫鏈模型,利用吸收馬爾可夫鏈對(duì)入侵路徑進(jìn)行分析的理論依據(jù)成立。
在攻擊圖中,一次成功的原子攻擊會(huì)造成一次狀態(tài)的轉(zhuǎn)移,然而在現(xiàn)實(shí)網(wǎng)絡(luò)環(huán)境中,由于攻擊者知識(shí)的儲(chǔ)備量不同、攻防場(chǎng)景快速變化,目標(biāo)網(wǎng)絡(luò)環(huán)境通常處于非理想狀態(tài)。在非理想狀態(tài)下,一次失敗的原子攻擊可以視為狀態(tài)節(jié)點(diǎn)到自身的一次轉(zhuǎn)移。對(duì)于狀態(tài)轉(zhuǎn)移概率Pi,j的計(jì)算,本文提出了一種STPVL 歸一化度量算法,將完整的攻擊圖轉(zhuǎn)化為吸收馬爾可夫鏈攻擊圖,并給出其狀態(tài)轉(zhuǎn)移概率矩陣P。文獻(xiàn)[12]充分考慮了漏洞利用失敗時(shí)節(jié)點(diǎn)到自身的狀態(tài)轉(zhuǎn)移概率,對(duì)包括初始狀態(tài)節(jié)點(diǎn)在內(nèi)的過(guò)渡狀態(tài)節(jié)點(diǎn)設(shè)置到自身的轉(zhuǎn)移邊,綜合節(jié)點(diǎn)所有的出度邊改進(jìn)了狀態(tài)轉(zhuǎn)移邊的概率計(jì)算方法,然而其在計(jì)算節(jié)點(diǎn)狀態(tài)轉(zhuǎn)移概率時(shí),并未考慮到漏洞生命周期對(duì)該漏洞利用成功率的影響。文獻(xiàn)[19]研究了不同類型漏洞的生命周期演化過(guò)程,并提出了一個(gè)分布模型,用以計(jì)算漏洞在被可信網(wǎng)絡(luò)安全信息商曝光后其利用難度與時(shí)間增長(zhǎng)之間的變化趨勢(shì)。CVSS 中記錄的離散時(shí)間值難以作為生命周期因子來(lái)計(jì)算狀態(tài)轉(zhuǎn)移概率,因此,本文引入漏洞生命周期模型,使用文獻(xiàn)[19]中的結(jié)果來(lái)定義攻擊圖中所利用漏洞的生命周期權(quán)重系數(shù),并計(jì)算吸收馬爾可夫鏈的狀態(tài)轉(zhuǎn)移概率矩陣P。通過(guò)計(jì)算漏洞的生命周期因子,結(jié)合攻擊圖分析其因果關(guān)系,綜合漏洞生命周期的影響,評(píng)估網(wǎng)絡(luò)的總體動(dòng)態(tài)安全性。
定義5漏洞生命周期F(tv)。漏洞V的生命周期函數(shù)為
其中,tv為漏洞的有效生存時(shí)長(zhǎng),計(jì)算方式為漏洞曝光的日期與CVSS 對(duì)漏洞進(jìn)行評(píng)分的日期之差;定義常量α和常量k為形狀因子[19],取值分別為0.26 和0.001 61。
STPVL算法綜合考慮了漏洞的生命周期以及狀態(tài)轉(zhuǎn)移失敗的情況,將攻擊圖轉(zhuǎn)化成狀態(tài)轉(zhuǎn)移概率矩陣,其結(jié)果更具合理性且有助于安全研究人員在真實(shí)的網(wǎng)絡(luò)環(huán)境下進(jìn)行安全分析。STPVL 算法如算法1 所示。
算法1STPVL 算法
輸入攻擊圖AG=(S,A,V,E)
輸出吸收馬爾可夫鏈的狀態(tài)轉(zhuǎn)移概率矩陣P
步驟1令i,j=1,Pi,j表示矩陣P中第i行第j列的元素。
步驟2從集合S中隨機(jī)選擇一個(gè)未遍歷的節(jié)點(diǎn)Si。
步驟3令集合S′=S,從集合S中隨機(jī)選取節(jié)點(diǎn)Sj,同時(shí)從集合S中刪除所選節(jié)點(diǎn)Sj,即S={S-Sj}。
步驟4設(shè)節(jié)點(diǎn)Si的出度為m=0,查找攻擊圖中Si→Sj是否存在攻擊路徑Ei,,j及可利用漏洞Vi,j
ifEi,j存在
步驟6考慮將攻擊失敗時(shí)的狀態(tài)轉(zhuǎn)移看作節(jié)點(diǎn)到自身的一次轉(zhuǎn)移過(guò)程,轉(zhuǎn)移概率設(shè)為Pi,i。給出Pi,i的計(jì)算過(guò)程,設(shè)節(jié)點(diǎn)Si的出度為m
時(shí)間復(fù)雜度分析。假設(shè)共有n個(gè)狀態(tài)節(jié)點(diǎn),以一個(gè)n×n的矩陣P表示攻擊圖中的狀態(tài)變遷,P中元素Pi,j的值表示節(jié)點(diǎn)Si到Sj的可達(dá)概率,在算法1中,首先,遍歷n個(gè)狀態(tài)節(jié)點(diǎn)的時(shí)間復(fù)雜度為O(n)。其次,每個(gè)節(jié)點(diǎn)都要遍歷一次其他節(jié)點(diǎn)以判斷兩節(jié)點(diǎn)之間是否存在路徑,若存在,則為Pi,j賦值;否則Pi,j=0,該過(guò)程需要n×n次遍歷,時(shí)間復(fù)雜度為O(n2),因此STPVL 算法的時(shí)間復(fù)雜度為O(n2)。
在STPVL 算法中,加入了隨時(shí)間變化的漏洞生命周期,以此來(lái)計(jì)算攻擊圖對(duì)應(yīng)的狀態(tài)轉(zhuǎn)移概率矩陣P,使其更貼合實(shí)際的網(wǎng)絡(luò)環(huán)境。在吸收馬爾可夫鏈中,狀態(tài)節(jié)點(diǎn)最終到達(dá)吸收狀態(tài)的概率總和為1,因此矩陣P中每一行滿足
其中,Pi,j表示在生成的狀態(tài)轉(zhuǎn)移概率矩陣P中從狀態(tài)節(jié)點(diǎn)Si轉(zhuǎn)移到狀態(tài)節(jié)點(diǎn)Sj的成功概率。
圖2(b)是對(duì)圖2(a)使用STPVL 算法處理后得到的吸收馬爾可夫鏈攻擊圖,圖中邊上的數(shù)值表示狀態(tài)轉(zhuǎn)移概率。攻擊路徑S1→S2→S4對(duì)應(yīng)的成功概率計(jì)算方式為E1,2E2,4=0.25×0.6=0.15。本文結(jié)合漏洞生命周期模型,根據(jù)目標(biāo)網(wǎng)絡(luò)拓?fù)渲猩形葱扪a(bǔ)的不同漏洞的生命周期,能夠?qū)魣D中的脆弱點(diǎn)做出更準(zhǔn)確的分析。通過(guò)對(duì)攻擊者從初始狀態(tài)開(kāi)始的所有邊上的可利用得分進(jìn)行歸一化,來(lái)計(jì)算吸收馬爾可夫鏈的狀態(tài)轉(zhuǎn)移概率矩陣。為了確保模型的真實(shí)性,可以通過(guò)定時(shí)地更新?tīng)顟B(tài)轉(zhuǎn)移概率矩陣中漏洞生命周期系數(shù),重新計(jì)算狀態(tài)轉(zhuǎn)移概率矩陣P。
本文對(duì)網(wǎng)絡(luò)攻擊的分析基于狀態(tài)轉(zhuǎn)移概率矩陣的安全性分析,通過(guò)STPVL 算法得到攻擊圖對(duì)應(yīng)的狀態(tài)轉(zhuǎn)移概率矩陣P后,以矩陣P為基礎(chǔ),引用其相關(guān)定理對(duì)目標(biāo)網(wǎng)絡(luò)的安全性進(jìn)行全面分析,本節(jié)將依次對(duì)3 種網(wǎng)絡(luò)攻擊分析方法進(jìn)行詳細(xì)介紹。
從任意狀態(tài)節(jié)點(diǎn)出發(fā),在到達(dá)吸收狀態(tài)節(jié)點(diǎn)時(shí),對(duì)其攻擊路徑上非吸收狀態(tài)節(jié)點(diǎn)的訪問(wèn)次數(shù)期望被稱為狀態(tài)節(jié)點(diǎn)訪問(wèn)頻度期望。下面,結(jié)合狀態(tài)轉(zhuǎn)移概率矩陣P與定理1 對(duì)其進(jìn)行闡述。
定理1對(duì)于吸收馬爾可夫鏈中狀態(tài)轉(zhuǎn)移概率矩陣P(如式(1)所示),記矩陣N為矩陣I-Q的逆矩陣,N=(I-Q)-1,N的大小為m×m。
矩陣N為攻擊圖的節(jié)點(diǎn)訪問(wèn)頻度矩陣,N中元素Ni,j表示從狀態(tài)節(jié)點(diǎn)Si出發(fā)到吸收狀態(tài)時(shí)訪問(wèn)節(jié)點(diǎn)Sj的頻度期望。Ni,j越大,說(shuō)明在攻擊圖中,在到達(dá)目標(biāo)狀態(tài)節(jié)點(diǎn)途中經(jīng)過(guò)該節(jié)點(diǎn)的次數(shù)越高,其威脅程度越大,需要提高其防護(hù)的優(yōu)先級(jí),狀態(tài)節(jié)點(diǎn)訪問(wèn)頻度指標(biāo)在指導(dǎo)安全研究人員進(jìn)行節(jié)點(diǎn)修復(fù)的環(huán)節(jié)中具有重要意義。
攻擊路徑長(zhǎng)度用以衡量攻擊者從初始狀態(tài)節(jié)點(diǎn)開(kāi)始,最終到達(dá)吸收狀態(tài)時(shí)需要經(jīng)過(guò)的預(yù)期步驟數(shù)。利用矩陣N可以計(jì)算從各狀態(tài)節(jié)點(diǎn)到吸收狀態(tài)的攻擊路徑的長(zhǎng)度期望。
定理2假設(shè)攻擊者以狀態(tài)節(jié)點(diǎn)Si為初始狀態(tài)節(jié)點(diǎn),Ti為到達(dá)吸收狀態(tài)所經(jīng)過(guò)的路徑長(zhǎng)度的期望,T為第i個(gè)元素為T(mén)i的列向量,則有
其中,T為攻擊路徑長(zhǎng)度期望矩陣,N為攻擊圖的節(jié)點(diǎn)訪問(wèn)頻度矩陣,c為單位矩陣,T和c均為列向量矩陣。
網(wǎng)絡(luò)的預(yù)期影響是結(jié)合單個(gè)漏洞的影響值與吸收馬爾可夫鏈的狀態(tài)轉(zhuǎn)移概率矩陣共同構(gòu)建的指標(biāo),通過(guò)控制漏洞生命周期的變化,推斷出預(yù)期攻擊成本隨時(shí)間的變化趨勢(shì)。對(duì)于單個(gè)漏洞的影響值Impact(v),CVSS 提供了相關(guān)計(jì)算標(biāo)準(zhǔn),計(jì)算式為
其中,C、I、A為CVSS 提供的3 種漏洞相關(guān)信息值,即保密影響、誠(chéng)信影響和可用性影響,不同漏洞的具體數(shù)值公布在CVSS 官網(wǎng)中。對(duì)于隨著漏洞生命周期變化的狀態(tài)轉(zhuǎn)移概率矩陣P,本文定義矩陣P(d)為每日狀態(tài)轉(zhuǎn)移概率矩陣,表示在漏洞曝光的第d天所計(jì)算出的攻擊圖的狀態(tài)轉(zhuǎn)移概率矩陣。矩陣P(d)中每一列元素值都代表攻擊者利用漏洞vj從前一狀態(tài)節(jié)點(diǎn)轉(zhuǎn)移到節(jié)點(diǎn)Sj的概率,該漏洞的影響值為Impact(vj),對(duì)Impact(vj)與P(d)中第j列元素的乘積求和,得到漏洞vj在第d天的利用成功概率,其他漏洞同理。因此,本文給出EI 的計(jì)算式為
其中,i和j分別表示狀態(tài)轉(zhuǎn)移概率矩陣中的行數(shù)和列數(shù)。
本節(jié)針對(duì)本文提出的基于吸收馬爾可夫鏈攻擊圖的網(wǎng)絡(luò)攻擊分析方法進(jìn)行實(shí)驗(yàn)及驗(yàn)證,實(shí)驗(yàn)過(guò)程與分析如下。首先,收集目標(biāo)網(wǎng)絡(luò)環(huán)境的拓?fù)湫畔ⅰ⒙┒葱畔⒌?,?gòu)建目標(biāo)網(wǎng)絡(luò)的一般攻擊圖;其次,通過(guò)STPVL 算法將一般攻擊圖映射為吸收馬爾可夫鏈攻擊圖,并計(jì)算其狀態(tài)轉(zhuǎn)移概率矩陣;最后,通過(guò)第4 節(jié)中提出的3 種網(wǎng)絡(luò)攻擊分析方法對(duì)其分析驗(yàn)證。
為了驗(yàn)證本文方法的有效性,搭建了如圖3 所示的實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)洵h(huán)境,網(wǎng)絡(luò)中的主要單位包括攻擊者、外部防火墻和內(nèi)部防火墻、路由器、Web 服務(wù)器H1和郵件服務(wù)器H2、辦公區(qū)主機(jī)H3和H4,入侵檢測(cè)系統(tǒng)(IDS,intrusion detection system)、主機(jī)H5和H6以及數(shù)據(jù)庫(kù)H7。其中,外部防火墻隔離Internet 與內(nèi)部網(wǎng)絡(luò),并將內(nèi)部網(wǎng)絡(luò)環(huán)境劃分為3 個(gè)區(qū)域:隔離區(qū)(DMZ)、辦公區(qū)、Intranet 區(qū),而內(nèi)部防火墻將DMZ 與其他內(nèi)部網(wǎng)絡(luò)區(qū)域相隔離。Intranet 區(qū)安置有IDS,并制定如下訪問(wèn)規(guī)則。
圖3 實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)洵h(huán)境
1) 外部防火墻僅允許來(lái)自Internet 的主機(jī)訪問(wèn)Web 服務(wù)器H1和郵件服務(wù)器H2。
2) 內(nèi)部防火墻僅允許DMZ 中的主機(jī)訪問(wèn)辦公區(qū)主機(jī)H3和H4。
3) Intranet 區(qū)中主機(jī)H5和H6僅能通過(guò)主機(jī)H3和H4訪問(wèn)。
4) 數(shù)據(jù)庫(kù)H7僅允許Intranet 中的主機(jī)訪問(wèn)。
首先,使用Nessus 漏洞掃描工具掃描實(shí)驗(yàn)網(wǎng)絡(luò)環(huán)境,并結(jié)合NVD 官網(wǎng)信息,得到實(shí)驗(yàn)網(wǎng)絡(luò)中各主機(jī)的漏洞信息,如表3 所示。其次,將網(wǎng)絡(luò)拓?fù)浜褪占降穆┒葱畔⒆鳛檩斎?,利用攻擊圖生成工具M(jìn)ulval 生成實(shí)驗(yàn)網(wǎng)絡(luò)攻擊圖后進(jìn)行簡(jiǎn)化,得到如圖4 所示的實(shí)驗(yàn)網(wǎng)絡(luò)環(huán)境攻擊圖。
圖4 實(shí)驗(yàn)網(wǎng)絡(luò)環(huán)境攻擊圖
表3 實(shí)驗(yàn)網(wǎng)絡(luò)中各主機(jī)的漏洞信息
圖4 中,狀態(tài)節(jié)點(diǎn)S1~S8表示攻擊者不同時(shí)刻的狀態(tài),狀態(tài)節(jié)點(diǎn)之間的有向邊表示能夠從邊發(fā)出節(jié)點(diǎn)并躍遷至邊指向節(jié)點(diǎn),邊上標(biāo)注的漏洞V1~V7表示該狀態(tài)轉(zhuǎn)移過(guò)程所利用的漏洞序號(hào)。由圖4 可知,攻擊者處于初始狀態(tài)節(jié)點(diǎn)S1,需要通過(guò)不同的攻擊路徑(狀態(tài)轉(zhuǎn)移過(guò)程)到達(dá)目標(biāo)狀態(tài)節(jié)點(diǎn)S8,最終獲取目標(biāo)數(shù)據(jù)庫(kù)H7的最高權(quán)限。
利用STPVL 算法,以圖4 所示的攻擊圖為輸入,通過(guò)算法映射得到吸收馬爾可夫鏈攻擊圖,如圖5 所示,并得到對(duì)應(yīng)的狀態(tài)轉(zhuǎn)移概率矩陣P為
圖5 吸收馬爾可夫鏈攻擊圖
圖4 和圖5 中均含有8 個(gè)狀態(tài)節(jié)點(diǎn),S1表示攻擊者初始狀態(tài)節(jié)點(diǎn),S8表示攻擊者的目標(biāo)狀態(tài)節(jié)點(diǎn),其余節(jié)點(diǎn)則表示過(guò)渡狀態(tài)節(jié)點(diǎn)。
5.4.1 攻擊路徑分析
定義6滲透成功概率。某條攻擊路徑上所有節(jié)點(diǎn)的狀態(tài)轉(zhuǎn)移概率的乘積為該路徑的滲透成功概率PPn,可用于比較不同路徑被攻擊者選擇的可能性大小,計(jì)算式為
其中,Pi,j為路徑n上節(jié)點(diǎn)的狀態(tài)轉(zhuǎn)移概率。根據(jù)圖5和其狀態(tài)轉(zhuǎn)移概率矩陣P,計(jì)算得到18 條完整的入侵路徑,再利用式(8)計(jì)算出各路徑的滲透成功率,具體分布如表4 所示。從表4 中可以看出,成功率最高的攻擊路徑為S1→S3→S5→S7→S8,其成功概率的計(jì)算式為P1,3P3,5P5,7P7,8=0.035。
表4 滲透路徑長(zhǎng)度及概率分布
通過(guò)使用上述方法,可以針對(duì)高危滲透路徑Route4及時(shí)制定防御策略。同時(shí),通過(guò)該方法得到的攻擊路徑分布能夠輔助研究人員對(duì)可能發(fā)生的網(wǎng)絡(luò)攻擊做出相應(yīng)的防御規(guī)劃。
5.4.2 節(jié)點(diǎn)威脅程度分析
根據(jù)定理1 以及概率矩陣P進(jìn)行計(jì)算,可以得到攻擊圖過(guò)渡狀態(tài)概率轉(zhuǎn)移矩陣Q和節(jié)點(diǎn)訪問(wèn)頻度矩陣N
其中,矩陣N中的第一行表示攻擊者從初始狀態(tài)節(jié)點(diǎn)出發(fā)到吸收狀態(tài)節(jié)點(diǎn)所經(jīng)過(guò)的其他節(jié)點(diǎn)的期望次數(shù)。在攻擊圖中,訪問(wèn)頻度越高的節(jié)點(diǎn)對(duì)應(yīng)的威脅程度越高,對(duì)攻擊者的重要程度越高,各個(gè)非吸收狀態(tài)節(jié)點(diǎn)的訪問(wèn)頻度期望如圖6 所示。
圖6 非吸收狀態(tài)節(jié)點(diǎn)訪問(wèn)頻度期望
從圖6 中可以看出,對(duì)于圖5 中的各中間節(jié)點(diǎn),其威脅程度排序?yàn)镾2>S7>S5>S3>S6>S4。因此,在對(duì)網(wǎng)絡(luò)進(jìn)行漏洞修復(fù)時(shí),應(yīng)優(yōu)先修復(fù)主機(jī)H1上的apache 應(yīng)用漏洞與主機(jī)H6上的radius應(yīng)用漏洞。
該分析方法得到的節(jié)點(diǎn)訪問(wèn)頻度期望能夠有效評(píng)估攻擊路徑中節(jié)點(diǎn)的威脅程度,對(duì)指導(dǎo)安全研究人員進(jìn)行攻擊或漏洞修復(fù)具有重要意義。
5.4.3 攻擊路徑長(zhǎng)度及網(wǎng)絡(luò)預(yù)期影響分析
由定理2 和矩陣N計(jì)算可得,實(shí)驗(yàn)攻擊圖的攻擊路徑長(zhǎng)度期望矩陣t為
矩陣t中元素表示從非吸收狀態(tài)節(jié)點(diǎn)S1、S2、S3、S4、S5、S6、S7出發(fā)到吸收狀態(tài)節(jié)點(diǎn)S8的攻擊路徑長(zhǎng)度期望。該指標(biāo)對(duì)檢測(cè)攻擊者的實(shí)時(shí)狀態(tài)、規(guī)劃攻防路線、分析攻擊者下一步動(dòng)向及預(yù)估攻擊時(shí)長(zhǎng)等具有指導(dǎo)意義。
圖7 展示了攻擊路徑長(zhǎng)度期望隨時(shí)間的變化。從圖7 中可以看出,在漏洞曝光后的300 天內(nèi),攻擊路徑長(zhǎng)度期望整體呈下降趨勢(shì),這表明隨著時(shí)間的增加,漏洞逐漸老化,漏洞的利用難度降低,攻擊者采取的攻擊步驟減少,攻擊難度逐漸下降。這一規(guī)律總體符合實(shí)際情況,有利于安全研究人員預(yù)測(cè)后續(xù)攻擊路徑長(zhǎng)度,為目標(biāo)網(wǎng)絡(luò)環(huán)境設(shè)置安全閾值,及時(shí)對(duì)網(wǎng)絡(luò)系統(tǒng)中的漏洞進(jìn)行修補(bǔ)。
圖7 攻擊路徑長(zhǎng)度期望隨時(shí)間的變化
圖8 展示了實(shí)驗(yàn)網(wǎng)絡(luò)在300 天內(nèi)預(yù)期影響的變化,預(yù)期影響代表了攻擊者攻擊所消耗的成本,即攻擊代價(jià)。從圖8 中可以看出,預(yù)期影響隨時(shí)間的推移而降低,這表明將會(huì)出現(xiàn)更多影響值較低的漏洞,因此攻擊者將會(huì)選擇其他攻擊難度較低的攻擊路徑。
圖8 實(shí)驗(yàn)網(wǎng)絡(luò)在300 天內(nèi)預(yù)期影響的變化
本文對(duì)攻擊路徑長(zhǎng)度及網(wǎng)絡(luò)預(yù)期影響的分析方法能夠預(yù)測(cè)目標(biāo)網(wǎng)絡(luò)攻擊路徑長(zhǎng)度的動(dòng)態(tài)變化規(guī)律,以及網(wǎng)絡(luò)環(huán)境的預(yù)期影響變化趨勢(shì)。通過(guò)上述方法,安全研究人員可以實(shí)時(shí)地掌握攻擊狀態(tài),在對(duì)網(wǎng)絡(luò)進(jìn)行安全補(bǔ)丁時(shí)更清晰地做出決策。
5.5.1 攻擊路徑分布測(cè)試
實(shí)驗(yàn)1 為攻擊路徑分布測(cè)試的模擬仿真實(shí)驗(yàn),在基于圖3 的實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)洵h(huán)境中,根據(jù)狀態(tài)節(jié)點(diǎn)轉(zhuǎn)移概率對(duì)攻擊路徑的選擇進(jìn)行建模,共進(jìn)行1 000 次模擬攻擊。實(shí)驗(yàn)系統(tǒng)使用Kali Linux,編程語(yǔ)言選擇Pyhton3.6,網(wǎng)絡(luò)拓?fù)浼奥┒葱畔⑷绫? 所示。
在模擬實(shí)驗(yàn)中,通過(guò)程序模擬攻擊者原子攻擊,從初始狀態(tài)節(jié)點(diǎn)S1出發(fā),以狀態(tài)轉(zhuǎn)移概率矩陣P中的元素為狀態(tài)轉(zhuǎn)移概率,模擬攻擊狀態(tài)之間的遷移,最終到達(dá)目標(biāo)吸收狀態(tài)節(jié)點(diǎn)S8后為一次完整的攻擊。對(duì)1 000 次模擬攻擊進(jìn)行統(tǒng)計(jì),成功到達(dá)目標(biāo)狀態(tài)節(jié)點(diǎn)S8的攻擊次數(shù)為145 次,整體攻擊成功率為=0.145,這與表4 中18 條路徑滲透成功的概率總和0.132 4 相近,驗(yàn)證了本文方法的有效性。圖9 為攻擊成功的情況中次數(shù)最高的前10 條攻擊路徑分布。由圖9 可知,最常用的攻擊路徑為S1→S3→S5→S7→S8,攻擊路徑長(zhǎng)度為5,選擇該攻擊路徑的次數(shù)在攻擊成功次數(shù)中的占比為。
圖9 攻擊成功的情況中次數(shù)最高的前10 條攻擊路徑分布
由實(shí)驗(yàn)1 可知,各路徑的選擇頻率與理論預(yù)期相符,再次證明了本文方法的合理性和有效性。
5.5.2 節(jié)點(diǎn)威脅程度變化趨勢(shì)
實(shí)驗(yàn)2 為測(cè)試攻擊圖中各節(jié)點(diǎn)訪問(wèn)頻度在不同漏洞曝光時(shí)長(zhǎng)下的變化趨勢(shì)的實(shí)驗(yàn)。漏洞曝光時(shí)長(zhǎng)對(duì)節(jié)點(diǎn)威脅程度的影響如圖10 所示。
圖10 漏洞曝光時(shí)長(zhǎng)對(duì)節(jié)點(diǎn)威脅程度的影響
根據(jù)圖10 中1 000 次模擬攻擊對(duì)各狀態(tài)節(jié)點(diǎn)的訪問(wèn)次數(shù),在不考慮攻擊者對(duì)初始狀態(tài)節(jié)點(diǎn)以及目標(biāo)狀態(tài)節(jié)點(diǎn)的訪問(wèn)的前提下,對(duì)其進(jìn)行分析。威脅程度最高的是S2節(jié)點(diǎn),通過(guò)圖5 和表3 可以判斷,需要優(yōu)先修復(fù)主機(jī)H1上的apache 服務(wù)漏洞,而對(duì)于S4節(jié)點(diǎn)對(duì)應(yīng)的H3主機(jī)上的Linux 系統(tǒng)漏洞,可以適當(dāng)降低它的修復(fù)優(yōu)先級(jí)。從圖10 中還可以看出,在漏洞曝光后的100~200 天,攻擊者對(duì)狀態(tài)節(jié)點(diǎn)S5的訪問(wèn)頻度增加,但是對(duì)節(jié)點(diǎn)S3的訪問(wèn)頻度減少,這表明在這段時(shí)間中,主機(jī)H4上bmc 漏洞的使用頻率可能會(huì)增多,如果安全研究人員需要在這段時(shí)間內(nèi)優(yōu)先修復(fù)網(wǎng)絡(luò)拓?fù)渲心骋宦┒矗瑒t可以根據(jù)以上信息,優(yōu)先修復(fù)預(yù)期最容易受到攻擊的主機(jī)節(jié)點(diǎn)。
由實(shí)驗(yàn)2 可知,本文方法通過(guò)分析節(jié)點(diǎn)威脅程度隨漏洞曝光時(shí)長(zhǎng)變化的趨勢(shì),可以為安全研究人員提供很有價(jià)值的信息,幫助其判斷修復(fù)網(wǎng)絡(luò)漏洞的優(yōu)先順序,并在分析網(wǎng)絡(luò)安全性隨時(shí)間變化的過(guò)程中做出更全面、更準(zhǔn)確的決策。
5.5.3 對(duì)比實(shí)驗(yàn)
1) 與文獻(xiàn)[11]方法對(duì)比
本文方法與文獻(xiàn)[11]方法均基于CVSS 可利用得分來(lái)確定狀態(tài)轉(zhuǎn)移概率,然而CVE-2014-1878、CVE-2013-4782 的可利用得分均為10。在這種情況下,由于文獻(xiàn)[11]沒(méi)有考慮漏洞生命周期對(duì)狀態(tài)轉(zhuǎn)移概率的影響,導(dǎo)致其得到的結(jié)果不能反映真實(shí)的網(wǎng)絡(luò)漏洞威脅程度。攻擊路徑中各節(jié)點(diǎn)的訪問(wèn)頻度是網(wǎng)絡(luò)環(huán)境安全評(píng)估的重要指標(biāo),為了證明本文方法的有效性,在圖3所示的網(wǎng)絡(luò)環(huán)境中進(jìn)行對(duì)比實(shí)驗(yàn),分別使用本文方法和文獻(xiàn)[11]方法對(duì)圖3 網(wǎng)絡(luò)進(jìn)行建模,并分析2 種方法所得的節(jié)點(diǎn)威脅度,如圖11 所示。
圖11 2 種方法所得的節(jié)點(diǎn)威脅度對(duì)比
由圖11 可知,2 種方法在S5、S7兩節(jié)點(diǎn)上的訪問(wèn)頻度存在較大差異。對(duì)文獻(xiàn)[11]方法得到的節(jié)點(diǎn)威脅程度進(jìn)行排序,可得S7>S5>S2>S3>S6>S4,與本文方法得到的排序S2>S7>S5>S3>S6>S4相比,可發(fā)現(xiàn)2 種方法得到的節(jié)點(diǎn)S2威脅程度存在較大差異。由表3 可知,雖然主機(jī)H1中漏洞V1的可利用得分與主機(jī)H6中漏洞V6可利用得分均為10,但是由于本文方法的漏洞生命周期較長(zhǎng),便于攻擊者利用V1漏洞給予更高的威脅等級(jí),導(dǎo)致上述差異。
本文方法在分析節(jié)點(diǎn)威脅程度時(shí)更具穩(wěn)健性與準(zhǔn)確性。本文方法得到的節(jié)點(diǎn)威脅程度排序與模擬實(shí)驗(yàn)中得到的結(jié)果相一致,表明本文方法更加符合實(shí)際網(wǎng)絡(luò)環(huán)境,并且適用于對(duì)網(wǎng)絡(luò)攻擊的分析。
2) 與其他文獻(xiàn)方法綜合比較
從客觀程度、是否進(jìn)行漏洞生命周期度量、是否進(jìn)行網(wǎng)絡(luò)攻擊分析3 個(gè)方面,將本文方法與其他方法進(jìn)行對(duì)比,結(jié)果如表5 所示。從表5 中可以看出,文獻(xiàn)[3]通過(guò)使用邏輯連接漏洞組成的攻擊路徑,將其擴(kuò)展為攻擊圖,但并未對(duì)攻擊圖做進(jìn)一步的分析;文獻(xiàn)[7]構(gòu)建了貝葉斯攻擊圖攻擊分析模型,僅對(duì)攻擊路徑進(jìn)行了預(yù)測(cè);文獻(xiàn)[11-12]使用馬爾可夫鏈攻擊圖建模,但在對(duì)其分析時(shí)未考慮漏洞生命周期的影響;文獻(xiàn)[16]結(jié)合漏洞生命周期過(guò)程,從宏觀角度分析了漏洞狀態(tài)的一般演化規(guī)律,但缺乏在網(wǎng)絡(luò)攻擊的分析中的應(yīng)用。因此,可以得出以下結(jié)論。
表5 本文方法與其他方法綜合比較
①本文方法具有高度客觀性。本文方法構(gòu)建了基于吸收馬爾可夫鏈攻擊圖模型,并通過(guò)概率論的方法,從攻擊路徑、節(jié)點(diǎn)威脅程度、預(yù)期影響3 個(gè)方面對(duì)網(wǎng)絡(luò)攻擊進(jìn)行分析評(píng)估,避免了網(wǎng)絡(luò)攻擊分析過(guò)程中主觀因素帶來(lái)的影響。
② 本文方法具有實(shí)用性。本文方法在計(jì)算攻擊圖狀態(tài)轉(zhuǎn)移概率矩陣時(shí),融入了漏洞生命周期的影響,能夠更真實(shí)地反映網(wǎng)絡(luò)安全的風(fēng)險(xiǎn)情況,為網(wǎng)絡(luò)安全研究人員提供更科學(xué)的決策支持。
③本文方法具有創(chuàng)新性。本文提出了一種基于吸收馬爾可夫鏈攻擊圖的網(wǎng)絡(luò)攻擊分析方法,能夠在客觀條件下結(jié)合漏洞生命周期以概率論的方法對(duì)網(wǎng)絡(luò)攻擊進(jìn)行分析,解決了其他方法中存在的客觀性不足、計(jì)算攻擊圖概率轉(zhuǎn)移時(shí)考慮不全面、沒(méi)有對(duì)網(wǎng)絡(luò)攻擊進(jìn)行全面分析等問(wèn)題,具有創(chuàng)新性。
1) 5.1~5.3 節(jié)使用本文方法對(duì)圖3 實(shí)驗(yàn)網(wǎng)絡(luò)進(jìn)行映射,為后續(xù)實(shí)驗(yàn)提供分析依據(jù)。
2) 5.4 節(jié)從攻擊路徑、節(jié)點(diǎn)威脅程度、預(yù)期影響3 個(gè)方面對(duì)映射后的攻擊圖進(jìn)行了詳細(xì)的分析,為安全研究人員制定防御規(guī)劃、修補(bǔ)漏洞以及掌握不同時(shí)期的網(wǎng)絡(luò)安全狀態(tài)提供了方法支撐。
3) 實(shí)驗(yàn)1 通過(guò)模擬實(shí)驗(yàn),測(cè)試攻擊過(guò)程中各路徑的選擇頻率并與理論值相對(duì)比,證明了本文方法的有效性。
4) 實(shí)驗(yàn)2 通過(guò)預(yù)測(cè)不同漏洞生命周期下各節(jié)點(diǎn)訪問(wèn)頻度的變化趨勢(shì),有助于安全研究人員了解網(wǎng)絡(luò)中脆弱點(diǎn)的動(dòng)態(tài)變化規(guī)律。
5) 對(duì)比實(shí)驗(yàn)首先將文獻(xiàn)[11]方法與本文方法進(jìn)行對(duì)比,表明在評(píng)估節(jié)點(diǎn)威脅程度方面,本文方法更具客觀性和準(zhǔn)確性。其次與其他方法進(jìn)行比較,體現(xiàn)了本文方法的創(chuàng)新性與合理性。
本文方法以目標(biāo)網(wǎng)絡(luò)拓?fù)湫畔⑸傻墓魣D為輸入,通過(guò)概率論的方法對(duì)其進(jìn)行分析,能夠應(yīng)用于公司、學(xué)校、政府等網(wǎng)絡(luò)環(huán)境的分析,具有良好的擴(kuò)展性。
攻擊圖技術(shù)能夠直觀地反映出網(wǎng)絡(luò)的安全情況[20],因此,對(duì)目標(biāo)網(wǎng)絡(luò)拓?fù)溥M(jìn)行攻擊圖建模對(duì)于安全研究人員分析攻擊者可能采用的攻擊路徑、及時(shí)制定防御措施具有重要的意義。針對(duì)現(xiàn)有基于吸收馬爾可夫鏈構(gòu)建攻擊圖的研究在對(duì)網(wǎng)絡(luò)中狀態(tài)節(jié)點(diǎn)轉(zhuǎn)移概率計(jì)算時(shí)考慮因素不夠全面的問(wèn)題,本文提出了一種基于漏洞生命周期的狀態(tài)轉(zhuǎn)移概率歸一化度量算法。該算法將目標(biāo)網(wǎng)絡(luò)的一般攻擊圖映射為吸收馬爾可夫鏈攻擊圖,并給出其狀態(tài)轉(zhuǎn)移概率矩陣,通過(guò)該矩陣分析目標(biāo)網(wǎng)絡(luò)中潛在的攻擊路徑組合,計(jì)算預(yù)期攻擊路徑長(zhǎng)度、節(jié)點(diǎn)威脅程度、預(yù)期影響,為網(wǎng)絡(luò)管理人員提供詳細(xì)指導(dǎo)。通過(guò)在實(shí)驗(yàn)網(wǎng)絡(luò)上進(jìn)行仿真分析,結(jié)果表明,本文方法能夠客觀地衡量目標(biāo)網(wǎng)絡(luò)環(huán)境中各項(xiàng)安全指標(biāo),并且能夠有效預(yù)測(cè)攻擊路徑分布、節(jié)點(diǎn)威脅程度隨時(shí)間變化的趨勢(shì),幫助安全研究人員更加準(zhǔn)確地修復(fù)網(wǎng)絡(luò)中的薄弱環(huán)節(jié)。如何評(píng)估未知漏洞及零日漏洞,以及給出合理度量其利用概率的方法,將是今后研究的主要工作。