亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種軟件漏洞的防護(hù)方法和裝置與流程

文檔序號(hào):11654770閱讀:193來(lái)源:國(guó)知局
一種軟件漏洞的防護(hù)方法和裝置與流程

本發(fā)明涉及軟件安全技術(shù)領(lǐng)域,具體涉及一種軟件漏洞的防護(hù)方法和裝置。



背景技術(shù):

目前,由于在協(xié)議、安全策略等方面存在的缺陷和不足,軟件不可避免地存在安全漏洞,漏洞是造成軟件系統(tǒng)安全威脅的重要因素。為了減少漏洞利用造成的損失,有必要在軟件被攻擊之前做好安全防護(hù)工作。

但是漏洞數(shù)量眾多,一一填補(bǔ)雖然可能,卻會(huì)造成嚴(yán)重的資源浪費(fèi)或者需要較高的代價(jià),并且在修補(bǔ)漏洞之后,是否可以達(dá)到理想的防護(hù)效果也難以保證。因?yàn)槿绻承┞┒词怯赡硞€(gè)未檢測(cè)出的漏洞所引發(fā)的,那么在修復(fù)這些漏洞后,只要滿足條件,新的漏洞又會(huì)產(chǎn)生,從而造成明明消除了大量的漏洞,卻并沒(méi)有達(dá)到理想的防護(hù)效果的現(xiàn)象。

由此可知,現(xiàn)有的漏洞防護(hù)方案處理方式過(guò)于簡(jiǎn)單,防護(hù)效率低,難以滿足實(shí)際需求。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明提供了一種軟件漏洞的防護(hù)方法,以解決現(xiàn)有技術(shù)防護(hù)效率低,難以滿足實(shí)際需求的問(wèn)題。

根據(jù)本發(fā)明的一個(gè)方面,提供了一種軟件漏洞的防護(hù)方法,包括:

獲取多個(gè)樣本軟件的漏洞數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,根據(jù)統(tǒng)計(jì)分析結(jié)果采用對(duì)數(shù)正態(tài)分布描述漏洞類別之間的關(guān)聯(lián)關(guān)系并構(gòu)建漏洞關(guān)聯(lián)關(guān)系圖;

根據(jù)一個(gè)軟件的漏洞數(shù)據(jù)構(gòu)建該漏洞關(guān)聯(lián)關(guān)系圖的漏洞關(guān)聯(lián)關(guān)系子圖,計(jì)算所述漏洞關(guān)聯(lián)關(guān)系子圖的核度并確定出該軟件的核心漏洞;

修復(fù)核心漏洞,以實(shí)現(xiàn)對(duì)該軟件的漏洞的防護(hù)。

根據(jù)本發(fā)明的另一個(gè)方面,提供了軟件漏洞的防護(hù)裝置,包括:

模型構(gòu)建單元,用于獲取多個(gè)樣本軟件的漏洞數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,根據(jù)統(tǒng)計(jì)分析結(jié)果采用對(duì)數(shù)正態(tài)分布描述漏洞類別之間的關(guān)聯(lián)關(guān)系并構(gòu)建漏洞關(guān)聯(lián)關(guān)系圖;

核心漏洞確定單元,用于根據(jù)一個(gè)軟件的漏洞數(shù)據(jù)構(gòu)建該漏洞關(guān)聯(lián)關(guān)系圖的漏洞關(guān)聯(lián)關(guān)系子圖,計(jì)算所述漏洞關(guān)聯(lián)關(guān)系子圖的核度并確定出該軟件的核心漏洞;

漏洞防護(hù)單元,用于修復(fù)核心漏洞,以實(shí)現(xiàn)對(duì)該軟件漏洞的防護(hù)。

本發(fā)明的有益效果是:本發(fā)明實(shí)施例的軟件漏洞防護(hù)方法和裝置,基于對(duì)已知大量軟件漏洞的統(tǒng)計(jì)分析,采用對(duì)數(shù)正態(tài)分布描述漏洞類別之間的關(guān)聯(lián)關(guān)系,構(gòu)建得到漏洞關(guān)聯(lián)關(guān)系圖,并針對(duì)由不同類型漏洞和漏洞之間關(guān)聯(lián)關(guān)系構(gòu)建的漏洞關(guān)聯(lián)關(guān)系圖,分析不同類型漏洞之間的關(guān)聯(lián)關(guān)系(這些關(guān)系中包括因果關(guān)系或共生關(guān)系),識(shí)別與其他漏洞具有較高關(guān)聯(lián)度的漏洞類別從而確定出軟件的核心漏洞,實(shí)現(xiàn)修復(fù)該單一核心漏洞的同時(shí)一并修復(fù)與其關(guān)聯(lián)的漏洞,提高漏洞的防護(hù)效率的有益效果,提高了軟件的安全性,滿足了實(shí)際需求。

附圖說(shuō)明

圖1是本發(fā)明一個(gè)實(shí)施例的一種軟件漏洞的防護(hù)方法的流程示意圖;

圖2是本發(fā)明一個(gè)實(shí)施例的描述漏洞間契合概率的對(duì)數(shù)正態(tài)分布的示意圖;

圖3是本發(fā)明一個(gè)實(shí)施例的待防護(hù)軟件中查找出的部分漏洞的示意圖;

圖4是根據(jù)圖3查找出的漏洞構(gòu)建的漏洞關(guān)聯(lián)關(guān)系子圖;

圖5是本發(fā)明一個(gè)實(shí)施例的一種軟件漏洞的防護(hù)裝置的框圖。

具體實(shí)施方式

本發(fā)明的核心技術(shù)構(gòu)思是:不同于漏洞早期研究那樣只單一地針對(duì)某個(gè)漏洞本身進(jìn)行分析,而是考慮了漏洞之間存在的復(fù)雜的相互作用,進(jìn)而分析漏洞之間的關(guān)聯(lián)關(guān)系。相同軟件上會(huì)出現(xiàn)不同類型的漏洞,本發(fā)明主要針對(duì)單個(gè)軟件上出現(xiàn)的不同類型的漏洞,根據(jù)對(duì)已知大量軟件漏洞分布情況的分析,采用對(duì)數(shù)正態(tài)分布刻畫描述漏洞分布形成及漏洞關(guān)聯(lián)關(guān)系的關(guān)聯(lián)度函數(shù),進(jìn)而得到漏洞之間的分布關(guān)聯(lián)性;并針對(duì)由不同類型漏洞和漏洞之間關(guān)聯(lián)關(guān)系構(gòu)造的漏洞關(guān)聯(lián)關(guān)系圖,基于無(wú)向邊賦權(quán)圖的核與核度理論,重點(diǎn)分析不同類型漏洞之間的關(guān)聯(lián)關(guān)系(這些關(guān)系中包括因果關(guān)系或共生關(guān)系),識(shí)別與其他漏洞具有較高關(guān)聯(lián)度的漏洞,從而實(shí)現(xiàn)對(duì)漏洞的高效率防護(hù),提高軟件安全性。

