張恒巍,張 健,王晉東,何嘉婧
(信息工程大學(xué),河南 鄭州450001)
風(fēng)險矩陣是在鄰接矩陣的基礎(chǔ)上建立的描述網(wǎng)絡(luò)系統(tǒng)漏洞[1]之間利用關(guān)系的數(shù)學(xué)工具,葉云等[2]提出一種基于攻擊圖的風(fēng)險鄰接矩陣方法,并通過實驗驗證了所提方法的合理性和有效性。潘曉中等[3]構(gòu)建了一個攻擊路徑漏洞矩陣,行表示攻擊主機漏洞,列表示下一步要攻擊的主機漏洞,但是該矩陣中元素為1或0,只表示漏洞是否連通而不能體現(xiàn)漏洞之間連通率的概念。本文風(fēng)險矩陣的行和列對應(yīng)系統(tǒng)漏洞,風(fēng)險矩陣中元素為漏洞之間連通度。用風(fēng)險矩陣表示漏洞之間的利用關(guān)系更加清晰直觀,便于進行后續(xù)運算。
攻擊圖是一種基于模型的網(wǎng)絡(luò)脆弱性分析技術(shù)[4],能夠把網(wǎng)絡(luò)中的漏洞關(guān)聯(lián)起來進行分析,分析目標網(wǎng)絡(luò)內(nèi)脆弱性之間的關(guān)系和由此產(chǎn)生的潛在威脅,使安全管理人員能夠直觀地把握網(wǎng)絡(luò)漏洞之間的關(guān)系。對于攻擊圖在風(fēng)險分析中的應(yīng)用研究,王永杰等[5]介紹了利用攻擊圖模型方法分析計算機網(wǎng)絡(luò)攻擊行為的基本原理,給出了攻擊圖生成算法,研究了利用攻擊圖對網(wǎng)絡(luò)系統(tǒng)安全性進行風(fēng)險分析的方法。何江湖等[6]提出了一種基于漏洞關(guān)聯(lián)攻擊代價的網(wǎng)絡(luò)攻擊圖的自動生成算法,有效結(jié)合漏洞之間的相關(guān)性,科學(xué)地評估攻擊代價。王會梅等[7]提出了擴展網(wǎng)絡(luò)攻擊圖生成方法,并提出一種基于擴展網(wǎng)絡(luò)攻擊圖的網(wǎng)絡(luò)攻擊策略生成算法。
本文針對信息系統(tǒng)安全漏洞的量化評估問題,對漏洞的連通度和價值進行了定義,提出了利用漏洞攻擊圖對安全漏洞之間的影響和相互作用進行定量分析的方法。在此基礎(chǔ)上,通過設(shè)計的兩種連通度算子,實現(xiàn)了對漏洞連通度的量化計算,并提出了基于連通度算子的漏洞風(fēng)險評估算法 (vulnerability risk evaluation algorithm based on connectivity operator,VREA-CO),實現(xiàn)了對信息系統(tǒng)中安全漏洞的自身風(fēng)險和傳播風(fēng)險的準確、全面評估,能為系統(tǒng)安全人員識別漏洞的風(fēng)險程度,為有針對性地進行安全防御提供有效幫助。
漏洞連通度[9]表示攻擊者利用一個漏洞攻擊另一個漏洞的可能性。本文參考CVSS的漏洞評價方式,定義的漏洞連通性和價值評價體系如圖1所示。CVSS是由美國國家基礎(chǔ)設(shè)施顧問委員會NIAC 提出的,旨在提供一套開放的通用的脆弱點評分框架機制,其對漏洞的基本度量包含6項主要指標:入侵途徑AccessVector(AV)、身份認證Authentication (AU)、攻 擊復(fù)雜度AccessComplexity (AC)、機密性影響ConfImpact (CI)、完整性影響IntegImpact(II)、可用性影響AvailImpact(AI)。
定義1 漏洞連通度。在復(fù)雜的網(wǎng)絡(luò)拓撲結(jié)構(gòu)中下,攻擊者需要利用多個漏洞節(jié)點達到攻擊目標,攻擊者利用一個漏洞節(jié)點攻擊另一個與該節(jié)點相鄰接的漏洞節(jié)點的可能性稱為漏洞連通度。漏洞連通度與節(jié)點之間的信息可獲取性、主機可連接性、漏洞可利用性相關(guān),如圖1所示。
信息可獲取性以NVD 數(shù)據(jù)庫的AccessVector(AV)屬性表示,參考CVSS其推薦分值為0.395 (local),0.646(adjacent network),1.0 (Network)。主 機 可 連 接 性 以NVD 數(shù)據(jù)庫的Authentication (AU)屬性表示,參考CVSS 其 推 薦 分 值 為0.45 (multiple),0.56 (single),0.704 (none)。漏 洞 可 利 用 性 以NVD 數(shù) 據(jù) 庫 的Access-Complexity (AC)屬 性 表 示,CVSS 推 薦 分 值 為0.35(high),0.61 (medium),0.71 (low)。因此,節(jié)點i和節(jié)點j 之間的連通度pij可表示為
其中pij∈(0,1),主機可連接性與漏洞連通度呈正相關(guān)關(guān)系,信息可獲取性、漏洞可利用性與漏洞連通度呈負相關(guān)關(guān)系。一般來說,兩個漏洞之間的可連接性越強、信息獲得越容易、漏洞利用難度越小,則攻擊者有更大的概率選擇攻擊該漏洞,漏洞之間的連通度更大;如果攻擊者難以通過主機認證、難以獲取漏洞信息、漏洞利用難度大,則攻擊者有較小的概率選擇攻擊該漏洞,漏洞之間的連通度較小。
圖1 漏洞間連通性評價
圖2 漏洞價值評價
系統(tǒng)的漏洞之間有著復(fù)雜的關(guān)聯(lián)關(guān)系,攻擊者可以利用這種關(guān)聯(lián)關(guān)系,從一個已經(jīng)得手的安全漏洞出發(fā),攻擊與之關(guān)聯(lián)的漏洞,進而形成一條攻擊鏈,直到達到攻擊目標,多條攻擊鏈形成攻擊圖。
定義3 漏洞節(jié)點。定義漏洞節(jié)點N ={v,r,u},其中v代表節(jié)點對應(yīng)的漏洞名稱和CVE 編號,一般一個節(jié)點對應(yīng)一個系統(tǒng)漏洞。r為該節(jié)點處的主機資產(chǎn)或系統(tǒng)資源,是攻擊者和防御者希望獲得或者保護的對象。u 表示漏洞價值,即一旦該漏洞被滲透將會對系統(tǒng)造成的損失或影響。
定義4 漏洞攻擊圖。漏洞攻擊圖 (vulnerability attack graph,VAG)以漏洞節(jié)點N 作為圖的節(jié)點,以攻擊路徑作為有向邊,因此是一個有向圖AG ={N,L}。其中N =(n1,n2,…,nm)為節(jié)點集合,表示該網(wǎng)絡(luò)存在的所有漏洞。其中入度為0的節(jié)點稱為起始節(jié)點,出度為0的節(jié)點稱為目標節(jié)點,入度和出度均不為0的節(jié)點稱為過程節(jié)點。L 為有向邊的集合,表示漏洞之間的利用關(guān)系。
根據(jù)英國標準協(xié)會 (BSI)針對信息安全管理而制定的標準BS7799,指出信息系統(tǒng)風(fēng)險是威脅利用信息系統(tǒng)的漏洞攻擊資產(chǎn)而導(dǎo)致的安全事件及其對系統(tǒng)的影響。攻擊者總是試圖利用該資產(chǎn)對象存在的漏洞以獲得收益,在該節(jié)點處 形 成 “威 脅 (Threat)-漏 洞 (Vulnerability)-資 產(chǎn)(Asset)”風(fēng)險鏈,節(jié)點模型如圖3所示。
圖3 漏洞節(jié)點模型
定義5 鄰接矩陣。設(shè)VAG 是由若干漏洞組成的漏洞攻擊圖,M 為VAG 的鄰接矩陣,矩陣元素表示2個有直接利用關(guān)系的節(jié)點之間連通度。漏洞攻擊圖VAG 和鄰接矩陣M 之間有以下特性:
(1)漏洞攻擊圖和鄰接矩陣M 一一對應(yīng);
(2)鄰接矩陣M 中,如果有元素全為零的列,其所對應(yīng)的節(jié)點為源節(jié)點或輸入節(jié)點;如果有元素全為零的行,其所對應(yīng)的節(jié)點稱為匯點或輸出節(jié)點;
(3)如果在漏洞攻擊圖VAG 中,從ni出發(fā)經(jīng)過k條邊可達到nj,則稱ni到nj存在長度為k的通路,此時矩陣M 的第i行第j 列元素為pij,否則為0;
(4)矩陣元素表示2個漏洞之間的有向利用關(guān)系。
漏洞的鄰接矩陣可表示為
其中,對角線上的pii均為零,v為漏洞數(shù),pij為漏洞ni和nj之間的連通度。
在文獻 [6]中,作者針對單步風(fēng)險鄰接矩陣和多步風(fēng)險鄰接矩陣提出了一種多步風(fēng)險鄰接矩陣MRAM 中元素的計算方法,其計算結(jié)果為2 個節(jié)點之間的最大可能損失。本文將節(jié)點連通性與節(jié)點損失進行獨立分析,作為評估漏洞風(fēng)險的相互獨立的兩個因素。在定義鄰接節(jié)點連通度的基礎(chǔ)上,可以得到漏洞攻擊圖中任意兩個節(jié)點之間的綜合連通度,其計算方法以圖4中的例子進行說明。
圖4 多路徑節(jié)點連通性分析
如圖4所示,節(jié)點1和節(jié)點5 之間共有3 條通路,由概率計算可知節(jié)點1到節(jié)點5的三步連通度為
兩步連通度為
考慮到這兩個節(jié)點之間還有一條步長為1的通路,則節(jié)點1到節(jié)點5的綜合連通度為
在上述連通度分析的基礎(chǔ)上,可以定義風(fēng)險矩陣運算的連通度算子。
定義6 連通度算子。在矩陣乘法的基礎(chǔ)上,定義矩陣的連通度乘法算子,則兩個矩陣之間的運算結(jié)果為
在矩陣加法的基礎(chǔ)上,定義風(fēng)險矩陣的連通度加法算子⊕,則多個矩陣之間的⊕運算結(jié)果為
單步風(fēng)險矩陣最大的缺陷在于只能表示相鄰兩個節(jié)點之間的連通性,而無法表示攻擊圖中有多步攻擊關(guān)系漏洞之間的連通性。如果風(fēng)險矩陣中的元素表示沿著攻擊圖中的某條路徑進行若干次滲透發(fā)生的可能性值,就稱這樣的鄰接矩陣為多步風(fēng)險矩陣。
由風(fēng)險矩陣元素的意義可知,pij表示有直接利用關(guān)系的兩個節(jié)點ni和nj之間的連通度。因此節(jié)點間步長為2的兩步風(fēng)險矩陣可計算得
其中p(2)ij表示節(jié)點i到節(jié)點j 經(jīng)步長為2的路徑的兩步連通度。在兩步風(fēng)險矩陣中,對于攻擊圖中有多個路徑連通的兩個節(jié)點之間的連通度如下
綜上可知,M(r)中元素意義為步長為r的任意兩個節(jié)點之間的r步連通度。如果n為漏洞攻擊圖的的最大步長,則M(n)中元素意義為攻擊圖中任意兩個節(jié)點之間的n步連通度。
通過定義漏洞的自身風(fēng)險[9]和傳播風(fēng)險[10]概念,對漏洞的全局風(fēng)險進行評價。
定義7 漏洞風(fēng)險。漏洞風(fēng)險Rw包括該漏洞的自身風(fēng)險Rs和傳播風(fēng)險Ro[10]。漏洞自身風(fēng)險表示來自其它漏洞的威脅影響該漏洞所導(dǎo)致的系統(tǒng)風(fēng)險,其關(guān)聯(lián)因素為其它漏洞與該漏洞的連通度、漏洞自身價值;漏洞傳播風(fēng)險表示漏洞通過有向邊傳遞給其它漏洞的風(fēng)險,其關(guān)聯(lián)因素為該漏洞與其它漏洞的連通度、受影響漏洞的價值。漏洞全局風(fēng)險為這2種風(fēng)險的和
漏洞自身風(fēng)險可以表示為該漏洞發(fā)生風(fēng)險事件的概率與風(fēng)險事件發(fā)生后系統(tǒng)損失的乘積。攻擊者會通過不同路徑攻擊漏洞,因此一個漏洞的自身風(fēng)險可能來自于不同的風(fēng)險源。風(fēng)險源節(jié)點l導(dǎo)致評估目標節(jié)點k 發(fā)生風(fēng)險事件的概率可以用l和k 的連通度表示,該事件發(fā)生后的系統(tǒng)損失可以用節(jié)點k的漏洞價值來表示,則該事件的風(fēng)險為
所有可能傳播到節(jié)點k 的風(fēng)險之和即為該節(jié)點的自身風(fēng)險Rs(k)
則信息系統(tǒng)漏洞節(jié)點的自身風(fēng)險向量為
對單步風(fēng)險矩陣M 迭代進行 運算,可得漏洞之間的r步風(fēng)險矩陣為
其中r為風(fēng)險矩陣步長。設(shè)M0表示系統(tǒng)任意2個節(jié)點之間的連通度,將M ~M(n)的所有風(fēng)險矩陣作⊕運算,其中n為攻擊圖中的最大步長,可得攻擊圖的綜合連通度風(fēng)險矩陣M0
其中矩陣元素βij 表示節(jié)點i和節(jié)點j 之間的綜合連通度
其中,如果兩條路徑所經(jīng)過節(jié)點有重疊,則認為這是獨立并聯(lián)的兩條不同路徑。攻擊者可以通過漏洞間的利用關(guān)系進行滲透,因此用漏洞傳播風(fēng)險表示攻擊者從被滲透漏洞傳播到其它漏洞所造成的風(fēng)險,張永錚等[13]提出了由風(fēng)險網(wǎng)絡(luò)和風(fēng)險傳播算法構(gòu)成的風(fēng)險傳播模型,本文則嘗試利用風(fēng)險矩陣來對傳播風(fēng)險進行分析。設(shè)信息系統(tǒng)漏洞的價值向量為U = μ(1) μ(2) … μ(v[]) ,其中v為漏洞數(shù),μ(k)為第k個漏洞價值,則漏洞k的傳播風(fēng)險向量為
其中傳播風(fēng)險向量中的元素Ro(k)表示漏洞k 對信息系統(tǒng)其它漏洞造成的傳播風(fēng)險
漏洞k對系統(tǒng)的全局風(fēng)險向量為
算法輸入:單步風(fēng)險矩陣M ,漏洞價值向量U ,攻擊圖最大步長n,漏洞數(shù)v
算法輸出:漏洞全局風(fēng)險向量V(Rw)算法描述:
(1)START
(2)初始化參數(shù):
(3)For(i=1;i=i+1;i<=n)
(4) M(i)=M(i-1)M ;
(5) M0=M0⊕M(i);
(6)End For
(7)For(k=1;k=k+1;k<=v)
(8) For(l=1;l=l+1;l<=v)
(9) Rs(l,k)=βlk×μ(k);
(10) Rs(k)=Rs(k)+Rs(l,k);
(11) Ro(k,l)=βkl×μ(l);
(12) Ro(k)=Ro(k)+Ro(k,l);
(13) End For
(14)Rw(k)=Rs(k)+Ro(k);
(15)End For
(16)輸出V(Rw)= [Rw(1) Rw(2) … Rw(v)]
(17)END
為說明漏洞分析算法在實際中的應(yīng)用,可以對某網(wǎng)絡(luò)的漏洞進行掃描。根據(jù)Nessus掃描結(jié)果得到主機的端口和漏洞信息,假設(shè)網(wǎng)絡(luò)主要存在5個系統(tǒng)漏洞。提取NVD 和Bugtraq漏洞庫中的信息得到漏洞利用模式,參照CVSS評分標準對各個漏洞進行評價,各漏洞和有向邊的屬性值見表1和表2。
表1 漏洞價值描述
表2 有向邊連通度
由上述各漏洞及有向邊的漏洞值,可以計算各個漏洞價值和漏洞之間連通度,通過麻省理工學(xué)院開發(fā)的NetSPA系統(tǒng)生成漏洞攻擊[11],如圖5所示。
圖5 漏洞攻擊
該漏洞攻擊圖所對應(yīng)的單步風(fēng)險矩陣M 和漏洞價值向量U 為
該漏洞攻擊圖的最大步長n=3,漏洞總數(shù)v=5。將單步風(fēng)險矩陣M 、漏洞價值向量U 、最大步長n 和漏洞總數(shù)v 輸入漏洞風(fēng)險評估算法VREA-CO,可得系統(tǒng)漏洞的全局風(fēng)險向量
則漏洞的嚴重性程度為n1>n5>n4>n3>n2,假設(shè)風(fēng)險的顯著性閾值為0.8,則可知n1和n5漏洞對網(wǎng)絡(luò)系統(tǒng)的影響最為顯著。兩者所對應(yīng)的資產(chǎn)分別為網(wǎng)絡(luò)防火墻和DB Server服務(wù)器,前者為數(shù)據(jù)庫服務(wù)器,后者為網(wǎng)絡(luò)進出的門戶,其重要性在本算法中得以驗證。這2個漏洞發(fā)生的風(fēng)險往往會給網(wǎng)絡(luò)系統(tǒng)帶來難以挽回的重大損失,是管理者應(yīng)該進行重點防御的對象。
為評估網(wǎng)絡(luò)系統(tǒng)中安全漏洞所造成的風(fēng)險,本文提出了一種基于連通度算子的風(fēng)險評估方法,該方法包括漏洞攻擊圖、連通度算子和漏洞風(fēng)險評估算法。利用該方法,風(fēng)險評估人員可以基于漏洞攻擊圖對網(wǎng)絡(luò)系統(tǒng)中的漏洞利用關(guān)系進行定量分析,并通過連通度算子對漏洞的自身風(fēng)險和傳播風(fēng)險進行計算,最后使用風(fēng)險評估算法VREACO 綜合得出網(wǎng)絡(luò)系統(tǒng)漏洞的全局風(fēng)險向量。該方法可以有效識別不同安全漏洞對網(wǎng)絡(luò)系統(tǒng)的影響程度,幫助管理者有針對性地實施重點防御。
本文提出的方法主要有以下2個方面的特點和優(yōu)勢:
(1)提出通過CVSS評價體系對漏洞攻擊圖的節(jié)點連通度進行評價。借鑒CVSS中AV、AU 和AC 這3個屬性對漏洞節(jié)點間的信息可獲取性、主機可連接性和漏洞可利用性進行定量分析,提出了一種節(jié)點連通度的計算方法,相比文獻 [9]中給出的節(jié)點連通性量化方法,文中基于CVSS的量化方法更具權(quán)威性和可信性,應(yīng)用更加簡單方便。
(2)提出風(fēng)險矩陣連通度算子和漏洞風(fēng)險評估算法VREA-CO。利用連通度算子可以對任意2個漏洞間的連通度進行計算,為漏洞風(fēng)險的定量評估奠定基礎(chǔ);漏洞風(fēng)險評估算法VREA-CO 能夠綜合漏洞的自身風(fēng)險和傳播風(fēng)險,對漏洞的系統(tǒng)風(fēng)險進行全面評估,評估結(jié)果更加合理、可信。
[1]ZHANG Youchun,WEI Qiang.Architecture of vulnerability discovery technique for information systems [J].Journal on Communications,2011,32 (2):42-47 (in Chinese). [張友春,魏強.信息系統(tǒng)漏洞挖掘技術(shù)體系研究 [J].通信學(xué)報,2011,32 (2):42-47.]
[2]YE Yun,XU Xishan.Research on the risk adjacency matrix based on attack graphs [J].Journal on Communications,2011,32(5):112-120(in Chinese).[葉云,徐錫山.基于攻擊圖的風(fēng)險鄰接矩陣研究[J].通信學(xué)報,2011,32 (5):112-120.]
[3]PAN Xiaozhong,HE Jianghu.Visualization of risk assessment using matrix based on attack graph [J].Journal of Chinese Computer Systems,2013,34 (3):553-556 (in Chinese).[潘曉中,何江湖.攻擊圖在風(fēng)險評估中的矩陣可視化 [J].小型微型計算機系統(tǒng),2013,34 (3):553-556.]
[4]CHEN Feng,ZHANG Yi.Research of quantitative vulnerability assessment based on attack graphs [J].Computer Engineering and Science,2010,30 (10):8-11 (in Chinese).[陳鋒,張怡.基于攻擊圖的網(wǎng)絡(luò)脆弱性量化評估研究 [J].計算機工程與科學(xué),2010,30 (10):8-11.]
[5]WANG Yongjie,XIAN Ming.Study of network security evaluation based on attack graph model[J].Journal on Communi-cations,2007,28 (3):29-34 (in Chinese).[王永杰,鮮明.基于攻擊圖模型的網(wǎng)絡(luò)安全評估研究 [J].通信學(xué)報,2009,28 (3):29-34.]
[6]HE Jianghu,PAN Xiaozhong.Algorithm of attack graph generation based on attack cost of vulnerability relations [J].Application Research of Computers,2012,29 (5):1907-1909(in Chinese).[何江湖,潘曉中.基于漏洞關(guān)聯(lián)攻擊代價的攻擊圖 生 成 算 法 [J].計 算 機 應(yīng) 用 研 究,2012,29 (5):1907-1909.]
[7]WANG Huimei,XIAN Ming.A network attack decision-making algorithm based on the extended attack graph [J].Journal of Electronics &Information Technology,2011,33 (12):3015-3021 (in Chinese).[王會梅,鮮明.基于擴展網(wǎng)絡(luò)攻擊圖的網(wǎng)絡(luò)攻擊策略生成算法 [J].電子與信息學(xué)報,2011,33(12):3015-3021.]
[8]ZHANG Yongzheng,F(xiàn)ANG Binxing.Research on network node correlation in network risk assessment[J].Chinese Journal of Computers,2007,30 (2):234-240 (in Chinese).[張永錚,方濱興.網(wǎng)絡(luò)風(fēng)險評估中網(wǎng)絡(luò)節(jié)點關(guān)聯(lián)性的研究 [J].計算機學(xué)報,2007,30 (2):234-240.]
[9]ZHOU Liang,LI Jun’e.Research on quantitative assessment model on vulnerability risk for information system [J].Journal on Communications,2009,30 (2):71-76 (in Chinese).[周亮,李俊娥.信息系統(tǒng)漏洞風(fēng)險定量評估模型研究 [J].通信學(xué)報,2009,30 (2):71-76.]
[10]ZHANG Yongzheng,F(xiàn)ANG Binxing.Risk propagation model for assessing network information systems[J].Journal of Software,2007,18 (1):137-145 (in Chinese). [張永錚,方濱興.用于評估網(wǎng)絡(luò)信息系統(tǒng)的風(fēng)險傳播模型 [J].軟件學(xué)報,2007,18 (1):137-145.]
[11]QING Dapeng,ZHOU Yuan.Method to generate attack graphs for assessing the overall security of networks [J].Journal on Communications,2009,30 (3):1-5 (in Chinese).[苘大鵬,周淵.用于評估網(wǎng)絡(luò)整體安全性的攻擊圖生成方法 [J].通信學(xué)報,2009,30 (3):1-5.]