(北京信息科技大學信息管理學院,北京 100192)
0 引言
隨著大數據、云計算、人工智能等網絡信息技術的不斷發展,互聯網已經成為我國信息化建設的基礎設施。與此同時,國家、企業和個人的網絡安全也面臨嚴峻的挑戰,攻擊者通過軟件應用漏洞、不安全網絡協議等進行網絡攻擊,入侵目標主機并獲得高級權限,或植入病毒以獲利,給國家和企業帶來了難以估量的損失。因此,發現網絡中潛在的安全隱患,及時采取有效的防護措施,對提高網絡整體的安全性有著重要的意義。在對網絡的安全性進行分析時,從攻擊者的角度出發往往可以獲得更全面的評估結果,攻擊者從網絡中的某個邊界點滲透網絡,利用網絡和主機中的漏洞逐步轉移,最終獲得目標狀態節點的權限。通過模擬攻擊者的攻擊過程,分析潛在的攻擊路徑,找出網絡中的薄弱環節和潛在威脅并及時修復,能夠有效保護國家、企業和個人的網絡空間安全。
攻擊圖技術作為網絡安全分析和評估手段,可以有效滿足上述需求。攻擊圖以圖形化的方式展示了攻擊者連續的攻擊行為所組成的攻擊路徑,構建目標網絡拓撲的攻擊圖既可以分析攻擊者的攻擊路徑,對該路徑上的重點環節進行保護,也可以實時分析攻擊者的攻擊意圖和動向,并及時采取防御和反制措施。由于攻擊圖技術在網絡安全評估領域具有良好的應用前景,目前已經成為學術界和工業界的重點研究內容。
攻擊圖根據其頂點和邊所代表的不同意義,可以劃分為不同種類的攻擊圖,如狀態攻擊圖[1]和屬性攻擊圖[2]等。在狀態攻擊圖中,頂點代表網絡狀態信息,邊代表節點狀態的遷移。Bhattacharya 等[3]使用狀態搜索技術來構建目標網絡的狀態攻擊圖。然而,隨著網絡規模的不斷擴大,網絡的狀態數量爆炸性增長,狀態攻擊圖難以分析大規模網絡拓撲,因此,針對狀態攻擊圖的研究逐漸減少。為了擴大可分析網絡的規模,研究人員開始研究屬性攻擊圖。屬性攻擊圖的頂點表示條件和漏洞,邊表示漏洞利用條件,相對于狀態攻擊圖,屬性攻擊圖的結構簡潔,生成效率更高,適合大規模的網絡拓撲環境。為了解決屬性攻擊圖中的環路問題,陳鋒等[4]提出n-有效攻擊路徑的概念,假設無環攻擊路徑理論最大長度為n并提出n-有效攻擊路徑的發現算法。
上述研究主要集中在攻擊圖的構建以及復雜度的優化等方向,為后續研究提供了堅實的基礎,但缺乏對網絡環境中關聯信息的考慮。近些年,攻擊圖技術更多地應用在風險評估、威脅分析及網絡加固等領域。通過構建目標網絡的攻擊圖,模擬攻擊者的行為,并且結合網絡配置信息及漏洞信息,分析網絡中潛在的攻擊路徑、具有安全隱患的軟件程序以及服務應用的漏洞。Kaynar 等[5]分析了攻擊圖的研究現狀,認為當前研究的重點是攻擊圖的可達性分析和路徑研究。楊宏宇等[6]考慮了主機節點間的關聯關系對其風險值的影響,根據資產保護價值和攻擊圖結構計算主機的重要度,并利用節點最大路徑概率及主機重要度來度量主機節點風險值,全面分析了目標網絡中主機節點的風險。以上研究實現了對網絡環境的靜態風險評估,幫助防御者更加清晰地認知脆弱節點之間的關聯,并采取相應的防護措施,及時使用補丁或更安全的服務應用來減少網絡的安全風險。除了基于網絡環境中的拓撲信息進行靜態風險評估外,動態分析網絡環境中的威脅因素也十分重要。羅智勇等[7]在預測攻擊路徑時,加入了攻擊代價和入侵意圖等影響因素,通過綜合計算攻擊成本、漏洞價值和攻擊收益來定義攻擊圖中的狀態轉移概率,為動態評估網絡風險提供了依據。王文娟等[8]提出了一種概率攻擊圖更新算法,通過構建動態概率攻擊圖模型,設計算法推斷攻擊意圖及攻擊路徑,為還原針對云計算環境的滲透攻擊過程提供了有價值的參考依據。Hu 等[9]提出了基于動態貝葉斯攻擊圖的威脅預測算法,通過實時攻擊檢測和多維度告警信息,評估攻擊者能力并計算漏洞利用成功率,實現了對網絡威脅程度以及遭受攻擊風險的量化。
除了依靠關聯信息分析網絡安全狀態外,攻擊圖還可以與概率論相結合。攻擊圖反映了網絡內可能的攻擊路徑,判斷圖中哪些路徑更有可能被攻擊者使用是攻擊圖的一個重要功能。基于攻擊圖中狀態連續變化這一特點,研究人員通過引入貝葉斯網絡與馬爾可夫模型來計算節點的狀態轉移概率。陳小軍等[10]將轉移概率表引入攻擊圖,從觀測事件出發,推導出單步攻擊發生的概率,提出了一種計算成功概率最高的攻擊路徑的方法,能夠有效推斷攻擊意圖并計算攻擊路徑。胡浩等[11]使用馬爾可夫鏈(MC,Markov chain)對網絡攻擊中的狀態遷移過程進行刻畫,認為現有研究大多圍繞理想攻擊場景,然而實際情況中攻擊者采用的攻擊路徑不一定是理想攻擊路徑,因此提出了基于吸收馬爾可夫鏈的入侵路徑預測方法,基于通用漏洞評分標準,從多種層次出發,全面感知網絡中的威脅。張凱等[12]針對基于馬爾可夫鏈的分析方法中存在的計算狀態轉移概率不合理等問題,提出了狀態節點轉移失敗的計算方法,該方法得到的結果更加符合真實的網絡攻防狀況。Durkota 等[13]提出了一種基于攻擊圖的博弈模型,該模型將攻擊圖轉換為馬爾可夫決策過程,并通過修剪技術,使安全研究人員可以通過蜜罐技術提高網絡的安全性。Malik 等[14]設計了一種將攻擊樹轉換為馬爾可夫決策模型的算法,對攻擊場景進行建模并對其進行網絡安全分析,該算法結合馬爾可夫決策過程和概率模型,克服攻擊樹中狀態爆炸的問題,實驗結果表明,該算法能夠顯著提高網絡安全分析能力。此外,考慮到漏洞生命周期[15]對網絡攻擊分析過程的影響,胡浩等[16]以漏洞先驗歷史信息為輸入,構造了基于馬爾可夫鏈的漏洞生命周期模型,在時間維度上對漏洞演化過程進行推導,對其生命周期各狀態的演化規律進行了分析和總結。表1 對上述研究內容進行了劃分整理。