這里先對(duì)本發(fā)明實(shí)施例涉及的兩個(gè)名詞進(jìn)行說(shuō)明。

漏洞關(guān)聯(lián):是漏洞之間存在的復(fù)雜的相互關(guān)系,本發(fā)明所指的漏洞關(guān)聯(lián)主要考慮漏洞分布關(guān)聯(lián)關(guān)系。

核度理論:是利用核與核度刻畫系統(tǒng)的穩(wěn)定性和連通性,研究系統(tǒng)基本結(jié)構(gòu)和基本性質(zhì)的理論。核是一個(gè)系統(tǒng)中最關(guān)鍵、最核心的主要素,是系統(tǒng)的主體和關(guān)鍵;任何一個(gè)給定的系統(tǒng),均存在系統(tǒng)的核;不同的系統(tǒng)具有不同類型的核,核度是衡量系統(tǒng)核的工具,應(yīng)用核度理論解決相應(yīng)技術(shù)問(wèn)題的主要任務(wù)即是利用核度尋找系統(tǒng)的核。

實(shí)施例一

圖1是本發(fā)明一個(gè)實(shí)施例的一種軟件漏洞的防護(hù)方法的流程示意圖,參見(jiàn)圖1,該方法包括如下步驟:

步驟s101,獲取多個(gè)樣本軟件的漏洞數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,根據(jù)統(tǒng)計(jì)分析結(jié)果采用對(duì)數(shù)正態(tài)分布描述漏洞類別之間的關(guān)聯(lián)關(guān)系并構(gòu)建漏洞關(guān)聯(lián)關(guān)系圖;

步驟s102,根據(jù)一個(gè)軟件的漏洞數(shù)據(jù)構(gòu)建該漏洞關(guān)聯(lián)關(guān)系圖的漏洞關(guān)聯(lián)關(guān)系子圖,計(jì)算所述漏洞關(guān)聯(lián)關(guān)系子圖的核度并確定出該軟件的核心漏洞;

步驟s103,修復(fù)核心漏洞,以實(shí)現(xiàn)對(duì)該軟件漏洞的防護(hù)。

由圖1所示可知,本實(shí)施例的軟件漏洞防護(hù)方法,通過(guò)對(duì)已知大量樣本軟件的漏洞數(shù)據(jù)的統(tǒng)計(jì)分析,采用對(duì)數(shù)正態(tài)分布描述漏洞類別之間的關(guān)聯(lián)關(guān)系并建立漏洞關(guān)聯(lián)關(guān)系圖,然后基于待防護(hù)軟件的漏洞數(shù)據(jù)構(gòu)建該漏洞關(guān)聯(lián)關(guān)系圖的漏洞關(guān)聯(lián)關(guān)系子圖,計(jì)算出漏洞關(guān)聯(lián)關(guān)系子圖的核度,從而確定待防護(hù)軟件的核心漏洞,并修復(fù)核心漏洞后可實(shí)現(xiàn)一并修復(fù)與其關(guān)聯(lián)的漏洞的有益效果,提高了漏洞防護(hù)的效率和軟件的安全性。

實(shí)施例二

本實(shí)施例中重點(diǎn)對(duì)軟件漏洞的防護(hù)方法的具體實(shí)現(xiàn)步驟進(jìn)行說(shuō)明。本發(fā)明實(shí)施例的軟件漏洞的防護(hù)方案是基于建立的漏洞關(guān)聯(lián)關(guān)系圖來(lái)實(shí)現(xiàn)的,以下先介紹如何構(gòu)建漏洞關(guān)聯(lián)關(guān)系圖。

在建立漏洞關(guān)聯(lián)關(guān)系圖時(shí),首先,分析漏洞特征確定漏洞圖的頂點(diǎn);其次,理清漏洞之間的關(guān)聯(lián)關(guān)系確定漏洞圖的邊;再次,根據(jù)漏洞關(guān)聯(lián)關(guān)系的強(qiáng)度確定邊的權(quán)值,構(gòu)建一個(gè)無(wú)向邊賦權(quán)漏洞分布圖。

首先,分析漏洞特征確定漏洞圖的頂點(diǎn);

這里,具體是分析漏洞的類別特征。任何一個(gè)給定的系統(tǒng),均存在系統(tǒng)的核,漏洞關(guān)聯(lián)關(guān)系圖也不例外,本實(shí)施例的漏洞關(guān)聯(lián)關(guān)系圖是研究漏洞類別之間關(guān)聯(lián)關(guān)系的方法,所以漏洞關(guān)聯(lián)關(guān)系圖的核是漏洞類別,因此在構(gòu)建關(guān)聯(lián)關(guān)系圖時(shí)首先要確定漏洞類別,也就是要對(duì)漏洞進(jìn)行分類。目前有很多對(duì)漏洞進(jìn)行分類的方法,例如,按照漏洞威脅類型對(duì)獲取的每個(gè)樣本軟件的漏洞進(jìn)行分類,或者,按照漏洞利用位置對(duì)獲取的每個(gè)樣本軟件的漏洞進(jìn)行分類,或者,按照漏洞的權(quán)限提升動(dòng)作對(duì)獲取的每個(gè)樣本軟件的漏洞進(jìn)行分類,或者,按照軟件或者軟件廠商對(duì)獲取的每個(gè)樣本軟件的漏洞進(jìn)行分類,或者,按照漏洞影響對(duì)獲取的每個(gè)樣本軟件的漏洞進(jìn)行分類。

這里的,權(quán)限提升動(dòng)作,是將具有相同提權(quán)動(dòng)作的漏洞作為一類,而將與該類漏洞的提權(quán)動(dòng)作不同的漏洞作為另一類。按照軟件或軟件廠商分類是指將一個(gè)軟件或一系列軟件作為漏洞的分類依據(jù),例如,windows系統(tǒng)軟件上檢測(cè)出的漏洞作為一類,linux系統(tǒng)軟件上檢測(cè)出的漏洞作為另一類。實(shí)踐中可以根據(jù)需要選擇一種漏洞分類方法對(duì)已知軟件的漏洞進(jìn)行分類,對(duì)此不作限制。

