本發(fā)明涉及軟件安全
技術(shù)領(lǐng)域:
,具體涉及一種系統(tǒng)漏洞防護方法和裝置。
背景技術(shù):
:由于信息系統(tǒng)在硬件、軟件、協(xié)議以及安全策略等方面存在的缺陷和不足,信息產(chǎn)品和信息系統(tǒng)會不可避免地存在安全漏洞,而漏洞是造成信息系統(tǒng)安全威脅的重要因素。為了減少漏洞利用造成的損失,有必要在系統(tǒng)或軟件被攻擊之前做好安全防護工作。但是由于漏洞數(shù)量眾多,一一填補雖然可能,卻會造成嚴重的資源浪費或者需要較高的代價,并且在修補漏洞之后,是否可以達到理想的防護效果也難以確定。如果某些漏洞是由某個未檢測出的漏洞所引發(fā)的,那么在修復這些漏洞后,只要滿足條件,新的漏洞又會產(chǎn)生,從而造成明明消除了大量的漏洞,卻并沒有達到理想的防護效果的現(xiàn)象。由此可知,現(xiàn)有技術(shù)漏洞防護針對單個漏洞進行修復處理,使得實際處理復雜度高,響應(yīng)時間長,處理效率和漏洞修復的針對性均無法得到保證。技術(shù)實現(xiàn)要素:本發(fā)明提供了一種系統(tǒng)漏洞防護方法和裝置,以解決現(xiàn)有技術(shù)漏洞防護復雜度高,響應(yīng)時間長,處理效率和漏洞修復的針對性均無法得到保證的問題。為了實現(xiàn)上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:根據(jù)本發(fā)明的一個方面,提供了一種系統(tǒng)漏洞防護方法,該方法包括:檢測目標系統(tǒng)中的漏洞;獲取目標系統(tǒng)的權(quán)限分級,并基于權(quán)限分級構(gòu)建目標系統(tǒng)的漏洞之間的關(guān)聯(lián)關(guān)系圖;根據(jù)構(gòu)建的漏洞之間的關(guān)聯(lián)關(guān)系圖,計算關(guān)聯(lián)關(guān)系圖的核度,確定出目標系統(tǒng)的核心漏洞;修復核心漏洞,以實現(xiàn)對目標系統(tǒng)的防護。根據(jù)本發(fā)明的另一個方面,提供了一種系統(tǒng)漏洞防護裝置,包括:漏洞檢測單元,用于檢測目標系統(tǒng)中的漏洞;關(guān)聯(lián)關(guān)系圖構(gòu)建單元,用于獲取目標系統(tǒng)的權(quán)限分級,并基于權(quán)限分級構(gòu)建目標系統(tǒng)的漏洞之間的關(guān)聯(lián)關(guān)系圖;核心漏洞確定單元,用于根據(jù)構(gòu)建的漏洞之間的關(guān)聯(lián)關(guān)系圖,計算關(guān)聯(lián)關(guān)系圖的核度,確定出目標系統(tǒng)的核心漏洞;防護單元,用于修復核心漏洞,以實現(xiàn)對目標系統(tǒng)的防護。本發(fā)明的有益效果是:本發(fā)明實施例的系統(tǒng)漏洞防護方案在檢測出系統(tǒng)漏洞后,基于系統(tǒng)的權(quán)限分級和權(quán)限提升,建立漏洞之間的關(guān)聯(lián)關(guān)系圖,并通過計算關(guān)聯(lián)關(guān)系圖的核度來分析漏洞之間的關(guān)聯(lián)關(guān)系,以找出對該漏洞關(guān)聯(lián)關(guān)系圖影響最大的核心漏洞,修復核心漏洞進而實現(xiàn)系統(tǒng)防護。與現(xiàn)有技術(shù)相比,考慮了漏洞之間的關(guān)聯(lián)關(guān)系尤其是權(quán)限利用特性關(guān)系,從而在修復漏洞時修復核心漏洞即可實現(xiàn)一并修復核心漏洞相關(guān)聯(lián)的漏洞,減少了漏洞處理的數(shù)量的有益效果。也降低了系統(tǒng)防護的復雜度,實現(xiàn)了對漏洞的高效率的防護,提高了系統(tǒng)的安全性。附圖說明圖1是本發(fā)明一個實施例的一種系統(tǒng)漏洞防護方法的流程示意圖;圖2是本發(fā)明一個實施例的漏洞關(guān)聯(lián)關(guān)系圖的示意圖;圖3是圖2所示的關(guān)聯(lián)關(guān)系圖的一個具體實例的示意圖;圖4是本發(fā)明一個實施例的一種系統(tǒng)漏洞防護裝置的結(jié)構(gòu)框圖。具體實施方式本發(fā)明的設(shè)計構(gòu)思在于:系統(tǒng)的漏洞之間存在復雜的相互關(guān)系,包括漏洞被利用時的利用特性關(guān)系等。針對這一現(xiàn)狀,在進行系統(tǒng)防護時就不能像漏洞早期研究一樣,只單一地針對某個漏洞本身進行分析,而須考慮漏洞之間存在的復雜的相互作用,分析漏洞之間的關(guān)聯(lián)關(guān)系?;诖?,本發(fā)明實施例根據(jù)系統(tǒng)的權(quán)限分級和權(quán)限提升構(gòu)建表示漏洞之間關(guān)聯(lián)關(guān)系的關(guān)聯(lián)關(guān)系圖,并采用核度理論揭示漏洞之間的關(guān)聯(lián)關(guān)系,基于失效點分析漏洞關(guān)聯(lián)關(guān)系圖的連通性,找到對漏洞關(guān)聯(lián)關(guān)系圖整體連通性影響最大的漏洞或漏洞集合,確定系統(tǒng)中的關(guān)鍵漏洞,并修復關(guān)鍵漏洞,即可實現(xiàn)一并修復相關(guān)聯(lián)的其它漏洞,減少漏洞處理數(shù)量,降低處理復雜度的有益效果,實現(xiàn)了對系統(tǒng)漏洞的高效率防護。這里先對本發(fā)明實施例涉及的幾個名詞進行說明。漏洞關(guān)聯(lián):是漏洞之間存在的復雜的相互關(guān)系,本發(fā)明所指的漏洞關(guān)聯(lián)主要包括漏洞被利用時的利用特性關(guān)系。聯(lián)合節(jié)點和鏈接攻擊:指多個漏洞連續(xù)被利用從而搭建攻擊路徑,使得攻擊者在無直接可用的漏洞時,通過獲取較高的系統(tǒng)權(quán)限,繞開系統(tǒng)安全防護,從而達成其它攻擊目的的一種攻擊方式。例如,攻擊者首先利用輸入驗證漏洞將權(quán)限提升至本地用戶,再利用需要本地用戶權(quán)限的代碼注入漏洞獲取數(shù)據(jù)。在這樣的攻擊中,漏洞之間的關(guān)聯(lián)關(guān)系與系統(tǒng)權(quán)限以及權(quán)限提升和轉(zhuǎn)換密切相關(guān)。權(quán)限提升:是指處于低權(quán)限的攻擊者通過成功利用某個具有權(quán)限提升特點的漏洞,獲得一定的權(quán)限提升,從而可以在非授權(quán)情況下獲得更高級的系統(tǒng)權(quán)限。核度理論:是利用核與核度刻畫系統(tǒng)的穩(wěn)定性和連通性,研究系統(tǒng)基本結(jié)構(gòu)和基本性質(zhì)的理論。核是一個系統(tǒng)中最關(guān)鍵、最核心的主要素,是系統(tǒng)的主體和關(guān)鍵;任何一個給定的系統(tǒng),均存在系統(tǒng)的核;不同的系統(tǒng)具有不同類型的核,核度是衡量系統(tǒng)核的工具,應(yīng)用核度理論解決相應(yīng)技術(shù)問題的主要任務(wù)即是利用核度尋找系統(tǒng)的核。實施例一圖1是本發(fā)明一個實施例的一種系統(tǒng)漏洞防護方法的流程示意圖,如圖1所示,本實施例的系統(tǒng)漏洞防護方法包括如下步驟:步驟s101,檢測目標系統(tǒng)中的漏洞;步驟s102,獲取目標系統(tǒng)的權(quán)限分級,并基于權(quán)限分級構(gòu)建目標系統(tǒng)的漏洞之間的關(guān)聯(lián)關(guān)系圖;步驟s103,根據(jù)構(gòu)建的漏洞之間的關(guān)聯(lián)關(guān)系圖,計算關(guān)聯(lián)關(guān)系圖的核度,確定出目標系統(tǒng)的核心漏洞;步驟s104,修復核心漏洞,以實現(xiàn)對目標系統(tǒng)的防護。由圖1所示的方法可知,本實施例的系統(tǒng)漏洞防護方法針對單個確定的系統(tǒng),基于系統(tǒng)的權(quán)限分級建立漏洞之間的關(guān)聯(lián)關(guān)系圖,并找到對漏洞關(guān)聯(lián)關(guān)系圖整體影響最大的漏洞,確定出系統(tǒng)中的核心漏洞,修復核心漏洞從而實現(xiàn)對漏洞的高效率防護,提高了系統(tǒng)的安全性。為了解決現(xiàn)有技術(shù)中單一地對漏洞本身進行分析導致的防護效率低下的技術(shù)問題,本發(fā)明實施例的方案主要包括如下步驟:首先,針對聯(lián)合節(jié)點和鏈接攻擊等漏洞,結(jié)合系統(tǒng)的權(quán)限分級和漏洞的權(quán)限提升,建立漏洞關(guān)聯(lián)關(guān)系圖。其中,在建立漏洞關(guān)聯(lián)關(guān)系圖時,對實際攻擊效果相同或相似的漏洞進行聚簇處理,以將漏洞關(guān)聯(lián)關(guān)系圖的規(guī)??刂圃趦H與權(quán)限層級數(shù)量有關(guān)的小規(guī)模內(nèi),提高處理效率。接著,從揭示圖自身結(jié)構(gòu)特性的角度出發(fā),引入核與核度,綜合考慮圖的連通性與穩(wěn)定性,評估漏洞關(guān)聯(lián)關(guān)系圖中的關(guān)鍵漏洞節(jié)點,分析漏洞之間的關(guān)聯(lián)關(guān)系。最后,根據(jù)確定出的系統(tǒng)的核,對系統(tǒng)漏洞進行防護,提高系統(tǒng)的安全性。以下結(jié)合本發(fā)明的實施例進行說明。實施例二對于一個漏洞而言,其進行權(quán)限提升的基礎(chǔ)是權(quán)限分級。本實施例中,一個確定系統(tǒng)的權(quán)限自高向低被劃分為多個級別,例如,由高至低依次命名為{o,l1,l2,…,ln},其中,權(quán)限l1指root級權(quán)限,也就是系統(tǒng)管理員權(quán)限;權(quán)限o表示達成除提升權(quán)限目的外的其它攻擊目的,這里的其它攻擊目的,是指獲取機密數(shù)據(jù)、導致目標系統(tǒng)崩潰或進行監(jiān)控等,該級別是一個特殊的權(quán)限級別,在后續(xù)對漏洞處理時不單獨計算該級別的漏洞。另外,對于不同的系統(tǒng),權(quán)限分級可能略有不同,這涉及具體的系統(tǒng)安全配置。實際應(yīng)用過程中應(yīng)當根據(jù)待防護系統(tǒng)的權(quán)限分級情況進行處理,不限于這里的舉例。如前述,權(quán)限提升是指處于低權(quán)限的攻擊者通過成功利用某個具有特權(quán)提升特點的漏洞,提升自己權(quán)限的動作,也就是說,當有漏洞可以直接使攻擊者由低層級權(quán)限li提升至較高層級權(quán)限lj時,該漏洞也可以讓攻擊者到達權(quán)限層級li-1,li-2,…,lj+1,以便利用該層級的漏洞;而當漏洞可以使攻擊者到達最高層級權(quán)限時則不需要再借助其他漏洞,因為已經(jīng)達成了攻擊的意圖(即,獲取最高級別權(quán)限)。前述的權(quán)限提升關(guān)系是從低層級權(quán)限提升至高層級權(quán)限的一個枚舉,可以表示如下表1:起始權(quán)限終止權(quán)限權(quán)限提升動作lnln-1ln→ln-1lnln-2ln→ln-2ln…………lnl1ln→l1lnoln→oln-1ln-2ln-1→ln-2ln-1…………ln-1l1ln-1→l1ln-1oln-1→o………………l2l1l2→l1l2ol2→o表1在表1中,每一行代表漏洞的一條權(quán)限提升路徑,例如,第一行表示漏洞從起始權(quán)限ln提升到權(quán)限ln-1。需要說明的是,系統(tǒng)中的漏洞可以分為有提權(quán)(即權(quán)限提升)和無提權(quán)兩類,表1中的權(quán)限o是針對無提權(quán)的漏洞設(shè)置的權(quán)限,即,對那些不提權(quán)而達成攻擊目的的漏洞將其權(quán)限提升的終止層級統(tǒng)一設(shè)置為o。實踐中,漏洞是否存在權(quán)限提升動作,可以通過該漏洞的描述信息獲取得到。具體到不同的漏洞信息,獲取方法并不完全相同。本實施例的漏洞的權(quán)限提升動作藉由漏洞的描述來獲取,比如說cve的漏洞信息描述,cve(commonvulnerabilities&exposures,通用漏洞披露)。cve是國際著名的安全漏洞庫,也是對已知漏洞和安全缺陷的標準化名稱的列表,其使命是為了能更加快速而有效地鑒別、發(fā)現(xiàn)和修復軟件產(chǎn)品的安全漏洞。根據(jù)檢測出的每個漏洞的漏洞編號,在通用漏洞披露cve漏洞數(shù)據(jù)庫中查找漏洞的描述信息,并分析出每個漏洞的權(quán)限提升的起始權(quán)限級別以及終止權(quán)限級別。具體的,cve的漏洞信息中記錄了形如“…allowsdemand(利用條件)togain(權(quán)限變化及攻擊目的實現(xiàn))”這樣的漏洞形式化描述方式。分析這段語句中的相應(yīng)內(nèi)容即可判斷出一個漏洞是否存在權(quán)限的提升,以及是否達成了攻擊目的。本發(fā)明的實施例由權(quán)限提升動作決定漏洞之間的關(guān)系,因此,在確定出漏洞的權(quán)限分級及權(quán)限提升動作后,即可建立漏洞之間的關(guān)聯(lián)模型(本實施例中,關(guān)聯(lián)模型為關(guān)聯(lián)關(guān)系圖)?;跈?quán)限分級構(gòu)建目標系統(tǒng)的漏洞之間的關(guān)聯(lián)關(guān)系圖須考慮三個方面,第一,確定關(guān)聯(lián)關(guān)系圖的層數(shù),第二,確定關(guān)聯(lián)關(guān)系圖的頂點,以及第三,確定關(guān)聯(lián)關(guān)系圖的邊。針對上述三個方面,本實施例中是根據(jù)權(quán)限分級的級數(shù)確定關(guān)聯(lián)關(guān)系圖的層數(shù),根據(jù)目標系統(tǒng)的漏洞的權(quán)限提升路徑確定關(guān)聯(lián)關(guān)系圖的頂點,根據(jù)頂點以及頂點對應(yīng)的漏洞的權(quán)限提升路徑確定關(guān)聯(lián)關(guān)系圖的邊。以下詳細說明。第一,確定層數(shù)一個確定系統(tǒng)的漏洞之間的關(guān)聯(lián)關(guān)系圖的層數(shù)是由系統(tǒng)的權(quán)限分級的級數(shù)確定,即,系統(tǒng)的權(quán)限分級的級數(shù)等于關(guān)聯(lián)關(guān)系圖的層數(shù),例如,一個目標系統(tǒng)的權(quán)限分為四級,那么,構(gòu)建的關(guān)聯(lián)關(guān)系圖應(yīng)包括四層,每一層按照權(quán)限級別對應(yīng)構(gòu)建。第二、確定頂點根據(jù)目標系統(tǒng)的漏洞的權(quán)限提升路徑確定關(guān)聯(lián)關(guān)系圖的頂點,具體包括:獲取檢測出的每個漏洞的權(quán)限提升的起始權(quán)限級別以及終止權(quán)限級別,將起始權(quán)限級別以及終止權(quán)限級別均相同的漏洞進行聚簇后對應(yīng)作為關(guān)聯(lián)關(guān)系圖的一個頂點,并統(tǒng)計起始權(quán)限級別以及終止權(quán)限級別均相同的漏洞的數(shù)量作為該頂點的權(quán)值;也就是說,對于漏洞關(guān)聯(lián)關(guān)系圖的頂點,在本實施例中仍然選取漏洞作為頂點,但是如果漏洞關(guān)聯(lián)關(guān)系圖由漏洞決定的話,由于每個系統(tǒng)都可以劃分出多個權(quán)限層級,不同層級的漏洞之間都存在有向的連接,這樣將導致得到的漏洞關(guān)聯(lián)關(guān)系圖太過龐大,處理的復雜度高,影響處理效率。對此,本實施例中雖然以漏洞作為關(guān)聯(lián)關(guān)系圖的頂點,但不為每個漏洞都分配一個頂點,而是將存在同樣提權(quán)動作的不同類型的漏洞進行匯總,將匯總后的存在同樣提權(quán)動作的漏洞作為一個頂點,以得到一個具有有限頂點的漏洞關(guān)聯(lián)關(guān)系圖。這里的不同類型是指漏洞的威脅類型不同,如緩沖區(qū)溢出漏洞和數(shù)字錯誤漏洞。具體處理過程如下:根據(jù)前述的系統(tǒng)權(quán)限提升,若某系統(tǒng)具有權(quán)限分級{o,l1,l2,…,ln},則為該系統(tǒng)構(gòu)建漏洞關(guān)聯(lián)關(guān)系圖時,漏洞關(guān)聯(lián)關(guān)系圖共有n層,漏洞關(guān)聯(lián)關(guān)系圖的頂點為(n,n-1),(n,n-2),…,(n,1),(n,o),(n-1,n-2),(n-1,n-3),…,(n-1,1),(n-1,o),…,(3,2),(3,1),(3,o),(2,1),(2,o),(1,-),(o,-)。在表示關(guān)聯(lián)關(guān)系圖的頂點的二元組中,第1元素表示存在權(quán)限提升動作的漏洞的起始層級,也即該頂點在漏洞關(guān)聯(lián)關(guān)系圖中的層級;第2元素表示存在權(quán)限提升動作的漏洞的結(jié)束層級。例如,若有三個漏洞a、b、c,其中漏洞a位于權(quán)限l4,漏洞b位于權(quán)限l3,漏洞c位于權(quán)限l2,則存在漏洞頂點(4,3),(4,2),(4,1),(4,o),(3,2),(3,1),(3,o),(2,1),(2,o),(1,-),(o,-)。需要說明的是,這里的頂點(1,-)中,第1元素表示漏洞的起始級別為管理員級,第2元素“-”表示該頂點沒有后繼節(jié)點。(o,-)中,第1元素表示漏洞的起始級別為直接達成除提權(quán)外的攻擊目的,第2元素“-”表示該頂點沒有后繼節(jié)點。由上可知,本實施例中,漏洞關(guān)聯(lián)關(guān)系圖的頂點既不是單一的不同類別的漏洞,也不是每一層級的全部漏洞,而是按照不同的權(quán)限提升動作對漏洞進行聚簇后獲得的。也就是說,對具有關(guān)聯(lián)關(guān)系的不同權(quán)限層級的漏洞節(jié)點,基于權(quán)限提升關(guān)系,根據(jù)起始漏洞節(jié)點提升到的不同終止權(quán)限級別對該起始漏洞節(jié)點進行分割,從而形成漏洞關(guān)聯(lián)關(guān)系圖中的節(jié)點。另外,由于本實施例中采用漏洞聚簇,因此在漏洞關(guān)聯(lián)關(guān)系圖中的每個頂點都代表了一定數(shù)量的漏洞,例如,若有頂點(i-1,i-2),則表示存在由li-1級漏洞至li-2級漏洞的提權(quán)動作,若存在相同提權(quán)動作的漏洞數(shù)為ci-1,i-2,則頂點(i-1,i-2)具有權(quán)值ci-1,i-2。第三,確定邊確定了漏洞關(guān)聯(lián)關(guān)系圖的頂點以后,還需要確定漏洞關(guān)聯(lián)關(guān)系圖中的邊。本實施例通過如下條件確定第一頂點(i,j)和第二頂點(k,m)之間是否存在邊:當i,j,k和m的值滿足i>k且j<=k且m<j時,則存在從第一頂點(i,j)指向第二頂點(k,m)的一條有向邊;其中,i表示第一頂點對應(yīng)的漏洞的權(quán)限提升的起始權(quán)限級別,j表示第一頂點對應(yīng)的漏洞的權(quán)限提升的終止權(quán)限級別,k表示第二頂點對應(yīng)的漏洞的權(quán)限提升的起始權(quán)限級別,m表示第二頂點對應(yīng)的漏洞的權(quán)限提升的終止權(quán)限級別。注:這里的“第一”、“第二”僅用作區(qū)分兩個頂點,可以理解成頂點的名稱。也就是說,本實施例中漏洞關(guān)聯(lián)關(guān)系圖的邊由漏洞的權(quán)限提升動作和漏洞頂點名稱共同決定。上述確定邊的條件是基于下列規(guī)則得到的:(一)若漏洞關(guān)聯(lián)關(guān)系圖中有頂點(i-m,i-m-n),則表示存在由li-m級漏洞至li-m-n級漏洞的提權(quán)動作,因此,在漏洞關(guān)聯(lián)關(guān)系圖中必然存在由該頂點連接到漏洞關(guān)聯(lián)關(guān)系圖中第i-m-n層級所有頂點的邊。(二)同時,在考慮漏洞關(guān)聯(lián)關(guān)系時,由于高層級權(quán)限用戶可以利用低層級權(quán)限的漏洞,也就是說,權(quán)限提升之間具有傳遞性,因此,若有四個漏洞a、b、c、d,其中漏洞a位于權(quán)限li,漏洞b位于權(quán)限li-1,漏洞c位于權(quán)限li-2,漏洞d位于權(quán)限li-3,當li-1級漏洞b提權(quán)至li-3級漏洞d時,隱含了由li-1級漏洞b提權(quán)至li-2級漏洞c,再由li-2級漏洞c提權(quán)至li-3級漏洞d的動作。因此,在漏洞關(guān)聯(lián)關(guān)系圖中也要考慮相應(yīng)的邊。即,該頂點(i-m,i-m-n)也會連接至i-m與i-m-n兩層中間的各層(不包括前后層)中的部分節(jié)點。以及,(三)該頂點(i-m,i-m-n)并非連接至i-m與i-m-n兩層中間的各層(不包括前后層)中的全部節(jié)點,只有中間層節(jié)點指向較i-m-n更高的層級時才設(shè)置連接邊。規(guī)則(三)的作用是在規(guī)則(二)確定出的邊中,進一步排除無效邊,從而控制圖的規(guī)模,降低處理的復雜度。無效邊是指在攻擊路徑上,后序漏洞未能將權(quán)限提高至前序漏洞已能達到的級別之上。舉例而言,若有頂點(4,2)和(3,2),根據(jù)邊的確定規(guī)則(三),頂點(4,2)至頂點(3,2)的邊就是沒有意義的邊,因為兩個頂點(4,2)和(3,2)權(quán)限提升的終止層級都是2級,在這里,(4,2)處已經(jīng)能將權(quán)限提升至l2,再將(3,2)處提升至l2沒有意義,所以連接(4,2)和(3,2)的邊就是無效邊,不應(yīng)出現(xiàn)在漏洞關(guān)聯(lián)關(guān)系圖中。確定了漏洞關(guān)聯(lián)關(guān)系圖的頂點和邊以后,即可建立漏洞關(guān)聯(lián)關(guān)系圖,由于權(quán)限提升是有方向的,所以本實施例中構(gòu)建的關(guān)聯(lián)關(guān)系圖是一個有向點賦權(quán)圖。需要說明的是,構(gòu)建關(guān)聯(lián)關(guān)系圖的目的是為了確定關(guān)聯(lián)關(guān)系圖的核,從而找到核點漏洞。具體到漏洞關(guān)聯(lián)關(guān)系圖,如何定義并計算核與核度,以描述漏洞關(guān)聯(lián)關(guān)系圖的連通性、穩(wěn)定性和可靠性,進而分析漏洞關(guān)聯(lián)關(guān)系中的關(guān)鍵漏洞(即系統(tǒng)的核),并在此基礎(chǔ)上進一步進行漏洞分析和防護,也是利用核度理論進行漏洞分析的關(guān)鍵點。為了得到漏洞關(guān)聯(lián)關(guān)系圖的核度,首先對無向無權(quán)圖進行分析。在傳統(tǒng)的圖分析中,一般從點割集、點連通度、邊連通度等來描述圖的連通性和穩(wěn)定性。其中,點連通度是指最少去掉圖中的多少個頂點后圖不連通,去掉的頂點數(shù)為其連通度;邊連通度是指最少去掉圖中的多少條邊后圖不連通。但是,采用這種分析方法,有時看起來結(jié)構(gòu)明顯不同的兩個圖,連通度卻是相同的,因此,這種分析方法無法準確的確定圖的連通度,進而不能準確的確定圖的核度。對此,本實施例提出了適合于前述漏洞關(guān)聯(lián)關(guān)系圖的有向點賦權(quán)圖的核度計算方法。本發(fā)明實施例主要是在研究有向圖的過程中考慮了漏洞利用關(guān)系特性,即,漏洞的提權(quán)動作。當存在低層級a至高層級b的提權(quán)動作時,有連線a→b。這類圖存在一個特性,也就是,起始層級沒有前驅(qū)節(jié)點以及終止層級沒有后繼節(jié)點。因此,對于這類圖,本實施例中借助失效點來計算系統(tǒng)的核度。失效點是指,如果漏洞關(guān)聯(lián)關(guān)系圖中的某個點(漏洞)滿足下列任一條件時,該點稱為失效點。(i)失去了全部前驅(qū)或者全部后繼的點;(ii)失去全部后繼的起始點;(iii)失去全部前驅(qū)的終點。則有向點賦權(quán)圖的核度的計算過程是:設(shè)g是一個有向圖,每個頂點表示一個權(quán)限提升動作,頂點權(quán)值為符合該權(quán)限提升動作的漏洞總數(shù),c(g)表示g中所有點割集構(gòu)成的集合,則稱h(g)=max{|w(g-s)|-|s|,s∈c(g)}為該圖的核度,其中|w(g-s)|表示去掉s后成為失效點的頂點的權(quán)值或權(quán)值之和(即,存在相同權(quán)限提升動作的漏洞的總數(shù)),|s|表示去掉的頂點的權(quán)值或權(quán)值之和(即,漏洞總數(shù))。在計算出漏洞關(guān)聯(lián)關(guān)系圖的核與核度后,即可分析漏洞關(guān)聯(lián)關(guān)系圖的核點并根據(jù)分析出的核點進行漏洞防護。分析核點的過程是:由計算出的關(guān)聯(lián)關(guān)系圖g的核度確定對應(yīng)的核心頂點,并將核心頂點對應(yīng)的漏洞作為核心漏洞;實踐中,實際進行防護時可根據(jù)確定出的核心漏洞以及漏洞和漏洞補丁的對應(yīng)關(guān)系,查找核心漏洞對應(yīng)的漏洞補丁,修復核心漏洞對應(yīng)的漏洞補丁,從而實現(xiàn)對目標系統(tǒng)的防護,提高漏洞防護效率,提高系統(tǒng)的安全性。實施例三本實施例以一個具體的實例對系統(tǒng)漏洞防護方法的應(yīng)用進行說明。本實施例以四層權(quán)限分級模型為漏洞關(guān)聯(lián)基本模型,利用360安全衛(wèi)士作為漏洞掃描工具,對一個windows平臺(即,目標系統(tǒng))進行實驗。步驟301:確定基于四層權(quán)限模型的漏洞關(guān)聯(lián)關(guān)系圖;本實施例的四層權(quán)限分級模型包括系統(tǒng)管理員(root)、本地普通用戶(localuser)、遠程已認證訪問者(remoteauthenticateduser)、遠程未認證訪問者(remoteunauthenticateduser)這四類。給這四類權(quán)限分別編號為:①、②、③、④。在權(quán)限分級模型的基礎(chǔ)上需要確定權(quán)限提升動作,即確定權(quán)限提升向量集合中包含哪些元素,如對于四級權(quán)限分層,權(quán)限提升向量集合中包括“(l4,l1)”“(l4,l2)”“(l4,l3)”“(l3,l2)”“(l3,l1)”“(l2,l1)”共六個元素,需要理解的是,這里的在權(quán)限分級模型的基礎(chǔ)上確定權(quán)限提升動作,不是確定某個具體漏洞的權(quán)限提升動作,而是確定系統(tǒng)中檢出的所有漏洞有多少種可能的權(quán)限提升動作。本實施例通過分析cve漏洞描述信息,可以總結(jié)出形如“…allowsdemand(利用條件)togain(權(quán)限變化及攻擊目的實現(xiàn))”這樣的漏洞形式化描述方式?;谏鲜雒枋鲂畔?,可以判斷出具體是否存在權(quán)限的提升,是否達成了攻擊目的。具體的,漏洞文本描述信息中的“利用條件”給出了漏洞當前的權(quán)限級別,從而可以得到權(quán)限提升動作的起點。而文本描述信息中“權(quán)限變化及攻擊目的實現(xiàn)”表示每個漏洞的權(quán)限提升的終點。起點和終點聯(lián)合可以得到權(quán)限提升動作,用向量表示即為“起始級別→終止級別”。另外,對不同漏洞來說,權(quán)限提升動作的起點可能對應(yīng)不同的權(quán)限級別(映射到漏洞關(guān)聯(lián)關(guān)系圖中,即對應(yīng)著圖中的不同層級),不都是漏洞關(guān)聯(lián)圖中的起始層級。通過對漏洞信息進行統(tǒng)計分析,可以得到權(quán)限的起始層級包括三個,分別是{遠程未認證訪問者,遠程已認證訪問者,本地普通用戶},終止層級也包括三個,分別是{遠程已認證訪問者,本地普通用戶,系統(tǒng)管理員};從起始層級到終止層級共有六個權(quán)限提升向量,如表2所示。起始層級終止層級簡化表示遠程未認證訪問者遠程已認證訪問者④→③遠程未認證訪問者本地普通用戶④→②遠程未認證訪問者系統(tǒng)管理員④→①遠程已認證訪問者本地普通用戶③→②遠程已認證訪問者系統(tǒng)管理員③→①本地普通用戶系統(tǒng)管理員②→①表2表2表示漏洞的權(quán)限提升模型,在表2中示出了漏洞權(quán)限提升的起始層級和終止層級。另外,由于權(quán)限提升的目的也可以是僅僅獲得高級別的權(quán)限,因此在利用權(quán)限提升模型分析漏洞之間的關(guān)聯(lián)關(guān)系時,必須明確區(qū)分出能夠達成攻擊目的的權(quán)限提升和非權(quán)限提升的攻擊目的。本實施例中對那些不提權(quán)而達成攻擊目的的漏洞將其權(quán)限提升的終止層級統(tǒng)一設(shè)置為o。也就是說,本實施例中能夠?qū)τ刑釞?quán)的漏洞分析其能提升到的權(quán)限級別;對無提權(quán)的漏洞,其權(quán)限不能提升,但一定達成了某種其它攻擊目的。所以,也將達成攻擊目的作為高級權(quán)限,從這一意義上看本實施例的方案綜合考慮了提權(quán)漏洞和無提權(quán)漏洞。圖2是本發(fā)明一個實施例的漏洞的關(guān)聯(lián)關(guān)系圖的示意圖,參見圖2,本實施例基于表2建立的關(guān)聯(lián)關(guān)系圖,在圖2中,每個頂點表示一種權(quán)限提升動作的頂點的集合,其中xi表示頂點的權(quán)值,也就是相同提權(quán)動作的漏洞的數(shù)量,例如,頂點(l4,l2)表示由第四級權(quán)限(遠程未認證訪問者)提升至第二級權(quán)限(本地普通用戶)。x2表示存在這樣的提權(quán)動作的漏洞有x2個。在圖2中,不同于其它頂點,頂點o以同心圓表示以示區(qū)分。這是因為權(quán)限o表示達成除了提升到管理員權(quán)限之外的攻擊目的,而其它頂點的攻擊是為了獲得系統(tǒng)的管理員權(quán)限,即權(quán)限①,并利用管理員權(quán)限。所以達成攻擊目的的漏洞統(tǒng)一會到達頂點o,對于攻擊者而言這與達到系統(tǒng)最高權(quán)限的意義相同。步驟302:確定了四層權(quán)限模型的漏洞關(guān)聯(lián)圖之后,再對實際環(huán)境分析。首先,使用360安全衛(wèi)士對漏洞進行掃描,共檢測出29個漏洞,在微軟安全技術(shù)中心利用安全公告編號可以找到該補丁的描述,其中有該補丁所修復漏洞的說明,并且有對應(yīng)的cve編號,一個補丁可能修復多個漏洞,也就是對應(yīng)多個cve漏洞。得到漏洞對應(yīng)關(guān)系如表3所示。表3表3是漏洞補丁與提權(quán)動作對照表,從表3中可以看出每個補丁對應(yīng)的cve漏洞編號以及對應(yīng)的提權(quán)動作。注:表3中有一些沒有對應(yīng)安全公告號的補丁是功能增強型補丁,只列出了補丁編號。另外,表3中有些補丁的編號不同,但對應(yīng)的cve漏洞編號相同,即對應(yīng)修復的漏洞相同。這是由于實際環(huán)境中,可能存在多個漏洞表現(xiàn)出同一狀態(tài)的情況,因此將其統(tǒng)一按照不同的漏洞統(tǒng)計,最后在基于關(guān)聯(lián)關(guān)系圖計算核度時由于這些漏洞是相同的,不會重復計算,只是相當于給該漏洞增加了一些權(quán)重,是在合理的范圍內(nèi)的。接著,統(tǒng)計得到各節(jié)點的漏洞數(shù)量,如表4所示。表4表4是漏洞提權(quán)動作統(tǒng)計表,從表4可以看出每個頂點對應(yīng)的漏洞的數(shù)量。最后,建立完整的漏洞關(guān)聯(lián)關(guān)系圖,即有向點賦權(quán)圖,圖3是圖2所示的關(guān)聯(lián)關(guān)系圖的一個具體實例的示意圖,如圖3所示,將統(tǒng)計得到的具體數(shù)據(jù)對應(yīng)填寫到圖2所示的關(guān)聯(lián)關(guān)系圖中即可得到圖3的完整的漏洞關(guān)聯(lián)關(guān)系圖。步驟303:代入前述的有向點賦權(quán)圖核度計算公式,求得核度h(x)=25,核點集為(l4,l2)、(l4,l3)和(l3,l2)。核點集即根據(jù)核度計算公式求得的核對應(yīng)的集合,表示的就是漏洞關(guān)聯(lián)關(guān)系圖中的頂點集合。通過補丁的描述可以得到核對應(yīng)的漏洞的權(quán)限提升動作,從而可以得到該漏洞對應(yīng)的頂點,核點集也是用來描述漏洞對應(yīng)的頂點的。實際計算中,通過窮舉去掉頂點或頂點集合,來依次模擬計算對應(yīng)的核度,將核度最大的值作為系統(tǒng)的核,并將此時的去掉的頂點或頂點集作為核點集。需要說明的是,本發(fā)明實施例在現(xiàn)有核度概念的基礎(chǔ)上,提出了一種適用于本發(fā)明實施例的有向點賦權(quán)圖的核度的計算公式,并基于該新的核度計算公式尋找系統(tǒng)的核點,進而確定核心漏洞,以實現(xiàn)對漏洞的高效率防護。以下對利用該核度計算公式計算核度的過程做簡要說明:當假設(shè)核點集為(l4,l2)、(l4,l3)和(l3,l2)時,去掉圖3中的這三個頂點,與這些頂點相連的頂點都有可能成為失效點:(l2,l1)由于前驅(qū)節(jié)點(l4,l2)和(l3,l2)均被去掉,因此成為失效點,成為失效點的頂點對應(yīng)的權(quán)值,即,漏洞數(shù)量為33;(l2,o)同理,成為失效點,成為失效點的頂點對應(yīng)的權(quán)值,即,漏洞個數(shù)為3;(l3,l1)由于權(quán)值為0,因此不用考慮;(l3,o)由于沒有前驅(qū)節(jié)點(l4,l3),成為失效點,成為失效點的頂點對應(yīng)的權(quán)值,即,漏洞個數(shù)為1。相關(guān)節(jié)點都處理完畢,其他點不可能成為失效點,再通過前述實施例中的核度計算公式求得成為失效點的頂點的權(quán)值之和:33+3+1=37,去掉的頂點數(shù)|s|為核點集對應(yīng)的頂點的權(quán)值之和:1+1+10=12,因此h(g)=37-12=25。這里需要說明的是,本實施例中由于去掉的頂點為三個,所以在計算核度時|s|取三個頂點的權(quán)值之和,實踐中如果只去掉一個頂點,對應(yīng)計算核度時,|s|只取去掉的頂點的權(quán)值即可。另外,由于頂點數(shù)量少,所以采用了枚舉的方式計算,最后在核點集為(l4,l2)、(l4,l3)和(l3,l2)下求得的h(g)最大。在求得核點集后,通過查找上表3可以得到對應(yīng)補丁編號為:kb3124275ms16-001;kb3124001ms16-005;kb3081320ms15-121;kb3097991ms15-118;kb3097995ms15-118;kb3098780ms15-118;kb3076895ms15-084。共計7個核點補丁。這里計算出的核點補丁是7個,而核點漏洞的數(shù)量可以超過7個,數(shù)量由表3中對應(yīng)關(guān)系確定。步驟304:在得到對應(yīng)的漏洞后,查找補丁編號并修復補??;針對上述核點補丁,采用360安全衛(wèi)士對這些漏洞補丁進行修復,修復后發(fā)現(xiàn)該系統(tǒng)只剩下18個補丁,即系統(tǒng)共減少了11個補丁。而實際檢測出的核點補丁僅為7個,由此得出:這7個核點補丁對應(yīng)的漏洞與剩余的4個補丁對應(yīng)的漏洞之間存在一定的關(guān)聯(lián)關(guān)系,對這7個補丁進行修復后,也隨之修復了其他漏洞,即,間接修復了另4個補丁。計算可得針對該系統(tǒng)的漏洞檢測防護效率為11/7=157%,需要說明的是,本實施例的防護效率是指:有效漏洞的減少數(shù)量/修復漏洞的數(shù)量,而有效漏洞的減少數(shù)量=失效點漏洞數(shù)量+修復漏洞數(shù)量,可知該防護效率最低是百分之百。舉例而言,若修復1個漏洞,而減少的漏洞數(shù)量為1,則防護效率為100%,若修復1個漏洞減少了2個漏洞,則防護效率為200%,通過上述計算過程可知本實施例的漏洞的防護效率為157%,大于100%,超出100%的效率是由本實施例的基于漏洞的關(guān)聯(lián)關(guān)系的修復方法實現(xiàn)的。可以看出本實施例的方法對漏洞的防護效率的提升有顯著效果。實施例四圖4是本發(fā)明一個實施例的一種系統(tǒng)漏洞防護裝置的結(jié)構(gòu)框圖,參見圖4,該系統(tǒng)漏洞防護裝置400包括:漏洞檢測單元401,用于檢測目標系統(tǒng)中的漏洞;關(guān)聯(lián)關(guān)系構(gòu)建單元402,用于獲取目標系統(tǒng)的權(quán)限分級,并基于權(quán)限分級構(gòu)建目標系統(tǒng)的漏洞之間的關(guān)聯(lián)關(guān)系圖;核心漏洞確定單元403,用于根據(jù)構(gòu)建的漏洞之間的關(guān)聯(lián)關(guān)系圖,計算關(guān)聯(lián)關(guān)系圖的核度,確定出目標系統(tǒng)的核心漏洞;防護單元404,用于修復核心漏洞,以實現(xiàn)對目標系統(tǒng)的防護。在本發(fā)明一個實施例中,關(guān)聯(lián)關(guān)系圖構(gòu)建單元402,具體用于根據(jù)權(quán)限分級的級數(shù)確定關(guān)聯(lián)關(guān)系圖的層數(shù),根據(jù)目標系統(tǒng)的漏洞的權(quán)限提升路徑確定關(guān)聯(lián)關(guān)系圖的頂點,根據(jù)頂點以及頂點對應(yīng)的漏洞的權(quán)限提升路徑確定關(guān)聯(lián)關(guān)系圖的邊。在本發(fā)明一個實施例中,關(guān)聯(lián)關(guān)系圖構(gòu)建單元402,包括頂點構(gòu)建子單元和邊構(gòu)建子單元,頂點構(gòu)建子單元用于,獲取檢測出的每個漏洞的權(quán)限提升的起始權(quán)限級別以及終止權(quán)限級別,將起始權(quán)限級別以及終止權(quán)限級別均相同的漏洞進行聚簇后對應(yīng)作為關(guān)聯(lián)關(guān)系圖的一個頂點,并統(tǒng)計起始權(quán)限級別以及終止權(quán)限級別均相同的漏洞的數(shù)量作為該頂點的權(quán)值;邊構(gòu)建子單元,用于通過如下條件確定第一頂點(i,j)和第二頂點(k,m)之間是否存在邊:當i,j,k和m的值滿足i>k且j<=k且m<j時,則存在從第一頂點(i,j)指向第二頂點(k,m)的一條有向邊;其中,i表示第一頂點對應(yīng)的漏洞的權(quán)限提升的起始權(quán)限級別,j表示第一頂點對應(yīng)的漏洞的權(quán)限提升的終止權(quán)限級別,k表示第二頂點對應(yīng)的漏洞的權(quán)限提升的起始權(quán)限級別,m表示第二頂點對應(yīng)的漏洞的權(quán)限提升的終止權(quán)限級別。在本發(fā)明一個實施例中,核心漏洞確定單元403,具體用于通過如下公式計算關(guān)聯(lián)關(guān)系圖g的核度:h(g)=max{|w(g-s)|-|s|,s∈c(g)}其中,c(g)表示關(guān)聯(lián)關(guān)系圖g中所有點割集構(gòu)成的集合,|w(g-s)|表示g減去s后成為失效點的頂點的權(quán)值或權(quán)值之和,|s|表示減去的頂點的權(quán)值或權(quán)值之和,失效點是指關(guān)聯(lián)關(guān)系圖g中滿足下列條件之一的頂點:失去了全部前驅(qū)或者全部后繼的點;失去了全部后繼的起始點;失去了全部前驅(qū)的終點。由計算出的關(guān)聯(lián)關(guān)系圖g的核度確定對應(yīng)的核心頂點,并將核心頂點對應(yīng)的漏洞作為核心漏洞。需要說明的是,本實施例的系統(tǒng)漏洞防護裝置是和前述系統(tǒng)漏洞防護方法對應(yīng)的,所以本實施例的系統(tǒng)漏洞防護裝置的工作過程可以參見前述方法實施例的說明,這里不再贅述。綜上可知,本發(fā)明實施例的系統(tǒng)漏洞防護方法和裝置,建立漏洞之間的關(guān)聯(lián)關(guān)系尤其是權(quán)限利用特性關(guān)系,從而在修復漏洞時只修復核心漏洞即可一并修復核心漏洞相關(guān)聯(lián)的其它漏洞,減少了漏洞處理數(shù)量,也降低了系統(tǒng)防護的復雜度,保證了修復的針對性,實現(xiàn)了對漏洞的高效率的防護,提高了系統(tǒng)的安全性。以上所述,僅為本發(fā)明的具體實施方式,在本發(fā)明的上述教導下,本領(lǐng)域技術(shù)人員可以在上述實施例的基礎(chǔ)上進行其他的改進或變形。本領(lǐng)域技術(shù)人員應(yīng)該明白,上述的具體描述只是更好的解釋本發(fā)明的目的,本發(fā)明的保護范圍以權(quán)利要求的保護范圍為準。當前第1頁12