專利名稱:識別脆弱性利用安全威脅并確定相關攻擊路徑的方法
技術領域:
本發(fā)明屬于網絡信息安全技術領域,具體涉及一種識別脆弱性利用安全威脅并確定相關攻擊路徑的方法。
背景技術:
在現(xiàn)代通信系統(tǒng)中,承載著組織重要業(yè)務的信息系統(tǒng)不可避免存在脆弱性。這些脆弱性可能被攻擊者利用,使得攻擊者控制業(yè)務系統(tǒng)中關鍵節(jié)點成為可能,從而對業(yè)務系統(tǒng)的連續(xù)性以及數(shù)據(jù)的保密性、完整性和可用性造成危害。為確保信息系統(tǒng)免受脆弱性利用威脅,組織往往會在系統(tǒng)中應用各種安全措施。業(yè)務系統(tǒng)中所實施的各種安全措施不但能夠實現(xiàn)業(yè)務系統(tǒng)所規(guī)劃的安全功能,也應該能夠抵御攻擊者針對業(yè)務系統(tǒng)中脆弱性的利用攻擊,或者降低攻擊者利用脆弱性的后果。本發(fā)明主要關注脆弱性利用安全威脅的識別和相關攻擊路徑的標識,因此本說明書中,如無特殊說明,所有安全威脅均指脆弱性利用威脅。識別業(yè)務系統(tǒng)中存在的安全威脅是實現(xiàn)網絡安全管理的重要途徑。在一個日益復雜、分布式和異構的網絡環(huán)境中,業(yè)務系統(tǒng)中的脆弱性利用安全威脅存在以下特點1) 一個業(yè)務系統(tǒng)中可能存在多個脆弱性利用威脅;2)每個威脅存在明確的攻擊目標,并存在為達到攻擊目標的攻擊路徑;3)每個抵達安全威脅攻擊目標的攻擊路徑可能由多個相互關聯(lián)的單個的脆弱性利用攻擊組成。攻擊圖是一種近年來業(yè)界廣泛應用的安全威脅分析方法,它從攻擊者角度出發(fā),基于系統(tǒng)網絡配置和脆弱性信息,分析脆弱性利用之間的依賴關系,找出所有可能的攻擊路徑,以便管理員采取必要措施抵御安全威脅,降低安全風險。按攻擊圖中節(jié)點和邊表示含義的不同,可以將攻擊圖分為狀態(tài)攻擊圖和因果關系圖。狀態(tài)攻擊圖中的節(jié)點表示目標網絡和攻擊者的全局狀態(tài),有向邊表示單一攻擊行為引起的狀態(tài)轉換。狀態(tài)攻擊圖由于存在狀態(tài)空間爆炸問題,不適用于大規(guī)模系統(tǒng)的安全性分析。因果關系圖中,節(jié)點表示系統(tǒng)條件(屬性)和原子攻擊,有向邊表示節(jié)點間的因果關系。因果關系圖克服了狀態(tài)攻擊圖的狀態(tài)組合爆炸問題,具有更好的可擴展性,能用于大規(guī)模網絡安全性分析。目前的攻擊圖大都屬于因果關系圖。依據(jù)攻擊圖中攻擊路徑覆蓋范圍,可以將攻擊圖分為網絡攻擊圖和子攻擊圖。網絡攻擊圖展示業(yè)務系統(tǒng)中存在的所有可能安全威脅以及所有可能的攻擊路徑,子攻擊圖只展示與指定的安全威脅目標相關的攻擊路徑。網絡攻擊圖適用于識別系統(tǒng)中各種可能影響到業(yè)務系統(tǒng)安全屬性的脆弱性利用威脅,有助于評估業(yè)務系統(tǒng)整體安全性或態(tài)勢,但網絡攻擊圖往往非常龐大,不適合對某一特定安全威脅的分析;子攻擊圖適于對特定威脅進行有針對性的分析和處置。在具體安全分析場景中,鑒于系統(tǒng)業(yè)務重要性的不同,及資源有限和成本等因素影響,往往需要進一步分析所識別出的威脅,生成各威脅所對應子攻擊圖,從而可能對各種安全威脅的利用條件和危害程度進行深入的分析。目前所查到的攻擊圖生成方法往往只能生成一種類型的攻擊圖,即網絡攻擊圖或子攻擊圖,而在實際的脆弱性利用威脅識別和分析過程中,通常需要基于網絡攻擊圖和安全屬性識別出所有影響業(yè)務系統(tǒng)安全性的威脅,然后得到各威脅所對應的子攻擊圖,從而可能對各安全威脅的利用條件和危害程度進行深入分析,以得到有效防御安全威脅的方法。目前能查到一種網絡攻擊圖分解方法(中國期刊《軟件學報》,Vol. 21, No. 4, April2010,pp. 838-848,攻擊圖的兩種形式化分析),它采用迭代方法求取網絡攻擊圖中所有長度不超過指定值N的有效攻擊路徑,但一次只能生成一個威脅所對應子攻擊圖。通常情況下,網絡管理員需要得到所有安全威脅對應子攻擊圖,從而可能對各種安全威脅的利用條件和危害程度進行深入分析,因此,需要一種能夠對網絡攻擊圖進行分解,一次性得到所有脆弱性利用威脅所對應的子攻擊圖,以幫助管理員能夠對所有的安全威脅進行深入的分析和處置。
發(fā)明內容
針對上述問題,本發(fā)明目的在于提供一種識別脆弱性利用安全威脅并確定相關攻擊路徑的方法,對業(yè)務系統(tǒng)中存在的各種脆弱性利用安全威脅進行分析,并確定與各安全威脅相關的攻擊路徑,便于管理員為各安全威脅制定有效的安全加固方法,將安全風險控制在可接受范圍之內。本發(fā)明的識別脆弱性利用安全威脅并確定相關攻擊路徑的方法,其步驟包括I)根據(jù)業(yè)務系統(tǒng)的網絡配置和脆弱性信息得到因果關系攻擊圖,將所述因果關系攻擊圖轉換為基于顏色Petri網的網絡攻擊圖;2)依據(jù)預先定義的業(yè)務系統(tǒng)安全目標識別出業(yè)務系統(tǒng)中各種脆弱性利用安全威脅目標;3)將所述基于顏色Petri網的網絡攻擊圖分解為子攻擊圖,得到所述各種脆弱性利用安全威脅目標的攻擊路徑。優(yōu)選地,步驟I)所述將因果關系攻擊圖轉換為基于顏色Petri網的網絡攻擊圖的具體方法為I. I)將因果關系攻擊圖中的初始節(jié)點集合和可達節(jié)點集合中的各節(jié)點轉換為顏色Petri網中的庫所;1.2)將因果關系攻擊圖中的原子攻擊節(jié)點集合中的各原子攻擊轉換為顏色Petri網中的變遷;1.3)將因果關系攻擊圖中的有向邊集合中的有向邊轉換為顏色Petri網中的連接庫所和變遷以及連接變遷和庫所的有向弧。優(yōu)選地,步驟2)中識別脆弱性利用安全威脅目標的具體方法為2. I)對于影響到業(yè)務系統(tǒng)機密性的關鍵對象權限集合中的各關鍵對象權限,如果網絡攻擊圖中存在使得攻擊者可能獲取到該對象權限的攻擊路徑,則識別出一個可能破壞業(yè)務系統(tǒng)機密性的安全威脅目標; 2. 2)對于影響到業(yè)務系統(tǒng)完整性的關鍵對象權限集合中的各關鍵對象權限,如果網絡攻擊圖中存在使得攻擊者可能獲取到該對象權限的攻擊路徑,則識別出一個可能破壞業(yè)務系統(tǒng)完整性的安全威脅目標;2. 3)對于影響到業(yè)務系統(tǒng)可用性的關鍵對象權限集合中的各關鍵對象權限,如果網絡攻擊圖中存在使得攻擊者可能獲取到該對象權限的攻擊路徑,則識別出一個可能破壞業(yè)務系統(tǒng)可用性的安全威脅目標。優(yōu)選地,步驟3)中將網絡攻擊圖分解為子攻擊圖的具體方法為3. I)將基于顏色Petri網的網絡攻擊圖轉換為可仿真顏色Petri網系統(tǒng);3. 2)對轉換后的顏色Petri網系統(tǒng)進行仿真,使所有可能抵達各安全威脅目標的攻擊路徑記錄在安全威脅目標相關的庫所中;3. 3)仿真結束后,根據(jù)各脆弱性利用安全威脅目標相關庫所中記錄的攻擊路徑列表對網絡攻擊圖進行裁剪,得到各安全威脅目 標所對應子攻擊圖。進一步地,本發(fā)明可實現(xiàn)將步驟3)得到的各子攻擊圖轉換為不確定性推理網絡,利用不確定性推理方法計算所述各種脆弱性利用安全威脅目標的威脅度;進而根據(jù)所述威脅度可對所述各種脆弱性利用安全威脅進行優(yōu)先級排序并分別進行處置。本發(fā)明所述方法將傳統(tǒng)的因果關系攻擊圖轉換為基于顏色Petri網的網絡攻擊圖。顏色Petri網是一種高級Petri網,它結合了 Petri網和高級程序語言優(yōu)點,同時具備控制流和數(shù)據(jù)流描述能力,具有更強的模型分析能力。網絡攻擊圖中的各原子攻擊可以獨立執(zhí)行,且每個原子攻擊的成功實施都可能改變整個網絡系統(tǒng)狀態(tài)。因此,比較適合利用顏色Petri網來對網絡攻擊圖進行描述和分析。本發(fā)明所述方法基于系統(tǒng)安全目標識別業(yè)務系統(tǒng)中所有的安全威脅目標,并采用顏色Petri網仿真實現(xiàn)網絡攻擊圖的分解,可一次性得到所有安全威脅目標的子攻擊圖,即攻擊路徑,效率非常高。此外,本發(fā)明方法進一步將各安全威脅所對應的子攻擊圖轉換為不確定性推理網絡,通過不確定性推理得到各安全威脅目標的威脅程度值,進而對各安全威脅目標進行排序。這使得管理員可以對各安全威脅的利用條件和危害進行深入分析,從而可能采取相應的防御措施,如優(yōu)先處置高威脅度的安全威脅目標等,以實現(xiàn)安全資源的合理分配。
圖I為本發(fā)明所述脆弱性利用安全威脅識別和相關攻擊路徑標識方法流程圖;圖2為因果關系攻擊圖不意圖;圖3為脆弱性利用原子攻擊結構圖;圖4為脆弱性利用原子攻擊實例圖;圖5為一個基于顏色Petri網脆弱性利用原子攻擊實例圖;圖6為轉換后的可直接仿真的基于顏色Petri網的原子攻擊模塊示意圖;圖7為本發(fā)明實施例的Web業(yè)務系統(tǒng)拓撲及配置示意圖;圖8為實施例中由因果關系攻擊圖實施例轉換而來的基于顏色petri網網絡攻擊圖;圖9為本發(fā)明實施例的脆弱性利用安全威脅目標{R_4, U_4}所對應的子攻擊圖;圖10為本發(fā)明實施例的脆弱性利用威脅目標{R_5, U_5}所對應的子攻擊圖。
具體實施例方式下面結合附圖及實施例,對本發(fā)明的技術方案進行更詳細的說明?!獋€實際的業(yè)務系統(tǒng)不可避免的存在脆弱性,這些脆弱性主要由以下幾個方面造成1)信息系統(tǒng)設計邏輯缺陷;2)系統(tǒng)軟件實現(xiàn)缺陷;3)系統(tǒng)配置錯誤。信息系統(tǒng)中的這些脆弱性在正常應用情況下雖然并不妨礙業(yè)務邏輯執(zhí)行,但它們一旦被攻擊者惡意利用,則可能對整個業(yè)務系統(tǒng)的安全造成危害。攻擊者對一個脆弱性的利用成功與否取決于脆弱性利用發(fā)生時的條件滿足情況,如果脆弱性利用的各種條件得到滿足,則攻擊者可能成功利用該脆弱性非法獲得業(yè)務系統(tǒng)的訪問權限,從而形成對信息系統(tǒng)實質的安全威脅。一般情況下,攻擊者針對一個信息系統(tǒng)的攻擊目標是通過對信息系統(tǒng)中一系列脆弱性的成功利用實現(xiàn)的,本發(fā)明稱攻擊者發(fā)起的單次脆弱性利用行為為原子攻擊。本發(fā)明在分析信息系統(tǒng)各種安全威脅過程中,對攻擊者能力提出三種假設1)攻擊者能獲取業(yè)務系統(tǒng)脆弱性、網絡拓撲等可利用的系統(tǒng)信息;2)攻擊者掌握相關脆弱性的攻擊利用方法;3)攻擊者是貪婪的,會基于已有攻擊資源擴大攻擊影響,以獲得最大的業(yè) 務系統(tǒng)攻擊權限。攻擊者要成功利用某一脆弱性,必須滿足相應的利用條件,在攻擊成功實施后,將獲得相應的權限。本發(fā)明所述方法基于攻擊圖來描述存在于業(yè)務系統(tǒng)中的各種攻擊路徑。目前大都采用因果關系攻擊圖來描述針對業(yè)務系統(tǒng)的攻擊圖。因果關系攻擊圖由很多原子攻擊組成,因果關系攻擊圖中的一條攻擊路徑是由一系列相互關聯(lián)的原子攻擊組成,前面的原子攻擊是后面原子攻擊成功實施的前提。圖I為本發(fā)明的脆弱性利用安全威脅識別和相關攻擊路徑標識方法流程圖。首先根據(jù)業(yè)務系統(tǒng)的網絡配置和脆弱性信息,利用公知的因果關系攻擊圖構建方法得到因果關系攻擊圖,將傳統(tǒng)因果關系攻擊圖轉換為基于顏色Petri網的網絡攻擊圖,以利用成熟的顏色Petri網工具對其進行各種分析;再基于系統(tǒng)安全目標識別信息系統(tǒng)中的各種安全威脅目標;然后,基于顏色Petri網實現(xiàn)網絡攻擊圖的分解,一次性得到各安全威脅目標的子攻擊圖,所得到的子攻擊圖具有無環(huán)且最長攻擊路徑長度不超過指定步長等特征。為了對因果關系攻擊圖進行有效分析,本發(fā)明采用顏色Petri網來描述網絡攻擊圖,首先將因果關系攻擊圖轉換為基于顏色Petri網的網絡攻擊圖,以利用成熟的顏色Petri網工具對其進行各種分析。Petri網是一種圖形建模和分析工具,擁有嚴格數(shù)學理論基礎,能夠對分布式系統(tǒng)進行圖形化模擬,適用于描述動態(tài)系統(tǒng)結構和并發(fā)行為。顏色Petri網(ColoredPetri-Net,縮寫為CPN)是一種高級Petri網,它結合了 Petri網和高級程序語言優(yōu)點,同時具備控制流和數(shù)據(jù)流描述能力,并具有更強的模型分析能力,便于描述和分析復雜的系統(tǒng)業(yè)務流。因此,本發(fā)明選用顏色Petri網作為網絡攻擊圖分析工具。在顏色Petri網中,矩形框代表變遷(Transition),變遷一般用來描述系統(tǒng)中的局部系統(tǒng)行為,橢圓代表庫所(Place),庫所一般用來描述系統(tǒng)中的變遷發(fā)生時的前提條件或屬性,或者變遷發(fā)生后的狀態(tài)。根據(jù)公開文獻“攻擊圖的兩種形式化分析,軟件學報,Vol. 21, No. 4, April 2010,pp. 838-848”可知,因果關系攻擊圖(也稱屬性攻擊圖)可描述為AG = (A0 U Ad,T,E)。其中Atl表示初始節(jié)點集合,對應網絡和攻擊者的初始屬性集合;Ad表示可達節(jié)點集合,對應網絡和攻擊者在攻擊被逐步實施后可達的屬性集合;T表示原子攻擊節(jié)點集合;E為有向邊集合。AG滿足下列約束(I)EC ((TXAd) U ((A0UAd) XT)),即屬性攻擊圖的兩個節(jié)點之間的關系僅包含Atl-T,Ad-T,T-Ad,其中T — Ad為原子攻擊的后果邊;Α0 — T,Ad — T為原子攻擊的前提邊;(2)對V τ eT,令PreO)表示τ的父節(jié)點集合,Post(T)表示τ的子節(jié)點集合,則父節(jié)點之間存在“與”關系,且滿足(APre ( τ ) )今(APost ( τ )),表示當原子攻擊的所有前提都被滿足后,該原子攻擊成功,從而使其后果被滿足。圖2為一個滿足上述定義的屬性攻擊圖。從該屬性攻擊圖可以看出,屬性攻擊圖中包含兩類節(jié)點以文字表示的屬性節(jié)點和以橢圓表示的原子攻擊節(jié)點,其中,屬性節(jié)點代表目標網絡和攻擊者能力的條件,原子攻擊節(jié)點代表攻擊者利用單個脆弱性進行的一次攻擊。要對因果關系攻擊圖進行正式的描述,必須首先對因果關系攻擊圖中的各原子攻擊進行正式描述。圖3為本發(fā)明所述的用來構成因果關系攻擊圖的原子攻擊結構圖,從該原子攻擊結構看出,原子攻擊包括三種類型要素,即原子攻擊成功實施所依賴的前提條件、原子攻擊動作本身(脆弱性利用)以及原子攻擊成功的后果(攻擊影響)。其中,原子攻擊前提條件包括攻擊者權限、攻擊可達性、服務活躍性和脆弱性存在性。攻擊者權限是指攻擊者在源主機和目標主機上所獲得的權限級別,本發(fā)明將權限級別定義為三級,即none (O),user (I)和ixx)t(2);攻擊可達性是指攻擊者從源主機發(fā)起的原子攻擊能否抵達目標主機;服務活躍性是指原子攻擊成功實施所依賴的服務是否運行在目標主機上;脆弱性存在性是指攻擊者所利用的脆弱性在目標主機服務中是否存在。在實際攻擊中,只有當這些前提條件都得到滿足時,該原子攻擊才能夠成功實施。原子攻擊成功實施的后果主要表現(xiàn)為攻擊者能力的提升,比如攻擊者非法獲得了目標主機上的user或root權限。圖3所描述的原子攻擊其實是一個顏色Petri網,其中,用來表示原子攻擊前提條件和后果的橢圓形節(jié)點即為顏色Petri網結構中的庫所(Place),用矩形表示的脆弱性利用動作即為顏色Petri網結構中的變遷(Transition)。因此,可以采用顏色Petri網語言來對因果關系攻擊圖進行正式的定義。當采用顏色Petri網來定義因果關系攻擊圖時,如圖3所不的原子攻擊可以描述為AAG = <PAo, t, PAd>,其中PA。。為所述原子攻擊的輸入庫所集合,其每個庫所代表一個攻擊前提條件,它可以為攻擊者在源主機或目標主機上的初始攻擊權限、源主機到目標主機的攻擊可達性、脆弱性所依賴的服務可用性以及脆弱性存在性;t為變遷,它表示所定義原子攻擊相關的脆弱性利用行為;PAdS所述原子攻擊的影響庫所集合,其中,每個庫所記錄該原子攻擊成功實施后的攻擊效果。圖4為一個滿足圖3所述原子攻擊結構的原子攻擊實例圖,這里假設攻擊者要從其所控制的源主機(Hl)利用目標主機(H2)上的IIS Web服務中的一個緩沖區(qū)溢出漏洞(CVE-2002-0364),則必須滿足以下四個條件I)攻擊者在源主機H1的權限至少為user (記為橢圓U_hl); 2)主機I可以訪問主機2的HTTP服務(記為橢圓http_hl_h2);3)主機2上的IIS5. O Web服務正在運行(記為橢圓IIS_h2);4)主機2上的IIS5. O服務存在一個編號為CVE-2002-0364)的緩沖區(qū)溢出漏洞(記為橢圓v364_h2)。只有當上述四個條件同時滿足時,攻擊者才可以成功發(fā)起從H1到H2 ilIS Web月艮務的攻擊(記為矩形v364_hl_h2),攻擊結果是,攻擊者獲得了 H2上的root權限(記為橢圓 R_h2)。為了實現(xiàn)對因果關系攻擊圖的分析,本發(fā)明首先需要將公知的因果關系攻擊圖轉換為基于顏色Petri網的網絡攻擊圖,所述基于顏色Petri網的網絡攻擊圖AG可以記為AG = <P0 U Pd, T0 U Td, E>,其中,初始庫所集合Ptl中每個庫所代表網絡和攻擊者的初始狀態(tài),表示它是原子攻擊成功實施的前提條件;可達庫所集合Pd中每個庫所代表網絡和攻擊者的可達狀態(tài),它記錄原子攻擊成功實施后的攻擊效果Jtl為獨立型變遷集合,對于Ttl中各變遷,其輸入庫所包含在初始庫所集合P。中。因此,T0中各變遷所代表的原子攻擊的實施不依賴于其它原子攻擊;Td為依賴型變遷集合,對于Td中各變遷,其輸入庫所集合中至少有一個庫所屬于可達庫所集合Pd,因此,成功實施Td中各變遷所代表的原子攻擊必須依賴于其它原子攻擊;E為連接顏色Petri網 中庫所和變遷的有向弧。基于顏色Petri網的網絡攻擊圖AG丨兩足如下約束I)攻擊圖AG中的有向弧只能連接庫所和變遷,或者連接變遷和庫所,即
E c ((P0 ^Pd) X (T0 uTd)) u ((T0 (P0 ^Pd));2)對于獨立型變遷集合TO中任一元素t,pre(t)表示該變遷的輸入庫所集合,post(t)表示該變遷的輸出庫所集合,則;3)對于依賴型變遷集合Td中任一元素t,pre(t)表示該變遷的輸入庫所集合,post (t)表示該變遷的輸出庫所集合,則(3〃6Pre^―收£。下面進一步說明本發(fā)明方法的各個步驟。I.根據(jù)業(yè)務系統(tǒng)的網絡配置和脆弱性信息得到因果關系攻擊圖,將傳統(tǒng)的因果關系攻擊圖轉換為基于顏色Petri網的網絡攻擊圖??梢岳霉囊蚬P系攻擊圖構建方法得到因果關系攻擊圖。設有一因果關系攻擊圖AG = (A0 U Ad, T,E),其中-A0表示初始節(jié)點集合,對應網絡和攻擊者的初始屬性集合;Ad表示可達節(jié)點集合,對應網絡和攻擊者在攻擊被逐步實施后可達的屬性集合;T表示原子攻擊節(jié)點集合;E為有向邊集合。將傳統(tǒng)的因果關系攻擊圖轉換為基于顏色Petri網的網絡攻擊圖的過程具體描述如下I. I)將因果關系攻擊圖中的初始節(jié)點集合Atl和可達節(jié)點集合Ad中的各節(jié)點轉換為顏色Petri網中的庫所;1.2)將因果關系攻擊圖中的原子攻擊節(jié)點集合T中的各原子攻擊轉換為顏色Petri網中的變遷;I. 3)將因果關系攻擊圖中的有向邊集合E中的有向邊轉換為顏色Petri網中的連接庫所和變遷以及連接變遷和庫所的有向弧。在具體實施本發(fā)明所述的將因果關系攻擊圖轉換為基于顏色Petri網的網絡攻擊圖過程中,為確保轉換后的基于顏色Petri網的網絡攻擊圖AG中各庫所和變遷命名的唯一性,本發(fā)明建議采用以下規(guī)范的命名規(guī)則來命名轉換后的顏色Petri網中的各庫所和變遷a)前提條件“攻擊者權限”(包括攻擊者在源主機和目標主機上具有的權限)表示為“權限級別(主機編號)”,其對應庫所命名為“權限級別_主機”,如,在構造攻擊圖時,攻擊者在hi上具有的權限user (hi)所對應的庫所名為U_hl ;b)前提條件“攻擊可達性”,表示為“協(xié)議(源主機,目標主機)”,該前提條件所對應庫所命名為“協(xié)議_源主機_目標主機”,如,在構造攻擊圖時,主機hi和h2之間http協(xié)議的可達性http (hi, h2)對應庫所名為http_hl_h2 ;c)前提條件“服務活躍性”表示為“服務名(主機名)”,所對應庫所命名為“月艮務名_主機名”,如,在構造攻擊圖時,主機hi上的IIS服務IIS50(hl)所對應的庫所名為IIS50_hl ;d)前提條件“漏洞存在性”表示為“漏洞編號(主機名)”,相應庫所命名為“漏洞編號_主機名”;e)對于脆弱性利用后果,本發(fā)明僅指攻擊者獲得的權限,因此,其命名方法和對應庫所命名方法與前提條件“攻擊者權限”相同;
f)某一脆弱性利用動作表示為“漏洞編號(源主機,目標主機)”,其相應變遷命名為“漏洞編號_源主機_目標主機”,如在構造攻擊圖時,脆弱性利用動作CVE364(hl,h2)對應的變遷名稱為V364_hl_h2。2.依據(jù)預先定義的業(yè)務系統(tǒng)安全目標識別出業(yè)務系統(tǒng)中各種安全威脅目標。攻擊者在攻擊過程中所獲得的攻擊權限直接影響到業(yè)務系統(tǒng)的安全。比如,如果攻擊者獲得了某業(yè)務終端的root權限,那么攻擊者可能竊取存儲在該業(yè)務終端上的業(yè)務系統(tǒng)敏感數(shù)據(jù),可以修改業(yè)務系統(tǒng)數(shù)據(jù),甚至可能刪除重要的業(yè)務數(shù)據(jù)導致數(shù)據(jù)的不可用。攻擊者所獲得的攻擊權限會直接對業(yè)務系統(tǒng)機密性、完整性和可用性造成破壞。因此,本發(fā)明基于攻擊者權限來定義業(yè)務系統(tǒng)安全目標,這里的業(yè)務系統(tǒng)安全目標包括信息資產的機密性、完整性和可用性。業(yè)務系統(tǒng)機密性是要防止未授權的信息泄露,即要求攻擊者通過脆弱性利用所獲取到的攻擊權限集合AtkCap與影響業(yè)務系統(tǒng)機密性的關鍵對象權限集合PrivSetc交集為空,即攻擊者沒有獲取到任何可能影響到業(yè)務系統(tǒng)機密性的關鍵對象的權限。業(yè)務系統(tǒng)完整性是禁止未授權實體對客體的更改或破壞,即要求攻擊者通過脆弱性利用所獲得的攻擊權限集合AtkCap與影響到業(yè)務系統(tǒng)完整性的關鍵對象權限集合PrivSetI交集為空,即攻擊者沒有獲取到任何可能影響到業(yè)務系統(tǒng)完整性的關鍵對象的權限。業(yè)務系統(tǒng)可用性是要確保所有服務必須對相關授權實體是可訪問和使用的,即要求攻擊者通過脆弱性利用所獲得的攻擊權限集合AtkCap與影響業(yè)務系統(tǒng)可用性的關鍵對象權限集合PrivSetA交集為空,攻擊者沒有獲取到任何可能影響到業(yè)務系統(tǒng)可用性的關鍵對象的權限。在本發(fā)明所述方法中,攻擊者的安全威脅目標表示為一個攻擊權限集合,即其中為攻擊者在某業(yè)務終端上所獲得的危害業(yè)務系統(tǒng)安全的攻擊權限集合,安
全威脅目標所對應子攻擊圖只包含了從初始節(jié)點出發(fā)抵達目標集合中各元素所示攻擊權限的攻擊路徑。在基于顏色Petri網的網絡攻擊圖中,攻擊路徑Path則為網絡攻擊圖中的一個變遷序列Path = — t2 — . . · — tn,其中tjl彡i彡η)為變遷,它對應一個原子攻擊。攻擊路徑必須滿足如下約束1)第一個變遷h必須為獨立型變遷;2)變遷tn的輸出庫所集合Post (tn)與影響業(yè)務系統(tǒng)機密性、完整性和可用性安全屬性的關鍵對象集合P交集不為空;3)變遷序列中前驅變遷的輸出庫所為后繼變遷的輸入庫所。
在基于顏色Petri網的網絡攻擊圖中,攻擊路徑長度定義為攻擊路徑所對應的原子攻擊變遷序列的長度。
在定義了業(yè)務系統(tǒng)的機密性、完整性、可用性安全目標后,就容易基于網絡攻擊圖識別出所有可能破壞業(yè)務系統(tǒng)安全目標的攻擊者的各安全威脅目標,具體方法為2. I)對于影響到業(yè)務系統(tǒng)機密性的關鍵對象權限集合PrivSet。中的各關鍵對象權限,如果網絡攻擊圖中存在使得攻擊者可能獲取到該關鍵對象權限的攻擊路徑,則識別出一個攻擊者可能破壞業(yè)務系統(tǒng)機密性的安全威脅目標;2. 2)對于影響到業(yè)務系統(tǒng)完整性的關鍵對象權限集合PrivSet1中的各關鍵對象權限,如果網絡攻擊圖中存在使得攻擊者可能獲取到該關鍵對象權限的攻擊路徑,則識別出一個攻擊者可能破壞業(yè)務系統(tǒng)完整性的安全威脅目標;2. 3)對于影響到業(yè)務系統(tǒng)可用性的關鍵對象權限集合PrivSetA中的各關鍵對象權限,如果網絡攻擊圖中存在使得攻擊者可能獲取到該關鍵對象權限的攻擊路徑,則識別出一個攻擊者可能破壞業(yè)務系統(tǒng)可用性的安全威脅目標。3.對網絡攻擊圖進行分解,得到各安全威脅目標所對應的子攻擊圖,即得到各安全威脅目標的攻擊路徑。在識別出攻擊者的所有可能影響到業(yè)務系統(tǒng)安全目標的安全威脅目標后,需要對攻擊者的各安全威脅目標進行深入分析。本發(fā)明關注各安全威脅目標的威脅度,即各安全威脅目標遭受攻擊對業(yè)務系統(tǒng)所造成的威脅程度,以幫助安全管理員識別出高威脅度的安全威脅目標進行優(yōu)先處置。在現(xiàn)實環(huán)境中,由于業(yè)務系統(tǒng)復雜性和脆弱性的客觀存在,業(yè)務系統(tǒng)中可能存在多條到達同一安全威脅攻擊目標的脆弱性利用攻擊路徑,因此,在對各安全威脅進行深入分析時,需要考慮可能抵達該安全威脅的所有攻擊路徑。本發(fā)明稱這些包含了抵達指定的攻擊者安全威脅目標的所有攻擊路徑的網絡攻擊圖為所述安全威脅目標的子攻擊圖。在本發(fā)明中,安全威脅目標的威脅度則定義為從指定脆弱性利用威脅目標的子攻擊圖AG到區(qū)間
的映射f :AG—
,它可以綜合評估攻擊者達到脆弱性利用安全威脅目標的成功率,攻擊者達到某脆弱性利用安全威脅目標的成功率越大,則該脆弱性利用安全威脅的威脅度越大,反之越小。假設網絡攻擊圖中所有攻擊路徑的集合表示為PATHm,則攻擊者的某個安全威脅目標所對應子攻擊圖為滿足下述條件的網絡攻擊圖AG = <P0 U Pd, T0 U Td, E> 1)不存在循環(huán)路徑,即對Vp(H.4) EiMm4cj Poston (UkI1Preik)) = ¢,2 <i<lk ; 2)任意攻擊路徑長度不超過指定常數(shù)N (N彡I),即Vp(HA)eTMmMXij)⑶;3)任一攻擊路徑目標所獲得的攻擊權限必然在安全威脅集合中,即辦(從,...,^>以^^,—0^#,~%)門慫辭。按照本發(fā)明所述方法,在將傳統(tǒng)的因果關系攻擊圖轉換為基于顏色Petri網的網絡攻擊圖后,需要根據(jù)識別出的各安全威脅目標對網絡攻擊圖進行分解,以獲得各安全威脅目標所對應的子攻擊圖。本發(fā)明對基于顏色Petri網的網絡攻擊圖進行分解,一次性分解出各安全威脅目標所對應子攻擊圖,所述子攻擊圖不存在循環(huán)路徑且最長攻擊路徑不超過預設值。分解過程的具體步驟為3. I)將網絡攻擊圖中各庫所的顏色類型設置為〈攻擊路徑,攻擊權限列表> 二元組;為網絡攻擊圖中各原子攻擊的變遷附加警衛(wèi)函數(shù)(Guard),使得該變遷所對應的脆弱性利用攻擊的執(zhí)行不會導致超長攻擊路徑以及不會導致攻擊者獲取重復的攻擊權限;當網絡攻擊圖中的所有原子攻擊轉換結束后,則得到了可直接仿真的顏色Petri網系統(tǒng);3. 2)采用顏色Petri網工具對轉換后的顏色Petri網系統(tǒng)進行仿真,仿真結束后,所有可能抵達各安全威脅目標的攻擊路徑記錄在安全威脅目標相關的庫所中,這些攻擊路徑無循環(huán)且路徑長度不超過預先定義的長度值;3. 3)仿真結束后,對于攻擊者的每個安全威脅目標,根據(jù)該安全威脅目標所對應庫所中記錄的攻擊路徑列表對網絡攻擊圖裁剪,得到各安全威脅目標所對應的子攻擊圖。為了更好的實施本發(fā)明,上述過程的步驟3-1)中,可以為網絡攻擊圖中各庫所定義如表I所示的〈攻擊路徑,攻擊權限列表〉二元結構顏色類型APT colset APT = productAP*AT ;其中,AP記錄了脆弱性利用過程中已經成功執(zhí)行的變遷序列,它可以定義為colsetAP = list STRING ;AT則記錄了脆弱性利用實施過程中攻擊者獲得的攻擊權限列表,定義 為colset AT = list STRING。此外,還為本發(fā)明定義了顏色類型APL colset APL = listAP,用來記錄經過各原子攻擊的攻擊路徑的列表。表I.顏色Petri網顏色類型定義表
序號顏色類型名稱 ^I記錄內容
colset AP = list脆弱性利用過程中已經成功執(zhí)彳丁的原子
1AP
+STRING攻擊序列
colset AT = list脆弱性利用過程中攻擊者猶得的能力或
2AT
+STRING權限列表
p/~\1 optAprT1=
3.APT包括AP和AT兩部分
product AP * AT
APL * col SGt
4.APL■經過各變遷的攻擊路徑的列表
APL=IistAP在本發(fā)明所述網絡攻擊圖分解過程3. I)步驟中,需要為網絡攻擊圖中各原子攻擊中的變遷附加警衛(wèi)函數(shù),使得該變遷所對應的脆弱性利用攻擊的執(zhí)行不會導致超長攻擊路徑,以及不會導致攻擊者獲取重復的攻擊權限,它是網絡攻擊圖分解過程的關鍵步驟。將每個原子攻擊AG =〈PA。,PAd, t>轉換為可仿真的顏色Petri網系統(tǒng)的轉換過程如下I)為PA。中各輸入庫所指定顏色類型APT,如果輸入庫所屬于網絡攻擊圖的初始庫所集合Po,則為該庫所附加一個攻擊路徑和攻擊者能力列表都為空的token ;2)為輸出庫所PAd中各庫所附加顏色類型APT ;3)將從輸入庫所到變遷t的各輸入弧改為雙向弧,以避免變遷t與其它變遷在輸入庫所代表的攻擊條件上形成競爭;同時為各雙向弧附上可將類型為APT的token分解為攻擊路徑和攻擊能力列表的弧表達式;4)對于從變遷t到Pad中各輸出庫所的各輸出弧,附上可將變遷T所代表的原子攻擊追加到當前攻擊路徑中以及將變遷T輸出結果所代表的攻擊者能力追加到當前攻擊者能力列表中的弧表達式;
5)創(chuàng)建一個庫所Ph,并指定顏色類型為APL,分別創(chuàng)建從Ph到T和從T到Ph的有向弧,并分別設置相應的腳本,以記錄經過變遷T的所有攻擊路徑的列表;6)為了去除攻擊圖中的循環(huán)路徑和超長路徑,為變遷T附加一個guard函數(shù),所述guard函數(shù)由三個相與的條件組成,包括1)變遷T輸出的攻擊能力不在攻擊者已獲取能力列表中,該條件確保所生成的攻擊路徑不存在環(huán)路;2)所生成的以變遷T為結尾的攻擊路徑未出現(xiàn)在歷史攻擊路徑集合中,這將確保攻擊路徑的唯一性;3)包含變遷T的攻擊路徑長度不超過長度N,這將確保最后的攻擊圖切片中不包含超長的攻擊路徑。圖5為原子攻擊v2_0_3所對應的基于顏色Petri網的原子攻擊,可以通過上述方法將其轉換為如圖6所示的用來實現(xiàn)網絡攻擊圖分解的可仿真顏色Petri網模塊。圖6中,設置輸入庫所R_0,dns_0_3, bnd_h3和v2_h3的顏色類型為APT ;設置輸出庫所R_3的顏色類型為APT ;為四個輸入庫所R_0,dns_0_3, bnd_h3和v2_h3分別附加初始token 值([],[]),表示攻擊路徑和攻擊能力列表都為空;然后,將從各輸入庫所到變遷v2_0_3的四個輸入弧分別改為雙向弧,定義弧表達式為(pi,ti);以表達式“化1~~[ “v2_0_3”],tl~~[ “R_3”])”標識從變遷v2_0_3到庫所R_3的輸出弧(表達式中的~ ■'為CPN語言中的Iist元素追加運算符),從而將變遷v2_0_3所代表的脆弱性利用行為追加到當前攻擊路徑中,同時將變遷v2_0_3成功執(zhí)行后所獲得的攻擊者能力(獲得了 host3上的Root權限)追加到當前攻擊者能力列表中;然后,創(chuàng)建了一個顏色類型為APL的歷史庫所PH,并分別創(chuàng)建從PH到v2_0_3和從v2_0_3到PH的有向弧,并分別附加弧表達式“pi”和“p「[pi] ”以記錄經過變遷v2_0_3的所有攻擊路徑的列表;最后,為變遷v2_0_3設置guard函數(shù)“gd( “R_3”,pl,tl,pl) ”,它限定變遷v2_0_3所代表的原子攻擊的執(zhí)行條件,分別為1)執(zhí)行此變遷不會導致攻擊者獲得重復的攻擊者權限(這里為重復獲得H3上的Root權限);2)執(zhí)行此變遷不會導致出現(xiàn)循環(huán)的攻擊路徑;3)執(zhí)行此變遷不會導致攻擊路徑長度超過指定值。只有上述三個條件同時滿足,該變遷才能被觸發(fā),從而防止所得到的子攻擊圖出現(xiàn)循環(huán)攻擊路徑或者攻擊路徑步長超過指定長度。為了實現(xiàn)上述guard函數(shù),可以采用顏色Petri網編程語言為本發(fā)明定義如下的gd函數(shù)和gd相關的ni函數(shù)Fun ni(c,x::xs) = ifc = x then false else ni(c,xs)ni (c, ni) = true ;Fun gd(pr, pi, tl, pi) = ni (pr, tl)andalso ni (pi, pi)andalso Ien(pi) < =N;這里的ni函數(shù)實現(xiàn)了一個不包含判定功能,即當元素c包含在以X為第一個元素和以XS為列表尾的列表中時,返回為真;函數(shù)gd中的“ni (pr,tl) ”部分要求執(zhí)行此變遷所獲得的權限Pr不在已有攻擊者權限列表中;函數(shù)gd中的“ni (pi, pi) ”部分要求該變遷沒有出現(xiàn)在以后的攻擊路徑中;函數(shù)gd中的“l(fā)en(pl) <=N”部分確保當前攻擊路徑長度沒有超過指定值。進一步地,本發(fā)明可實現(xiàn)將步驟3得到的各子攻擊圖轉換為不確定性推理網絡,利用不確定性推理方法計算各安全威脅目標的威脅度,以便對各安全威脅進行優(yōu)先級排序和優(yōu)先處置。如何根據(jù)脆弱性利用安全威脅目標所對應子攻擊圖來計算脆弱性利用威脅目標的威脅度,需要綜合考慮多種因素,包括脆弱性利用條件、單個脆弱性利用成功率等,以及業(yè)務系統(tǒng)中所存在的多條抵達同一攻擊目標的攻擊路徑對脆弱性利用威脅目標成功可能性的綜合影響;此外,還需考慮業(yè)務系統(tǒng)中存在的各種不確定和未知因素。本發(fā)明采用不確定性推理方法評價各脆弱性利用安全威脅目標的威脅度,它將弱性利用威脅目標所對應的子攻擊圖視為不確定性D-S證據(jù)推理網絡,然后采用公知的D-S證據(jù)推理方法計算出各安全威脅目標的威脅度。在計算出各安全威脅的威脅度后,就可以基于威脅度對各安全威脅目標進行排序,從而確定處置優(yōu)先級,對優(yōu)先級高的安全威脅進行優(yōu)先處置?;贒-S證據(jù)不確定性推理的脆弱性利用威脅目標的威脅度計算過程包括三個步驟a)將子攻擊圖中的每個原子攻擊轉換為IF-Then規(guī)則集,具體做法為對于子攻擊圖中的每個變遷,抽取該變遷所對應的原子攻擊,將原子攻擊分解為原子攻擊前提條件、原子攻擊動作和原子攻擊后果,根據(jù)原子攻擊 分解結果生成If-Then規(guī)則;b)根據(jù)預先確定的各脆弱性利用原子攻擊的難易程度評估經驗值和初始證據(jù)可信度等知識,將IF-Then規(guī)則轉換為D-S不確定性證據(jù)推理規(guī)則;c)利用D-S證據(jù)理論推理引擎對所生成的D-S不確定性證據(jù)推理規(guī)則集進行不確定性推理,最終得到脆弱性利用威脅目標的威脅度值。下面以一個具體的實施例來說明本發(fā)明方法中各步驟的實施流程。本實施例所參照的Web應用業(yè)務系統(tǒng)實驗環(huán)境如圖7所示,配置的安全策略如下部署在網絡信任域邊界處的防火墻將網絡分成了互聯(lián)網、內網和DMZ (軍事?;饏^(qū))區(qū)三個安全域。DMZ區(qū)部署的Web服務器為用戶提供Web服務。內網的內部用戶不允許與外網直接連接,防止外部蠕蟲病毒等攻擊直接進入內網傳播,保證Web服務器對外提供服務。各安全域之間具體訪問控制策略如下1)只允許互聯(lián)網用戶訪問DMZ區(qū)H2上的IIS Web服務和H3上的DNS域名服務;2)DMZ區(qū)的H2允許訪問H3上的Sendmail服務和內網H4上的MYSQL服務;3)禁止H2和H3直接訪問內網中的管理主機H5 ;4) H5允許直接訪問DMZ的H2和H3,及內網的H4。所述Web業(yè)務系統(tǒng)實施例中各節(jié)點的脆弱性信息如表2所示。表2. Web系統(tǒng)應用終端軟件配置及脆弱性信息
權利要求
1.一種識別脆弱性利用安全威脅并確定相關攻擊路徑的方法,其步驟包括 1)根據(jù)業(yè)務系統(tǒng)的網絡配置和脆弱性信息得到因果關系攻擊圖,將所述因果關系攻擊圖轉換為基于顏色Petri網的網絡攻擊圖; 2)依據(jù)預先定義的業(yè)務系統(tǒng)安全目標識別出業(yè)務系統(tǒng)中各種脆弱性利用安全威脅目標; 3)將所述基于顏色Petri網的網絡攻擊圖分解為子攻擊圖,得到所述各種脆弱性利用安全威脅目標的攻擊路徑。
2.如權利要求I所述的方法,其特征在于,步驟I)中將所述因果關系攻擊圖轉換為基于顏色Petri網的網絡攻擊圖的方法為 I. D將所述因果關系攻擊圖中的初始節(jié)點集合和可達節(jié)點集合中的各節(jié)點轉換為所述顏色Petri網中的庫所; 1.2)將所述因果關系攻擊圖中的原子攻擊節(jié)點集合中的各原子攻擊轉換為所述顏色Petri網中的變遷; 1.3)將所述因果關系攻擊圖中的有向邊集合中的有向邊轉換為所述顏色Petri網中的連接庫所和變遷以及連接變遷和庫所的有向弧。
3.如權利要求2所述的方法,其特征在于,采用規(guī)范的命名規(guī)則來命名轉換后的顏色Petri網中的各庫所和變遷。
4.如權利要求I所述的方法,其特征在于,所述業(yè)務系統(tǒng)安全目標基于攻擊者權限來定義,包括信息資產的機密性、完整性和可用性。
5.如權利要求4所述的方法,其特征在于,步驟2)中依據(jù)業(yè)務系統(tǒng)安全目標識別出業(yè)務系統(tǒng)中各種脆弱性利用安全威脅目標的方法為 2.I)對于影響到業(yè)務系統(tǒng)機密性的關鍵對象權限集合中的各關鍵對象權限,如果網絡攻擊圖中存在使得攻擊者可能獲取到該關鍵對象權限的攻擊路徑,則識別出一個可能破壞業(yè)務系統(tǒng)機密性的安全威脅目標; 2.2)對于影響到業(yè)務系統(tǒng)完整性的關鍵對象權限集合中的各關鍵對象權限,如果網絡攻擊圖中存在使得攻擊者可能獲取到該關鍵對象權限的攻擊路徑,則識別出一個可能破壞業(yè)務系統(tǒng)完整性的安全威脅目標; 2.3)對于影響到業(yè)務系統(tǒng)可用性的關鍵對象權限集合中的各關鍵對象權限,如果網絡攻擊圖中存在使得攻擊者可能獲取到該關鍵對象權限的攻擊路徑,則識別出一個可能破壞業(yè)務系統(tǒng)可用性的安全威脅目標。
6.如權利要求I所述的方法,其特征在于,步驟3)中將基于顏色Petri網的網絡攻擊圖分解為子攻擊圖的方法為 3.I)將基于顏色Petri網的網絡攻擊圖轉換為可仿真顏色Petri網系統(tǒng); 3.2)對轉換后的顏色Petri網系統(tǒng)進行仿真,使所有可能抵達各安全威脅目標的攻擊路徑記錄在安全威脅目標相關的庫所中; 3.3)仿真結束后,根據(jù)各脆弱性利用安全威脅目標相關庫所中記錄的攻擊路徑列表對網絡攻擊圖進行裁剪,得到各安全威脅目標所對應子攻擊圖。
7.如權利要求6所述的方法,其特征在于,在所述步驟3.I)中,為所述網絡攻擊圖中各庫所定義〈攻擊路徑,攻擊權限列表> 二元結構顏色類型。
8.如權利要求6所述的方法,其特征在于,在所述步驟3.I)中,為所述網絡攻擊圖中各原子攻擊中的變遷附加警衛(wèi)函數(shù)。
9.如權利要求I所述的方法,其特征在于將所述步驟3)得到的各子攻擊圖轉換為不確定性推理網絡,利用不確定性推理方法計算所述各種脆弱性利用安全威脅目標的威脅度;根據(jù)所述威脅度確定所述各種脆弱性利用安全威脅目標的處置優(yōu)先級。
10.如權利要求9所述的方法,其特征在于,計算所述威脅度的方法為 a)將子攻擊圖轉換為IF-then規(guī)則集,具體做法為對于子攻擊圖中的每個變遷,抽取該變遷所對應的原子攻擊,將原子攻擊分解為原子攻擊前提條件、原子攻擊動作和原子攻擊后果,根據(jù)原子攻擊分解結果生成if-Then規(guī)則; b)根據(jù)預先確定的各脆弱性利用原子攻擊的難易程度評估經驗值和初始證據(jù)可信度等知識,將IF-Then規(guī)則轉換為D-S不確定性證據(jù)推理規(guī)則; c)利用D-S證據(jù)理論推理引擎對所生成的D-S不確定性證據(jù)推理規(guī)則集進行不確定性推理,最終得到脆弱性利用威脅目標的威脅度值。
全文摘要
本發(fā)明提供一種識別脆弱性利用安全威脅并確定相關攻擊路徑的方法。首先根據(jù)業(yè)務系統(tǒng)的網絡配置和脆弱性信息得到因果關系攻擊圖,將所述因果關系攻擊圖轉換為基于顏色Petri網的網絡攻擊圖;然后依據(jù)預先定義的業(yè)務系統(tǒng)安全目標識別出業(yè)務系統(tǒng)中各種脆弱性利用安全威脅目標;再將所述基于顏色Petri網的網絡攻擊圖分解為子攻擊圖,得到所述各種脆弱性利用安全威脅目標的攻擊路徑。本發(fā)明方法應用于網絡信息安全技術領域,可一次性得到所有安全威脅目標的子攻擊圖,效率非常高。
文檔編號H04L29/06GK102638458SQ20121008097
公開日2012年8月15日 申請日期2012年3月23日 優(yōu)先權日2012年3月23日
發(fā)明者馮登國, 吳迪, 連一峰, 陳愷, 魏軍 申請人:中國科學院軟件研究所