本實(shí)施例中是按照漏洞威脅類型分類的,也就是說(shuō),在獲取到大量樣本軟件的信息后,按照漏洞威脅類型對(duì)每個(gè)樣本軟件中的漏洞進(jìn)行分類,將漏洞類別作為漏洞關(guān)聯(lián)關(guān)系圖的頂點(diǎn),每個(gè)頂點(diǎn)一一對(duì)應(yīng)每個(gè)漏洞類別。一般地,一個(gè)樣本軟件中有多少種類的漏洞,漏洞關(guān)聯(lián)關(guān)系圖就對(duì)應(yīng)有多少個(gè)頂點(diǎn)。

其次,理清漏洞之間的關(guān)聯(lián)關(guān)系確定漏洞圖的邊;

在確定了漏洞關(guān)聯(lián)關(guān)系圖的頂點(diǎn)之后,漏洞關(guān)聯(lián)關(guān)系圖的邊由頂點(diǎn)的全連接組成。

再次,根據(jù)漏洞關(guān)聯(lián)關(guān)系的強(qiáng)度確定邊的權(quán)值;

需要說(shuō)明的是,本實(shí)施例中漏洞關(guān)聯(lián)關(guān)系圖中每?jī)蓚€(gè)頂點(diǎn)之間都存在一條邊,但是各條邊上的權(quán)值不相同,權(quán)值大小表示了漏洞之間關(guān)聯(lián)程度的強(qiáng)弱。

為了減少計(jì)算量,降低復(fù)雜性。本實(shí)施例中,提供了兩種方式,第一種是通過(guò)篩選樣本軟件信息,第二種是通過(guò)為表示漏洞類別之間關(guān)聯(lián)關(guān)系的關(guān)聯(lián)度(即,權(quán)值)設(shè)定閾值,并根據(jù)計(jì)算出的關(guān)聯(lián)度和關(guān)聯(lián)度閾值的比較結(jié)果控制關(guān)聯(lián)關(guān)系圖中邊的個(gè)數(shù)。

具體的,采用第一種方式的情況下,是對(duì)獲取的每個(gè)樣本軟件的漏洞進(jìn)行分類,得到每個(gè)樣本軟件上出現(xiàn)的漏洞的類別數(shù)據(jù)后,將每個(gè)樣本軟件上的漏洞類別與預(yù)設(shè)漏洞類別閾值進(jìn)行比較,若小于或等于預(yù)設(shè)漏洞類別閾值,則在構(gòu)建漏洞關(guān)聯(lián)關(guān)系圖時(shí)排除該樣本軟件。

實(shí)際應(yīng)用中當(dāng)采取現(xiàn)有技術(shù)方法獲取大量包含漏洞類別的漏洞信息后,按照漏洞信息中的軟件名稱以及漏洞類別進(jìn)行分類統(tǒng)計(jì)。上述漏洞數(shù)據(jù)均可以來(lái)源于中國(guó)國(guó)家信息安全漏洞庫(kù)cnnvd(chinanationalvulnerabilitydatabaseofinformationsecurity,簡(jiǎn)稱cnnvd)或美國(guó)國(guó)家漏洞庫(kù)nvd(nationalvulnerabilitydatabase,簡(jiǎn)稱nvd)等漏洞數(shù)據(jù)庫(kù)。可以理解,這里的cnnvd漏洞數(shù)據(jù)庫(kù)和nvd漏洞數(shù)據(jù)庫(kù)僅為示例性的說(shuō)明,在本發(fā)明的其它實(shí)施例中也可以采用其它的漏洞數(shù)據(jù)庫(kù),對(duì)此不作限制。

獲取漏洞信息為現(xiàn)有技術(shù),例如自行編寫爬蟲工具,或者使用已存在的統(tǒng)計(jì)軟件等。接下來(lái),對(duì)每個(gè)樣本軟件的漏洞的類別進(jìn)行統(tǒng)計(jì),如果該樣本軟件的漏洞類別的統(tǒng)計(jì)結(jié)果小于預(yù)設(shè)類別閾值,則在構(gòu)建漏洞關(guān)聯(lián)關(guān)系圖時(shí)排除該樣本軟件。

舉例而言,預(yù)設(shè)類別閾值為2,獲取到的某個(gè)軟件z中只有1類漏洞,則在構(gòu)建漏洞關(guān)聯(lián)關(guān)系圖時(shí)排除該樣本軟件z,也就是說(shuō),不考慮軟件z。這是由于,同一軟件上單一類別漏洞不會(huì)出現(xiàn)和其它類別漏洞的關(guān)聯(lián)。

采用第二種方式的情況下,將計(jì)算出的第一頂點(diǎn)對(duì)應(yīng)的漏洞類別和第二頂點(diǎn)對(duì)應(yīng)的漏洞類別之間的關(guān)聯(lián)度與預(yù)設(shè)關(guān)聯(lián)度閾值進(jìn)行比較,當(dāng)計(jì)算出的關(guān)聯(lián)度大于或等于預(yù)設(shè)關(guān)聯(lián)度閾值時(shí),確定第一頂點(diǎn)和第二頂點(diǎn)之間存在一條邊。

在實(shí)際應(yīng)用中,根據(jù)需要,可為兩個(gè)頂點(diǎn)對(duì)應(yīng)的漏洞類別之間的關(guān)聯(lián)度設(shè)置關(guān)聯(lián)度閾值θ,當(dāng)根據(jù)頂點(diǎn)計(jì)算出對(duì)應(yīng)的漏洞類別之間的關(guān)聯(lián)度時(shí),將計(jì)算出的關(guān)聯(lián)度和關(guān)聯(lián)度閾值θ比較,如果關(guān)聯(lián)度大于或等于θ,表示與兩個(gè)頂點(diǎn)對(duì)應(yīng)的漏洞類別之間存在關(guān)聯(lián)關(guān)系,即,兩個(gè)頂點(diǎn)之間存在連接邊,反之則不存在。經(jīng)過(guò)這樣的處理,可以減少漏洞關(guān)聯(lián)關(guān)系圖中邊的個(gè)數(shù),從而降低計(jì)算量??梢岳斫?,經(jīng)過(guò)這樣的處理后,漏洞關(guān)聯(lián)關(guān)系圖中可能存在沒(méi)有連接邊的孤立的頂點(diǎn)。

優(yōu)選地,上述兩種方式都采用,即在計(jì)算關(guān)聯(lián)度之前先對(duì)樣本軟件的數(shù)量進(jìn)行篩選和控制,然后在計(jì)算關(guān)聯(lián)度之后對(duì)關(guān)聯(lián)關(guān)系圖的邊進(jìn)行篩選和控制,這樣可以減少整個(gè)計(jì)算過(guò)程的復(fù)雜度,提高計(jì)算效率??梢岳斫?,實(shí)踐中也可以根據(jù)需求,對(duì)上述兩種方式進(jìn)行選擇,即,可以僅采用第一種方式或者僅采用第二種方式,對(duì)此不作限制。