表1 研究內容劃分
梳理上述研究后發現,早期文獻多使用單一攻擊圖分析攻擊路徑,但由于網絡規模的不斷擴大,構建攻擊圖的復雜度也在不斷增加,并且生成的攻擊圖過于龐大,難以直觀地供研究人員分析。文獻[1,3-4]對攻擊圖的生成算法及路徑規劃進行優化,降低了攻擊圖生成的復雜度并簡化了攻擊圖,對基于攻擊圖的入侵路徑研究做出了貢獻。文獻[5-7]考慮了除網絡基本拓撲信息外能夠評估目標網絡安全性的因素,可以更全面地輔助安全人員進行防御決策。文獻[2,8-9]構建了基于圖論的動態風險量化與評估模型,進一步完善了網絡風險評估體系。文獻[10-14]基于概率論將馬爾可夫模型應用于攻擊圖中,提供了一種網絡攻擊分析的新思路。上述研究為網絡攻擊研究領域做出了巨大貢獻,推動了該領域的進步,然而,這些方法仍存在一些不足,例如,基于攻擊圖的研究中通過安全研究人員的主觀經驗確定節點的狀態轉移概率,在計算狀態轉移概率時缺乏統一的標準,同時也缺乏準確性與合理性(狀態轉移概率依賴主觀經驗);現有文獻的研究內容大多基于理想的攻擊場景,未考慮實際環境中漏洞的生命周期對原子攻擊成功概率的影響(攻擊圖中狀態轉移概率影響因素考慮不全面);在構建漏洞生命周期風險度量模型后,沒有具體應用于真實網絡場景中。針對上述研究中存在的不足,本文提出了一種基于吸收馬爾可夫鏈攻擊圖的網絡攻擊分析方法,該方法摒棄了傳統攻擊圖研究中概率確定的主觀因素,并且充分考慮了節點上漏洞生命周期對狀態轉移概率的影響,從攻擊路徑長度、節點威脅程度、預期影響(EI,expected impact)3 個方面進行全面分析,能夠為安全研究人員提供科學的指導依據。本文的主要貢獻如下。
1) 針對吸收馬爾可夫鏈攻擊圖中對狀態轉移概率影響因素考慮不全面的問題,在通用漏洞評分系統(CVSS,common vulnerability scoring system)的基礎上,引入漏洞生命周期模型,并提出了基于吸收馬爾可夫鏈攻擊圖的網絡攻擊分析方法,能夠輔助安全研究人員掌控網絡整體的安全狀態,為進一步分析網絡攻擊提供理論基礎。
2) 針對傳統攻擊圖模型中狀態轉移概率的確定依賴主觀經驗的問題,設計了一種基于漏洞生命周期的狀態轉移概率(STPVL,state transition probability based on vulnerability life cycle)歸一化度量算法,將攻擊圖映射為吸收馬爾可夫鏈攻擊圖,為分析網絡攻擊提供了定量數據參考,提高了分析結果的準確性與可靠性。
3) 針對映射后的吸收馬爾可夫鏈攻擊圖,提出了3 種網絡攻擊分析方法:攻擊路徑長度分析方法、節點訪問頻度分析方法以及預期影響分析方法,為防御人員掌握網絡中潛在攻擊路徑、攻擊開銷以及各節點的重要程度提供了方法支撐。
4) 對實驗網絡環境進行分析驗證,實驗結果表明,本文方法可以有效預測節點威脅程度、攻擊路徑長度以及預期影響。同時,通過模擬實驗統計1 000 次模擬攻擊中的路徑選擇分布與節點威脅程度變化趨勢,實驗結果與本文方法分析得到的理論預期具有一致性。最后通過對比實驗,將本文方法與典型方法進行比較,證明了本文方法的有效性和合理性。
1 模型設計
為了解決現有攻擊圖模型中狀態轉移概率的確定依賴主觀經驗的問題,以及攻擊圖中存在的狀態轉移概率影響因素考慮不全面等問題,本文提出了一種基于吸收馬爾可夫鏈攻擊圖的網絡攻擊路徑分析方法。首先,該方法在原有攻擊圖技術的基礎上,引入吸收馬爾可夫鏈的概念,將攻擊圖技術與吸收馬爾可夫鏈相結合;其次,在CVSS 漏洞評分標準的基礎上,設計了一種將普通攻擊圖映射為吸收馬爾可夫鏈攻擊圖的算法——STPVL 歸一化度量算法,該算法以攻擊圖為輸入,以基于吸收馬爾可夫鏈的狀態轉移概率矩陣為輸出,將攻擊圖映射到吸收馬爾可夫鏈中;最后,利用算法結束后輸出的狀態轉移概率矩陣的相關性質,對節點威脅程度、攻擊路徑長度以及預期影響逐一分析,為安全研究人員提供有價值的參考信息。
本文方法摒棄了傳統概率確定方法中的主觀性,有效提高了計算狀態轉移概率的準確性,同時,考慮到現有基于攻擊圖技術的攻擊路徑研究未分析漏洞時效性因素的影響,不利于網絡拓撲系統整體的動態安全性,本文將漏洞的生命周期作為計算因子融入狀態轉移概率的計算中,設計了基于吸收馬爾可夫鏈攻擊圖的網絡攻擊路徑分析模型,共分為3 個階段:攻擊圖的生成階段、攻擊圖到吸收馬爾可夫鏈攻擊圖的映射階段和網絡攻擊分析階段,如圖1 所示,包括以下5 個步驟。

