長春大學計算機科學技術學院 王紹強 邵 丹
隨著因特網技術的飛速發展,網絡應用已深入各個領域,政府部門、軍隊、企事業單位和個人已經無時無刻離不開網絡。然而,互聯網技術革命為人們帶來巨大好處的同時,黑客入侵、病毒和木馬等網絡安全問題也層出不窮,給社會、單位和個人帶來了巨大的經濟損失。網絡安全技術的研究和發展也顯得越發重要。黑客入侵通常都是圍繞網絡系統中的安全漏洞展開攻擊的。安全漏洞是指計算機操作系統或應用程序等存在的可被利用攻擊的入口,是軟硬件和協議在具體實現或系統安全策略上的缺陷,使攻擊者能夠在未獲得授權的情況下訪問或破壞系統。更嚴重的是這些安全漏洞之間可能存在某種聯系,一個漏洞被攻擊利用后可能成為攻擊另外一個漏洞的跳板。為了找出這些漏洞之間的關聯關系,一種非常有效的方法就是使用網絡攻擊圖技術,即模擬黑客利用漏洞攻擊網絡的過程,找出能到達最終目標的攻擊路徑,并把這些攻擊路徑用有向圖的形式表示出來。
攻擊圖可以分為狀態攻擊圖和屬性攻擊圖兩類。狀態攻擊圖中每個節點代表一個安全狀態,攻擊狀態可由一系列安全屬性組成,如主機名、權限、漏洞、服務等,有向邊表示安全狀態的改變。屬性攻擊圖的每個節點代表一個安全屬性,有向邊表示屬性之間的依賴關系。
最早的攻擊圖由Cunningham提出,其認為網絡由各種組件構成,組件通過物理或邏輯方式連接。攻擊圖中的有向邊表示需要付出的代價,攻擊者通過攻擊網絡組件獲取“收益”。Swiler提出的攻擊圖方法在安全分析中把網絡拓撲結構信息也考慮在內。Ritchey等提出了采用模型檢測器的方法,這種方法能夠自動生成攻擊圖,但卻由于模型包含所有的狀態極易導致狀態爆炸問題不適應于大規模網絡。為此,Ammann提出了網絡攻擊的單調性假設,對攻擊圖生成過程予以限制的方法簡化攻擊圖。Tao Zhang提出通過分析主機、鏈路關系和攻擊特征構建安全狀態模型,然后通過前向搜索、廣度優先、深度限制來生成攻擊路徑的方法。Kyle Ingols提出基于多前置條件的網絡攻擊圖生成方法,隨著網絡規模的增大,攻擊圖成近似線性增加。DapengMan提出基于寬度優先搜索的全局攻擊圖生成算法,通過限制攻擊步驟和攻擊路徑的成功概率來減少攻擊圖的復雜性。李玲娟等提出一種基于代價分析和控制攻擊深度的狀態轉移的攻擊模型。何江湖等提出一種基于漏洞關聯攻擊代價的攻擊圖生成方法,該方法考慮到了結合漏洞間的相關性問題。趙芳芳等提出一種基于權限提升的網絡攻擊圖生成方法。
CVSS(Common Vulnerability Scoring System),即“通用弱點評價體系”,是由NIAC開發,由FIRST(事件反應和安全小組論壇)維護的一個開放的并且能夠被產品廠商免費使用的標準。利用該標準,可以對弱點進行評分,進而確定修復不同弱點的優先等級。CVSS由美國國家漏洞庫(NVD)發布并保持數據的更新。CVSS是2005年2月在美國國土安全部網站上最初公布的,旨在為軟件安全漏洞的嚴重等級提供一個開放的和通用的標準。CVSS網站稱,CVSS的目標是為所有軟件安全漏洞提供一個嚴重程度的評級。2007年6月,FIRST發布了這個標準的第二版即CVSS 2.0。目前CVSS3.0業已發布,本文中涉及內容以CVSS2.0為準。CVSS評估系統Base Metric(基本評價)、Temporal Metrics(時效評價)、Environmental Metrics(環境評價)三部分組成,如圖1所示。