另外,實(shí)踐中,為了獲得足夠多的可用漏洞數(shù)量以提高計(jì)算的精度和準(zhǔn)確性,需要對(duì)同一樣本軟件的不同版本進(jìn)行合并,在軟件處理粒度、漏洞數(shù)據(jù)統(tǒng)計(jì)精度及準(zhǔn)確性之間進(jìn)行折中。具體來(lái)說(shuō),可用漏洞數(shù)量與軟件處理粒度相關(guān)。這里的軟件處理粒度對(duì)應(yīng)軟件版本。如果處理粒度較細(xì),需要針對(duì)同一軟件的不同版本分別統(tǒng)計(jì)在其中出現(xiàn)的漏洞數(shù)量;如果處理粒度較粗,可以合并軟件版本,僅針對(duì)合并版本后的軟件統(tǒng)計(jì)漏洞數(shù)量。因此,軟件處理粒度越粗,可用漏洞數(shù)量越多。而漏洞數(shù)量對(duì)基于統(tǒng)計(jì)學(xué)方法分析漏洞關(guān)聯(lián)關(guān)系是很重要的,數(shù)據(jù)量越大,準(zhǔn)確性越高,因此實(shí)際應(yīng)用時(shí)可根據(jù)需要在軟件處理粒度以及可用漏洞數(shù)量之間進(jìn)行折中。

在獲取到的漏洞數(shù)據(jù)集的基礎(chǔ)上,進(jìn)一步分析漏洞之間的關(guān)聯(lián)關(guān)系。

由于實(shí)踐中不同類別漏洞在各軟件上出現(xiàn)的總量會(huì)有很大不同,如果只是按照漏洞數(shù)量多少來(lái)分析其關(guān)聯(lián)性,勢(shì)必會(huì)造成熱門漏洞類別的權(quán)重遠(yuǎn)大于冷門漏洞類別,從而對(duì)分析漏洞類別之間的關(guān)系產(chǎn)生不良影響。為了避免上述問(wèn)題,本實(shí)施例從各類漏洞出現(xiàn)比例入手分析漏洞類別之間的關(guān)聯(lián)關(guān)系。

通過(guò)對(duì)獲取的漏洞數(shù)據(jù)信息進(jìn)行分析,可以發(fā)現(xiàn):如果兩類漏洞之間具有關(guān)聯(lián)關(guān)系,那么無(wú)論這兩類漏洞出現(xiàn)在任何軟件上,它們都呈現(xiàn)出“同高同低”的特點(diǎn)。也就是說(shuō),如果一類漏洞會(huì)導(dǎo)致另一類漏洞出現(xiàn)(可能是一個(gè)或多個(gè)),例如,如果每個(gè)a類漏洞會(huì)引發(fā)2個(gè)b類漏洞,當(dāng)用各類漏洞出現(xiàn)比例表示漏洞之間的關(guān)聯(lián)關(guān)系時(shí),可以知道a類漏洞與b類漏洞的出現(xiàn)比例為1:2;那么,理想狀態(tài)下,在任何軟件上a類漏洞與b類漏洞出現(xiàn)的比例都應(yīng)該為1:2。但是,實(shí)際情況下,在不同的軟件上,a類漏洞與b類漏洞出現(xiàn)的比例并不完全相同?;谏鲜龇治隹芍?jiǎn)渭冇酶黝惵┒闯霈F(xiàn)比例也無(wú)法完全分析漏洞類別之間的關(guān)聯(lián)關(guān)系。

對(duì)此,本實(shí)施例的軟件漏洞防護(hù)方法考慮用各類漏洞總數(shù)之比與實(shí)際漏洞分布比例的數(shù)學(xué)關(guān)系表示各類漏洞間的關(guān)聯(lián)度,提出在分析漏洞關(guān)聯(lián)關(guān)系時(shí)關(guān)注兩類漏洞出現(xiàn)比例的契合度。契合度是計(jì)算漏洞關(guān)聯(lián)度的基礎(chǔ),這里的契合度是指:若兩類漏洞在所有軟件中出現(xiàn)的總數(shù)量之比為x,而兩類漏洞在某個(gè)軟件上出現(xiàn)的數(shù)量之比為y,那么y/x就表示y相對(duì)于x的契合度。

舉例來(lái)說(shuō),針對(duì)a和b這兩類漏洞,當(dāng)它們?cè)谒熊浖铣霈F(xiàn)的總數(shù)量之比為1:3時(shí),如果在某個(gè)軟件s1上它們出現(xiàn)的數(shù)量之比也為1:3,那么它們?cè)谲浖1上的契合度就為1,這也是它們?cè)谒熊浖掀鹾隙茸罡叩那闆r;如果在某個(gè)軟件s2上a和b這兩類漏洞出現(xiàn)的數(shù)量之比為2:7,那么它們?cè)谲浖2上的契合度比較接近1;如果在某個(gè)軟件s3上a和b這兩類漏洞出現(xiàn)的數(shù)量之比為20:1,那么它們?cè)谲浖3上的契合度就會(huì)非常低;如果在某個(gè)軟件s4上a和b這兩類漏洞中的一類或兩類的數(shù)量均為0,例如,a和b這兩類漏洞出現(xiàn)的數(shù)量之比為0:3或0:0,那么它們?cè)谲浖4上的契合度就為0。

由于在實(shí)際情況中,每個(gè)軟件上的各類漏洞兩兩之間的契合度并不能保證達(dá)到最大值,每個(gè)軟件都是以一種概率接近這個(gè)最大契合度,而這個(gè)概率才反映了各類漏洞之間實(shí)際的關(guān)聯(lián)度。因此,為了確定各類漏洞之間的關(guān)聯(lián)度,必須確定這個(gè)概率的分布。根據(jù)對(duì)契合度特性的分析后可確定出每個(gè)軟件上的各類漏洞兩兩之間的契合度應(yīng)該符合一種概率分布。為此,本實(shí)施例進(jìn)行如下數(shù)據(jù)擬合過(guò)程:

對(duì)契合度的特性進(jìn)行分析后發(fā)現(xiàn):對(duì)于總數(shù)量比為1:1的兩類漏洞,在單個(gè)軟件上分布為1:2或是2:1,其對(duì)于1:1的偏差是相同的,因此漏洞的契合概率的分布應(yīng)該滿足對(duì)數(shù)對(duì)稱分布的特點(diǎn)。更進(jìn)一步,對(duì)于該概率分布函數(shù),除了具有對(duì)稱關(guān)系以外,還應(yīng)具有如下特性:①該概率分布函數(shù)的值應(yīng)具有單一最大值,且函數(shù)的值向兩側(cè)逐漸減?。虎谠摳怕史植己瘮?shù)的自變量為兩類漏洞數(shù)量之比。漏洞的數(shù)量為自然數(shù),其比值區(qū)間應(yīng)為[0,+∞);③該概率分布函數(shù)的一階導(dǎo)數(shù)應(yīng)先大于0后小于0,并最終趨于0。