圖1 本文方法模型
步驟1網絡環境信息收集。使用Nessus 等漏洞掃描及IP 探測工具掃描目標網絡拓撲信息、主機服務器存在的漏洞信息、網絡節點的配置信息以及其他相關信息等,作為構建攻擊圖的要素。
步驟2一般攻擊圖生成。將步驟1 中收集到的網絡環境信息作為輸入,使用Mulval 等攻擊圖生成工具構建目標網絡的一般攻擊圖。
步驟3一般攻擊圖到吸收馬爾可夫鏈攻擊圖的映射。根據STPVL 算法將目標網絡的一般攻擊圖重構為吸收馬爾可夫鏈攻擊圖。
步驟4狀態轉移概率及相關矩陣的計算。通過STPVL 算法得到吸收馬爾可夫鏈攻擊圖的狀態轉移概率矩陣P,并利用其相關性質計算節點訪問頻度矩陣N,攻擊路徑長度期望矩陣t,具體計算方法見第4 節。
步驟5網絡攻擊路徑分析。利用得到的目標網絡攻擊圖以及矩陣P、N、t,從攻擊者的角度對網絡攻擊路徑進行安全分析。
2 攻擊圖的生成
在不同類型的攻擊圖中,頂點可以表示主機、服務、漏洞、權限等網絡安全相關要素,也可以表示權限獲取等網絡安全相關狀態;邊表示攻擊者的攻擊行為。攻擊圖技術通過構建完整的網絡安全模型,能夠直觀地反映網絡環境的脆弱性并發現潛在的攻擊路徑,彌補了以往技術只能通過漏洞數量與威脅等級對網絡安全性進行分析,而不能根據節點在網絡中的位置和功能進行評估的不足。根據攻擊圖中節點類型的不同,攻擊圖可以分為屬性攻擊圖和狀態攻擊圖,為合理分析和評估主機安全狀況,本文選用狀態攻擊圖從主機層面對主機進行安全評估。
2.1 定義攻擊圖
定義1攻擊圖(AG,attack graph)。AG 由四元組(S,A,V,E)構成,其中,S表示狀態節點集合,A表示原子攻擊集合,V表示漏洞集合,E表示狀態轉移的有向邊集合。
1)S= {Si|i= 1,2,…,n}由n個狀態節點組成,其中包括3 種不同類型的節點:初始狀態節點、過渡狀態節點、目標狀態節點(吸收狀態節點)。初始狀態節點指攻擊發起時的狀態節點,目標狀態節點指攻擊結束時想要到達的狀態節點,不屬于以上兩類的節點均為過渡狀態節點。
2)A表示對漏洞的一次利用,若攻擊成功,則發生節點之間的狀態轉移;反之,則視為狀態節點到自身的一次自我訪問。
3)V= {Vi|i= 1,2,…,m},可利用漏洞Vi表示攻擊圖中狀態躍遷過程所利用的主機漏洞或服務器漏洞,Score(Vi)表示該漏洞的可利用得分。
4)E= {Ei,j|i,j= 1,2,…,n},Ei,j是從節點Si指向節點Sj的有向邊,對應一次狀態轉移過程。若Ei,j存在,則表明可從狀態節點Si轉移至狀態節點Sj。
2.2 構建攻擊圖
根據收集到的漏洞信息與主機通信規則構建攻擊圖。由于真實網絡環境中主機可能存在多種漏洞,為簡化攻擊圖規模,分析攻擊者最可能的攻擊意圖,當多條邊同時指向同一主機時,僅保留原子攻擊概率最大漏洞所在的邊,攻擊圖示例如圖2 所示。對于攻擊圖示例中的一般攻擊圖(如圖2(a)所示),S1~S4表示攻擊者所在主機的不同狀態,其中,S1為攻擊者初始狀態節點,S4為攻擊者的目標狀態節點,S2和S3均為過渡狀態節點。節點之間的有向邊E1,2~E3,4表示攻擊圖中攻擊者成功利用漏洞從前置主機滲透到后置主機的過程,節點指向自身的邊表示攻擊失敗,狀態轉移可以看作原狀態節點到自身的一次轉移。圖2(b)是圖2(a)所對應的馬爾可夫鏈攻擊圖,其中,邊上的數值表示狀態轉移發生的概率,其數值由狀態轉移概率矩陣計算得出。