圖1 CVSS評估度量分類
Base Metric描述的是該安全漏洞本身固有的屬性特點,并將這些特點可能造成的影響評估成分值,該評價與時間和用戶環境無關。Base Metric包括Exploitability(利用評價)和Impact(影響評價)。Exploitability描述漏洞被利用的難易程度,包括Access Vector(攻擊途徑)、Access Complexity(攻擊復雜度)、Authentication(認證)三個指標。Impact描述漏洞的危害性,包括Confidentiality(機密性)、Integrity(完整性)、Availability(可用性)三個指標。計算公式如下:
BaseScore = round_to_1_decimal(((0.6*Impact)+(0.4*Exploitability)-1.5)*f(Impact))
Impact = 10.41*(1-(1-ConfImpact)*(1-IntegImpact)*(1-AvailImpact))
Exploitability = 20* AccessVector*AccessComplexity*Authentication
f(impact)= 0 if Impact=0, 1.176 otherwise
Temporal Metrics描述的是漏洞與時間緊密相關的屬性。因為漏洞與時間是有緊密聯系的,評估值隨時間的變化而改變。Temporal Metrics包括Exploitability(利用代碼)、Remediation Level(修正措施)、Report Confidence(確認程度)三個時間評估指標。計算公式如下:
TemporalScore = round_to_1_decimal(BaseScore *Exploitability * Remediation Level* Report Confidence)
Environmental Metrics是可選指標,因為漏洞造成影響大小與用戶自身實際環境密切相關,因此該指標由用戶自評。由于該項與本文研究關系不大,不過多表述。
從以上評估指標可以看出Base Metric中的Exploitability與Temporal Metrics的評估值與漏洞攻擊的復雜度(代價)密切相關,代價與Exploitability和Temporal Metrics成反比關系。根據對CVSS的計算公式進行適當修改后,節點漏洞的攻擊代價計算公式為:
P=100/(Exploitability* TemporalScore)= round_to_1_decimal(100 / (20* AccessVector * AccessComplexity * Authentication *Exploitability * Remediation Level * Report Confidence))
一條路徑的攻擊代價為:

(i為當前攻擊路徑深度,n為總的攻擊路徑深度)。
本文擬采取正向廣度優先搜索方法,即從攻擊者的位置出發模擬攻擊路徑,基于路徑節點漏洞的攻擊代價來選出最優攻擊路徑。為了避免攻擊圖規模過大,應該在路徑深度上進行限制。算法語言描述:①建立網絡狀態隊列。②將初始狀態加入隊列。③從隊列中取出一個節點狀態。④若該節點深度小于最大深度限制則對當前狀態的弱點考察攻擊知識庫,否則轉到③。⑤如果條件滿足則生成新狀態節點并加入隊列。⑥計算當前節點深度和代價。⑧從隊列中再取新節點,直到隊列為空結束循環。
本文構造的網絡實驗環境如圖2所示。網絡環境中同一網段內有4臺主機H1、H2、H3、H4,它們與路由器相連,通過防火墻與外網隔開。H1、H2、H4是Windows主機,H3是linux主機。

圖2 實驗網絡環境

表1 漏洞攻擊代價情況

表2 攻擊路徑代價表
攻擊者在外網中,對自己的主機H0擁有root權限。H1主機開放了IIS服務,H2開放了HTTP服務,H3開放了SMTP和FTP服務,H4開放了Telnet服務。防火墻只允許外部主機訪問H1上的IIS服務,內網之間主機互訪沒有限制。攻擊者的攻擊目標是主機H4,要獲得H4的root權限。利用前面定義的計算節點漏洞攻擊代價的公式整理出主機漏洞與代價值如表1所示。
利用文中設計的算法,設定最大攻擊深度為4,得出的路徑及代價如表2所示。
由表2可知,路徑(H0,H1,CVE-2002-0364)->(H1,H4,CVE-2005-0768)代價最小,攻擊者最容易從此路徑進行滲透,管理員可以有針對性地優先修補相應漏洞,提高網絡安全性。
本文以通用弱點評價體系(CVSS)為基礎,從中選取適當指標計算漏洞攻擊代價,提出了一種基于代價的攻擊圖生成方法,簡化了攻擊圖的生成,并找到最優路徑,提高了網絡滲透測試效率。
[1]A Complete Guide to the Common Vulnerability Scoring System Version 2.0.http://www.first.org/cvss/v2/guide.
[2]李玲娟,孫光輝.網絡攻擊圖生成算法研究[J].計算機技術與發展,2010(10).
[3]張璽,黃曙光,夏陽,宋舜宏.一種基于攻擊圖的漏洞風險評估方法[J].計算機應用研究,2010(01).
[4]陸余良,宋舜宏,等.網絡攻擊圖生成方法分析[J].安徽大學學報,2010(07).
[5]王國玉,王會梅,等.基于攻擊圖的計算機網絡攻擊建模方法[J].國防科技大學學報,2009(04).
[6]李銳.通用安全漏洞評估系統(CVSS)簡介及應用建議[J].計算機安全,2011(05).