基于上述特性,本方法選取滿足上述特性的對(duì)數(shù)正態(tài)分布來(lái)描述各類漏洞間的契合概率。圖2是本發(fā)明一個(gè)實(shí)施例的描述契合概率的對(duì)數(shù)正態(tài)分布示意圖,如圖2所示,在圖2中,x表示同一軟件上兩類漏洞數(shù)量之比的對(duì)數(shù);y表示此比例與兩類漏洞在所有軟件上的總數(shù)量之比的契合概率。因此,y軸上的最大值為1;理想情況下,契合度為1,實(shí)際情況下,契合度不可能大于1,因此,函數(shù)的值會(huì)向兩側(cè)逐漸減小,從前述對(duì)稱性也可知函數(shù)的值向兩側(cè)逐漸減小;在圖2中,當(dāng)同一軟件上兩類漏洞數(shù)量之比越接近兩類漏洞在所有軟件上的總數(shù)量之比時(shí),其契合概率越高,即y值越大,因此左側(cè)單調(diào)遞增,右側(cè)單調(diào)遞減。

接著,根據(jù)對(duì)數(shù)正態(tài)分布可確定漏洞類別間的契合概率公式如下:

確定了契合概率的表示后,下一步要計(jì)算漏洞類別之間的關(guān)聯(lián)度。具體方法如下:

首先,針對(duì)每個(gè)軟件i,根據(jù)公式(3)計(jì)算各類漏洞兩兩之間的契合概率f'(i),其中取方差σ=1,取μ為兩類漏洞在所有軟件中出現(xiàn)的總數(shù)量之比的對(duì)數(shù),取x為兩類漏洞在每個(gè)軟件i上出現(xiàn)的數(shù)量之比的對(duì)數(shù);

其次,考慮到即便是同樣的兩類漏洞在不同的軟件上出現(xiàn)的數(shù)量也是不同的,為了在計(jì)算中考慮漏洞數(shù)量的權(quán)重,本實(shí)施例對(duì)上一步處理得到的契合概率進(jìn)行加權(quán)處理,具體處理方法是:設(shè)軟件i上出現(xiàn)的關(guān)聯(lián)關(guān)系圖中第一頂點(diǎn)對(duì)應(yīng)的a類漏洞數(shù)量為cia,關(guān)聯(lián)關(guān)系圖中第二頂點(diǎn)對(duì)應(yīng)的b類漏洞數(shù)量為cib,那么在全部軟件上出現(xiàn)的a類漏洞總數(shù)量則為b類漏洞總數(shù)量則為則針對(duì)軟件i的帶權(quán)契合概率為:

最后,在得到所有軟件上各類漏洞兩兩之間的帶權(quán)契合概率之后,對(duì)帶權(quán)契合概率進(jìn)行簡(jiǎn)單算術(shù)求和即可求得各類漏洞兩兩之間的關(guān)聯(lián)度∑f(i)即,關(guān)聯(lián)度公式(1)。

這個(gè)關(guān)聯(lián)度即為連接漏洞關(guān)聯(lián)關(guān)系圖中第一頂點(diǎn)和第二頂點(diǎn)的邊上的權(quán)值。由于本實(shí)施例的漏洞關(guān)聯(lián)關(guān)系圖中的頂點(diǎn)表示的是漏洞類別,所以,權(quán)值也是漏洞類別之間的關(guān)聯(lián)度。

這里的第一頂點(diǎn)和第二頂點(diǎn)指漏洞關(guān)聯(lián)關(guān)系圖中的任意兩個(gè)頂點(diǎn),第一和第二不表示漏洞頂點(diǎn)的順序,可以理解為名稱。

確定了漏洞關(guān)聯(lián)關(guān)系圖的頂點(diǎn)和邊,以及邊上的權(quán)值后,即可建立漏洞關(guān)聯(lián)關(guān)系圖??梢岳斫?,在漏洞關(guān)聯(lián)關(guān)系圖中,頂點(diǎn)為漏洞類別,邊表示漏洞類別之間的關(guān)聯(lián)關(guān)系。由分析可知,漏洞關(guān)聯(lián)關(guān)系圖是一個(gè)邊賦權(quán)圖,又因?yàn)楸痉桨赣懻摰穆┒搓P(guān)系是在各類漏洞兩兩之間的相互關(guān)系,則該圖是一個(gè)無(wú)向邊賦權(quán)圖。

接下來(lái)介紹如何計(jì)算漏洞關(guān)聯(lián)關(guān)系圖的核度并尋找核心漏洞。

傳統(tǒng)的核度計(jì)算方法主要是針對(duì)無(wú)向無(wú)權(quán)圖進(jìn)行的,因此如何計(jì)算無(wú)向邊賦權(quán)圖的核度仍然是一個(gè)關(guān)鍵問(wèn)題。通過(guò)對(duì)無(wú)向無(wú)權(quán)圖的核度計(jì)算公式進(jìn)行研究分析后本實(shí)施例提出了適用于無(wú)向邊賦權(quán)圖的核度計(jì)算公式。

設(shè)g是一個(gè)無(wú)向邊賦權(quán)圖,c(g)表示g中所有點(diǎn)割集構(gòu)成的集合,一般的|v(g)|≥4,則稱h(g)為該圖的核度,h(g)的計(jì)算公式如下:

h(g)=max{a*ω(g-s)-b*s|+ws,s∈c(g)}公式(4)

其中,常量參數(shù)a與b以及變量參數(shù)ws均為與權(quán)值相關(guān)的參數(shù)。

考慮到核度計(jì)算公式主要是計(jì)算新增加的連通分支數(shù)與刪除的頂點(diǎn)數(shù),因此,常量參數(shù)a與b是與總權(quán)重相關(guān)的常量,它們分別與連通分支數(shù)和頂點(diǎn)數(shù)相乘后即可以使得在不改變?cè)杏?jì)算公式物理意義的基礎(chǔ)上又考慮了圖中邊的權(quán)重;參數(shù)ws則是為了消除具有不同權(quán)重的邊產(chǎn)生的不同的影響,其意義為消除頂點(diǎn)集s后圖中減少的邊的總權(quán)重。

公式(4)中,參數(shù)a和b設(shè)為a=b=2*(wg/|v(g)|),其中wg表示圖g中所有邊上的權(quán)重之和,|v(g)|表示圖g中的頂點(diǎn)總數(shù),則wg/|v(g)|表示平均每個(gè)頂點(diǎn)連接的邊權(quán)重的一半,也即a與b的值等于平均每個(gè)頂點(diǎn)連接的邊的權(quán)重。