圖2 攻擊圖示例
3 一般攻擊圖到吸收馬爾可夫鏈攻擊圖的映射
本文基于CVSS,設計了一種將一般攻擊圖映射為吸收馬爾可夫鏈攻擊圖的算法,該算法通過計算輸入攻擊圖的狀態轉移概率矩陣,為后續網絡攻擊分析提供計算依據。本節將依次對吸收馬爾可夫鏈、CVSS 漏洞評分標準以及吸收馬爾可夫鏈攻擊圖的映射算法進行詳細介紹。
3.1 吸收馬爾可夫鏈
定義2馬爾可夫鏈[17]。馬爾可夫鏈是一個包含有限狀態的隨機序列集合X={X1,X2,…,XN},其時間和狀態都是離散的。馬爾可夫鏈的無后效性使從節點Si轉移至下一個節點Sj的概率Pi,j僅與當前狀態有關,而與之前的狀態無關,Pi,j為馬爾可夫鏈的狀態轉移概率,P為由Pi,j組成的狀態轉移概率矩陣。
定義3吸收馬爾可夫鏈(AMC,absorbing Markov chain)。滿足以下2 個條件的馬爾可夫鏈被稱為吸收馬爾可夫鏈:至少具有一個吸收狀態,從每個狀態節點都能夠轉移至吸收狀態。吸收馬爾可夫鏈的狀態轉移概率矩陣的標準形式為
其中,Q是大小為a×a的過渡狀態轉移概率矩陣;R是大小為a×b的矩陣,表示從過渡狀態轉移到吸收狀態的概率;0 是大小為b×a的零矩陣;I是大小為b×b的單位矩陣;P的大小為(a+b)×(a+b),a+b表示狀態總數。
3.2 CVSS 漏洞評分標準
CVSS 是由美國國家基礎建設咨詢委員會委托制作、美國國家漏洞庫(NVD,national vulnerability database)[18]發布的漏洞領域的公開測評標準,其評分用于表示漏洞利用的難易程度,如表2 所示。網絡的安全性取決于與靶機機器上運行的服務相關的不同漏洞的可利用性等級。CVSS 定義了基本可利用得分Score(v)度量漏洞v的脆弱性,CVSS 標準提供了漏洞可利用得分的計算框架,定義如下。
定義4漏洞可利用得分(VES,vulnerability exploitability score)。CVSS 給出了漏洞可利用得分通用標準,計算式為
其中,AV、AC 和Au 分別代表漏洞的攻擊向量(AV,access vector)、攻擊復雜度(AC,access complex)和身份認證(Au,authentication),如表2 所示,不同漏洞的具體數值可由NVD 查詢得到。Score(v)的范圍為0~10,漏洞的利用難度與Score(v)成反比,即得分越高,漏洞越容易被利用;得分越低,漏洞越難被利用。例如,漏洞CVE-2014-0416 的攻擊向量、攻擊復雜度和身份認證分別為1.000、0.710 和0.704,通過式(2)計算該漏洞的可利用得分為10.0,表明其具有很高的可利用性。本文基于CVSS 漏洞可利用得分,度量攻擊圖中的狀態轉移概率,并提出一種STPVL 歸一化度量算法,有效增強了研究的通用性。

