劉仁山,孟祥宏
(呼倫貝爾學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,內(nèi)蒙古 呼倫貝爾 021008)
網(wǎng)絡(luò)系統(tǒng)的脆弱性將會(huì)對(duì)國家基礎(chǔ)設(shè)施構(gòu)成直接威脅,網(wǎng)絡(luò)安全風(fēng)險(xiǎn)制約著信息的有效利用并可能給經(jīng)濟(jì)安全、國防安全帶來威脅[1],因此迫切需要對(duì)網(wǎng)絡(luò)系統(tǒng)安全進(jìn)行保護(hù)和準(zhǔn)確的風(fēng)險(xiǎn)評(píng)估.網(wǎng)絡(luò)安全風(fēng)險(xiǎn)評(píng)估是當(dāng)前信息安全領(lǐng)域研究的熱點(diǎn)問題,傳統(tǒng)的風(fēng)險(xiǎn)評(píng)估方法大多采用靜態(tài)數(shù)據(jù)分析的方法,這種方法難于發(fā)現(xiàn)網(wǎng)絡(luò)運(yùn)行過程中受到攻擊的狀況,缺乏實(shí)時(shí)性;數(shù)據(jù)分析準(zhǔn)確性過于依賴管理者的經(jīng)驗(yàn)和能力,缺乏客觀性[2],而網(wǎng)絡(luò)安全風(fēng)險(xiǎn)實(shí)時(shí)評(píng)估,能夠?qū)φ麄€(gè)網(wǎng)絡(luò)的運(yùn)行狀況進(jìn)行準(zhǔn)確的動(dòng)態(tài)分析,幫助管理員了解網(wǎng)絡(luò)的運(yùn)行風(fēng)險(xiǎn)和安全弱點(diǎn),提高網(wǎng)絡(luò)的防護(hù)能力.
文獻(xiàn)[3]在基于安全指標(biāo)量化的基礎(chǔ)上,采用動(dòng)態(tài)攻擊圖的方法對(duì)網(wǎng)絡(luò)安全進(jìn)行實(shí)時(shí)評(píng)估,但對(duì)攻擊圖中單步攻擊成功率的估算準(zhǔn)確性不足,影響評(píng)估效果.文獻(xiàn)[4]在攻擊圖的基礎(chǔ)上提出了一種分布式網(wǎng)絡(luò)風(fēng)險(xiǎn)評(píng)估方法,雖然部分地解決評(píng)估網(wǎng)絡(luò)規(guī)模過大、脆弱性過多帶來的攻擊圖龐大的問題,但攻擊成功概率值的獲取多依賴專家打分,沒有給出具體實(shí)施方法,缺乏可操作性.文獻(xiàn)[5]首先應(yīng)用圖論的方法生成網(wǎng)絡(luò)攻擊圖,對(duì)網(wǎng)絡(luò)安全狀況做出較全面的評(píng)價(jià),但攻擊圖的生成完全依賴手工,評(píng)估效率低且無法適應(yīng)大規(guī)模網(wǎng)路.針對(duì)現(xiàn)有評(píng)估方法的不足,本文提出了攻擊圖和隱馬爾可夫模型相結(jié)合的網(wǎng)絡(luò)安全風(fēng)險(xiǎn)評(píng)估方法,利用攻擊圖分析攻擊路徑,利用隱馬爾可夫模型計(jì)算攻擊路徑攻擊成功率,結(jié)合系統(tǒng)的攻防信息對(duì)網(wǎng)絡(luò)安全風(fēng)險(xiǎn)進(jìn)行評(píng)估,提高了網(wǎng)絡(luò)安全風(fēng)險(xiǎn)評(píng)估的準(zhǔn)確性.
1.1.1 基本理論
Arnes認(rèn)為主機(jī)可以處在不同的安全狀態(tài),每種安全狀態(tài)的概率決定了其安全風(fēng)險(xiǎn),而狀態(tài)之間的轉(zhuǎn)換可由隱馬爾可夫模型(Hidden Markov Model,HMM)狀態(tài)轉(zhuǎn)換矩陣和觀察矩陣決定[6].
定義1 設(shè)主機(jī)系統(tǒng)的狀態(tài)空間為S={S0,S1},主機(jī)系統(tǒng)在某時(shí)刻t的狀態(tài)為Ωt,Ωt∈S;S0代表主機(jī)處于安全狀態(tài),沒有被侵入;S1代表主機(jī)處于危險(xiǎn)狀態(tài),已被成功攻擊(侵入).
定義2 設(shè)主機(jī)系統(tǒng)可能受到的攻擊空間為A={A0,A1,A2,A3,A4},主機(jī)系統(tǒng)在時(shí)刻t受到的攻擊為Vt,Vt∈A,A0~A4表示攻擊的威脅度,取值是0~4;
定義3 狀態(tài)轉(zhuǎn)換矩陣Q=(qij)2×2,表示主機(jī)系統(tǒng)狀態(tài)轉(zhuǎn)換的概率,qij表示在t時(shí)刻狀態(tài)Ωt=Si時(shí),轉(zhuǎn)換成t+1時(shí)刻Ωt+1=Sj的概率;觀察矩陣G=(gmn)2×5表示在時(shí)刻t時(shí),主機(jī)在Ωt=Sm狀態(tài)下觀測到某種攻擊Vt=An的概率.
主機(jī)系統(tǒng)初始狀態(tài)定義為π=(π0,π1),根據(jù)以上定義可形成網(wǎng)絡(luò)安全態(tài)勢(shì)實(shí)時(shí)評(píng)估HMM模型,即λ=(S,A,Q,G,π).
1.1.2 攻擊成功概率計(jì)算方法
(1)定義HMM的前向變量
αt(i)=P(V1,V2,…,Vt,Ωt=Si|λ).
(2)初始時(shí)刻t=1時(shí),
α1(k)=πkgk(V1),k=0,1.
(1)
(3)當(dāng)t>1時(shí),
(2)
(4)定義主機(jī)狀態(tài)概率γt(μ)=P(Ωt=Sμ|V1,V2,…,Vt,λ),變換得:
(3)
其中μ=0,1.S={S0,S1}={γt(0),γt(1)}在t時(shí)刻對(duì)于主機(jī)被成功攻擊的概率為
St=HMM(Vt)=γt(1).
(4)
攻擊圖能夠?qū)W(wǎng)絡(luò)中存在的攻擊場景進(jìn)行建模,并能對(duì)所有可能或已經(jīng)存在的真實(shí)攻擊路徑進(jìn)行描述,獲取攻擊行為為達(dá)到攻擊目標(biāo)所選擇的所有可能攻擊路徑,從而可以全面地評(píng)估、計(jì)算網(wǎng)絡(luò)所面臨的安全風(fēng)險(xiǎn)[7].
1.2.1 攻擊圖生成算法
利用攻擊圖可以繪制網(wǎng)絡(luò)中主機(jī)漏洞的前提集合和后果集合,首先按漏洞危害程度進(jìn)行排序,并轉(zhuǎn)化為攻擊路徑,然后再把網(wǎng)絡(luò)中可能存在的多條攻擊路徑全部找出,進(jìn)行分析,繪制攻擊圖,其算法如下:
Input:網(wǎng)絡(luò)中所有主機(jī)集H,主機(jī)漏洞集L,主機(jī)間邊集R,頂點(diǎn)集D.
Output:網(wǎng)絡(luò)攻擊圖G=(H,L,R).
Steps:
Step1 主機(jī)Hi∈H,攻擊者從Hi上出發(fā),查找Hm上所有可以利用的遠(yuǎn)程漏洞Lmn(主機(jī)Hm的第n個(gè)漏洞),將Lij→Lmn(Hi作為初始攻擊機(jī)不需要漏洞,j=0)添加到邊集R中,將Lij和Lmn添加到頂點(diǎn)集D中.其中Lij、Lmn∈L,生成主機(jī)間的攻擊路徑.
Step2 主機(jī)Hm查找所有本地可利用漏洞,將Lmx和它的前提漏洞Lmy組成的邊Lmy→Lmx添加到邊集R中,將Lmx和Lmy添加到頂點(diǎn)集D中,生成主機(jī)內(nèi)部攻擊路徑.
Step3 重復(fù)步驟1和2生成以漏洞為節(jié)點(diǎn)的網(wǎng)絡(luò)動(dòng)態(tài)攻擊圖.
1.2.2 路徑攻擊成功率算法
攻擊者會(huì)找到網(wǎng)絡(luò)中攻擊成功概率最大的攻擊路徑來進(jìn)行侵入,那么這條攻擊路徑的成功概率是如何計(jì)算的呢?攻擊成功率算法如下:
Step1 若G中存在多條攻擊路徑AR1,AR2,…,可將攻擊路徑記為AR={Lij→Lmn},其中i,j,m,n=0,1,2,…,將以Lij漏洞為前提,針對(duì)Lmn漏洞的單步攻擊記為Amn(Lij→Lmn),若i=m,則是本地攻擊,否則是遠(yuǎn)程攻擊.
Step2 將攻擊Amn(Lij→Lmn)的攻擊成功率記為Smn,表示利用第n個(gè)漏洞對(duì)主機(jī)Hm的攻擊成功率,利用隱馬爾可夫模型可得Smn=HMM(Amn).
Step3 若Lij存在前提漏洞Lbk,即單步攻擊路徑A(Lbk→Lij):
(1)若b≠i,則Aij(Lbk→Lij)是遠(yuǎn)程攻擊,若對(duì)Lbk也存在攻擊且攻擊成功率記為Sbk=HMM(Abk),以主機(jī)Hb為視角觀察主機(jī)Hm在攻擊路徑上被成功攻擊的概率為Sm=Sbk×Smn.
(2)若b=i,則Aij(Lbk→Lij)是本地攻擊,從Lbk開始沿攻擊路徑前向搜索,直到找到遠(yuǎn)程單步攻擊的前提漏洞,比如Lpq,那么以主機(jī)Hp為視角觀察主機(jī)Hm在攻擊路徑上被成功攻擊的概率為Sm=Spq×Smn.
(3)若在步驟(2)中,前向搜索沒有找到遠(yuǎn)程漏洞,則主機(jī)Hm被成功攻擊的概率Sm=Smn.
2.1.1 漏洞利用成功率
定義4 當(dāng)網(wǎng)絡(luò)攻擊行為發(fā)生時(shí),攻擊所針對(duì)漏洞的利用成功率表明攻擊的難易程度,定義為L,分析漏洞的利用成功率可有效分析攻擊的強(qiáng)度,本文借鑒國內(nèi)外研究成果,結(jié)合CVSS[8]和文獻(xiàn)[9-10],給出漏洞利用成功率計(jì)算公式:
L=(M+P+T),
(5)
其中:M∈[0,0.4],表示攻擊方法的發(fā)布情況,無攻擊方法發(fā)布時(shí)取值0,粗略發(fā)布攻擊方法時(shí)取值為0.2,詳細(xì)發(fā)布攻擊方法時(shí)取值為0.4;P∈[0,0.1],表示漏洞的公布情況,無漏洞公布時(shí)取值為0,有漏洞公布時(shí)取值為0.1;T∈[0,0.4],表示攻擊的復(fù)雜度,需要攻擊工具但無相關(guān)說明信息時(shí)取值為0,有攻擊工具且有相關(guān)說明信息時(shí)取值為0.2,不需要攻擊工具時(shí)取值為0.4,漏洞利用成功率賦值如表1.
表1 漏洞利用成功率賦值標(biāo)準(zhǔn)
2.1.2 防御效果
定義5 防御行為是網(wǎng)絡(luò)管理員為了保護(hù)信息安全,采用IDS、防火墻、網(wǎng)絡(luò)管理工具軟件等手段對(duì)網(wǎng)絡(luò)攻擊進(jìn)行防范的過程,采用不同的技術(shù)和手段,防御的效果也不相同,本文參考文獻(xiàn)[11]將防御效果分成5個(gè)級(jí)別,數(shù)值越低防御效果越好,見表2.
表2 防御效果賦值標(biāo)準(zhǔn)
在進(jìn)行風(fēng)險(xiǎn)評(píng)估時(shí),根據(jù)攻防信息的動(dòng)態(tài)變化刷新并生成攻擊圖,將信息反饋給防火墻等網(wǎng)絡(luò)防御體系,以及時(shí)更新防御措施.
2.1.3 威脅度的量化方法
定義6 攻擊威脅度是指攻擊者獲得提升主機(jī)權(quán)限的可能性,由漏洞利用成功率和防御效果值共同決定,攻擊威脅度的計(jì)算公式如下:
(6)
2.1.4 網(wǎng)絡(luò)安全風(fēng)險(xiǎn)計(jì)算
定義7 嚴(yán)重度反映攻擊警告信息代表的嚴(yán)重程度,與具體的網(wǎng)絡(luò)環(huán)境無關(guān)[12].在IDS檢測時(shí)都會(huì)給每個(gè)警告一個(gè)優(yōu)先級(jí),優(yōu)先級(jí)由1到3,嚴(yán)重程度由高到低,轉(zhuǎn)換成0-1之間方法是
(7)
其中W是攻擊嚴(yán)重度.
網(wǎng)絡(luò)中的資產(chǎn)主要包括網(wǎng)絡(luò)中的數(shù)據(jù)、網(wǎng)絡(luò)提供的服務(wù)、網(wǎng)絡(luò)軟件和硬件等,資產(chǎn)的安全需求有機(jī)密性、完整性和可用性,不同資產(chǎn)的安全需求是不同的.
主機(jī)安全風(fēng)險(xiǎn)計(jì)算公式為
R(host)=S×W×C,
(8)
其中:S為路徑攻擊成功率,W為攻擊嚴(yán)重度,C為資產(chǎn)重要度.
網(wǎng)絡(luò)安全風(fēng)險(xiǎn)計(jì)算公式為
(9)
式中,hosti為網(wǎng)絡(luò)中的第i個(gè)主機(jī).
為了更好地進(jìn)行網(wǎng)絡(luò)安全風(fēng)險(xiǎn)評(píng)估,需要收集原始信息,包括攻擊復(fù)雜度信息、防護(hù)信息和資產(chǎn)信息等,一般通過掃描工具、現(xiàn)場測試并參照國家漏洞庫等方法來獲取這些數(shù)據(jù),形成相應(yīng)的數(shù)據(jù)庫,根據(jù)IDS等安全設(shè)備檢測攻擊種類,基于這些數(shù)據(jù)來定量分析網(wǎng)絡(luò)安全狀況,具體流程如下:
Step1 從IDS入侵檢測設(shè)備中讀取攻擊警告信息alert={Name,Time,Type,SIP,DIP,SP,DP},其中:Name,Time,Type表示攻擊名稱、發(fā)生時(shí)間和類型;SIP,DIP代表源地址和目的地址;SP,DP代表源和目的端口.
Step2 根據(jù)DIP從數(shù)據(jù)庫中讀取被攻擊主機(jī)的漏洞信息、防御信息和資產(chǎn)信息.
Step3 根據(jù)Name和Type從數(shù)據(jù)庫中獲取攻擊的復(fù)雜度信息以及攻擊成功需要的配置條件(包括漏洞號(hào)、端口、OS版本等)和Step2中的信息比較,利用式(5)和(6)計(jì)算攻擊的威脅度.
Step4 利用攻擊圖生成算法生成網(wǎng)絡(luò)攻擊圖.
Step5 根據(jù)攻擊威脅度,利用路徑攻擊成功率算法,通過隱馬爾可夫模型計(jì)算攻擊路徑的攻擊成功率.
Step6 利用式(9)計(jì)算網(wǎng)絡(luò)安全風(fēng)險(xiǎn)值.
為了驗(yàn)證評(píng)估算法的可行性,參照普遍性業(yè)務(wù)應(yīng)用系統(tǒng)建立實(shí)驗(yàn)環(huán)境,如圖1所示,利用防火墻和入侵檢測系統(tǒng)將網(wǎng)絡(luò)分為互聯(lián)網(wǎng)、DMZ區(qū)和內(nèi)網(wǎng)3個(gè)區(qū)域,DMZ區(qū)域的DNS服務(wù)和WEB服務(wù)部署在同一臺(tái)服務(wù)器上,為用戶提供域名解析和頁面瀏覽服務(wù);郵件服務(wù)器和數(shù)據(jù)庫服務(wù)器分別部署在子網(wǎng)1和子網(wǎng)2中,相應(yīng)的安全策略配置如下:只允許外網(wǎng)用戶訪問DMZ區(qū)域中H1上的Web服務(wù)和DNS服務(wù);主機(jī)H1可以訪問子網(wǎng)1中的郵件服務(wù)器H2和子網(wǎng)2中的數(shù)據(jù)庫服務(wù)器H3;禁止H1訪問內(nèi)網(wǎng)工作站主機(jī);子網(wǎng)1和子網(wǎng)2可以訪問DMZ區(qū)域的服務(wù)器和互聯(lián)網(wǎng).
網(wǎng)絡(luò)中主機(jī)信息及相關(guān)的漏洞如表3所示,主要列出重要的服務(wù)器,包括服務(wù)器的名稱、使用的操作系統(tǒng)名稱和版本、漏洞信息以及漏洞的利用率.
攻擊行為信息可以由區(qū)域中的IDS檢測系統(tǒng)得到,針對(duì)實(shí)時(shí)處理速度的需求,采取基于標(biāo)志的檢測方法,將威脅大、易于發(fā)動(dòng)的攻擊特征提取出來,利用攻擊圖生成算法,生成實(shí)驗(yàn)網(wǎng)絡(luò)攻擊圖,如圖2所示.
圖1 實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)鋱D
主機(jī)編號(hào)服務(wù)器名稱版本漏洞編號(hào)CVE編號(hào)漏洞描述類型漏洞的利用率H1DNS服務(wù)器、Web服務(wù)器Windows2003Bind8.12IIS5.0L1CVE-2001-0010Bind遠(yuǎn)程緩沖區(qū)溢出遠(yuǎn)程0.7L2CVE-2002-0364IIS緩沖區(qū)溢出遠(yuǎn)程0.6L3CVE-2002-0366針對(duì)Windows的本地溢出本地0.8H2數(shù)據(jù)庫服務(wù)器Mysql5.0018Redhat8.0L4CVE-2006-1518針對(duì)Mysql的遠(yuǎn)程信息泄露和溢出遠(yuǎn)程0.7L5CVE-2002-0004針對(duì)Linux的本地緩沖區(qū)溢出本地0.8H3郵件服務(wù)器Sendmail8.12Redhat8.0L6CVE-2002-1337Sendmail頭處理溢出漏洞遠(yuǎn)程0.7L7CVE-2002-0004針對(duì)Linux本地緩沖區(qū)溢出本地0.8
圖2 網(wǎng)絡(luò)攻擊圖
利用HMM模型計(jì)算主機(jī)H1、H2、H3被成功攻擊的概率,HMM模型參數(shù)為
π=(0.8,0.2),
結(jié)合風(fēng)險(xiǎn)評(píng)估流程、路徑攻擊成功率算法、攻擊的嚴(yán)重度、威脅度計(jì)算攻擊成功率,結(jié)果如表4所示.表4所列出的攻擊成功率是針對(duì)主機(jī)的單步攻擊成功率,若要計(jì)算某一條攻擊路徑的攻擊成功率需要采用1.2.2中的算法,比如路徑AR={L12→L13→L31→L32}的攻擊成功率就是攻擊A3和攻擊A9攻擊成功率的乘積.
利用式(8)和式(9)計(jì)算網(wǎng)絡(luò)的風(fēng)險(xiǎn)變化趨勢(shì),結(jié)果如圖3所示.
通過圖3中可知在3月9日10:11:15網(wǎng)絡(luò)風(fēng)險(xiǎn)值最大,這是因?yàn)橹鳈C(jī)H0對(duì)H1進(jìn)行的攻擊中,攻擊A2和A3在一條攻擊路徑上,所以攻擊A3發(fā)生時(shí),網(wǎng)絡(luò)風(fēng)險(xiǎn)值最大;10:15:16和10:18:28雖然發(fā)生了攻擊A5和A6,但是系統(tǒng)安全防護(hù)好,沒有可以被利用的漏洞,所以網(wǎng)絡(luò)風(fēng)險(xiǎn)值最小;其他時(shí)間網(wǎng)絡(luò)風(fēng)險(xiǎn)值較小,說明主機(jī)H0不能直接攻擊內(nèi)網(wǎng)服務(wù)器,從而導(dǎo)致網(wǎng)絡(luò)風(fēng)險(xiǎn)值降低.根據(jù)網(wǎng)絡(luò)風(fēng)險(xiǎn)值的變化可以有針對(duì)性地對(duì)網(wǎng)絡(luò)采取相應(yīng)的安全措施.
圖3 網(wǎng)絡(luò)安全風(fēng)險(xiǎn)
攻擊編號(hào)時(shí)間攻擊源攻擊目標(biāo)相關(guān)漏洞威脅度攻擊成功率攻擊嚴(yán)重度資產(chǎn)重要度防御等級(jí)A109/03-10:02:42H0H1CVE-2001-001040.2210.90.51.0A209/03-10:03:10H0H1CVE-2002-036430.2240.60.50.7A309/03-10:11:15H1H1CVE-2002-036620.3800.90.50.3A409/03-10:15:16H1H2CVE-2002-01930—0.60.30.0A509/03-10:18:28H1H2CVE-2002-05750—0.60.30.0A609/03-10:24:54H1H2CVE-2006-151820.1850.60.30.3A709/03-10:28:43H2H2CVE-2002-000430.3970.60.30.5A809/03-10:33:41H1H3CVE-2002-133720.1850.30.20.3A909/03-10:37:08H3H3CVE-2002-000420.3450.30.20.3
網(wǎng)絡(luò)安全風(fēng)險(xiǎn)評(píng)估的關(guān)鍵是從攻防的角度生成合理的攻擊圖,并能夠準(zhǔn)確地估算攻擊路徑的攻擊成功率,本文利用攻擊圖的方法對(duì)攻擊的動(dòng)態(tài)過程進(jìn)行描述,通過隱馬爾可夫模型估算攻擊的成功率,結(jié)合攻擊復(fù)雜度、防護(hù)等級(jí)和資產(chǎn)等量化指標(biāo)對(duì)網(wǎng)絡(luò)的安全風(fēng)險(xiǎn)進(jìn)行評(píng)估.通過實(shí)例表明,該方法能夠提高網(wǎng)絡(luò)安全風(fēng)險(xiǎn)評(píng)估的準(zhǔn)確性,幫助管理員了解網(wǎng)絡(luò)安全狀況,具有一定的實(shí)用價(jià)值.