趙 超,王慧強(qiáng)+,林俊宇,呂宏武,韓冀中
1.哈爾濱工程大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,哈爾濱 150001
2.中國(guó)科學(xué)院 信息工程研究所,北京 100000
計(jì)算機(jī)網(wǎng)絡(luò)已成為當(dāng)今社會(huì)不可或缺的組成部分,然而隨著網(wǎng)絡(luò)技術(shù)快速發(fā)展,大量的安全漏洞暴露出來(lái)。安全漏洞是各類網(wǎng)絡(luò)安全事件層出不窮的主要原因[1]。理論上,為確保網(wǎng)絡(luò)安全,應(yīng)該掃描并修復(fù)網(wǎng)絡(luò)中的全部漏洞,但由于網(wǎng)絡(luò)的實(shí)際情況、安全與業(yè)務(wù)架構(gòu)之間的矛盾、加固代價(jià)、漏洞修復(fù)的滯后性等問(wèn)題,修復(fù)全部漏洞實(shí)際上通常無(wú)法做到。因此,如何針對(duì)網(wǎng)絡(luò)的整體安全狀況,選擇合適的安全加固措施,既保障網(wǎng)絡(luò)的安全,同時(shí)盡可能減小對(duì)業(yè)務(wù)的影響,降低所選加固措施的總代價(jià),成為網(wǎng)絡(luò)安全管理員面臨的一大難題。
針對(duì)這一問(wèn)題,研究人員提出了一系列網(wǎng)絡(luò)安全分析模型,如故障樹(shù)(fault tree)、攻擊樹(shù)(attack tree)、攻擊圖(attack graph)等。故障樹(shù)最早用于裝備工程領(lǐng)域,用來(lái)分析設(shè)備故障原因,提高維修效率,后由Helmer等人[2]引入網(wǎng)絡(luò)安全領(lǐng)域,但故障樹(shù)的規(guī)模會(huì)隨邏輯門(mén)和基本事件數(shù)目的增加呈指數(shù)級(jí)增長(zhǎng),因此不適合大規(guī)模網(wǎng)絡(luò)的攻擊建模。攻擊樹(shù)模型由Schneier[3]提出,以葉子節(jié)點(diǎn)表示攻擊方法,根節(jié)點(diǎn)表示最終目標(biāo),能夠清晰地表示可能的攻擊方式,但隨著問(wèn)題規(guī)模的擴(kuò)大,樹(shù)形結(jié)構(gòu)的建模會(huì)導(dǎo)致模型中存在大量冗余,使得模型結(jié)構(gòu)非常龐大。在此基礎(chǔ)上,Phillips和Swiler[4]提出攻擊圖模型。隨著學(xué)者對(duì)攻擊圖模型的不斷研究,提出了屬性攻擊圖,較好地解決了狀態(tài)攻擊圖存在的空間爆炸問(wèn)題。文獻(xiàn)[5]首次提出了攻擊者能力的“單調(diào)性假設(shè)”,將攻擊圖生成算法的復(fù)雜度由指數(shù)級(jí)降為多項(xiàng)式級(jí),隨后又提出了很多方法用以生成攻擊圖[6-8],開(kāi)發(fā)了一系列的攻擊圖自動(dòng)生成軟件[9-10],進(jìn)一步降低攻擊圖生成的時(shí)間復(fù)雜度。
要利用攻擊圖獲得網(wǎng)絡(luò)安全加固策略,需要對(duì)其做進(jìn)一步的分析,相比于攻擊圖的生成,對(duì)攻擊圖分析方法的研究還存在很多問(wèn)題。文獻(xiàn)[11]首先提出最小原子攻擊修復(fù)集問(wèn)題,認(rèn)為可以通過(guò)修復(fù)原子攻擊阻斷攻擊路徑,并用貪婪算法求解,但該方法沒(méi)有考慮修復(fù)代價(jià)。文獻(xiàn)[12-13]研究了最優(yōu)初始條件修復(fù)集問(wèn)題,通過(guò)修復(fù)某些初始屬性以阻斷攻擊路徑,同時(shí)以最少的修復(fù)措施保障關(guān)鍵節(jié)點(diǎn)的安全,但精確的攻擊路徑搜索算法具有指數(shù)級(jí)時(shí)間復(fù)雜度,無(wú)法應(yīng)用于大規(guī)模網(wǎng)絡(luò)中。文獻(xiàn)[14]提出了n-有效攻擊路徑生成算法,通過(guò)限制迭代次數(shù)降低算法時(shí)間復(fù)雜度,但僅以路徑長(zhǎng)度作為攻擊風(fēng)險(xiǎn)的評(píng)判標(biāo)準(zhǔn),沒(méi)有考慮不同漏洞在攻擊難度和造成后果等方面的差異,并且算法同樣沒(méi)有解決局部最優(yōu)問(wèn)題。文獻(xiàn)[15]提出用基于網(wǎng)絡(luò)流的攻擊圖分析方法,解決最優(yōu)原子攻擊修復(fù)集和最優(yōu)初始屬性修復(fù)集問(wèn)題,算法效率較高,但是忽略了屬性攻擊圖節(jié)點(diǎn)間的邏輯關(guān)系,因此生成的修復(fù)策略修復(fù)代價(jià)過(guò)高。文獻(xiàn)[16]基于依賴攻擊圖,同時(shí)考慮攻擊威脅和修復(fù)成本,直接計(jì)算關(guān)鍵狀態(tài),但在實(shí)際應(yīng)用中,修復(fù)成本對(duì)于攻擊者的攻擊行為并無(wú)影響,不宜作為風(fēng)險(xiǎn)評(píng)估的依據(jù)。
針對(duì)目前研究的不足,基于屬性攻擊圖,以現(xiàn)有的攻擊圖構(gòu)建方法為研究基礎(chǔ),對(duì)攻擊圖的分析方法展開(kāi)研究,提出了一種適用于大規(guī)模網(wǎng)絡(luò)安全加固的攻擊圖分析方法。首先,提出攻擊路徑的風(fēng)險(xiǎn)評(píng)估方法,并采用啟發(fā)式算法搜索攻擊圖中風(fēng)險(xiǎn)系數(shù)最高的攻擊路徑;然后,以此為度量基礎(chǔ),根據(jù)網(wǎng)絡(luò)的實(shí)際情況,設(shè)置危險(xiǎn)閾值,搜索出全部危險(xiǎn)系數(shù)大于閾值的潛在攻擊;最后,選擇能夠阻斷這些高危險(xiǎn)潛在攻擊的屬性,生成低代價(jià)的網(wǎng)絡(luò)安全加固策略。
網(wǎng)絡(luò)中普遍存在著安全漏洞,并且每天都有大量的新漏洞被發(fā)現(xiàn),但對(duì)全部漏洞進(jìn)行修復(fù)往往是不切實(shí)際的。攻擊圖能夠很好地展現(xiàn)漏洞之間的關(guān)聯(lián),通過(guò)對(duì)攻擊圖的分析,選擇危險(xiǎn)性較高、修復(fù)難度較低的漏洞進(jìn)行修復(fù),盡可能地使網(wǎng)絡(luò)具有相對(duì)較高的安全程度是一個(gè)更加實(shí)際的辦法。要判斷不同攻擊方式的威脅程度,需要有具體的評(píng)判方法,在闡述具體方法之前,首先給出一些基本定義。
屬性攻擊圖能夠展示出攻擊者利用網(wǎng)絡(luò)中的各種安全漏洞進(jìn)行攻擊的所有可能方式,它的形式化定義如下。
定義1(屬性攻擊圖)屬性攻擊圖AG定義為一個(gè)三元組D=<V,A,E>。其中,V表示屬性節(jié)點(diǎn)集合,V0表示初始屬性節(jié)點(diǎn)集合,Vd表示非初始屬性節(jié)點(diǎn)集合,則V0與Vd共同構(gòu)成屬性節(jié)點(diǎn)集合V,即V=V0?Vd;A表示原子攻擊集合;E表示有向邊集合,是有序積集((V0?Vd)×A)?(A×Vd)的一個(gè)子集。
同時(shí),屬性攻擊圖需滿足以下規(guī)則:
(1)當(dāng)原子攻擊a的所有前提屬性均得到滿足的情況下,原子攻擊a才能被執(zhí)行。
(2)屬性v的任意一個(gè)前提原子攻擊被執(zhí)行,都可以使攻擊者獲得屬性v。
在屬性攻擊圖中,通常用文字表示屬性節(jié)點(diǎn),用圓或橢圓表示原子攻擊節(jié)點(diǎn),用箭頭表示有向邊,如圖1所示。
Fig.1 An example of attack graph圖1 攻擊圖實(shí)例
定義2(可達(dá))在一個(gè)攻擊圖中,對(duì)于屬性集Va∈V,若攻擊者從Va出發(fā),經(jīng)過(guò)一系列攻擊行為,可以獲得屬性v,則稱Va可達(dá)v,記作Va?v;反之,若攻擊者從Va出發(fā),不足以獲得屬性v,則稱Va不可達(dá)v,記作Vav。
定義3(初始可達(dá)集)若Va?v,且Va?V0,則稱Va是v的初始可達(dá)集。
定義4(最小初始可達(dá)集)若Va是v的初始可達(dá)集,且對(duì) ?v′∈Va,Va-v′v,則稱Va是v的最小可達(dá)初始屬性集,簡(jiǎn)稱最小初始集。
也就是說(shuō),對(duì)于攻擊者的一次攻擊行為,若要獲得關(guān)鍵屬性,對(duì)應(yīng)的最小初始集中的所有屬性都是必要的。
定義5(攻擊路徑)攻擊者利用一個(gè)最小初始集,經(jīng)過(guò)一步或多步攻擊,最后獲得目標(biāo)屬性的過(guò)程,稱為一次攻擊過(guò)程,將這個(gè)過(guò)程中發(fā)生的所有原子攻擊按先后順序構(gòu)成一個(gè)序列,稱為一個(gè)攻擊路徑,表示形式為ai→aj→…→ak。
對(duì)于一個(gè)關(guān)鍵屬性v,可能存在多個(gè)最小初始集,并且不同的最小初始集中可能存在相同的初始屬性。例如,在圖1所示的攻擊圖中,攻擊者可以通過(guò)初始屬性v0、v3,經(jīng)由攻擊路徑a1→a3獲得屬性v5;也可以通過(guò)屬性v1、v2、v3,經(jīng)由攻擊路徑a2→a3獲得屬性v5。因此,屬性v5存在兩個(gè)最小初始集,分別為{v0,v3}和{v1,v2,v3}。
為了得到網(wǎng)絡(luò)安全加固策略,首先需要知道攻擊者有哪些可能的攻擊路徑。在攻擊圖中,搜索全部攻擊路徑的算法具有無(wú)法避免的指數(shù)級(jí)時(shí)間復(fù)雜度,無(wú)法適用于大規(guī)模網(wǎng)絡(luò)。一個(gè)更具實(shí)際意義的方法是:通過(guò)評(píng)估攻擊路徑的風(fēng)險(xiǎn),搜索被攻擊可能性較高的攻擊路徑,并提前阻斷,保障網(wǎng)絡(luò)的相對(duì)安全。
為了度量不同攻擊路徑被攻擊者利用可能性的高低,需要對(duì)攻擊路徑上全部漏洞的嚴(yán)重程度進(jìn)行評(píng)估。給出一種基于CVSS(common vulnerability scoring system)的攻擊路徑危險(xiǎn)系數(shù)的計(jì)算方法。CVSS是NVD(national vulnerability database)提出的一套公開(kāi)標(biāo)準(zhǔn),被用于評(píng)價(jià)安全漏洞的嚴(yán)重程度。對(duì)于每一個(gè)已知漏洞,CVSS會(huì)給出一個(gè)基礎(chǔ)分?jǐn)?shù)(base score),該分?jǐn)?shù)通過(guò)AccessVecto(r接入方式)、Access-Complexity(攻擊復(fù)雜度)、Authentication(身份驗(yàn)證)、ConfImpact(機(jī)密性影響)、IntegImpac(t完整性影響)、AvailImpac(t有效性影響)等指標(biāo)計(jì)算得出,漏洞的危險(xiǎn)程度越高,分?jǐn)?shù)就越高,取值范圍是[0,10]。可以看出,作為一種通用的漏洞評(píng)分標(biāo)準(zhǔn),CVSS基礎(chǔ)分?jǐn)?shù)綜合考慮了攻擊難度和造成后果的嚴(yán)重程度,能較好地反映出攻擊者對(duì)于不同漏洞實(shí)施攻擊的意愿的高低。因此,本文采用CVSS基礎(chǔ)評(píng)分作為參考,并以此說(shuō)明攻擊路徑危險(xiǎn)系數(shù)的計(jì)算方法。
攻擊者對(duì)網(wǎng)絡(luò)進(jìn)行多步攻擊的過(guò)程中,每一步攻擊對(duì)應(yīng)著一個(gè)安全漏洞,對(duì)于任意的原子攻擊a,令r(a)為原子攻擊a的危險(xiǎn)系數(shù),則:
對(duì)于任意攻擊路徑l,r(l)為攻擊路徑l的危險(xiǎn)系數(shù),定義為l上全部利用的漏洞危險(xiǎn)系數(shù)的乘積,則:
攻擊路徑的危險(xiǎn)系數(shù)反映了路徑被攻擊者選擇的意愿大小的相對(duì)程度,為攻擊路徑的威脅程度評(píng)判提供了依據(jù)。
上文提到,搜索全部攻擊路徑的算法具有無(wú)法避免的指數(shù)級(jí)時(shí)間復(fù)雜度,無(wú)法適用于大規(guī)模網(wǎng)絡(luò)。在實(shí)際應(yīng)用中,由于網(wǎng)絡(luò)性質(zhì)的不同,不同的組織、機(jī)構(gòu)對(duì)于自身網(wǎng)絡(luò)安全程度的要求并不相同。例如,大型商業(yè)公司和一些政府部門(mén)對(duì)網(wǎng)絡(luò)安全性的要求通常較高,在網(wǎng)絡(luò)安全方面的投入也較大;而對(duì)于一般的辦公網(wǎng)絡(luò),只要保證網(wǎng)絡(luò)的正常使用即可,安全要求相對(duì)較低,通常也無(wú)法承受過(guò)高的安全加固代價(jià)。針對(duì)這種情況,設(shè)計(jì)方法采用以下步驟:(1)搜索網(wǎng)絡(luò)中危險(xiǎn)系數(shù)最高的攻擊路徑,作為初步判斷網(wǎng)絡(luò)安全狀況的基礎(chǔ);(2)根據(jù)步驟(1)的結(jié)果,結(jié)合網(wǎng)絡(luò)的安全需求情況和專業(yè)人員的經(jīng)驗(yàn),設(shè)定一個(gè)危險(xiǎn)閾值;(3)搜索出全部危險(xiǎn)系數(shù)大于閾值(潛在風(fēng)險(xiǎn)較高)的攻擊路徑對(duì)應(yīng)的最小初始集,所得的最小初始集將作為本文第4部分的輸入,為最終生成網(wǎng)絡(luò)安全加固策略提供基礎(chǔ)。
最大危險(xiǎn)系數(shù)攻擊路徑的精確搜索算法同樣具有指數(shù)級(jí)的時(shí)間復(fù)雜度,因此可采用啟發(fā)式算法求解攻擊圖中的最大危險(xiǎn)系數(shù)。在一個(gè)攻擊圖中,對(duì)攻擊路徑的搜索通常采用自底向上的方式,由關(guān)鍵屬性出發(fā),逆向構(gòu)造攻擊路徑,這個(gè)過(guò)程與螞蟻選路的過(guò)程非常相似,因此選用蟻群算法求解攻擊圖中最大危險(xiǎn)系數(shù)問(wèn)題。對(duì)蟻群優(yōu)化算法中的ASrank模型進(jìn)行適當(dāng)?shù)男薷模岢龉魣D最大危險(xiǎn)系數(shù)計(jì)算方法。
定義6(攻擊路徑運(yùn)算符“+”)設(shè)l1、l2為兩個(gè)攻擊路徑,將l2連接在l1后面,構(gòu)成一個(gè)新的攻擊路徑,稱為l1、l2的“+”運(yùn)算,記作l1+l2。
給定攻擊圖AG和目標(biāo)屬性vk,所有螞蟻從vk出發(fā),采用深度優(yōu)先的迭代搜索方式構(gòu)建危險(xiǎn)系數(shù)最高的路徑lmax。由于屬性攻擊圖中節(jié)點(diǎn)間存在邏輯關(guān)系,針對(duì)屬性攻擊圖中的兩種節(jié)點(diǎn),算法遵循以下規(guī)則:
(1)當(dāng)螞蟻位于屬性節(jié)點(diǎn)v∈Vd時(shí),螞蟻在v的前提原子攻擊節(jié)點(diǎn)中選擇一個(gè)加入lmax中并移動(dòng)到該節(jié)點(diǎn)上。
(2)當(dāng)螞蟻位于原子攻擊節(jié)點(diǎn)a∈A時(shí),依次對(duì)a的每一個(gè)前提屬性節(jié)點(diǎn)構(gòu)建攻擊路徑,將結(jié)果與該螞蟻已生成的路徑進(jìn)行“+”運(yùn)算。
規(guī)則(1)中,螞蟻選擇原子攻擊節(jié)點(diǎn)并不是盲目的,而是傾向于選擇信息素濃度和收益更高的節(jié)點(diǎn),這里的收益更高指的是原子攻擊節(jié)點(diǎn)的危險(xiǎn)系數(shù)r(a)更大。因此,螞蟻位于屬性節(jié)點(diǎn)v時(shí),選擇原子攻擊節(jié)點(diǎn)i的概率可以表示為:
其中,參數(shù)α,β>0;τi是節(jié)點(diǎn)i的信息素濃度;ηi是節(jié)點(diǎn)i的啟發(fā)式信息,ηi=r(i)。
構(gòu)造的路徑危險(xiǎn)系數(shù)r(l)初始值設(shè)為1,當(dāng)K只螞蟻完成構(gòu)建后,按照構(gòu)建的解路徑危險(xiǎn)系數(shù)的大小排序,只有排列在最前的ω-1只螞蟻和生成了至今最優(yōu)解的螞蟻才允許釋放信息素。構(gòu)建的解路徑危險(xiǎn)系數(shù)r(l)越大的螞蟻,留下的信息素就越多。信息素更新準(zhǔn)則為:螞蟻在它選擇的原子攻擊節(jié)點(diǎn)上留下的信息素量為Q×Rk,這里Q是一個(gè)常數(shù),Rk是螞蟻k構(gòu)造解路徑的危險(xiǎn)系數(shù)。同時(shí),信息素會(huì)隨著時(shí)間的流逝而揮發(fā),信息素更新公式如下:
其中,t是迭代次數(shù);ρ∈[0,1]是控制信息素τi揮發(fā)的參數(shù);Δτi是節(jié)點(diǎn)i上信息素的總增量;是螞蟻k在節(jié)點(diǎn)i上留下的信息素量。在信息素更新之后,進(jìn)行第t+1次迭代。算法經(jīng)過(guò)T次迭代后,得到最終結(jié)果。
為避免螞蟻生成無(wú)效的含圈攻擊路徑或重復(fù)計(jì)入屬性節(jié)點(diǎn)導(dǎo)致的危險(xiǎn)系數(shù)計(jì)算錯(cuò)誤,引入了兩個(gè)屬性節(jié)點(diǎn)集Vselected和Vvisited,分別存放當(dāng)前節(jié)點(diǎn)的祖先節(jié)點(diǎn)和兄弟節(jié)點(diǎn)。在深度優(yōu)先迭代之前,若節(jié)點(diǎn)已在Vselected中,說(shuō)明產(chǎn)生無(wú)效的含圈攻擊路徑,若節(jié)點(diǎn)已在Vvisited中,說(shuō)明該節(jié)點(diǎn)之前已經(jīng)搜索過(guò),不必再次搜索。下面給出每只螞蟻構(gòu)造高危險(xiǎn)系數(shù)攻擊路徑時(shí)的算法ant_path_search的偽代碼。
算法1 ant_path_search算法
算法第4行若構(gòu)造的攻擊路徑含圈,屬無(wú)效攻擊路徑,螞蟻重新搜索;第7行屬性v是已搜索過(guò)的分支,無(wú)需重新搜索;第11行螞蟻根據(jù)式(3)中的概率選擇下一步原子攻擊節(jié)點(diǎn);第16行對(duì)所有下一步屬性節(jié)點(diǎn)的攻擊路徑做“+”運(yùn)算,迭代構(gòu)造完整的攻擊路徑。
依照此方法,螞蟻可以構(gòu)造一條攻擊路徑并計(jì)算出危險(xiǎn)系數(shù),循環(huán)運(yùn)行算法K次,可以得到K條攻擊路徑,然后根據(jù)式(4)更新各個(gè)節(jié)點(diǎn)的信息素,更新搜索到的最大危險(xiǎn)系數(shù),重復(fù)此過(guò)程T次,得到最后結(jié)果。
假設(shè)攻擊圖AG中含有N個(gè)節(jié)點(diǎn),每只螞蟻?zhàn)疃鄬?duì)N個(gè)節(jié)點(diǎn)遍歷一次,共有K只螞蟻,迭代T輪,則該蟻群算法的時(shí)間復(fù)雜度為O(T×K×N)。
通過(guò)蟻群算法可以得到攻擊路徑中最高的危險(xiǎn)系數(shù),在此基礎(chǔ)上,可以根據(jù)網(wǎng)絡(luò)對(duì)安全的要求程度、網(wǎng)絡(luò)規(guī)模和可承受代價(jià)多少的不同,設(shè)定一個(gè)容忍系數(shù)μ,危險(xiǎn)閾值rth=rmax×μ,認(rèn)為危險(xiǎn)系數(shù)r>rth的攻擊路徑具有較高危險(xiǎn)性,應(yīng)該予以阻斷。同時(shí),研究發(fā)現(xiàn)真實(shí)的攻擊路徑長(zhǎng)度往往較短[10],并且過(guò)長(zhǎng)的攻擊路徑會(huì)降低攻擊者的攻擊意愿,因此設(shè)定一個(gè)攻擊者攻擊意愿的衰減系數(shù)γ,當(dāng)攻擊路徑l長(zhǎng)度大于lmax時(shí),危險(xiǎn)系數(shù)隨攻擊路徑步數(shù)的增長(zhǎng)而衰減。此外,考慮到一個(gè)網(wǎng)絡(luò)中可能包括多個(gè)關(guān)鍵節(jié)點(diǎn),不同的節(jié)點(diǎn)重要程度不同,因此為每個(gè)目標(biāo)屬性v設(shè)置一個(gè)參數(shù)λv反映目標(biāo)節(jié)點(diǎn)的重要程度。當(dāng)修復(fù)資源有限的情況下,該參數(shù)可以幫助管理員將更多的資源投入到更重要的節(jié)點(diǎn)上。因此攻擊路徑的危險(xiǎn)系數(shù)公式更新為:
其中,m為路徑l的步數(shù);m′為lmax的步數(shù)。
容忍系數(shù)μ需要根據(jù)網(wǎng)絡(luò)對(duì)安全的要求、網(wǎng)絡(luò)規(guī)模和可承受代價(jià)的情況綜合設(shè)置。對(duì)網(wǎng)絡(luò)安全的要求越高,網(wǎng)絡(luò)規(guī)模越小,可承受代價(jià)越大,μ應(yīng)越小,危險(xiǎn)閾值rth越小,滿足危險(xiǎn)系數(shù)r>rth的攻擊路徑就越多,反之亦然。衰減系數(shù)γ則通過(guò)降低超長(zhǎng)攻擊路徑的危險(xiǎn)系數(shù)限制被選擇的攻擊路徑數(shù)量,γ越小,超長(zhǎng)路徑的危險(xiǎn)系數(shù)r越小,滿足條件r>rth的路徑數(shù)量就越少,γ越大,則滿足條件的路徑數(shù)量就越多。參數(shù)λ需要根據(jù)目標(biāo)節(jié)點(diǎn)的重要程度設(shè)置,越重要的節(jié)點(diǎn)λ應(yīng)越大,對(duì)應(yīng)該屬性的攻擊路徑危險(xiǎn)系數(shù)就越高,滿足條件r>rth的路徑數(shù)量就越多。容忍系數(shù)μ、衰減系數(shù)γ和參數(shù)λ需要專業(yè)人員依據(jù)經(jīng)驗(yàn),并結(jié)合上述情況綜合設(shè)置。
在后續(xù)分析中需要使用攻擊路徑對(duì)應(yīng)的最小初始集,因此提出最小初始集生成算法(minimum initial reachable attribute sets,MIRAS),搜索全部危險(xiǎn)系數(shù)r>rth的攻擊路徑對(duì)應(yīng)的最小初始集。首先給出一個(gè)新的集合運(yùn)算符。
定義7(集合運(yùn)算符“×”)設(shè)A、B為兩個(gè)元素為集合的集合,從A中任取一個(gè)元素A′,B中任取一個(gè)元素B′,把它們的并集作為一個(gè)元素,所有這樣的元素構(gòu)成一個(gè)集合,稱為集合A與B的“×”運(yùn)算,記作A×B,即A×B={A′?B′|A′∈A,B′∈B}。
MIRAS算法從給定的關(guān)鍵屬性節(jié)點(diǎn)v出發(fā),采用深度優(yōu)先搜索,并用危險(xiǎn)閾值rth限制搜索過(guò)程,迭代地搜索出節(jié)點(diǎn)v的全部高危險(xiǎn)系數(shù)最小初始集M(v)。在向前搜索過(guò)程中,若v是可達(dá)屬性節(jié)點(diǎn),則v的全部最小初始集M(v)就是v的父節(jié)點(diǎn)的最小初始集的并集;若v是原子攻擊節(jié)點(diǎn),則M(v)就是v的父節(jié)點(diǎn)的最小初始集的“×”運(yùn)算。在搜索的同時(shí)計(jì)算當(dāng)前攻擊路徑的危險(xiǎn)系數(shù),當(dāng)一條攻擊路徑含圈,或危險(xiǎn)系數(shù)小于閾值rth時(shí),返回空集?。這樣就可以迭代地搜索出全部危險(xiǎn)系數(shù)大于閾值rth的攻擊路徑對(duì)應(yīng)的最小初始集。由于篇幅的原因,這里不再詳述MIRAS算法的偽代碼。
下面分析MIRAS算法的時(shí)間復(fù)雜度。設(shè)最高危險(xiǎn)系數(shù)攻擊路徑的步數(shù)為m′,對(duì)于容忍系數(shù)μ、衰減系數(shù)γ和參數(shù)λ,存在正整數(shù)m使得λγm+1<μ<λγm,因此算法搜索的攻擊路徑長(zhǎng)度不大于m′+m。設(shè)攻擊圖中節(jié)點(diǎn)個(gè)數(shù)為N,節(jié)點(diǎn)的最大入度為d,則當(dāng)v為屬性節(jié)點(diǎn)時(shí),最多調(diào)用MIRAS(ai,r,m)算法d次,當(dāng)v為原子攻擊節(jié)點(diǎn)時(shí),最多調(diào)用MIRAS(vi,r,m+1)算法d次,因?yàn)樗阉鞯穆窂介L(zhǎng)度不大于m′+m,算法最多迭代2(m′+m)次,所以MIRAS算法的時(shí)間復(fù)雜度為O(d2(m′+m)×N)。由于m′+m為正整數(shù),算法具有多項(xiàng)式級(jí)時(shí)間復(fù)雜度。
MIRAS算法給出了對(duì)于單一關(guān)鍵屬性v的全部最小初始集的計(jì)算方法。若攻擊圖中存在多個(gè)關(guān)鍵屬性,只需為每一個(gè)關(guān)鍵屬性vi′增加一個(gè)虛擬的下一步原子攻擊ai′,將這些原子攻擊的危險(xiǎn)系數(shù)分別設(shè)為λi′,再為這些原子攻擊增加一個(gè)共同的虛擬結(jié)果屬性vk′,即可把求關(guān)鍵屬性集Vk的全部高危險(xiǎn)系數(shù)最小初始集問(wèn)題轉(zhuǎn)化為求關(guān)鍵屬性vk′的高危險(xiǎn)系數(shù)最小初始集問(wèn)題。
通過(guò)上文的方法可以獲得攻擊圖中全部危險(xiǎn)系數(shù)大于閾值的攻擊路徑對(duì)應(yīng)的最小初始集,需要對(duì)這些最小初始集進(jìn)行進(jìn)一步的分析、計(jì)算,最終得到最優(yōu)修復(fù)集,即網(wǎng)絡(luò)安全加固策略。
關(guān)鍵屬性vk的每一個(gè)最小初始集代表著一條可能的攻擊路徑,因此可以采取消除其中某些初始屬性的方法來(lái)阻斷該路徑,這些措施包括為系統(tǒng)漏洞打補(bǔ)丁,修改系統(tǒng)設(shè)置,禁用服務(wù),加裝防火墻或修改防火墻設(shè)置,改變網(wǎng)絡(luò)拓?fù)涞取?/p>
定義8(待修復(fù)集)在一個(gè)最小初始集中,所有可以被相應(yīng)的安全彌補(bǔ)措施消除的屬性構(gòu)成的集合,稱為待修復(fù)集。
5.動(dòng)詞不定式復(fù)合結(jié)構(gòu)做后置定語(yǔ),它和動(dòng)詞不定式短語(yǔ)一樣,均只能放在被修飾成分的后面,做后置定語(yǔ)。例如:
定理1消除待修復(fù)集中的任意一個(gè)屬性,均可阻斷對(duì)應(yīng)的攻擊路徑。
證明對(duì)于關(guān)鍵屬性vk,Va是vk的一個(gè)最小初始集,Vr是Va對(duì)應(yīng)的待修復(fù)集,顯然Vr?Va,?v′∈Vr有v′∈Va,根據(jù)最小初始集定義可知,Va-v′?vk。 □
為了保障關(guān)鍵屬性的安全,需對(duì)其全部高危險(xiǎn)系數(shù)攻擊路徑對(duì)應(yīng)的待修復(fù)集進(jìn)行修復(fù)。根據(jù)定理1,在對(duì)單個(gè)待修復(fù)集進(jìn)行修復(fù)時(shí),只需選擇其中的一個(gè)屬性,并采取相應(yīng)措施將其消除即可。同時(shí),通過(guò)圖1的例子可以發(fā)現(xiàn),不同的最小初始集中可能含有共同的初始屬性,因此消除一個(gè)屬性可能同時(shí)修復(fù)多個(gè)待修復(fù)集。而每種阻斷措施都需要付出一定的代價(jià),例如修改系統(tǒng)設(shè)置或防火墻設(shè)置可能以降低系統(tǒng)易用性甚至犧牲某些業(yè)務(wù)功能為代價(jià),系統(tǒng)升級(jí)可能以服務(wù)斷開(kāi)時(shí)間為代價(jià)等。因此,如何選取屬性進(jìn)行消除,使總代價(jià)最低就成為網(wǎng)絡(luò)安全加固策略生成研究的關(guān)鍵問(wèn)題。本文稱該問(wèn)題為最優(yōu)修復(fù)集問(wèn)題,該問(wèn)題的數(shù)學(xué)描述如下。
在攻擊圖AG中,設(shè)vk為關(guān)鍵屬性,為vk的全部待修復(fù)集,,設(shè)變量yj,若vj被選中,則yj=1,否則yj=0,cj為vj的代價(jià)。要使最優(yōu)修復(fù)集總代價(jià)最小,就是要求:
該問(wèn)題等價(jià)于帶權(quán)重的集合覆蓋問(wèn)題,是NP完全問(wèn)題,精確求解算法時(shí)間復(fù)雜度為指數(shù)級(jí),對(duì)于大規(guī)模網(wǎng)絡(luò),顯然不具有實(shí)際應(yīng)用價(jià)值。貪婪算法[14]是解決該問(wèn)題的一個(gè)方法,效率很高,但極易陷入局部最優(yōu),因此得到的加固策略代價(jià)較高。生成網(wǎng)絡(luò)安全加固策略的目的是為網(wǎng)絡(luò)安全管理員提供參考,在資源有限的情況下如何保障網(wǎng)絡(luò)具有更高的安全性。因此,對(duì)于大規(guī)模網(wǎng)絡(luò)的安全加固來(lái)說(shuō),相比于快速給出一個(gè)代價(jià)較高的加固策略,在可接受的時(shí)間范圍內(nèi)計(jì)算出代價(jià)更低的加固策略顯然更具實(shí)用價(jià)值?;诖顺霭l(fā)點(diǎn),提出基于蟻群算法的網(wǎng)絡(luò)安全加固策略生成算法AS-NSH,求解最優(yōu)修復(fù)集。
首先對(duì)問(wèn)題進(jìn)行預(yù)處理,步驟如下:
AS-NSH算法描述如下:
首先構(gòu)建一個(gè)完全圖,節(jié)點(diǎn)集合由Vr中的全部屬性和一個(gè)啞元節(jié)點(diǎn)構(gòu)成,每個(gè)節(jié)點(diǎn)都具有信息素,每輪投放K只螞蟻。開(kāi)始時(shí),所有螞蟻都從啞元節(jié)點(diǎn)開(kāi)始構(gòu)解,每只螞蟻根據(jù)式(11)給出的概率選擇下一步節(jié)點(diǎn),螞蟻每訪問(wèn)一個(gè)節(jié)點(diǎn),就將該節(jié)點(diǎn)加入已選節(jié)點(diǎn)集,同時(shí),已覆蓋的集合也可能發(fā)生變化,因此,在螞蟻每一步行動(dòng)之后,都需要重新計(jì)算剩余節(jié)點(diǎn)的選擇概率。
其中,Vallowed是沒(méi)有被選擇的節(jié)點(diǎn)集合;參數(shù)α,β>0;τi是節(jié)點(diǎn)i的信息素濃度;是螞蟻k選擇節(jié)點(diǎn)i的收益代價(jià)比,可以表示為:
其中,Seti表示節(jié)點(diǎn)i能夠覆蓋的待修復(fù)集的集合;表示螞蟻k當(dāng)前已經(jīng)覆蓋的待修復(fù)集的集合;wi是節(jié)點(diǎn)i對(duì)應(yīng)的代價(jià)。
其中,Q是一個(gè)常數(shù);Wk是螞蟻k構(gòu)造解的代價(jià);t是迭代次數(shù);ρ∈[1,0]是控制信息素τi揮發(fā)的參數(shù);Δτi是節(jié)點(diǎn)i上信息素的總增量;是螞蟻k在節(jié)點(diǎn)i上留下的信息素量。在信息素更新之后,進(jìn)行第t+1次迭代。算法經(jīng)過(guò)T輪迭代后,得到最終結(jié)果。
下面分析AS-NSH算法的時(shí)間復(fù)雜度。設(shè)待修復(fù)集個(gè)數(shù)為m,節(jié)點(diǎn)數(shù)即屬性個(gè)數(shù)為n,一只螞蟻每次選擇下一步節(jié)點(diǎn)前都要計(jì)算所有剩余節(jié)點(diǎn)的選擇概率,螞蟻?zhàn)疃噙x擇n個(gè)節(jié)點(diǎn),每輪有K只螞蟻,迭代T輪,因此AS-NSH算法的時(shí)間復(fù)雜度為O(T×K×n2)。
通過(guò)AS-NSH算法能夠計(jì)算出目標(biāo)網(wǎng)絡(luò)的最優(yōu)修復(fù)集,即獲得了該網(wǎng)絡(luò)的安全加固策略,即對(duì)最優(yōu)修復(fù)集中的每個(gè)屬性,采取相應(yīng)的網(wǎng)絡(luò)安全加固措施進(jìn)行消除,保障目標(biāo)網(wǎng)絡(luò)安全。
設(shè)計(jì)兩組仿真實(shí)驗(yàn)分別驗(yàn)證本文提出的最小初始集生成方法和最優(yōu)修復(fù)集生成方法的性能。仿真實(shí)驗(yàn)的主機(jī)環(huán)境為Intel CoreTM2 Quad CPU 2.67 GHz,4.0 GB RAM,Windows 7操作系統(tǒng),采用Java編程實(shí)現(xiàn)。
實(shí)驗(yàn)?zāi)M生成5個(gè)不同規(guī)模的攻擊圖,屬性節(jié)點(diǎn)的最大入度和出度均為4,原子攻擊節(jié)點(diǎn)的最大入度為3,出度為1,原子攻擊的危險(xiǎn)系數(shù)為0到1之間的隨機(jī)值。攻擊圖的規(guī)模特征如表1所示,對(duì)提出的ant_path_search+MIRAS(APSM)算法、Obtain-Path(OP)算法[14]和精確求解的Network-Hardening(NH)算法[13]的時(shí)間性能進(jìn)行對(duì)比。APSM算法中,MIRAS算法的λ均設(shè)為1,蟻群算法的迭代計(jì)算次數(shù)T=100,螞蟻數(shù)量,其他參數(shù)設(shè)置如表2所示。
Table 1 Scale characteristics of simulated attack graphs表1 模擬攻擊圖的規(guī)模特征
圖2給出了NH算法、不同參數(shù)的OP算法和不同參數(shù)的APSM算法在5組攻擊圖上的時(shí)間性能情況,縱坐標(biāo)以指數(shù)形式表示。其中,OP1的有效路徑長(zhǎng)度n=10;OP2的有效路徑長(zhǎng)度n=15;APSM1的容忍系數(shù)μ=0.2,衰減系數(shù)γ=0.6;APSM2的容忍系數(shù)μ=0.1,衰減系數(shù)γ=0.8。其中,在后兩個(gè)實(shí)驗(yàn)攻擊圖上,NH算法在104s內(nèi)沒(méi)有給出結(jié)果??梢钥闯?,NH算法的運(yùn)行時(shí)間隨攻擊圖規(guī)模擴(kuò)大而急劇增長(zhǎng),可擴(kuò)展性較差,難以實(shí)際應(yīng)用。APSM算法和OP算法的運(yùn)行時(shí)間增長(zhǎng)較慢,均具有良好的可擴(kuò)展性,計(jì)算時(shí)間復(fù)雜度方面均優(yōu)于NH算法。
Table 2 Parameters of ant_path_search algorithm表2 蟻群算法的參數(shù)設(shè)置
Fig.2 CPU time of algorithms in different scales of attack graphs圖2 不同規(guī)模攻擊圖下各算法的CPU運(yùn)行時(shí)間
同時(shí)可以看出,OP算法和APSM算法的運(yùn)行時(shí)間受參數(shù)設(shè)置的影響明顯。對(duì)比OP1與OP2可知,OP算法的運(yùn)行時(shí)間隨有效路徑長(zhǎng)度n的增大而增長(zhǎng)。對(duì)比APSM1與APSM2可知,容忍系數(shù)μ越小,哀減系數(shù)γ越大,則算法運(yùn)行時(shí)間越長(zhǎng),反之則運(yùn)行時(shí)間越短。
整體上APSM算法的運(yùn)行時(shí)間稍長(zhǎng)于OP算法,這是因?yàn)锳PSM算法為了更準(zhǔn)確地對(duì)攻擊圖進(jìn)行風(fēng)險(xiǎn)評(píng)估,首先需要對(duì)攻擊圖中的最高危險(xiǎn)系數(shù)進(jìn)行計(jì)算,需要消耗少量時(shí)間,APSM算法在搜索時(shí)還需要不斷計(jì)算已生成路徑的危險(xiǎn)系數(shù),同樣需要消耗時(shí)間。雖然OP算法在時(shí)間性能上略優(yōu)于APSM算法,但OP算法生成的攻擊路徑還需要進(jìn)一步計(jì)算生成最小初始集,并且OP算法僅以路徑長(zhǎng)度作為風(fēng)險(xiǎn)評(píng)判的依據(jù),需要在算法運(yùn)行前對(duì)網(wǎng)絡(luò)狀況缺乏一定了解的情況下確定有效路徑長(zhǎng)度n。而APSM算法綜合了攻擊實(shí)施難度、后果嚴(yán)重程度、攻擊路徑長(zhǎng)度和目標(biāo)節(jié)點(diǎn)的重要程度來(lái)判斷攻擊路徑的危險(xiǎn)程度,并且可以在對(duì)網(wǎng)絡(luò)的安全狀況有一定了解的情況下設(shè)置參數(shù),結(jié)果更符合真實(shí)情況。因此,APSM算法在運(yùn)算結(jié)果的合理性上優(yōu)于OP算法。
實(shí)驗(yàn)使用10組數(shù)據(jù)對(duì)比AS-NSH算法和Weighted-Greedy(WG)算法[14]的性能,該數(shù)據(jù)集由布魯內(nèi)爾大學(xué)的Beasley教授在文獻(xiàn)[17]中提出,是一組求解集合覆蓋問(wèn)題的實(shí)例數(shù)據(jù),提供公開(kāi)下載。每組數(shù)據(jù)包括集合數(shù)m、元素?cái)?shù)n、每個(gè)元素的代價(jià)Wi、每個(gè)集合包含的元素和每組問(wèn)題的最優(yōu)解,最優(yōu)解即能夠覆蓋全部集合的最低總代價(jià)。對(duì)10組數(shù)據(jù)分別用WG算法和AS-NSH算法進(jìn)行求解,AS-NSH算法參數(shù)設(shè)置如下:迭代次數(shù)T設(shè)為100次,α為1,β為2,ρ為0.5,Q為1,K設(shè)為20,τ0設(shè)為K/Wg。實(shí)驗(yàn)結(jié)果如表3所示。
Table 3 Experimental results of two algorithms on different data sets表3 兩種算法在各實(shí)驗(yàn)數(shù)據(jù)集上的運(yùn)行結(jié)果
表3展示了各組數(shù)據(jù)的規(guī)模特征和兩種算法的運(yùn)行結(jié)果。算法下面的兩列數(shù)據(jù)分別為所生成的解C和生成解與最優(yōu)解相差的百分比S,其中AS-NSH算法的結(jié)果為20次運(yùn)算的平均值。對(duì)比實(shí)驗(yàn)結(jié)果可知,AS-NSH算法生成的解均明顯小于WG算法。AS-NSH算法的平均結(jié)果比最優(yōu)解高3.36%,而WG算法平均比最優(yōu)解高11.69%。相比于WG算法,ASNSH算法將生成策略與最優(yōu)策略的差距降低了71.3%。圖3展示了WG算法、AS-NSH算法在10組數(shù)據(jù)上運(yùn)行結(jié)果與最優(yōu)解的對(duì)比,其中橫坐標(biāo)為數(shù)據(jù)集編號(hào),縱坐標(biāo)為各算法的解。
Fig.3 Results of two algorithms and optimum圖3 兩種算法的結(jié)果與最優(yōu)解的對(duì)比
Fig.4 CPU time of two algorithms圖4 兩種算法的CPU時(shí)間
圖4展示了兩種算法在各組數(shù)據(jù)上運(yùn)行的平均時(shí)間。WG算法所需時(shí)間均小于1 s,明顯少于ASNSH算法。AS-NSH算法的運(yùn)行時(shí)間雖然較多,但依然在合理的范圍內(nèi),而結(jié)合之前的實(shí)驗(yàn)結(jié)果,WG算法計(jì)算出的結(jié)果并不理想。在實(shí)際應(yīng)用中,WG算法給出的加固策略會(huì)給用戶造成更大的修復(fù)代價(jià),而AS-NSH算法的結(jié)果更接近最優(yōu)解,能夠有效地降低所需的安全加固代價(jià),在資源有限的情況下獲得更優(yōu)的加固策略和更好的安全保障。對(duì)于一個(gè)實(shí)際的網(wǎng)絡(luò),生成安全加固策略需要的時(shí)間只要在合理的范圍內(nèi)即可,能夠計(jì)算出更好的解,盡可能地為用戶節(jié)約修復(fù)代價(jià)顯然更具實(shí)際意義。因此對(duì)于大規(guī)模網(wǎng)絡(luò)的安全加固,AS-NSH算法具有更大的實(shí)際應(yīng)用價(jià)值。
本文提出了一種面向大規(guī)模網(wǎng)絡(luò)安全加固的攻擊圖分析方法。首先提出了綜合考慮攻擊難度、攻擊后果嚴(yán)重程度、路徑長(zhǎng)度和目標(biāo)節(jié)點(diǎn)重要程度的風(fēng)險(xiǎn)評(píng)估方法,并通過(guò)啟發(fā)式算法計(jì)算最大風(fēng)險(xiǎn)系數(shù)的攻擊路徑,避免了精確搜索攻擊路徑的指數(shù)級(jí)時(shí)間復(fù)雜度問(wèn)題;然后結(jié)合最大風(fēng)險(xiǎn)系數(shù)、網(wǎng)絡(luò)規(guī)模、網(wǎng)絡(luò)性質(zhì)和實(shí)際需求設(shè)置危險(xiǎn)閾值,搜索高風(fēng)險(xiǎn)的最小初始集;最后提出啟發(fā)式算法求解最優(yōu)修復(fù)集問(wèn)題,計(jì)算低代價(jià)的網(wǎng)絡(luò)安全加固策略,避免精確求解的指數(shù)級(jí)時(shí)間復(fù)雜度問(wèn)題。實(shí)驗(yàn)結(jié)果表明,本文方法具有良好的可擴(kuò)展性,可應(yīng)用于大規(guī)模網(wǎng)絡(luò)中,與現(xiàn)有方法相比,能夠在可接受的時(shí)間內(nèi),有效地獲得更符合真實(shí)威脅情況的攻擊路徑。在本次選取的實(shí)驗(yàn)數(shù)據(jù)集上,相比于貪婪算法,本文方法將生成策略與最優(yōu)策略的差距減小了71.3%。綜上所述,本文方法具有更強(qiáng)的實(shí)際應(yīng)用價(jià)值。在后續(xù)的研究工作中,將進(jìn)一步完善攻擊路徑的風(fēng)險(xiǎn)評(píng)估方法,使之更加符合真實(shí)情況,同時(shí)對(duì)提出的各算法進(jìn)行優(yōu)化,進(jìn)一步降低網(wǎng)絡(luò)安全加固策略的代價(jià)。
[1]Zang Yuqing,Li Xiaoyu,Zheng Chen,et al.2010 security vulnerability analysis and prospect[J].Netinfo Security,2011(2):69-72.
[2]Helmer G,Wong J,Slagell M,et al.Asoftware fault tree approach to requirements analysis of an intrusion detection system[J].Requirements Engineering,2002,7(4):207-220.
[3]Schneier B.Attack trees[J].Dr Dobb's Journal,1999,24(12):21-29.
[4]Phillips C,Swiler L P.A graph-based system for networkvulnerability analysis[C]//Proceedings of the 1998 Workshop on New Security Paradigms,Charlottsville,Sep 22-25,1998.New York:ACM,1998:71-79.
[5]Ammann P,Wijesekera D,Kaushik S.Scalable,graph-based network vulnerability analysis[C]//Proceedings of the 9th ACM Conference on Computer and Communications Security,Washington,Nov 18-22,2002.New York:ACM,2002:217-224.
[6]Ingols K,Lippmann R,Piwowarski K.Practical attack graph generation for network defense[C]//Proceedings of the 22nd Annual Computer Security Applications Conference,Dec 11-15,2006.Washington:IEEE Computer Society,2006:121-130.
[7]Ou Xinming,Boyer W F,McQueen M A.A scalable approach to attack graph generation[C]//Proceedings of the 13th ACM Conference on Computer and Communications Security,Alexandria,Oct 30-Nov 3,2006.NewYork:ACM,2006:336-345.
[8]Ye Yun,Xu Xishan,Qi Zhichang,et al.Attack graph generation algorithm for large-scale network system[J].Journal of Computer Research and Development,2013,50(10):2133-2139.
[9]Ou Xinming,Govindavajhala S,AppelAW.MulVAL:a logicbased network security analyzer[C]//Proceedings of the 14th USENIX Security Symposium,Baltimore,Jul 31-Aug 5,2005.Berkeley:USENIXAssociation,2005,14:8.
[10]Jajodia S,Noel S.Topological vulnerability analysis:a powerful new approach for network attack prevention,detection,and response[J].Algorithms,Architectures,and Information Systems Security,2007,3:285-305.
[11]Jha S,Sheyner O,Wing J.Two formal analyses of attack graphs[C]//Proceedings of the 15th IEEE Computer Security Foundations Workshop,Cape Breton,Jun 24-26,2002.Washington:IEEE Computer Society,2002:49-63.
[12]Noel S,Jajodia S,O'Berry B,et al.Efficient minimum-cost network hardening via exploit dependency graphs[C]//Proceedings of the 19th Annual Computer Security Applications Conference,Las Vegas,Dec 8-12,2003.Washington:IEEE Computer Society,2003:86-95.
[13]Wang Lingyu,Noel S,Jajodia S.Minimum-cost network hardening using attack graphs[J].Computer Communications,2006,29(18):3812-3824.
[14]Chen Feng,Zhang Yi,Su Jinshu,et al.Two formal analyses of attack graphs[J].Journal of Software,2010,21(4):838-848.
[15]Wu Jinyu,Jin Shuyuan,Yang Zhi.Analysis of attack graphs based on network flow method[J].Journal of Computer Research and Development,2011,48(8):1497-1505.
[16]Wang Shuzhen,Zhang Zonghua,Kadobayash Y.Exploring attack graph for cost-benefit security hardening:a probabilistic approach[J].Computers&Security,2013,32(1):158-169.
[17]Beasley J E.An algorithm for set covering problem[J].European Journal of Operational Research,1987,31(1):85-93.
附中文參考文獻(xiàn):
[1]張玉清,李瀟宇,鄭晨,等.2010年安全漏洞態(tài)勢(shì)分析與展望[J].信息網(wǎng)絡(luò)安全,2011(1):69-72.
[8]葉云,徐錫山,齊治昌,等.大規(guī)模網(wǎng)絡(luò)中攻擊圖自動(dòng)構(gòu)建算法研究[J].計(jì)算機(jī)研究與發(fā)展,2013,50(10):2133-2139.
[14]陳鋒,張怡,蘇金樹(shù),等.攻擊圖的兩種形式化分析[J].軟件學(xué)報(bào),2010,21(4):838-848.
[15]吳金宇,金舒原,楊智.基于網(wǎng)絡(luò)流的攻擊圖分析方法[J].計(jì)算機(jī)研究與發(fā)展,2011,48(8):1497-1505.