表2 CVSS 漏洞評分標準
3.3 吸收馬爾可夫鏈攻擊圖的映射算法
在攻擊圖中,當前狀態能否向下一個狀態轉移只取決于當前狀態是否滿足漏洞利用的前置條件,而與之前的狀態無關,若將攻擊圖中的狀態節點集合當作馬爾可夫鏈的狀態空間,則狀態空間的轉移正好符合馬爾可夫鏈的無后效性;攻擊圖中原子攻擊的成功率可以作為馬爾可夫鏈的狀態轉移概率;由于攻擊圖中必然包括目標狀態節點,而攻擊圖的目標狀態可被視為馬爾可夫鏈中的吸收狀態,因此,攻擊圖能夠映射到吸收馬爾可夫鏈模型,利用吸收馬爾可夫鏈對入侵路徑進行分析的理論依據成立。
在攻擊圖中,一次成功的原子攻擊會造成一次狀態的轉移,然而在現實網絡環境中,由于攻擊者知識的儲備量不同、攻防場景快速變化,目標網絡環境通常處于非理想狀態。在非理想狀態下,一次失敗的原子攻擊可以視為狀態節點到自身的一次轉移。對于狀態轉移概率Pi,j的計算,本文提出了一種STPVL 歸一化度量算法,將完整的攻擊圖轉化為吸收馬爾可夫鏈攻擊圖,并給出其狀態轉移概率矩陣P。文獻[12]充分考慮了漏洞利用失敗時節點到自身的狀態轉移概率,對包括初始狀態節點在內的過渡狀態節點設置到自身的轉移邊,綜合節點所有的出度邊改進了狀態轉移邊的概率計算方法,然而其在計算節點狀態轉移概率時,并未考慮到漏洞生命周期對該漏洞利用成功率的影響。文獻[19]研究了不同類型漏洞的生命周期演化過程,并提出了一個分布模型,用以計算漏洞在被可信網絡安全信息商曝光后其利用難度與時間增長之間的變化趨勢。CVSS 中記錄的離散時間值難以作為生命周期因子來計算狀態轉移概率,因此,本文引入漏洞生命周期模型,使用文獻[19]中的結果來定義攻擊圖中所利用漏洞的生命周期權重系數,并計算吸收馬爾可夫鏈的狀態轉移概率矩陣P。通過計算漏洞的生命周期因子,結合攻擊圖分析其因果關系,綜合漏洞生命周期的影響,評估網絡的總體動態安全性。
定義5漏洞生命周期F(tv)。漏洞V的生命周期函數為
其中,tv為漏洞的有效生存時長,計算方式為漏洞曝光的日期與CVSS 對漏洞進行評分的日期之差;定義常量α和常量k為形狀因子[19],取值分別為0.26 和0.001 61。
STPVL算法綜合考慮了漏洞的生命周期以及狀態轉移失敗的情況,將攻擊圖轉化成狀態轉移概率矩陣,其結果更具合理性且有助于安全研究人員在真實的網絡環境下進行安全分析。STPVL 算法如算法1 所示。
算法1STPVL 算法
輸入攻擊圖AG=(S,A,V,E)
輸出吸收馬爾可夫鏈的狀態轉移概率矩陣P
步驟1令i,j=1,Pi,j表示矩陣P中第i行第j列的元素。
步驟2從集合S中隨機選擇一個未遍歷的節點Si。
步驟3令集合S′=S,從集合S中隨機選取節點Sj,同時從集合S中刪除所選節點Sj,即S={S-Sj}。
步驟4設節點Si的出度為m=0,查找攻擊圖中Si→Sj是否存在攻擊路徑Ei,,j及可利用漏洞Vi,j
ifEi,j存在
步驟6考慮將攻擊失敗時的狀態轉移看作節點到自身的一次轉移過程,轉移概率設為Pi,i。給出Pi,i的計算過程,設節點Si的出度為m
時間復雜度分析。假設共有n個狀態節點,以一個n×n的矩陣P表示攻擊圖中的狀態變遷,P中元素Pi,j的值表示節點Si到Sj的可達概率,在算法1中,首先,遍歷n個狀態節點的時間復雜度為O(n)。其次,每個節點都要遍歷一次其他節點以判斷兩節點之間是否存在路徑,若存在,則為Pi,j賦值;否則Pi,j=0,該過程需要n×n次遍歷,時間復雜度為O(n2),因此STPVL 算法的時間復雜度為O(n2)。
在STPVL 算法中,加入了隨時間變化的漏洞生命周期,以此來計算攻擊圖對應的狀態轉移概率矩陣P,使其更貼合實際的網絡環境。在吸收馬爾可夫鏈中,狀態節點最終到達吸收狀態的概率總和為1,因此矩陣P中每一行滿足
其中,Pi,j表示在生成的狀態轉移概率矩陣P中從狀態節點Si轉移到狀態節點Sj的成功概率。
圖2(b)是對圖2(a)使用STPVL 算法處理后得到的吸收馬爾可夫鏈攻擊圖,圖中邊上的數值表示狀態轉移概率。攻擊路徑S1→S2→S4對應的成功概率計算方式為E1,2E2,4=0.25×0.6=0.15。本文結合漏洞生命周期模型,根據目標網絡拓撲中尚未修補的不同漏洞的生命周期,能夠對攻擊圖中的脆弱點做出更準確的分析。通過對攻擊者從初始狀態開始的所有邊上的可利用得分進行歸一化,來計算吸收馬爾可夫鏈的狀態轉移概率矩陣。為了確保模型的真實性,可以通過定時地更新狀態轉移概率矩陣中漏洞生命周期系數,重新計算狀態轉移概率矩陣P。
4 網絡攻擊分析
本文對網絡攻擊的分析基于狀態轉移概率矩陣的安全性分析,通過STPVL 算法得到攻擊圖對應的狀態轉移概率矩陣P后,以矩陣P為基礎,引用其相關定理對目標網絡的安全性進行全面分析,本節將依次對3 種網絡攻擊分析方法進行詳細介紹。
4.1 節點訪問頻度分析
從任意狀態節點出發,在到達吸收狀態節點時,對其攻擊路徑上非吸收狀態節點的訪問次數期望被稱為狀態節點訪問頻度期望。下面,結合狀態轉移概率矩陣P與定理1 對其進行闡述。
定理1對于吸收馬爾可夫鏈中狀態轉移概率矩陣P(如式(1)所示),記矩陣N為矩陣I-Q的逆矩陣,N=(I-Q)-1,N的大小為m×m。
矩陣N為攻擊圖的節點訪問頻度矩陣,N中元素Ni,j表示從狀態節點Si出發到吸收狀態時訪問節點Sj的頻度期望。Ni,j越大,說明在攻擊圖中,在到達目標狀態節點途中經過該節點的次數越高,其威脅程度越大,需要提高其防護的優先級,狀態節點訪問頻度指標在指導安全研究人員進行節點修復的環節中具有重要意義。
4.2 攻擊路徑長度分析
攻擊路徑長度用以衡量攻擊者從初始狀態節點開始,最終到達吸收狀態時需要經過的預期步驟數。利用矩陣N可以計算從各狀態節點到吸收狀態的攻擊路徑的長度期望。
定理2假設攻擊者以狀態節點Si為初始狀態節點,Ti為到達吸收狀態所經過的路徑長度的期望,T為第i個元素為Ti的列向量,則有
其中,T為攻擊路徑長度期望矩陣,N為攻擊圖的節點訪問頻度矩陣,c為單位矩陣,T和c均為列向量矩陣。
4.3 網絡預期影響分析
網絡的預期影響是結合單個漏洞的影響值與吸收馬爾可夫鏈的狀態轉移概率矩陣共同構建的指標,通過控制漏洞生命周期的變化,推斷出預期攻擊成本隨時間的變化趨勢。對于單個漏洞的影響值Impact(v),CVSS 提供了相關計算標準,計算式為
其中,C、I、A為CVSS 提供的3 種漏洞相關信息值,即保密影響、誠信影響和可用性影響,不同漏洞的具體數值公布在CVSS 官網中。對于隨著漏洞生命周期變化的狀態轉移概率矩陣P,本文定義矩陣P(d)為每日狀態轉移概率矩陣,表示在漏洞曝光的第d天所計算出的攻擊圖的狀態轉移概率矩陣。矩陣P(d)中每一列元素值都代表攻擊者利用漏洞vj從前一狀態節點轉移到節點Sj的概率,該漏洞的影響值為Impact(vj),對Impact(vj)與P(d)中第j列元素的乘積求和,得到漏洞vj在第d天的利用成功概率,其他漏洞同理。因此,本文給出EI 的計算式為
其中,i和j分別表示狀態轉移概率矩陣中的行數和列數。
5 實驗過程與分析
本節針對本文提出的基于吸收馬爾可夫鏈攻擊圖的網絡攻擊分析方法進行實驗及驗證,實驗過程與分析如下。首先,收集目標網絡環境的拓撲信息、漏洞信息等,構建目標網絡的一般攻擊圖;其次,通過STPVL 算法將一般攻擊圖映射為吸收馬爾可夫鏈攻擊圖,并計算其狀態轉移概率矩陣;最后,通過第4 節中提出的3 種網絡攻擊分析方法對其分析驗證。
5.1 搭建實驗環境
為了驗證本文方法的有效性,搭建了如圖3 所示的實驗網絡拓撲環境,網絡中的主要單位包括攻擊者、外部防火墻和內部防火墻、路由器、Web 服務器H1和郵件服務器H2、辦公區主機H3和H4,入侵檢測系統(IDS,intrusion detection system)、主機H5和H6以及數據庫H7。其中,外部防火墻隔離Internet 與內部網絡,并將內部網絡環境劃分為3 個區域:隔離區(DMZ)、辦公區、Intranet 區,而內部防火墻將DMZ 與其他內部網絡區域相隔離。Intranet 區安置有IDS,并制定如下訪問規則。