在確定出核心漏洞后對(duì)核心漏洞進(jìn)行修復(fù),從而能夠?qū)崿F(xiàn)軟件漏洞的高效率防護(hù)。

由上可知,本實(shí)施例將核與核度理論用到對(duì)一個(gè)具體軟件中的漏洞進(jìn)行高效率防護(hù),通過(guò)選取一種漏洞分類方法,獲取大量不同軟件的漏洞信息,建立漏洞關(guān)聯(lián)關(guān)系圖,然后確定待防護(hù)的軟件,優(yōu)選地,獲取待防護(hù)的軟件的源代碼。接著,利用漏洞分析工具找到待防護(hù)軟件中存在的漏洞,并按照選取的漏洞分類方式對(duì)漏洞分析工具得到的漏洞進(jìn)行分類。進(jìn)而構(gòu)建得到漏洞關(guān)聯(lián)模型,建立一個(gè)只包含分析所得漏洞類型的漏洞關(guān)聯(lián)關(guān)系子圖。

最后根據(jù)無(wú)向邊賦權(quán)圖的核度計(jì)算方法計(jì)算漏洞關(guān)聯(lián)關(guān)系子圖的核與核度。從而修復(fù)核點(diǎn)所在的漏洞,通過(guò)修復(fù)單一核點(diǎn)漏洞進(jìn)而修復(fù)多個(gè)與其關(guān)聯(lián)的漏洞,實(shí)現(xiàn)了對(duì)漏洞的高效率防護(hù)。

實(shí)施例三

本實(shí)施例中以cnnvd漏洞分類方法為例介紹本發(fā)明的軟件漏洞防護(hù)方法的實(shí)現(xiàn)過(guò)程。

cnnvd漏洞分類方法是中國(guó)國(guó)家信息安全漏洞庫(kù)的一種按照漏洞威脅類型對(duì)漏洞進(jìn)行分類的方法。cnnvd庫(kù)中包含約十萬(wàn)條漏洞記錄,每條漏洞信息中包含漏洞類別,cnnvd編號(hào),cve編號(hào),危害等級(jí),漏洞類型,威脅類型等屬性以及漏洞簡(jiǎn)介。

步驟3.1:cnnvd按照漏洞威脅類型,將漏洞劃分為26個(gè)類別,如表1所示。

表1

表1是cnnvd漏洞分類表,由于“資料不足”、“未知”和“其他”三類漏洞無(wú)法詳細(xì)描述其漏洞信息,并且它們也難以與其他漏洞建立聯(lián)系,因此在后續(xù)處理中未考慮這三類漏洞,最終只分析了表1中的23類漏洞數(shù)據(jù)。

之后,利用自行編寫的爬蟲軟件獲取約10萬(wàn)條漏洞信息,并按照軟件名稱及cnnvd漏洞類型自動(dòng)進(jìn)行分類統(tǒng)計(jì),形成37000多個(gè)文件。在獲得原始漏洞數(shù)據(jù)后,對(duì)數(shù)據(jù)進(jìn)行處理,最終形成了3500多個(gè)具有多種類型漏洞及相應(yīng)漏洞數(shù)量的文件集,這些數(shù)據(jù)構(gòu)成了后續(xù)待分析的漏洞數(shù)據(jù)集。

步驟3.2:將一款java語(yǔ)言編寫的數(shù)獨(dú)游戲軟件作為實(shí)例,使用findbugs軟件查找該軟件代碼中的bug。

圖3是本發(fā)明一個(gè)實(shí)施例的待防護(hù)軟件中查找出的部分漏洞的示意圖,如圖3中hodoku_src(29)所示,共計(jì)找出了29項(xiàng)bug,去除其中4項(xiàng)不可用的bug,將剩余25項(xiàng)bug按照f(shuō)indbugs的分類方法進(jìn)行分類,產(chǎn)生11項(xiàng)不同的漏洞類別。

findbugs是一個(gè)靜態(tài)分析工具,它檢查類或者jar文件,將字節(jié)碼與一組缺陷模式進(jìn)行對(duì)比以發(fā)現(xiàn)可能的問(wèn)題。有了該靜態(tài)分析工具,就可以在不實(shí)際運(yùn)行程序的情況下對(duì)軟件進(jìn)行分析。

由于使用findbugs找到的漏洞分類信息與cnnvd不一致,因此要做一個(gè)映射。

步驟3.3:findbugs找到的每一個(gè)bug中都有其詳細(xì)描述與分類,因此先按findbugs本身的分類方式統(tǒng)計(jì),再將其漏洞分別對(duì)應(yīng)到cnnvd漏洞類別,如表2所示。

表2

表2是檢測(cè)出的bug與cnnvd漏洞類別的映射表,由表2可知,1個(gè)bug可能導(dǎo)致cnnvd漏洞分類中的一類或兩類漏洞,所以對(duì)檢測(cè)出的bug引發(fā)的漏洞數(shù)量進(jìn)行統(tǒng)計(jì)即可得到總漏洞數(shù),具體的,總漏洞數(shù)=1*2+1*2+1*1+1*1+2*1+4*2+6*1+3*2+4*2+0+0=36。這里需要說(shuō)明的是,對(duì)于findbugs找到的表2中的最后兩個(gè)bug,由于無(wú)法歸類到cnnvd漏洞分類中的任一類,所以本實(shí)施例中將這兩個(gè)bug導(dǎo)致的漏洞數(shù)量均設(shè)為0。

步驟3.4:得到在這款數(shù)獨(dú)軟件源代碼中的所有cnnvd漏洞分類的數(shù)量。在此基礎(chǔ)上,將其包含的漏洞類別提取出來(lái)建立新的漏洞關(guān)聯(lián)關(guān)系圖。

即,建立包含數(shù)獨(dú)軟件中的漏洞的關(guān)聯(lián)關(guān)系子圖,具體的建立步驟可參見(jiàn)前述實(shí)施例二中的對(duì)確定頂點(diǎn)、邊以及邊上的權(quán)值的說(shuō)明。

由表2可知,新的漏洞關(guān)聯(lián)關(guān)系圖包含的漏洞類別為0、4、7、11、16共5類,對(duì)應(yīng)漏洞類別為:緩沖區(qū)溢出、資源管理錯(cuò)誤、數(shù)字錯(cuò)誤、設(shè)計(jì)錯(cuò)誤、競(jìng)爭(zhēng)條件,其之間的關(guān)聯(lián)度可通過(guò)前述實(shí)施例二中說(shuō)明的方法計(jì)算得到,然后建立如圖4所示的漏洞關(guān)聯(lián)關(guān)系圖。圖4是根據(jù)圖3所示漏洞構(gòu)建的軟件漏洞關(guān)聯(lián)關(guān)系子圖的示意圖;如圖4所示,序號(hào)4表示漏洞類別序號(hào)為4的漏洞,即:資源管理錯(cuò)誤漏洞,以此類推。

