本發(fā)明涉及一種基于kohonen神經(jīng)網(wǎng)絡(luò)的最佳攻擊路徑規(guī)劃方法,屬于信息安全
技術(shù)領(lǐng)域:
。
背景技術(shù):
:在對(duì)信息系統(tǒng)網(wǎng)絡(luò)進(jìn)行滲透時(shí),攻擊者都希望選擇代價(jià)小而回報(bào)大的攻擊路徑,其中,攻擊回報(bào)與攻擊代價(jià)只比最大的攻擊路徑為最佳攻擊路徑,目前的獲取最佳攻擊路徑的方法主要是基于攻擊圖來(lái)獲取所有的源節(jié)點(diǎn)與目標(biāo)節(jié)點(diǎn)間的攻擊路徑后,再選取這些路徑中的一條作為最佳攻擊路徑。目前,比較常用的網(wǎng)絡(luò)攻擊圖有:基于脆弱性的網(wǎng)絡(luò)攻擊圖以及基于網(wǎng)絡(luò)狀態(tài)的攻擊圖?;谏鲜鰞煞N攻擊圖的攻擊路徑或保護(hù)路徑的生成方法存在的問(wèn)題是:①生成速度慢;②為了解決狀態(tài)爆炸的問(wèn)題,采用限定攻擊路徑的方式,導(dǎo)致攻擊路徑包含不全等問(wèn)題。為了解決上述問(wèn)題對(duì)產(chǎn)生最佳攻擊路徑的影響,印度科學(xué)家nirnayghosh,sauravnanda,s.k.ghosh在2010年提出了基于最小攻擊圖(minimalattackgraph)并使用蟻群算法來(lái)對(duì)攻擊路徑進(jìn)行優(yōu)化以選取最佳攻擊路徑的方法。但是此方法由于算法開(kāi)銷太大,當(dāng)面對(duì)大規(guī)模計(jì)算機(jī)機(jī)群時(shí),即時(shí)使用最小攻擊圖,也無(wú)法快速擬合出最佳攻擊路徑。網(wǎng)絡(luò)攻擊圖的定義:攻擊圖g=(n,e),n是一組節(jié)點(diǎn),e是一組邊。n∈n,n為節(jié)點(diǎn),n是一個(gè)權(quán)限(privilege)節(jié)點(diǎn)或者漏洞利用(vulnerabilityexploit)節(jié)點(diǎn)。e為邊,e∈e,e是一個(gè)二元素元組<sourcenode,targetnode>。sourcenode和targetnode代表了邊e的源節(jié)點(diǎn)(source)和目標(biāo)節(jié)點(diǎn)(target)。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的是提出一種基于kohonen神經(jīng)網(wǎng)絡(luò)的最佳攻擊路徑規(guī)劃方法,通過(guò)生成一個(gè)k-攻擊圖,解決已有的最佳攻擊路徑規(guī)劃方法中存在的生成速度慢以及狀態(tài)爆炸或者攻擊路徑并非收斂到最優(yōu)等問(wèn)題。本發(fā)明的目的是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的。本發(fā)明的一種基于kohonen神經(jīng)網(wǎng)絡(luò)的最佳攻擊路徑規(guī)劃方法,具體操作為:步驟一、獲取網(wǎng)絡(luò)結(jié)構(gòu)。步驟1.1:獲取網(wǎng)絡(luò)系統(tǒng)中各主機(jī)的軟件應(yīng)用,建立軟件應(yīng)用與主機(jī)對(duì)應(yīng)表。所述網(wǎng)絡(luò)系統(tǒng)包括內(nèi)部網(wǎng)絡(luò)和“非軍事化區(qū)”(demilitarizedzone,dmz)。所述軟件應(yīng)用與主機(jī)對(duì)應(yīng)表包含:軟件應(yīng)用名稱和主機(jī)名稱。步驟1.2:獲取網(wǎng)絡(luò)系統(tǒng)中各主機(jī)之間以及網(wǎng)絡(luò)系統(tǒng)中各主機(jī)與網(wǎng)絡(luò)系統(tǒng)外部的攻擊者主機(jī)之間的會(huì)話鏈接,建立主機(jī)間會(huì)話鏈接表。所述主機(jī)間會(huì)話鏈接表包括:源主機(jī)名和目標(biāo)主機(jī)名。步驟二、收集網(wǎng)絡(luò)系統(tǒng)中主機(jī)及漏洞信息。具體為:步驟2.1:收集cve數(shù)據(jù)庫(kù)中的漏洞id,并將漏洞id轉(zhuǎn)換成七元組向量,用符號(hào)xm表示第m個(gè)漏洞的七元組向量;xm=<s,c,i,u,co,av,au>其中,s為cvss漏洞評(píng)分;c,i,u分別為漏洞對(duì)信息系統(tǒng)的機(jī)密性、完整性和可用性影響評(píng)分;co是利用漏洞的攻擊復(fù)雜度評(píng)分;av是漏洞攻擊向量評(píng)分;au代表攻擊是否需要身份認(rèn)證。步驟2.2:收集漏洞被利用后產(chǎn)生的概率最大的攻擊結(jié)果,并用二元組向量表示。所述二元組向量用符號(hào)ym表示,ym=<category,pr>。其中,category表示漏洞被利用后,獲取漏洞所在主機(jī)的權(quán)限評(píng)分,pr表示攻擊成功率。所述主機(jī)的權(quán)限評(píng)分是根據(jù)主機(jī)的權(quán)限對(duì)主機(jī)的機(jī)密性、完整性和可用性影響,由人為預(yù)先設(shè)定。步驟三、建立kohonen神經(jīng)網(wǎng)絡(luò)模型。所述kohonen神經(jīng)網(wǎng)絡(luò)模型為3層神經(jīng)網(wǎng)絡(luò),分別是:輸入層、kohonen層和輸出層。其中,輸入層包括7個(gè)輸入節(jié)點(diǎn);輸出層包括2個(gè)輸出節(jié)點(diǎn);kohonen層包括15-25個(gè)節(jié)點(diǎn)。步驟四、訓(xùn)練kohonen神經(jīng)網(wǎng)絡(luò)模型,得到訓(xùn)練好的kohonen神經(jīng)網(wǎng)絡(luò)模型。具體為:步驟4.1:設(shè)置kohonen神經(jīng)網(wǎng)絡(luò)模型的參數(shù),包括:kohonen層的最大學(xué)習(xí)率,用符號(hào)δmax表示,δmax∈(0,1);輸出層的最小學(xué)習(xí)率,用符號(hào)δmin表示;δmin∈(0,1);最大鄰域,用符號(hào)rmax表示,rmax∈(1,2);最小鄰域,用符號(hào)rmin表示,rmin∈(0,1)。步驟4.2:為kohonen神經(jīng)網(wǎng)絡(luò)模型各節(jié)點(diǎn)之間的權(quán)值設(shè)置初始值。具體為:用符號(hào)ωij表示輸入層節(jié)點(diǎn)到kohonen層節(jié)點(diǎn)間的權(quán)值,用符號(hào)ωjk表示kohonen層節(jié)點(diǎn)到輸出層節(jié)點(diǎn)間的權(quán)值,i∈[1,7],j∈[1,n],k∈[1,2],n為kohonen層節(jié)點(diǎn)的個(gè)數(shù)。隨機(jī)設(shè)置ωij和ωjk的值,滿足ωij∈(0,1),ωjk∈(0,1)。步驟4.3:設(shè)置總迭代次數(shù),用符號(hào)maxgen表示,maxgen≥5000。設(shè)置當(dāng)前迭代次數(shù),用符號(hào)l表示,l的初始值為1。將七元組向量xm=<s,c,i,u,co,av,au>作為輸入數(shù)據(jù),s,c,i,u,co,av,au分別對(duì)應(yīng)一個(gè)輸入節(jié)點(diǎn);將二元組向量ym=<category,pr>作為輸出數(shù)據(jù),category,pr分別對(duì)應(yīng)一個(gè)輸出節(jié)點(diǎn)。步驟4.4:通過(guò)自適應(yīng)函數(shù)來(lái)對(duì)鄰域進(jìn)行調(diào)整。自適應(yīng)函數(shù)如公式(1)所示。其中,r為kohonen層的最佳輸出節(jié)點(diǎn)的鄰域半徑;所述最佳輸出節(jié)點(diǎn)通過(guò)步驟4.5得到。步驟4.5:通過(guò)公式(2)尋找kohonen層的最佳輸出節(jié)點(diǎn)。posc=mindj(2)其中,posc表示kohonen層的最佳輸出節(jié)點(diǎn);dj表示輸入層的第i個(gè)輸入節(jié)點(diǎn)與kohonen層的第j個(gè)節(jié)點(diǎn)之間的歐氏距離,dj通過(guò)公式(3)計(jì)算得到。其中,xi表示輸入層的第i個(gè)輸入節(jié)點(diǎn)的值。步驟4.6:通過(guò)公式(4)尋找posc的鄰域節(jié)點(diǎn)。nc(t)=(t|find(norm(post,posc)<r)(4)其中,nc(t)表示posc的鄰域節(jié)點(diǎn);post表示kohonen層除了posc以外的任一節(jié)點(diǎn);norm(post,posc)表示posc和post之間歐幾里得距離;(t|find(norm(post,posc)<r)表示將所有滿足norm(post,posc)<r的節(jié)點(diǎn)作為posc的鄰域節(jié)點(diǎn)。步驟4.7:通過(guò)公式(5)和(6)對(duì)kohonen層的最佳輸出節(jié)點(diǎn)posc和posc的鄰域節(jié)點(diǎn)以及對(duì)應(yīng)的輸出層節(jié)點(diǎn)進(jìn)行權(quán)值修正。ωij=ωij+δmax(xi-ωij)(5)ωjk=ωjk+δmin(yk-ωjk)(6)其中,yk為輸出層第k個(gè)輸出節(jié)點(diǎn)的輸出值。步驟4.8:使迭代次數(shù)l的值自增1,然后重復(fù)執(zhí)行步驟4.2至步驟4.8的操作,直到迭代次數(shù)l與maxgen的值相等,結(jié)束操作。通過(guò)以上步驟的操作,得到訓(xùn)練好的kohonen神經(jīng)網(wǎng)絡(luò)模型。步驟五、使用訓(xùn)練好的kohonen神經(jīng)網(wǎng)絡(luò)模型,對(duì)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行預(yù)測(cè),得到輸出向量ym。步驟5.1:收集網(wǎng)絡(luò)系統(tǒng)中主機(jī)存在的漏洞,構(gòu)造漏洞信息表。所述漏洞信息表包括:漏洞id、主機(jī)名稱、軟件應(yīng)用名稱、主機(jī)權(quán)重。然后,利用漏洞id得到七元組向量,用符號(hào)xn表示第n個(gè)漏洞的七元組向量;xn=<s,c,i,u,co,av,au>。所述主機(jī)權(quán)重是根據(jù)主機(jī)所在位置及提供的服務(wù),由人為設(shè)定的值。步驟5.2:將七元組向量xn=<s,c,i,u,co,av,au>作為輸入數(shù)據(jù)輸入訓(xùn)練好的kohonen神經(jīng)網(wǎng)絡(luò)模型,s,c,i,u,co,av,au分別對(duì)應(yīng)一個(gè)輸入節(jié)點(diǎn);步驟5.3:運(yùn)行訓(xùn)練好的kohonen神經(jīng)網(wǎng)絡(luò)模型,得到的輸出結(jié)果為二元組向量,用符號(hào)yn表示,yn=<category,pr>。七元組向量xn與二元組向量yn一一對(duì)應(yīng)。步驟六、構(gòu)造k-攻擊圖。步驟6.1:使用步驟五中所述漏洞信息表和二元組向量yn構(gòu)造漏洞利用表。所述漏洞利用表包括:漏洞id、主機(jī)名稱、主機(jī)操作系統(tǒng)、主機(jī)權(quán)重、攻擊結(jié)果(category)和攻擊成功率(pr)。然后,在k-攻擊圖上顯示漏洞利用表中全部信息。步驟6.2:根據(jù)主機(jī)間會(huì)話鏈接表,在k-攻擊圖上繪制從源主機(jī)到目的主機(jī)之間的有向邊,在有向邊上標(biāo)注攻擊成功率(pr)。同時(shí),在每個(gè)節(jié)點(diǎn)上標(biāo)注:節(jié)點(diǎn)類型、主機(jī)名稱、攻擊結(jié)果(category)、主機(jī)應(yīng)用名稱和漏洞id。所述節(jié)點(diǎn)類型包括:權(quán)限(privilege)節(jié)點(diǎn)和漏洞利用(vulnerabilityexploit)節(jié)點(diǎn)。通過(guò)上述步驟的操作,完成k-攻擊圖。步驟七、根據(jù)k-攻擊圖構(gòu)造概率矩陣以及最佳原子攻擊矩陣。步驟7.1:通過(guò)公式(7),計(jì)算漏洞利用表中漏洞的權(quán)重。其中,wv表示漏洞利用表中第v個(gè)漏洞的權(quán)重;d表示包含漏洞v的主機(jī)的個(gè)數(shù);wg為包含漏洞v的第g個(gè)主機(jī)的權(quán)重,g為正整數(shù);f為主機(jī)g的第f種權(quán)限,f∈[1,h],h為主機(jī)g的權(quán)限數(shù)量;表示利用漏洞v獲取主機(jī)g的第f種權(quán)限對(duì)應(yīng)的評(píng)分值;wp為網(wǎng)絡(luò)系統(tǒng)中的第p臺(tái)主機(jī)權(quán)重,從主機(jī)權(quán)重表中獲取,p∈[1,e];e為網(wǎng)絡(luò)系統(tǒng)中主機(jī)的個(gè)數(shù)。步驟7.2:根據(jù)公式(8),構(gòu)造概率矩陣。其中,pvi′j′表示主機(jī)i′利用主機(jī)j′中漏洞v的概率,1≤i′,j′≤t,t為網(wǎng)絡(luò)系統(tǒng)中主機(jī)個(gè)數(shù)與網(wǎng)絡(luò)系統(tǒng)外部的攻擊者主機(jī)個(gè)數(shù)之和;cli′j′表示主機(jī)i′與主機(jī)j′之間的連通情況,cli′j′∈[0,1],0表示第i′臺(tái)主機(jī)與第j′臺(tái)主機(jī)之間處于未連通狀態(tài);1表示第i′臺(tái)主機(jī)與第j′臺(tái)主機(jī)之間處于連通狀態(tài);wi′為主機(jī)i′的主機(jī)權(quán)重;wj′為主機(jī)j′的主機(jī)權(quán)重。步驟7.3:從主機(jī)i′利用主機(jī)j′的各個(gè)漏洞的概率中,挑選出最大值,用符號(hào)p′ij′表示,然后用p′ij′構(gòu)成最佳原子攻擊矩陣。步驟八、得到最佳攻擊路徑。步驟8.1:根據(jù)最佳原子攻擊矩陣,遍歷從源節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的所有的可能攻擊路徑,并計(jì)算每條攻擊路徑的攻擊概率,挑選出最大值,用符號(hào)vhp表示;vhp對(duì)應(yīng)的攻擊路徑為最大概率攻擊路徑,用符號(hào)hp表示。步驟8.2:根據(jù)公式(9),尋找在最大概率攻擊路徑的鄰域路徑,用符號(hào)hn表示。nh(q)=(q|find(vhp-vq)<r′)(9)其中,r′為最大概率攻擊路徑的鄰域半徑,r′通過(guò)公式(10)計(jì)算得到;(q|find((vhp-vq)<r′))表示將所有滿足(vhp-vq)<r′的攻擊路徑作為最大概率攻擊路徑hp的鄰域路徑;nh(q)表示攻擊成功率在[vhp-r′,vhp]間的攻擊路徑,即最佳攻擊路徑。其中,wh為最大概率攻擊路徑hp中的主機(jī)權(quán)重和。本發(fā)明提出的基于kohonen神經(jīng)網(wǎng)絡(luò)的攻擊路徑規(guī)劃方法與已有技術(shù)相比較,具有以下優(yōu)點(diǎn):①生成的攻擊圖只保留最可能的攻擊節(jié)點(diǎn),避免了狀態(tài)爆炸問(wèn)題。②泛化性能強(qiáng)。③最優(yōu)攻擊路徑生成速度快。附圖說(shuō)明圖1為本發(fā)明具體實(shí)施方式中基于kohonen神經(jīng)網(wǎng)絡(luò)的攻擊路徑規(guī)劃方法的流程圖;圖2為本發(fā)明具體實(shí)施方式中的網(wǎng)絡(luò)拓?fù)鋱D;圖3為本發(fā)明具體實(shí)施方式中的k-攻擊圖;圖4為本發(fā)明具體實(shí)施方式中的攻擊概率矩陣;圖5為本發(fā)明具體實(shí)施方式中最優(yōu)原子攻擊矩陣。具體實(shí)施方式根據(jù)上述技術(shù)方案,下面結(jié)合附圖和實(shí)施實(shí)例對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。使用本發(fā)明提出的基于kohonen神經(jīng)網(wǎng)絡(luò)的攻擊路徑規(guī)劃方法尋找網(wǎng)絡(luò)系統(tǒng)中的最佳攻擊路徑,其操作流程如圖1所示,具體操作步驟如下:步驟一、獲取網(wǎng)絡(luò)結(jié)構(gòu)。如圖2所示,網(wǎng)絡(luò)系統(tǒng)中設(shè)置了初始的防御策略:外網(wǎng)人員可以訪問(wèn)dmz區(qū)中主機(jī)h2,h3和h4的瀏覽器和dns域名。主機(jī)h2和h3可以訪問(wèn)h4中的mail服務(wù)以及h5和h6上的sql服務(wù)。主機(jī)h7為ftp服務(wù)器,除主機(jī)h8外,其它的主機(jī)只能讀取和下載公開(kāi)文件,不能修改文件。主機(jī)h2,h3和h4都禁止訪問(wèn)管理服務(wù)器h8。h8可以訪問(wèn)其它主機(jī)上的各種服務(wù)。步驟1.1:獲取網(wǎng)絡(luò)系統(tǒng)中各主機(jī)的軟件應(yīng)用,建立軟件應(yīng)用與主機(jī)名稱對(duì)應(yīng)表,如表1所示。表1軟件應(yīng)用與主機(jī)對(duì)應(yīng)表軟件應(yīng)用名稱主機(jī)名稱iis7.0h2,h3bind9h4sendmail8.13h4mysql5.7h5,h6serv-u10.5h7ie6.0h8所述網(wǎng)絡(luò)系統(tǒng)包括內(nèi)部網(wǎng)絡(luò)和“非軍事化區(qū)”(demilitarizedzone,dmz)。所述軟件應(yīng)用與主機(jī)對(duì)應(yīng)表包含:軟件應(yīng)用名稱和主機(jī)名稱。步驟1.2:獲取網(wǎng)絡(luò)系統(tǒng)中各主機(jī)之間以及網(wǎng)絡(luò)系統(tǒng)中各主機(jī)與網(wǎng)絡(luò)系統(tǒng)外部的攻擊者主機(jī)之間的會(huì)話鏈接,建立主機(jī)間會(huì)話鏈接表,如表2所示。所述主機(jī)間會(huì)話鏈接表包括:源主機(jī)名和目標(biāo)主機(jī)名。表2主機(jī)間會(huì)話鏈接表步驟二、收集網(wǎng)絡(luò)系統(tǒng)中主機(jī)及漏洞信息。具體為:步驟2.1:收集cve數(shù)據(jù)庫(kù)中的漏洞id,并將漏洞id轉(zhuǎn)換成七元組向量,用符號(hào)xm表示第m個(gè)漏洞的七元組向量;xm=<s,c,i,u,co,av,au>其中,s為cvss漏洞評(píng)分;c,i,u分別為漏洞對(duì)信息系統(tǒng)的機(jī)密性、完整性和可用性影響評(píng)分;co是利用漏洞的攻擊復(fù)雜度評(píng)分;av是漏洞攻擊向量評(píng)分;au代表攻擊是否需要身份認(rèn)證。七元組向量xm根據(jù)表3確定。表3輸入輸出屬性取值表屬性可能值描述s0~10漏洞的cvss評(píng)分c無(wú)(0),部分(1),全部(2)漏洞對(duì)系統(tǒng)的機(jī)密性影響i無(wú)(0),部分(1),全部(2)漏洞對(duì)系統(tǒng)的完整性影響u無(wú)(0),部分(1),全部(2)漏洞對(duì)系統(tǒng)的可用性影響co低(1),中(2),高(3)利用漏洞的復(fù)雜度av本地(1),遠(yuǎn)程(2)漏洞的執(zhí)行類型au無(wú)(0),一次(1),多次(2)利用漏洞需要進(jìn)行身份驗(yàn)證的次數(shù)category取值如表5所示成功利用漏洞后獲得的權(quán)限pr0~1攻擊成功率步驟2.2:收集漏洞被利用后產(chǎn)生的概率最大的攻擊結(jié)果,并用二元組向量表示。所述二元組向量用符號(hào)ym表示,ym=<category,pr>。其中,category表示漏洞被利用后,獲取漏洞所在主機(jī)的權(quán)限評(píng)分,pr表示攻擊成功率。pr根據(jù)表4確定。主機(jī)的權(quán)限類別包括:斷開(kāi)(broken)、連接(connection)、用戶權(quán)限(user)、管理員權(quán)限(root)、拒絕服務(wù)攻擊(dos)和摧毀(crash),主機(jī)的權(quán)限評(píng)分是根據(jù)主機(jī)的權(quán)限對(duì)主機(jī)的機(jī)密性、完整性和可用性影響,由人為預(yù)先設(shè)定,本實(shí)施例中category根據(jù)表5確定。表4攻擊成功率賦值標(biāo)準(zhǔn)等級(jí)pr描述10.9不需要攻擊工具,有詳細(xì)的攻擊方法20.7有可用的攻擊工具和詳細(xì)的攻擊方法30.5無(wú)攻擊工具但有詳細(xì)的攻擊方法40.3弱點(diǎn)信息發(fā)布,粗略說(shuō)明攻擊方法50.1弱點(diǎn)信息發(fā)布,未給出攻擊方法表5主機(jī)權(quán)限評(píng)分表步驟三、建立kohonen神經(jīng)網(wǎng)絡(luò)模型。所述kohonen神經(jīng)網(wǎng)絡(luò)模型為3層神經(jīng)網(wǎng)絡(luò),分別是:輸入層、kohonen層和輸出層。其中,輸入層包括7個(gè)輸入節(jié)點(diǎn);輸出層包括2個(gè)輸出節(jié)點(diǎn);kohonen層包括18個(gè)節(jié)點(diǎn)。步驟四、訓(xùn)練kohonen神經(jīng)網(wǎng)絡(luò)模型,得到訓(xùn)練好的kohonen神經(jīng)網(wǎng)絡(luò)模型。具體為:步驟4.1:設(shè)置kohonen神經(jīng)網(wǎng)絡(luò)模型的參數(shù),包括:kohonen層的最大學(xué)習(xí)率,用符號(hào)δmax表示,δmax=0.1;輸出層的最小學(xué)習(xí)率,用符號(hào)δmin表示;δmin=0.05;最大鄰域,用符號(hào)rmax表示,rmax=1.5;最小鄰域,用符號(hào)rmin表示,rmin=0.4。步驟4.2:為kohonen神經(jīng)網(wǎng)絡(luò)模型各節(jié)點(diǎn)之間的權(quán)值設(shè)置初始值。具體為:用符號(hào)ωij表示輸入層節(jié)點(diǎn)到kohonen層節(jié)點(diǎn)間的權(quán)值,用符號(hào)ωjk表示kohonen層節(jié)點(diǎn)到輸出層節(jié)點(diǎn)間的權(quán)值,i∈[1,7],j∈[1,n],k∈[1,2],n為kohonen層節(jié)點(diǎn)的個(gè)數(shù)。隨機(jī)設(shè)置ωij和ωjk的值,滿足ωij∈(0,1),ωjk∈(0,1)。步驟4.3:設(shè)置總迭代次數(shù),用符號(hào)maxgen表示,maxgen=10000。設(shè)置當(dāng)前迭代次數(shù),用符號(hào)l表示,l的初始值為1。將七元組向量xm=<s,c,i,u,co,av,au>作為輸入數(shù)據(jù),s,c,i,u,co,av,au分別對(duì)應(yīng)一個(gè)輸入節(jié)點(diǎn);將二元組向量ym=<category,pr>作為輸出數(shù)據(jù),category,pr分別對(duì)應(yīng)一個(gè)輸出節(jié)點(diǎn)。步驟4.4:通過(guò)自適應(yīng)函數(shù)來(lái)對(duì)鄰域進(jìn)行調(diào)整。自適應(yīng)函數(shù)如公式(1)所示。其中,r為kohonen層的最佳輸出節(jié)點(diǎn)的鄰域半徑。步驟4.5:通過(guò)公式(2)尋找kohonen層的最佳輸出節(jié)點(diǎn)。posc=mindj(2)其中,posc表示kohonen層的最佳輸出節(jié)點(diǎn);dj表示輸入層的第i個(gè)輸入節(jié)點(diǎn)與kohonen層的第j個(gè)節(jié)點(diǎn)之間的歐氏距離,dj通過(guò)公式(3)計(jì)算得到。其中,xi表示輸入層的第i個(gè)輸入節(jié)點(diǎn)的值。步驟4.6:通過(guò)公式(4)尋找posc的鄰域節(jié)點(diǎn)。nc(t)=(t|find(norm(post,posc)<r)(4)其中,nc(t)表示posc的鄰域節(jié)點(diǎn);post表示kohonen層除了posc以外的任一節(jié)點(diǎn);norm(post,posc)表示posc和post之間歐幾里得距離;(t|find(norm(post,posc)<r)表示將所有滿足norm(post,posc)<r的節(jié)點(diǎn)作為posc的鄰域節(jié)點(diǎn)。步驟4.7:通過(guò)公式(5)和(6)對(duì)kohonen層的最佳輸出節(jié)點(diǎn)posc和posc的鄰域節(jié)點(diǎn)以及對(duì)應(yīng)的輸出層節(jié)點(diǎn)進(jìn)行權(quán)值修正。ωij=ωij+δmax(xi-ωij)(5)ωjk=ωjk+δmin(yk-ωjk)(6)其中,yk為輸出層第k個(gè)輸出節(jié)點(diǎn)的輸出值。步驟4.8:使迭代次數(shù)l的值自增1,然后重復(fù)執(zhí)行步驟4.2至步驟4.8的操作,直到迭代次數(shù)l與maxgen的值相等,結(jié)束操作。通過(guò)以上步驟的操作,得到訓(xùn)練好的kohonen神經(jīng)網(wǎng)絡(luò)模型。步驟五、使用訓(xùn)練好的kohonen神經(jīng)網(wǎng)絡(luò)模型,對(duì)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行預(yù)測(cè),得到輸出向量ym。步驟5.1:收集網(wǎng)絡(luò)系統(tǒng)中主機(jī)存在的漏洞,構(gòu)造漏洞信息表。所述漏洞信息表包括:漏洞id(cvenumber)、主機(jī)名稱(host)、軟件應(yīng)用名稱(service)、主機(jī)權(quán)重(weight),所述主機(jī)權(quán)重是根據(jù)主機(jī)所在位置及提供的服務(wù),由人為設(shè)定的值。本實(shí)施例中,漏洞信息表如表6所示。然后,利用漏洞id得到七元組向量,用符號(hào)xn表示第n個(gè)漏洞的七元組向量;xn=<s,c,i,u,co,av,au>。表6漏洞信息表步驟5.2:將七元組向量xn=<s,c,i,u,co,av,au>作為輸入數(shù)據(jù)輸入訓(xùn)練好的kohonen神經(jīng)網(wǎng)絡(luò)模型,s,c,i,u,co,av,au分別對(duì)應(yīng)一個(gè)輸入節(jié)點(diǎn);步驟5.3:運(yùn)行訓(xùn)練好的kohonen神經(jīng)網(wǎng)絡(luò)模型,得到的輸出結(jié)果為二元組向量,用符號(hào)yn表示,yn=<category,pr>。七元組向量xn與二元組向量yn一一對(duì)應(yīng)。步驟六、構(gòu)造k-攻擊圖。步驟6.1:使用步驟五中所述漏洞信息表和二元組向量yn構(gòu)造漏洞利用表。所述漏洞利用表包括:漏洞id(cvenumber)、主機(jī)名稱(host)、軟件應(yīng)用名稱(service)、主機(jī)權(quán)重(weight)、攻擊結(jié)果(category)和攻擊成功率(pr),具體如表7所示。然后,在k-攻擊圖上顯示漏洞利用表中全部信息。表7漏洞利用表步驟6.2:根據(jù)主機(jī)間會(huì)話鏈接表,在k-攻擊圖上繪制從源主機(jī)到目的主機(jī)之間的有向邊,在有向邊上標(biāo)注攻擊成功率(pr)。同時(shí),在每個(gè)節(jié)點(diǎn)上標(biāo)注:節(jié)點(diǎn)類型、主機(jī)名稱(host)、攻擊結(jié)果(category)、主機(jī)應(yīng)用名稱(service)和漏洞id(cvenumber)。所述節(jié)點(diǎn)類型包括:權(quán)限(privilege)節(jié)點(diǎn)和漏洞利用(vulnerabilityexploit)節(jié)點(diǎn)。通過(guò)上述步驟的操作,完成k-攻擊圖,攻擊圖如圖3所示。步驟七、根據(jù)k-攻擊圖構(gòu)造概率矩陣以及最佳原子攻擊矩陣。步驟7.1:通過(guò)公式(7),計(jì)算漏洞利用表中漏洞的權(quán)重。其中,wv表示漏洞利用表中第v個(gè)漏洞的權(quán)重;d表示包含漏洞v的主機(jī)的個(gè)數(shù);wg為包含漏洞v的第g個(gè)主機(jī)的權(quán)重,g為正整數(shù);f為主機(jī)g的第f種權(quán)限,f∈[1,h],h為主機(jī)g的權(quán)限數(shù)量;表示利用漏洞v獲取主機(jī)g的第f種權(quán)限對(duì)應(yīng)的評(píng)分值;wp為網(wǎng)絡(luò)系統(tǒng)中的第p臺(tái)主機(jī)權(quán)重,從主機(jī)權(quán)重表中獲取,p∈[1,e];e為網(wǎng)絡(luò)系統(tǒng)中主機(jī)的個(gè)數(shù)。步驟7.2:根據(jù)公式(8),構(gòu)造概率矩陣。其中,pvi′j′表示主機(jī)i′利用主機(jī)j′中漏洞v的概率,1≤i′,j′≤t,t為網(wǎng)絡(luò)系統(tǒng)中主機(jī)個(gè)數(shù)與網(wǎng)絡(luò)系統(tǒng)外部的攻擊者主機(jī)個(gè)數(shù)之和;cli′j′表示主機(jī)i′與主機(jī)j′之間的連通情況,cli′j′∈[0,1],0表示第i′臺(tái)主機(jī)與第j′臺(tái)主機(jī)之間處于未連通狀態(tài);1表示第i′臺(tái)主機(jī)與第j′臺(tái)主機(jī)之間處于連通狀態(tài);wi′為主機(jī)i′的主機(jī)權(quán)重;wj′為主機(jī)j′的主機(jī)權(quán)重。概率矩陣如圖4所示。圖4中,三個(gè)軸分別是:源主機(jī)名稱(sourcehostname)、目標(biāo)主機(jī)名稱(targethostname)和概率(probability)。圖4中的概率(probability)即pvi′j′。步驟7.3:從主機(jī)i′利用主機(jī)j′的各個(gè)漏洞的概率中,挑選出最大值,用符號(hào)p′ij′表示,然后用p′ij′構(gòu)成最佳原子攻擊矩陣。最佳原子攻擊(optimalatomicattack)矩陣如圖5所示。圖5中,三個(gè)軸分別是:源主機(jī)名稱(sourcehostname)、目標(biāo)主機(jī)名稱(targethostname)和概率(probability)。圖5中的概率(probability)即p′ij′。步驟八、得到最佳攻擊路徑。步驟8.1:根據(jù)最佳原子攻擊矩陣,遍歷從源節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的所有的可能攻擊路徑,如表8所示,并計(jì)算每條攻擊路徑的攻擊概率,挑選出最大值,用符號(hào)vhp表示,vhp=0.5402;vhp對(duì)應(yīng)的攻擊路徑為最大概率攻擊路徑,用符號(hào)hp表示,hp=no.8=(h1→h4→h6)。表6可能攻擊路徑序號(hào)目標(biāo)節(jié)點(diǎn)攻擊路徑攻擊概率1h8(h1,h8)0.13422h5(h1,h2)(h2,h3)(h3,h5)0.38333h5(h1,h2)(h2,h5)0.51874h5(h1,h3)(h3,h5)0.50365h6(h1,h2)(h2,h3)(h3,h4)(h4,h6)0.29546h6(h1,h2)(h2,h4)(h4,h6)0.42077h6(h1,h3)(h3,h4)(h4,h6)0.38868h6(h1,h4)(h4,h6)0.5402步驟8.2:根據(jù)公式(9),尋找在最大概率攻擊路徑的鄰域路徑,用符號(hào)hn表示。nh(q)=(q|find(vhp-vq)<r′)(9)其中,r′為最大概率攻擊路徑的鄰域半徑,r′通過(guò)公式(4)計(jì)算得到,r′=0.4;(q|find((vhp-vq)<r′))表示將所有滿足(vhp-vq)<r′的攻擊路徑作為最大概率攻擊路徑hp的鄰域路徑;nh(q)表示攻擊成功率在[vhp-r′,vhp]間的攻擊路徑,即最佳攻擊路徑:nh(q)=(no.3,no.4,no.8)。其中,wh為最大概率攻擊路徑hp中的主機(jī)權(quán)重和。當(dāng)前第1頁(yè)12