圖3 實驗網絡拓撲環境
1) 外部防火墻僅允許來自Internet 的主機訪問Web 服務器H1和郵件服務器H2。
2) 內部防火墻僅允許DMZ 中的主機訪問辦公區主機H3和H4。
3) Intranet 區中主機H5和H6僅能通過主機H3和H4訪問。
4) 數據庫H7僅允許Intranet 中的主機訪問。
5.2 生成攻擊圖
首先,使用Nessus 漏洞掃描工具掃描實驗網絡環境,并結合NVD 官網信息,得到實驗網絡中各主機的漏洞信息,如表3 所示。其次,將網絡拓撲和收集到的漏洞信息作為輸入,利用攻擊圖生成工具Mulval 生成實驗網絡攻擊圖后進行簡化,得到如圖4 所示的實驗網絡環境攻擊圖。

圖4 實驗網絡環境攻擊圖

表3 實驗網絡中各主機的漏洞信息
圖4 中,狀態節點S1~S8表示攻擊者不同時刻的狀態,狀態節點之間的有向邊表示能夠從邊發出節點并躍遷至邊指向節點,邊上標注的漏洞V1~V7表示該狀態轉移過程所利用的漏洞序號。由圖4 可知,攻擊者處于初始狀態節點S1,需要通過不同的攻擊路徑(狀態轉移過程)到達目標狀態節點S8,最終獲取目標數據庫H7的最高權限。
5.3 攻擊圖到吸收馬爾可夫鏈攻擊圖的映射
利用STPVL 算法,以圖4 所示的攻擊圖為輸入,通過算法映射得到吸收馬爾可夫鏈攻擊圖,如圖5 所示,并得到對應的狀態轉移概率矩陣P為

圖5 吸收馬爾可夫鏈攻擊圖
圖4 和圖5 中均含有8 個狀態節點,S1表示攻擊者初始狀態節點,S8表示攻擊者的目標狀態節點,其余節點則表示過渡狀態節點。
5.4 吸收馬爾可夫鏈攻擊圖分析
5.4.1 攻擊路徑分析
定義6滲透成功概率。某條攻擊路徑上所有節點的狀態轉移概率的乘積為該路徑的滲透成功概率PPn,可用于比較不同路徑被攻擊者選擇的可能性大小,計算式為
其中,Pi,j為路徑n上節點的狀態轉移概率。根據圖5和其狀態轉移概率矩陣P,計算得到18 條完整的入侵路徑,再利用式(8)計算出各路徑的滲透成功率,具體分布如表4 所示。從表4 中可以看出,成功率最高的攻擊路徑為S1→S3→S5→S7→S8,其成功概率的計算式為P1,3P3,5P5,7P7,8=0.035。

表4 滲透路徑長度及概率分布
通過使用上述方法,可以針對高危滲透路徑Route4及時制定防御策略。同時,通過該方法得到的攻擊路徑分布能夠輔助研究人員對可能發生的網絡攻擊做出相應的防御規劃。
5.4.2 節點威脅程度分析
根據定理1 以及概率矩陣P進行計算,可以得到攻擊圖過渡狀態概率轉移矩陣Q和節點訪問頻度矩陣N
其中,矩陣N中的第一行表示攻擊者從初始狀態節點出發到吸收狀態節點所經過的其他節點的期望次數。在攻擊圖中,訪問頻度越高的節點對應的威脅程度越高,對攻擊者的重要程度越高,各個非吸收狀態節點的訪問頻度期望如圖6 所示。