步驟3.5:按照前述實(shí)施例二中的無(wú)向邊賦權(quán)圖核與核度計(jì)算公式計(jì)算可得圖4所示的漏洞關(guān)聯(lián)關(guān)系子圖的核度h(x)=2.56,核點(diǎn)為序號(hào)7,即,數(shù)字錯(cuò)誤漏洞,圖4中淺灰色部分為核點(diǎn)及其相關(guān)邊。

由此可知,在圖4中,序號(hào)為7的漏洞為核心漏洞,也就是說(shuō),針對(duì)待分析軟件(數(shù)獨(dú)軟件),其中的核心漏洞為數(shù)字錯(cuò)誤漏洞。將數(shù)字錯(cuò)誤漏洞所對(duì)應(yīng)的findbugs漏洞修復(fù)之后,總漏洞數(shù)由36降為34,而修復(fù)的漏洞數(shù)為1,也就是說(shuō),只需要修復(fù)一個(gè)核心漏洞,即可減少系統(tǒng)中的兩個(gè)漏洞,所以大大提高了漏洞的防護(hù)效率。

由上可知,本發(fā)明實(shí)施例的軟件漏洞防護(hù)方法基于對(duì)已有大量軟件漏洞分布情況的統(tǒng)計(jì)分析,對(duì)漏洞關(guān)聯(lián)關(guān)系建模,并構(gòu)建漏洞關(guān)聯(lián)關(guān)系圖。所建立的漏洞關(guān)聯(lián)關(guān)系圖中,頂點(diǎn)為來(lái)自漏洞數(shù)據(jù)庫(kù)中的不同的漏洞類型,邊定義為不同漏洞類別之間的聯(lián)系,邊上的權(quán)值代表各類漏洞之間關(guān)聯(lián)關(guān)系的強(qiáng)弱。對(duì)漏洞關(guān)聯(lián)關(guān)系進(jìn)行分析時(shí),從漏洞之間的比例關(guān)系入手,采用對(duì)數(shù)正態(tài)分布進(jìn)行擬合和預(yù)測(cè),從而獲得描述漏洞類別之間關(guān)聯(lián)關(guān)系的關(guān)聯(lián)度描述函數(shù)。將核與核度理論應(yīng)用于漏洞關(guān)聯(lián)檢測(cè)與防護(hù)提高了防護(hù)效率。

實(shí)施例四

圖5是本發(fā)明一個(gè)實(shí)施例的一種軟件漏洞的防護(hù)裝置的框圖,參見(jiàn)圖5,該軟件漏洞的防護(hù)裝置50包括:

關(guān)聯(lián)關(guān)系圖構(gòu)建單元501,用于獲取多個(gè)樣本軟件的漏洞數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,根據(jù)統(tǒng)計(jì)分析結(jié)果采用對(duì)數(shù)正態(tài)分布描述漏洞類別之間的關(guān)聯(lián)關(guān)系并構(gòu)建漏洞關(guān)聯(lián)關(guān)系圖;

核心漏洞確定單元502,用于根據(jù)一個(gè)軟件的漏洞數(shù)據(jù)構(gòu)建該漏洞關(guān)聯(lián)關(guān)系圖的漏洞關(guān)聯(lián)關(guān)系子圖,計(jì)算所述漏洞關(guān)聯(lián)關(guān)系子圖的核度并確定出該軟件的核心漏洞;

漏洞防護(hù)單元503,用于修復(fù)核心漏洞,以實(shí)現(xiàn)對(duì)該軟件的漏洞的防護(hù)。

在本發(fā)明的一個(gè)實(shí)施例中,關(guān)聯(lián)關(guān)系圖構(gòu)建單元501具體用于按照預(yù)定的漏洞分類方法,對(duì)獲取的每個(gè)樣本軟件的漏洞進(jìn)行分類,得到每個(gè)樣本軟件上出現(xiàn)的漏洞的類別數(shù)據(jù),對(duì)各類漏洞在各樣本軟件上的分布數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,根據(jù)統(tǒng)計(jì)分析結(jié)果采用對(duì)數(shù)正態(tài)分布描述漏洞類別之間的關(guān)聯(lián)關(guān)系并構(gòu)建漏洞關(guān)聯(lián)關(guān)系圖。

在本發(fā)明的一個(gè)實(shí)施例中,關(guān)聯(lián)關(guān)系圖構(gòu)建單元,用于根據(jù)每一類漏洞的類別構(gòu)建漏洞關(guān)聯(lián)關(guān)系圖的頂點(diǎn),根據(jù)頂點(diǎn)以及頂點(diǎn)對(duì)應(yīng)的各類漏洞之間的關(guān)聯(lián)度確定漏洞關(guān)聯(lián)關(guān)系圖的邊和邊上的權(quán)值。

在本發(fā)明的一個(gè)實(shí)施例中,關(guān)聯(lián)關(guān)系圖構(gòu)建單元,具體用于通過(guò)如下公式(1)計(jì)算漏洞關(guān)聯(lián)關(guān)系圖中連接第一頂點(diǎn)和第二頂點(diǎn)的邊的關(guān)聯(lián)度,即權(quán)值w:

公式(1)中,n表示樣本軟件的總數(shù)量,f(i)表示樣本軟件i中第一頂點(diǎn)對(duì)應(yīng)的漏洞類別和第二頂點(diǎn)對(duì)應(yīng)的漏洞類別之間的帶權(quán)契合概率;

帶權(quán)契合概率f(i)通過(guò)如下公式(2)計(jì)算得到:

公式(2)中,f'(i)表示樣本軟件i中第一頂點(diǎn)對(duì)應(yīng)的漏洞類別和第二頂點(diǎn)對(duì)應(yīng)的漏洞類別之間的契合概率;

算式表示契合概率的權(quán)值,其中,cia表示樣本軟件i中出現(xiàn)的第一頂點(diǎn)對(duì)應(yīng)的a類漏洞的數(shù)量,cib表示樣本軟件i中出現(xiàn)的第二頂點(diǎn)對(duì)應(yīng)的b類漏洞的數(shù)量,表示在所有樣本軟件上出現(xiàn)的第一頂點(diǎn)對(duì)應(yīng)的a類漏洞的總數(shù)量,表示在所有樣本軟件上出現(xiàn)的第二頂點(diǎn)對(duì)應(yīng)的b類漏洞的總數(shù)量;

契合概率f'(i)通過(guò)如下公式(3)計(jì)算得到:

