胡泰然, 臧藝超, 曹蓉蓉, 王清賢, 王曉凡
1數(shù)學(xué)工程與先進(jìn)計算國家重點實驗室 鄭州 中國 450001
2國防大學(xué)政治學(xué)院 上海 中國 200433
隨著網(wǎng)絡(luò)安全形勢日益嚴(yán)峻, 提高信息系統(tǒng)安全性刻不容緩。現(xiàn)有的安全手段大都從防御者角度進(jìn)行被動式進(jìn)行脆弱性發(fā)現(xiàn), 不能很好地刻畫攻擊者意圖以及潛在攻擊路徑。從攻擊者的角度進(jìn)行網(wǎng)絡(luò)安全分析可以更好的揣摩攻擊者心理, 從而制定出更有針對性的防御策略。因此, 攻擊路徑發(fā)現(xiàn)是網(wǎng)絡(luò)安全領(lǐng)域的重要研究內(nèi)容之一, 其在自動化滲透測試、安全分析、網(wǎng)絡(luò)防御等方面都有重要的應(yīng)用價值[1]。傳統(tǒng)的攻擊路徑發(fā)現(xiàn)主要采取首先構(gòu)建攻擊圖, 再利用深度優(yōu)先算法搜索攻擊路徑的思路[2]。然而, 在面對復(fù)雜網(wǎng)絡(luò)場景時,遍歷搜索空間進(jìn)行搜索會使得算法效率難以滿足實際需求。
智能規(guī)劃是人工智能的重要研究領(lǐng)域之一, 通過對周圍環(huán)境的分析, 根據(jù)預(yù)定目標(biāo)和可用動作, 定的資源限制和約束條件下進(jìn)行推理, 從而得到動作序列。將智能規(guī)劃應(yīng)用于攻擊路徑發(fā)現(xiàn)成為新的研究方向[3-4]。但是現(xiàn)有的基于智能規(guī)劃的攻擊路徑發(fā)現(xiàn)研究中, 大多致力于通過提高攻擊路徑發(fā)現(xiàn)模型的實際程度來增加攻擊路徑發(fā)現(xiàn)的可行性, 如POMDP模型。但是隨著模型不斷完善, 算法復(fù)雜度也逐漸提高, 求解效率就難以保證。從90年代后期開始, 基于啟發(fā)式搜索的規(guī)劃方法由于其規(guī)劃的高效重新成為智能規(guī)劃領(lǐng)域的熱點[5]。啟發(fā)式搜索利用啟發(fā)式信息來引導(dǎo)搜索, 能夠有效提高搜索的效率, 這給攻擊路徑發(fā)現(xiàn)提供了一個新的思路。
將領(lǐng)域知識融入到啟發(fā)式函數(shù), 利用啟發(fā)信息引導(dǎo)搜索, 不僅可以提高規(guī)劃效率, 而且能夠提高規(guī)劃結(jié)果的可行性。為了更充分地發(fā)揮啟發(fā)式函數(shù)的作用, 本文提出了基于多啟發(fā)式融合的攻擊路徑發(fā)現(xiàn)算法。通過引入SMHA*(Share Multi-Heuristic A*, SMHA*)框架, 將漏洞威脅程度, 漏洞成功率以及主機資產(chǎn)作為啟發(fā)式信息共同引導(dǎo)攻擊路徑搜索, 在保證一定的算法效率的基礎(chǔ)上, 使規(guī)劃結(jié)果更加符合現(xiàn)實應(yīng)用需求。
本文結(jié)構(gòu)如下: 第二章主要介紹現(xiàn)有智能規(guī)劃在網(wǎng)絡(luò)安全方面以及攻擊路徑發(fā)現(xiàn)方面的應(yīng)用; 第三章首先提出了針對攻擊路徑發(fā)現(xiàn)領(lǐng)域的啟發(fā)式函數(shù)設(shè)計, 然后描述了基于SMHA*框架的多啟發(fā)信息融合的攻擊路徑發(fā)現(xiàn)算法; 第四章中通過與現(xiàn)有經(jīng)典算法對比, 驗證本文提出的算法的可行性; 第五章對全文內(nèi)容進(jìn)行總結(jié)。
2005年, Jajodia等人[6]提出獨立地考慮單個漏洞利用效果是不全面的, 應(yīng)該從整體網(wǎng)絡(luò)的層面上分析漏洞的組合威脅, 并明確地提出了攻擊路徑這一概念。并且對網(wǎng)絡(luò)安全中的攻擊, 資產(chǎn), 動作和目標(biāo)建立概念模型。同年, Boddy首次將智能規(guī)劃用于網(wǎng)絡(luò)安全。作者將網(wǎng)絡(luò)脆弱性分析映射為規(guī)劃問題, 并用PDDL語言對其進(jìn)行描述。文章基于攻擊者視角建立了行為對抗建模系統(tǒng)(Behavior Adversary Modeling System, BAMS)用于預(yù)測攻擊者的行動方案(Course of Action, COA)并驗證了該系統(tǒng)可行性[7]。早期的研究中提出的基本概念和模型為后續(xù)研究奠定了良好的基礎(chǔ), 并且這些研究也從理論上驗證了利用智能規(guī)劃進(jìn)行攻擊路徑發(fā)現(xiàn)的可行性[8]。
在前人的研究基礎(chǔ)上, 2009年, Sarraute正式地將智能規(guī)劃算法用于滲透測試中的攻擊路徑發(fā)現(xiàn)。他將滲透測試框架映射為經(jīng)典規(guī)劃問題, 并提出了漏洞利用代價, 采用Metric-FF和SGP算法對規(guī)劃結(jié)果進(jìn)行求解[9]。同時, 澳大利亞國防科技技術(shù)部門將經(jīng)典規(guī)劃算法用于自動化網(wǎng)絡(luò)紅隊(Cyber red teaming, CRT)推演中, 利用已有算法實現(xiàn)自動化推演, 并針對各種算法的在該領(lǐng)域的性能進(jìn)行比較[10]。Core Impact公司也很快開始在其產(chǎn)品Metasploit中應(yīng)用攻擊路徑發(fā)現(xiàn)來提供滲透測試的自動化程度[11]。
但是經(jīng)典規(guī)劃問題基于環(huán)境是靜態(tài), 確定的假設(shè), 這和實際攻擊路徑發(fā)現(xiàn)過程不完全相符, 這也使得基于經(jīng)典模型的攻擊路徑發(fā)現(xiàn)結(jié)果在實際應(yīng)用中存在欠缺。因此, 后續(xù)研究朝著提高攻擊路徑發(fā)現(xiàn)結(jié)果的適用性和可行性方向進(jìn)行??紤]到漏洞利用動作執(zhí)行成功存在概率性, 2011年, Sarraute提出了基于概率規(guī)劃模型進(jìn)行攻擊路徑生成, 該方法提出了CHOOSE和COMBINE兩個原語, 將漏洞利用成功率作為攻擊路徑搜索的依據(jù)之一。該方法考慮了滲透環(huán)境中的不確定性, 并且通過實驗驗證了其有效性[12]。進(jìn)一步考慮環(huán)境的不確定性, Sarraute等人用部分可觀察馬爾可夫決策(Partially Observable Markov Decision Process, POMDP)過程對滲透測試建模。該模型對規(guī)劃問題進(jìn)行了精確的描述, 將掃描動作看作攻擊動作的組成部分一并進(jìn)行規(guī)劃。但該算法在求解規(guī)模上限制較大, 在只考慮最少的漏洞數(shù)量(每個主機上只有一個漏洞)的實驗設(shè)置中, 當(dāng)主機數(shù)量達(dá)到8時, 算法就會失效[13-14]。
以上研究主要致力于提高規(guī)劃模型的對現(xiàn)實攻防場景的逼真程度從而提高規(guī)劃結(jié)果的實際可用性。但隨著模型的復(fù)雜度提高, 計算效率也逐漸降低, 也在一定程度上削弱了其實際應(yīng)用價值[15-16]。如何能夠在提高規(guī)劃結(jié)果的可用性的同時保證一定的求解效率成為了攻擊路徑發(fā)現(xiàn)的新的研究目標(biāo)。
要提高攻擊路徑發(fā)現(xiàn)結(jié)果的實際性和可行性并不一定只有提高模型的仿真程度。不同于以往提高模型精確程度的思路, 將領(lǐng)域知識融入到啟發(fā)式并引導(dǎo)搜索也可以用于提高規(guī)劃結(jié)果的可行性。但是啟發(fā)式規(guī)劃的效率和效果很大程度上依賴于啟發(fā)函數(shù)的好壞。設(shè)計一個好的啟發(fā)式函數(shù)往往能夠給問題求解帶來巨大提升, 然而, 目前并沒有適用于攻擊路徑發(fā)現(xiàn)的完美啟發(fā)式函數(shù)?,F(xiàn)有的攻擊路徑發(fā)現(xiàn)算法中的并沒有將啟發(fā)式函數(shù)設(shè)計作為重點, 只是簡單將攻擊代價作為啟發(fā)式進(jìn)行規(guī)劃[17], 使得規(guī)劃時考慮的因素不全面, 不足以完全反映攻擊路徑發(fā)現(xiàn)的特點和需求。或者是將操作成本, 攻擊成本, 攻擊收益等多個指標(biāo)通過加權(quán)求和的方法構(gòu)造出一個新的指標(biāo)[18]。權(quán)值分配的合理程度直接影響了新指標(biāo)的可靠程度, 但是這一方法在計算時權(quán)值并沒有給出十分詳細(xì)的說明。相比只利用單一啟發(fā)式信息進(jìn)行搜索, 多啟發(fā)式信息融合往往能夠相互補充, 為搜索提供更好的引導(dǎo)作用。同時, 相比于利用加權(quán)求和等方法將多指標(biāo)進(jìn)行糅合, 多啟發(fā)式信息融合的方式更加靈活, 也能夠避免權(quán)值確定不當(dāng)造成的問題。
為了避免模型的復(fù)雜化帶來的計算問題, 同時避免單一啟發(fā)式搜索存在的信息考慮不全面的問題, 本文提出了基于多啟發(fā)式信息融合的攻擊路徑發(fā)現(xiàn)算法。該算法通過將復(fù)雜的網(wǎng)絡(luò)安全領(lǐng)域知識轉(zhuǎn)化為多個啟發(fā)式函數(shù), 靈活地融合多維領(lǐng)域知識引導(dǎo)攻擊路徑搜索, 提高攻擊路徑發(fā)現(xiàn)結(jié)果的適用性, 更好地滿足實際應(yīng)用需求。
要提高攻擊路徑發(fā)現(xiàn)的可靠性, 重點在于盡可能多的將網(wǎng)絡(luò)安全領(lǐng)域知識融入到規(guī)劃過程中, 從而實現(xiàn)在規(guī)劃中考慮各種實際因素。不同啟發(fā)式函數(shù)都對信息有所側(cè)重, 如果只采用單獨的啟發(fā)式往往不能夠完整的體現(xiàn)攻擊路徑發(fā)現(xiàn)中的眾多影響因素。而多個啟發(fā)式同時引導(dǎo)搜索, 則能夠融合各個啟發(fā)式的信息, 提高規(guī)劃結(jié)果的可用性。
考慮到在實際的攻擊過程中往往會存在以下選擇: a) 若每個主機上存在多個漏洞, 如何選擇既能提高攻擊效果, 又能保證攻擊成功的漏洞進(jìn)行利用; b) 若子網(wǎng)內(nèi)的存在眾多主機, 如何選擇最有利于攻擊者的主機作為目標(biāo)。因此, 本文根據(jù)攻擊路徑發(fā)現(xiàn)的實際需求, 以漏洞威脅程度, 漏洞成功率以及主機資產(chǎn)三個指標(biāo)分別作為啟發(fā)式函數(shù)進(jìn)行搜索引導(dǎo)。
(1) 漏洞威脅程度
漏洞威脅程度主要反映漏洞利用的價值, 威脅程度大的漏洞在往往能夠在攻擊過程中發(fā)揮更大的破壞力, 其利用難度也相對更小, 往往是攻擊者的首選。通常, 會使用通用漏洞評分系統(tǒng)(Common Vulnerability Scoring System, CVSS)作為漏洞威脅程度的評價指標(biāo)。CVSS是一個受到廣泛認(rèn)可的漏洞評估標(biāo)準(zhǔn), 可以用來衡量一個漏洞的嚴(yán)重程度以及威脅程度, 最早于 2007 年發(fā)布。CVSS的度量可以分為三個組: 基本組, 時間組和環(huán)境組, 如圖 1所示?;窘M描述的是漏洞本身固有的屬性, 不隨時間和所處環(huán)境改變而發(fā)生變化?;窘M主要涉及攻擊途徑、攻擊復(fù)雜度、攻擊過程認(rèn)證、 機密性影響、完整性影響、可用性影響。
圖1 CVSS 2.0指標(biāo)體系 Figure 1 CVSS 2.0 Metric Groups
CVSS的基本組評分的取值范圍為0~10, 為了方便計算, 本文采用CVSS評分的基本組得分的十倍作為漏洞威脅程度啟發(fā)式的計算依據(jù)。
(2) 漏洞成功率
除了漏洞威脅程度, 實際漏洞利用過程中, 漏洞利用的成功率直接影響著整個攻擊是否能夠順利進(jìn)行。如果漏洞成功率低, 即使漏洞的威脅程度大也往往不會選擇。因此, 在攻擊規(guī)劃中將漏洞成功率作為部分規(guī)劃依據(jù)是十分有必要的。Metasploit中針對每個漏洞的可靠性都有進(jìn)行等級評定, 共分為7個等級, 可靠性從高到低依次為Excellent, Great, Good, Normal, Average, Low和Manual。Metasploit中的評級是可以量化為相應(yīng)的成功率以用于啟發(fā)式計算, 如表1所示。
表1 漏洞等級利用成功率 Table 1 Success rate of different vulnerability rank
(3) 主機資產(chǎn)
在攻擊路徑選擇過程中, 不僅會考慮到漏洞的選擇, 同時也會選擇合適的主機作為攻擊對象。不同主機在一個網(wǎng)絡(luò)中扮演的角色不同, 其信息資產(chǎn)的重要性程度也有所差異。在攻擊過程中, 攻擊者往往會考慮滲透具有更高價值的主機, 以期獲得更好的攻擊效益。主機資產(chǎn)值往往與所處的網(wǎng)絡(luò)位置, 運行的服務(wù), 存儲的資源等有關(guān)。主機資產(chǎn)的重要性程度往往和整個網(wǎng)絡(luò)的資產(chǎn)情況相關(guān)[19]。為了簡化對主機資產(chǎn)價值進(jìn)行度量, 對主機資產(chǎn)重要性程度以等級形式進(jìn)行表示。參考現(xiàn)有研究, 本文將主機的資產(chǎn)等級分為5級, 表示相對的資產(chǎn)重要性程度。主機資產(chǎn)等級與典型主機類型如表 2所示。主機資產(chǎn)價值越高, 其攻擊價值也越高。
表2 主機資產(chǎn)等級及其典型主機類型 Table 2 Host asset ranks and typical host types
根據(jù)各個主機配置信息以及表 2可以大致確認(rèn)其資產(chǎn)等級。以此對各個主機的資產(chǎn)按照其相對價值進(jìn)行排序和比較, 并且主機的資產(chǎn)價值排序作為啟發(fā)式函數(shù)的計算依據(jù)。
由于多個啟發(fā)式共同引導(dǎo)算法進(jìn)行, 啟發(fā)式值會直接影響搜索的實際運行方向。然而, 不同的啟發(fā)式計算依據(jù)不同, 其量綱和數(shù)值大小往往不盡相同。如果各啟發(fā)式的量綱和數(shù)據(jù)級差距過大會導(dǎo)致算法效果大打折扣。因此, 為了提高算法的可靠性, 需要對各個啟發(fā)式值進(jìn)行標(biāo)準(zhǔn)化。取漏洞代價的最大最小值為界, 采用離差標(biāo)準(zhǔn)化方法。離差標(biāo)準(zhǔn)化將數(shù)據(jù)進(jìn)行線性變化, 將數(shù)據(jù)映射到一定的范圍內(nèi)。為了使得三個啟發(fā)式的取值范圍相近, 將漏洞威脅程度值的最大最小值作為標(biāo)準(zhǔn)化上下界, 將漏洞成功率和主機資產(chǎn)值依次代入公式(1)進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化。
其中, xi表示標(biāo)準(zhǔn)化前的取值, yi表示標(biāo)準(zhǔn)化后的取值, threatmax,threatmin分別表示漏洞威脅程度的最大值和最小值。
本文基于SMHA*框架, 將漏洞威脅程度, 漏洞成功率, 以及主機資產(chǎn)值三種信息作為啟發(fā)式計算依據(jù)進(jìn)行攻擊路徑發(fā)現(xiàn), 提高攻擊路徑的可用性。
定義1: 一致性啟發(fā)函數(shù)(Consistent heuristic)是指啟發(fā)式函數(shù)滿足以下條件:
① 對于每個節(jié)點s以及其子節(jié)點s', 有h(s ) ≤h(s' ) +c(s,s');
② 對于目標(biāo)節(jié)點sgoal有 h( sgoal) = 0。
一致啟發(fā)函數(shù)保證搜索能夠找到最優(yōu)解。
SMHA*框架基于A*算法, 同時采用多個啟發(fā)式引導(dǎo)搜索[20]。如圖 2所示, 為了保證求解質(zhì)量, SMHA*框架利用一個滿足一致性的啟發(fā)式函數(shù)保證求解的次優(yōu)性, 稱為錨啟發(fā)式搜索(Anchor heuristic search); 同時, SMHA*以輪詢的方式吸收其他一般啟發(fā)式的信息。并且, SMHA*中不同搜索之間當(dāng)前計算出來的路徑信息是共享的。這些特點不僅能夠有效組合不同啟發(fā)式函數(shù)的引導(dǎo)能力, 同時也能夠提高規(guī)劃效率。SMHA*框架能夠使得各個啟發(fā)式信息互補, 應(yīng)用在攻擊路徑發(fā)現(xiàn)問題中, 既可以避免重新設(shè)計啟發(fā)式函數(shù)的麻煩, 也能綜合考慮攻擊路徑發(fā)現(xiàn)中需要考慮的多種現(xiàn)實因素。
圖2 SMHA*算法框架 Figure 2 SMHA* algorithm frame
進(jìn)一步, 單個主機s 可以表示為 s =< name, asset,g,bp>, 分別表示主機的名稱, 主機資產(chǎn)情況以及主機當(dāng)前路徑代價值及其對應(yīng)的前向節(jié)點; 單個漏洞利用動作可以表示為 a =< name, risk, successrate>, 分別表示漏洞利用動作的名稱, 漏洞威脅程度以及漏洞成功率。單個連通關(guān)系可以表示為 e =< s, s',c>, 代表從主機s可以訪問s', 并且當(dāng)從主機s發(fā)動攻擊s'時的代價為c。注意, 主機之間的連通關(guān)系具有方向性。同時, 定義 Succ(s)為主機s所有能夠訪問的主機集合, 有 Succ(s)= {s ' ∈ S|c(s,s') ≠∞}。 g*(s)表示集合從攻擊者主機sattack到主機s的最佳路徑代價, g(s)表示集合從攻擊者主機sattack到主機s的當(dāng)前最佳路徑代價。
本文提出的基于多啟發(fā)式攻擊路徑發(fā)現(xiàn)算法同時采用漏洞威脅值, 漏洞成功率以及主機資產(chǎn)值三種啟發(fā)式函數(shù)進(jìn)行規(guī)劃引導(dǎo), 分別記為h0,h1,h2。算法代碼如圖 3。算法首先進(jìn)行初始化操作(行14~16), 設(shè)置目標(biāo)主機的g值為無窮大, 初始攻擊主機g值為0, 將初始攻擊主機和目標(biāo)主機的 bp ( )值設(shè)為空, 同時將初始主機節(jié)點插入到各優(yōu)先隊列中; 接著, 當(dāng)滿足一般優(yōu)先隊列中的最小值小于 w2倍錨搜索隊列最小值OPENi.M inkey( ) ≤w2*OPEN0.M inkey(), i =1,2時(行24~28), 算法以輪詢方式對每個其他搜索隊列OPENi, i= 1,2以最佳優(yōu)先方式進(jìn)行擴展; 反之, 則擴展 OPEN0(行30~33)。 Key( )函數(shù)(行1~2)用于計算擴展節(jié)點在優(yōu)先隊列中的鍵值。擴展節(jié)點時, 首先需要將當(dāng)前節(jié)點從所有優(yōu)先隊列中刪除來保證該節(jié)點不會被再次擴展(行4)。然后考慮當(dāng)前主機的所有后繼主機節(jié)點 s ' ∈ Succ(s ); 如果s'沒有被擴展過, 那么Key(s) = g(s) + w1* hi(s)其信息同時在所有優(yōu)先隊列中更新; 如果s'在某個一般搜索中擴展過但沒有在錨搜索中擴展過, 那么只將s'插入到 OPEN0中。如果s'已經(jīng)在錨搜索中擴展過, 那么該節(jié)點不會被插入到任何優(yōu)先隊列中, 也就不會被再次擴展。當(dāng) g( starget)在任意 OPENi, i= 0,1,2 中都具有最小鍵值時, 算法終止。此時, 規(guī)劃結(jié)果可以根據(jù) bp(s)從starget追溯到sattack得到規(guī)劃路徑。此時, 路徑代價滿足
本實驗場景整體網(wǎng)絡(luò)結(jié)構(gòu)如圖 4所示。
圖3 基于多啟發(fā)式信息融合的攻擊路徑發(fā)現(xiàn)算法 Figure 3 Attack Path Discovery Algorithm Based on Multi-Heuristic Information Fusion
圖4 網(wǎng)絡(luò)結(jié)構(gòu)示意 Figure 4 Network structure schematic
攻擊者從通過互聯(lián)網(wǎng)連接到內(nèi)部網(wǎng)絡(luò); 整個內(nèi)網(wǎng)分為若干個子網(wǎng), 相鄰子網(wǎng)之間可以相互訪問; 每個子網(wǎng)中包含若干個主機。具體的, 在每個主機上存在若干個可利用漏洞。本文選取了五個具有不同 子網(wǎng)數(shù), 子網(wǎng)內(nèi)主機數(shù)以及主機漏洞數(shù)的場景進(jìn)行實驗。如表 3 所示, 從場景A到場景E, 網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜程度遞增。子網(wǎng)數(shù)量的增加意味著攻擊者需要在內(nèi)網(wǎng)中攻擊的跳板主機數(shù)量增加, 攻擊路徑長度增加。子網(wǎng)內(nèi)主機數(shù)量以及各主機漏洞數(shù)量的增加意味著攻擊者在進(jìn)行攻擊時可選動作增加, 在一定程度上增加了攻擊者的選擇難度。各個場景的主機信息以及漏洞情況均隨機指定, 場景之間漏洞情況不具有相關(guān)性。實驗中所用到的漏洞信息均來源于公開漏洞庫。采用規(guī)劃領(lǐng)域定義語言(Planning domain definition language, PDDL)[21]對所有實驗場景進(jìn)行描述。
表3 實驗場景信息 Table 3 Information of scenes in experiment
在各個實驗場景中, 分別采用本文提出的多啟發(fā)式融合攻擊路徑發(fā)現(xiàn)算法與WA*, Metric-FF以及基于POMDP模型的算法進(jìn)行路徑規(guī)劃。與SMHA*框架類似, WA*算法是A*算法的擴展, 通過增大啟發(fā)式計算因子來提高搜索效率; 同樣, WA*算法并不保證最優(yōu)性; Metric-FF采用忽略可用動作的刪除效果的啟發(fā)式來提高規(guī)劃效率, 是經(jīng)典規(guī)劃問題域中最流行和成功的規(guī)劃算法之一; POMDP是環(huán)境狀態(tài)部分可知動態(tài)不確定環(huán)境下序貫決策的理想模型, 實驗中采用POMDP-Solve求解器進(jìn)行實驗。
對于SMHA*取 w1為1.5, w2為2, WA*取w = w1* w2= 3。啟發(fā)式計算策略采用最大值啟發(fā)式。主要比較的指標(biāo)為攻擊路徑威脅程度, 攻擊路徑成功率, 平均主機資產(chǎn)排名以及算法運行時間。攻擊路徑威脅程度為路徑中各個漏洞的威脅程度之和, 路徑威脅程度越大越好(計算時采用最小化100減去漏洞威脅值, 后續(xù)結(jié)果已轉(zhuǎn)換為正常值); 攻擊路徑成功率為各漏洞成功率乘積, 表示整個路徑能夠執(zhí)行成功的概率, 取值越大越好, 但隨著攻擊路徑長度增加, 路徑成功率呈現(xiàn)減小趨勢; 而平均主機資產(chǎn)排名為各個主機資產(chǎn)值排名的平均值(除去目標(biāo)節(jié)點), 排名平均值越小表示路徑中選擇的主機重要程度越高; 創(chuàng)建節(jié)點數(shù)為規(guī)劃過程中擴展節(jié)點及其子節(jié)點數(shù)量。實驗結(jié)果見圖 5至圖 9。
在場景A中, 本文提出的算法的在路徑威脅程度上和WA*相同且高于Metric-FF以及POMDP, 而且本文算法的漏洞成功率以及主機資產(chǎn)排名也表現(xiàn)最佳。雖然在運行時間上比Metric-FF以及WA*長, 但是明顯好于POMDP。
圖5 場景A實驗結(jié)果 Figure 5 Results in Scene A
場景B中, 本文算法, Metric-FF, WA*三個算法計算結(jié)果十分相近, 這與具體場景配置有關(guān), 說明當(dāng)場景中最佳攻擊路徑選擇較為單一時, 本文提出的算法的計算結(jié)果可能與傳統(tǒng)的Metric-FF和WA*相同。并且從場景B的實驗數(shù)據(jù)來看, POMDP的各項指標(biāo)均較差, 并且計算時間明顯高于其他算法, 并且與場景A相比, 時間大大增加。
從場景C的實驗結(jié)果可以看出, 此時, 本文算法的路徑威脅程度稍差于WA*, 但優(yōu)于其他兩種算法; 主機資產(chǎn)排名和Metric-FF相同, 但路徑成功率更優(yōu); 運行時間上, 雖然比Metric-FF以及WA*較差, 但運行時間也較短。
場景D中的子網(wǎng)數(shù)量, 主機數(shù)量以及漏洞數(shù)量都有了明顯增加, 此時POMDP已經(jīng)無法求解。在路徑規(guī)劃威脅程度上來說, 本文提出的算法較Metric-FF和WA*來說較弱, 但是路徑成功率以及攻擊主機資產(chǎn)價值明顯好于這兩種算法。隨著攻擊路徑長度增加, 路徑成功率對于攻擊是否成功具有十分重要的意義, 因此, 本文算法得到的攻擊路徑更具有實際意義。
圖7 場景C實驗結(jié)果 Figure 7 Results in Scene C
圖8 場景D實驗結(jié)果 Figure 8 Results in Scene D
圖9 場景E實驗結(jié)果 Figure 9 Results in Scene E
在場景E中, 網(wǎng)絡(luò)規(guī)模以及復(fù)雜度進(jìn)一步增加, 同理, POMDP算法求解失效。此時, 本文提出的算法在路徑威脅程度上介于Metric-FF算法以及WA*中間; 但明顯可以發(fā)現(xiàn)此時, 本文算法的路徑成功率和攻擊主機資產(chǎn)價值排名明顯好于其他算法。在運算時間上, 此時, Metric-FF算法的運算時間已經(jīng)明顯大于本文算法。
從實驗結(jié)果來看, 本文提出的基于多啟發(fā)式信息融合的攻擊路徑規(guī)劃算法具有以下特點:
(1) 在路徑威脅程度方面, 本文提出的算法計算結(jié)果略弱于WA*, 但與Metric-FF相近;
(2) 在路徑成功率以及攻擊主機平均資產(chǎn)價值排名兩個方面, 本文提出的算法在多數(shù)場景中均優(yōu)于?其他算法, 尤其隨著攻擊路徑增加, 本文算法的計算結(jié)果優(yōu)勢更加突出;
(3) 在運算時間方面, 雖然本文提出的算法在場景A到場景D中比WA*和Metric-FF算法大, 但是運算時間絕對值也相對合理; 并且隨著網(wǎng)絡(luò)復(fù)雜程度增加, Metric-FF的運算時間增加速度明顯大于本文算法。
綜上所述, 傳統(tǒng)的規(guī)劃算法如Metric-FF, WA*算法在進(jìn)行攻擊路徑發(fā)現(xiàn)時考慮的因素較為有限, 并且當(dāng)網(wǎng)絡(luò)復(fù)雜程度增加時, 這些算法在運行時間的增加速度, 路徑成功率以及主機選擇上均存在一定問題。而POMDP算法的明顯問題就在于其運算時間, 當(dāng)網(wǎng)絡(luò)場景稍微增加就出現(xiàn)無法求解的情況。
相比之下, 本文提出的基于多啟發(fā)式信息融合的攻擊路徑發(fā)現(xiàn)算法能夠更好的均衡攻擊路徑發(fā)現(xiàn)中多個因素的信息, 使得所發(fā)現(xiàn)的攻擊路徑更加符合攻擊者的實際需求。特別隨著網(wǎng)絡(luò)復(fù)雜程度的增加, 本文提出的攻擊路徑發(fā)現(xiàn)算法的優(yōu)越性體現(xiàn)的更加明顯。
作為從攻擊者角度對網(wǎng)絡(luò)分析的一種手段, 攻擊路徑發(fā)現(xiàn)在網(wǎng)絡(luò)安全領(lǐng)域中具有重要的研究價值?,F(xiàn)有研究大多通過不斷完善模型對現(xiàn)實網(wǎng)絡(luò)攻防的逼真程度來提高規(guī)劃的適應(yīng)性與可行性, 但這也使得模型復(fù)雜度大大增加, 計算效率難以滿足實際使用需求。不同于以往的研究方向, 本文以啟發(fā)式函數(shù)作為切入點, 將多維攻防領(lǐng)域知識作為啟發(fā)式計算依據(jù), 共同引導(dǎo)攻擊路徑搜索。
本文提出的基于多啟發(fā)式信息融合的攻擊路徑發(fā)現(xiàn)算法。該算法基于攻擊路徑發(fā)現(xiàn)的背景需求, 將漏洞威脅程度, 漏洞成功率以及主機資產(chǎn)情況作為啟發(fā)式計算依據(jù), 并且基于SMHA*框架, 融合多種啟發(fā)式信息引導(dǎo)搜索, 提高攻擊路徑發(fā)現(xiàn)的可行性, 同時保證一定的計算效率。最后通過實驗驗證了該算法相比于常規(guī)算法確實能夠在規(guī)劃時更全面的考慮多方面因素, 并且計算效率能夠滿足實際需求。
本文提出基于多啟發(fā)式信息融合的攻擊路徑發(fā)現(xiàn)算法不僅能夠避免建立復(fù)雜的模型, 還能合理結(jié)合領(lǐng)域知識提高攻擊路徑發(fā)現(xiàn)結(jié)果的可行性, 并且算法的計算效率控制在合理范圍內(nèi), 能夠很好的促進(jìn)攻擊路徑發(fā)現(xiàn)的現(xiàn)實應(yīng)用, 進(jìn)一步發(fā)揮攻擊路徑發(fā)現(xiàn)在信息安全領(lǐng)域中的作用。