圖6 非吸收狀態節點訪問頻度期望
從圖6 中可以看出,對于圖5 中的各中間節點,其威脅程度排序為S2>S7>S5>S3>S6>S4。因此,在對網絡進行漏洞修復時,應優先修復主機H1上的apache 應用漏洞與主機H6上的radius應用漏洞。
該分析方法得到的節點訪問頻度期望能夠有效評估攻擊路徑中節點的威脅程度,對指導安全研究人員進行攻擊或漏洞修復具有重要意義。
5.4.3 攻擊路徑長度及網絡預期影響分析
由定理2 和矩陣N計算可得,實驗攻擊圖的攻擊路徑長度期望矩陣t為
矩陣t中元素表示從非吸收狀態節點S1、S2、S3、S4、S5、S6、S7出發到吸收狀態節點S8的攻擊路徑長度期望。該指標對檢測攻擊者的實時狀態、規劃攻防路線、分析攻擊者下一步動向及預估攻擊時長等具有指導意義。
圖7 展示了攻擊路徑長度期望隨時間的變化。從圖7 中可以看出,在漏洞曝光后的300 天內,攻擊路徑長度期望整體呈下降趨勢,這表明隨著時間的增加,漏洞逐漸老化,漏洞的利用難度降低,攻擊者采取的攻擊步驟減少,攻擊難度逐漸下降。這一規律總體符合實際情況,有利于安全研究人員預測后續攻擊路徑長度,為目標網絡環境設置安全閾值,及時對網絡系統中的漏洞進行修補。

圖7 攻擊路徑長度期望隨時間的變化
圖8 展示了實驗網絡在300 天內預期影響的變化,預期影響代表了攻擊者攻擊所消耗的成本,即攻擊代價。從圖8 中可以看出,預期影響隨時間的推移而降低,這表明將會出現更多影響值較低的漏洞,因此攻擊者將會選擇其他攻擊難度較低的攻擊路徑。

圖8 實驗網絡在300 天內預期影響的變化
本文對攻擊路徑長度及網絡預期影響的分析方法能夠預測目標網絡攻擊路徑長度的動態變化規律,以及網絡環境的預期影響變化趨勢。通過上述方法,安全研究人員可以實時地掌握攻擊狀態,在對網絡進行安全補丁時更清晰地做出決策。
5.5 模擬實驗與對比實驗
5.5.1 攻擊路徑分布測試
實驗1 為攻擊路徑分布測試的模擬仿真實驗,在基于圖3 的實驗網絡拓撲環境中,根據狀態節點轉移概率對攻擊路徑的選擇進行建模,共進行1 000 次模擬攻擊。實驗系統使用Kali Linux,編程語言選擇Pyhton3.6,網絡拓撲及漏洞信息如表3 所示。
在模擬實驗中,通過程序模擬攻擊者原子攻擊,從初始狀態節點S1出發,以狀態轉移概率矩陣P中的元素為狀態轉移概率,模擬攻擊狀態之間的遷移,最終到達目標吸收狀態節點S8后為一次完整的攻擊。對1 000 次模擬攻擊進行統計,成功到達目標狀態節點S8的攻擊次數為145 次,整體攻擊成功率為=0.145,這與表4 中18 條路徑滲透成功的概率總和0.132 4 相近,驗證了本文方法的有效性。圖9 為攻擊成功的情況中次數最高的前10 條攻擊路徑分布。由圖9 可知,最常用的攻擊路徑為S1→S3→S5→S7→S8,攻擊路徑長度為5,選擇該攻擊路徑的次數在攻擊成功次數中的占比為。

圖9 攻擊成功的情況中次數最高的前10 條攻擊路徑分布
由實驗1 可知,各路徑的選擇頻率與理論預期相符,再次證明了本文方法的合理性和有效性。
5.5.2 節點威脅程度變化趨勢
實驗2 為測試攻擊圖中各節點訪問頻度在不同漏洞曝光時長下的變化趨勢的實驗。漏洞曝光時長對節點威脅程度的影響如圖10 所示。

圖10 漏洞曝光時長對節點威脅程度的影響
根據圖10 中1 000 次模擬攻擊對各狀態節點的訪問次數,在不考慮攻擊者對初始狀態節點以及目標狀態節點的訪問的前提下,對其進行分析。威脅程度最高的是S2節點,通過圖5 和表3 可以判斷,需要優先修復主機H1上的apache 服務漏洞,而對于S4節點對應的H3主機上的Linux 系統漏洞,可以適當降低它的修復優先級。從圖10 中還可以看出,在漏洞曝光后的100~200 天,攻擊者對狀態節點S5的訪問頻度增加,但是對節點S3的訪問頻度減少,這表明在這段時間中,主機H4上bmc 漏洞的使用頻率可能會增多,如果安全研究人員需要在這段時間內優先修復網絡拓撲中某一漏洞,則可以根據以上信息,優先修復預期最容易受到攻擊的主機節點。
由實驗2 可知,本文方法通過分析節點威脅程度隨漏洞曝光時長變化的趨勢,可以為安全研究人員提供很有價值的信息,幫助其判斷修復網絡漏洞的優先順序,并在分析網絡安全性隨時間變化的過程中做出更全面、更準確的決策。
5.5.3 對比實驗
1) 與文獻[11]方法對比
本文方法與文獻[11]方法均基于CVSS 可利用得分來確定狀態轉移概率,然而CVE-2014-1878、CVE-2013-4782 的可利用得分均為10。在這種情況下,由于文獻[11]沒有考慮漏洞生命周期對狀態轉移概率的影響,導致其得到的結果不能反映真實的網絡漏洞威脅程度。攻擊路徑中各節點的訪問頻度是網絡環境安全評估的重要指標,為了證明本文方法的有效性,在圖3所示的網絡環境中進行對比實驗,分別使用本文方法和文獻[11]方法對圖3 網絡進行建模,并分析2 種方法所得的節點威脅度,如圖11 所示。

