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