公式(3)中,取方差σ=1,取μ為第一頂點(diǎn)對(duì)應(yīng)的漏洞類別和第二頂點(diǎn)對(duì)應(yīng)的漏洞類別在所有樣本軟件中出現(xiàn)的總數(shù)量之比的對(duì)數(shù),取x為第一頂點(diǎn)對(duì)應(yīng)的漏洞類別和第二頂點(diǎn)對(duì)應(yīng)的漏洞類別在樣本軟件i上出現(xiàn)的數(shù)量之比的對(duì)數(shù)。

在本發(fā)明的一個(gè)實(shí)施例中,關(guān)聯(lián)關(guān)系圖構(gòu)建單元,用于對(duì)獲取的每個(gè)樣本軟件的漏洞進(jìn)行分類,得到每個(gè)樣本軟件上出現(xiàn)的漏洞的類別數(shù)據(jù)后,將每個(gè)樣本軟件上的漏洞類別與預(yù)設(shè)漏洞類別閾值進(jìn)行比較,若小于或等于預(yù)設(shè)漏洞類別閾值,則在構(gòu)建漏洞關(guān)聯(lián)關(guān)系圖時(shí)排除該樣本軟件,否則,在構(gòu)建漏洞關(guān)聯(lián)關(guān)系圖時(shí)保留該樣本軟件;

以及,將計(jì)算出的第一頂點(diǎn)對(duì)應(yīng)的漏洞類別和第二頂點(diǎn)對(duì)應(yīng)的漏洞類別之間的關(guān)聯(lián)度與預(yù)設(shè)關(guān)聯(lián)度閾值進(jìn)行比較,當(dāng)計(jì)算出的關(guān)聯(lián)度大于或等于預(yù)設(shè)關(guān)聯(lián)度閾值時(shí),確定第一頂點(diǎn)和第二頂點(diǎn)之間存在一條邊。

在本發(fā)明的一個(gè)實(shí)施例中,關(guān)聯(lián)關(guān)系圖構(gòu)建單元,按照漏洞威脅類型對(duì)獲取的每個(gè)樣本軟件的漏洞進(jìn)行分類,或者,按照漏洞利用位置對(duì)獲取的每個(gè)樣本軟件的漏洞進(jìn)行分類,或者,按照漏洞的權(quán)限提升動(dòng)作對(duì)獲取的每個(gè)樣本軟件的漏洞進(jìn)行分類,或者,按照軟件或者軟件廠商對(duì)獲取的每個(gè)樣本軟件的漏洞進(jìn)行分類,或者,按照漏洞影響對(duì)獲取的每個(gè)樣本軟件的漏洞進(jìn)行分類。

在本發(fā)明的一個(gè)實(shí)施例中,核心漏洞確定單元,用于檢測(cè)該軟件的漏洞,并按照與構(gòu)建漏洞關(guān)聯(lián)關(guān)系圖時(shí)采用的相同的漏洞分類方法對(duì)檢測(cè)出的漏洞進(jìn)行分類;從漏洞關(guān)聯(lián)關(guān)系圖中提取與分類得到的漏洞類別數(shù)據(jù)對(duì)應(yīng)的頂點(diǎn)以及連接所述頂點(diǎn)的邊得到基于漏洞類別數(shù)據(jù)構(gòu)建的漏洞關(guān)聯(lián)關(guān)系子圖;根據(jù)漏洞關(guān)聯(lián)關(guān)系子圖計(jì)算關(guān)聯(lián)關(guān)系子圖的核度并確定出該軟件的核心漏洞。

在本發(fā)明的一個(gè)實(shí)施例中,核心漏洞確定單元,具體用于通過(guò)如下公式(4)計(jì)算漏洞關(guān)聯(lián)關(guān)系子圖的核度:

h(g)=max{a*ω(g-s)-b*|s|+ws,s∈c(g)}公式(4)

公式(4)中,h(g)為漏洞關(guān)聯(lián)關(guān)系子圖g的核度,c(g)表示g中所有點(diǎn)割集構(gòu)成的集合,

參數(shù)a和b為常量,a=b=2*(wg/|v(g)|),|v(g)|表示圖g中的頂點(diǎn)總數(shù),wg表示圖g中所有邊上的權(quán)值的和;

參數(shù)ws為變量,表示消除頂點(diǎn)集s后圖中減少的邊的總權(quán)重;

根據(jù)計(jì)算出的漏洞關(guān)聯(lián)關(guān)系子圖的核度可得漏洞關(guān)聯(lián)關(guān)系子圖的核,進(jìn)而確定得到該軟件的核心漏洞。在本發(fā)明的一個(gè)實(shí)施例中,漏洞防護(hù)單元在核心漏洞確定之后,通過(guò)修復(fù)核心漏洞以保證軟件安全性。

需要說(shuō)明的是,本實(shí)施例的軟件漏洞的防護(hù)裝置的工作過(guò)程是和前述軟件漏洞的防護(hù)方法的工作步驟相對(duì)應(yīng)的,因此,本實(shí)施例中未盡事項(xiàng)可參見(jiàn)前述方法實(shí)施例的說(shuō)明,在此不再贅述。

綜上,本發(fā)明實(shí)施例的軟件漏洞防護(hù)方法和裝置,基于對(duì)已知大量軟件漏洞的統(tǒng)計(jì)分析,得到描述漏洞關(guān)聯(lián)關(guān)系的漏洞關(guān)聯(lián)關(guān)系圖,并針對(duì)由不同類型漏洞和漏洞之間關(guān)聯(lián)關(guān)系構(gòu)建的漏洞關(guān)聯(lián)關(guān)系圖,重點(diǎn)分析不同類型漏洞之間的關(guān)聯(lián)關(guān)系(這些關(guān)系中包括因果關(guān)系或共生關(guān)系),識(shí)別與其他漏洞具有較高關(guān)聯(lián)度的漏洞從而確定出軟件的核心漏洞,實(shí)現(xiàn)修復(fù)該單一核心漏洞即可實(shí)現(xiàn)一并修復(fù)與其關(guān)聯(lián)的漏洞,提高漏洞的防護(hù)效率的有益效果,提高了軟件的安全性,滿足了實(shí)際需求。

以上所述,僅為本發(fā)明的具體實(shí)施方式,在本發(fā)明的上述教導(dǎo)下,本領(lǐng)域技術(shù)人員可以在上述實(shí)施例的基礎(chǔ)上進(jìn)行其他的改進(jìn)或變形。本領(lǐng)域技術(shù)人員應(yīng)該明白,上述的具體描述只是更好的解釋本發(fā)明的目的,本發(fā)明的保護(hù)范圍以權(quán)利要求的保護(hù)范圍為準(zhǔn)。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1