圖11 2 種方法所得的節點威脅度對比
由圖11 可知,2 種方法在S5、S7兩節點上的訪問頻度存在較大差異。對文獻[11]方法得到的節點威脅程度進行排序,可得S7>S5>S2>S3>S6>S4,與本文方法得到的排序S2>S7>S5>S3>S6>S4相比,可發現2 種方法得到的節點S2威脅程度存在較大差異。由表3 可知,雖然主機H1中漏洞V1的可利用得分與主機H6中漏洞V6可利用得分均為10,但是由于本文方法的漏洞生命周期較長,便于攻擊者利用V1漏洞給予更高的威脅等級,導致上述差異。
本文方法在分析節點威脅程度時更具穩健性與準確性。本文方法得到的節點威脅程度排序與模擬實驗中得到的結果相一致,表明本文方法更加符合實際網絡環境,并且適用于對網絡攻擊的分析。
2) 與其他文獻方法綜合比較
從客觀程度、是否進行漏洞生命周期度量、是否進行網絡攻擊分析3 個方面,將本文方法與其他方法進行對比,結果如表5 所示。從表5 中可以看出,文獻[3]通過使用邏輯連接漏洞組成的攻擊路徑,將其擴展為攻擊圖,但并未對攻擊圖做進一步的分析;文獻[7]構建了貝葉斯攻擊圖攻擊分析模型,僅對攻擊路徑進行了預測;文獻[11-12]使用馬爾可夫鏈攻擊圖建模,但在對其分析時未考慮漏洞生命周期的影響;文獻[16]結合漏洞生命周期過程,從宏觀角度分析了漏洞狀態的一般演化規律,但缺乏在網絡攻擊的分析中的應用。因此,可以得出以下結論。

表5 本文方法與其他方法綜合比較
①本文方法具有高度客觀性。本文方法構建了基于吸收馬爾可夫鏈攻擊圖模型,并通過概率論的方法,從攻擊路徑、節點威脅程度、預期影響3 個方面對網絡攻擊進行分析評估,避免了網絡攻擊分析過程中主觀因素帶來的影響。
② 本文方法具有實用性。本文方法在計算攻擊圖狀態轉移概率矩陣時,融入了漏洞生命周期的影響,能夠更真實地反映網絡安全的風險情況,為網絡安全研究人員提供更科學的決策支持。
③本文方法具有創新性。本文提出了一種基于吸收馬爾可夫鏈攻擊圖的網絡攻擊分析方法,能夠在客觀條件下結合漏洞生命周期以概率論的方法對網絡攻擊進行分析,解決了其他方法中存在的客觀性不足、計算攻擊圖概率轉移時考慮不全面、沒有對網絡攻擊進行全面分析等問題,具有創新性。
5.6 實驗總結
1) 5.1~5.3 節使用本文方法對圖3 實驗網絡進行映射,為后續實驗提供分析依據。
2) 5.4 節從攻擊路徑、節點威脅程度、預期影響3 個方面對映射后的攻擊圖進行了詳細的分析,為安全研究人員制定防御規劃、修補漏洞以及掌握不同時期的網絡安全狀態提供了方法支撐。
3) 實驗1 通過模擬實驗,測試攻擊過程中各路徑的選擇頻率并與理論值相對比,證明了本文方法的有效性。
4) 實驗2 通過預測不同漏洞生命周期下各節點訪問頻度的變化趨勢,有助于安全研究人員了解網絡中脆弱點的動態變化規律。
5) 對比實驗首先將文獻[11]方法與本文方法進行對比,表明在評估節點威脅程度方面,本文方法更具客觀性和準確性。其次與其他方法進行比較,體現了本文方法的創新性與合理性。
本文方法以目標網絡拓撲信息生成的攻擊圖為輸入,通過概率論的方法對其進行分析,能夠應用于公司、學校、政府等網絡環境的分析,具有良好的擴展性。
6 結束語
攻擊圖技術能夠直觀地反映出網絡的安全情況[20],因此,對目標網絡拓撲進行攻擊圖建模對于安全研究人員分析攻擊者可能采用的攻擊路徑、及時制定防御措施具有重要的意義。針對現有基于吸收馬爾可夫鏈構建攻擊圖的研究在對網絡中狀態節點轉移概率計算時考慮因素不夠全面的問題,本文提出了一種基于漏洞生命周期的狀態轉移概率歸一化度量算法。該算法將目標網絡的一般攻擊圖映射為吸收馬爾可夫鏈攻擊圖,并給出其狀態轉移概率矩陣,通過該矩陣分析目標網絡中潛在的攻擊路徑組合,計算預期攻擊路徑長度、節點威脅程度、預期影響,為網絡管理人員提供詳細指導。通過在實驗網絡上進行仿真分析,結果表明,本文方法能夠客觀地衡量目標網絡環境中各項安全指標,并且能夠有效預測攻擊路徑分布、節點威脅程度隨時間變化的趨勢,幫助安全研究人員更加準確地修復網絡中的薄弱環節。如何評估未知漏洞及零日漏洞,以及給出合理度量其利用概率的方法,將是今后研究的主要工作。