周莎,申國(guó)偉,郭春
(貴州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院公共大數(shù)據(jù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,貴州 貴陽(yáng) 550025)
當(dāng)前,漏洞弱點(diǎn)安全已成為網(wǎng)絡(luò)安全領(lǐng)域的研究熱點(diǎn)。為保障云數(shù)據(jù)中心等環(huán)境下系統(tǒng)和網(wǎng)絡(luò)的安全性,安全人員需要及時(shí)對(duì)環(huán)境中存在的漏洞弱點(diǎn)進(jìn)行加固。CVE[1]、CWE[2]、CAPEC[3]、ATT&CK[4]等開(kāi)源網(wǎng)絡(luò)安全知識(shí)庫(kù)是包含各種弱點(diǎn)信息的數(shù)據(jù)庫(kù),包括漏洞弱點(diǎn)類型、弱點(diǎn)緩解措施、針對(duì)弱點(diǎn)的攻擊技術(shù)等。這些弱點(diǎn)信息為安全人員進(jìn)行弱點(diǎn)加固提供了有效的參考意見(jiàn)。然而,因異構(gòu)信息協(xié)同難和歷史信息維護(hù)難等原因,開(kāi)源網(wǎng)絡(luò)安全知識(shí)庫(kù)存在嚴(yán)重的弱點(diǎn)信息缺失的問(wèn)題,這給獲取弱點(diǎn)加固信息帶來(lái)了挑戰(zhàn)。
針對(duì)開(kāi)源網(wǎng)絡(luò)安全知識(shí)庫(kù)中的弱點(diǎn)信息缺失問(wèn)題,弱點(diǎn)信息補(bǔ)全研究方法主要分為基于分類模型和基于知識(shí)圖譜的方法。基于分類模型的方法通過(guò)訓(xùn)練機(jī)器學(xué)習(xí)或深度學(xué)習(xí)模型來(lái)補(bǔ)全特定類型的信息,但該種方法所包括的弱點(diǎn)信息有限,受分類器分類數(shù)量的限制,無(wú)法補(bǔ)全除分類器之外包含弱點(diǎn)緩解措施在內(nèi)的其他弱點(diǎn)信息?;谥R(shí)圖譜的方法能有效關(guān)聯(lián)各大開(kāi)源網(wǎng)絡(luò)安全知識(shí)庫(kù),便于弱點(diǎn)信息協(xié)同,但缺乏對(duì)協(xié)同信息不同鄰域特征的學(xué)習(xí)。網(wǎng)絡(luò)安全領(lǐng)域知識(shí)圖譜的網(wǎng)絡(luò)結(jié)構(gòu)存在多樣性,安全實(shí)體的鄰域特征能表征這種多樣性并提高信息完善度。但傳統(tǒng)基于知識(shí)圖譜的方法僅關(guān)注正向鄰域特征,而忽視了逆向鄰域特征對(duì)弱點(diǎn)信息補(bǔ)全的影響?,F(xiàn)有弱點(diǎn)信息補(bǔ)全研究方法既無(wú)法覆蓋緩解措施等弱點(diǎn)信息,又缺乏對(duì)鄰域知識(shí)圖譜鄰域特征的充分學(xué)習(xí),導(dǎo)致補(bǔ)全效果受限。
針對(duì)上述研究現(xiàn)狀,本文提出基于安全知識(shí)圖譜和逆向特征的弱點(diǎn)信息補(bǔ)全方法VulKGC-RN。與傳統(tǒng)基于知識(shí)圖譜的方法不同,VulKGC-RN 關(guān)注各大開(kāi)源網(wǎng)絡(luò)安全知識(shí)庫(kù)中包括緩解措施在內(nèi)的多種弱點(diǎn)信息的關(guān)聯(lián)協(xié)同。同時(shí),從捕獲逆向鄰域信息的角度,與現(xiàn)有研究?jī)H捕獲一跳鄰域范圍內(nèi)的單一逆向關(guān)系不同,本文根據(jù)圖遍歷思想,通過(guò)逆向圖譜捕獲多跳范圍內(nèi)多種關(guān)系的逆向鄰域信息,并通過(guò)圖注意力網(wǎng)絡(luò)學(xué)習(xí)捕獲的逆向鄰域特征。在統(tǒng)一網(wǎng)絡(luò)安全本體的基礎(chǔ)上,VulKGC-RN 設(shè)計(jì)并構(gòu)建關(guān)聯(lián)CVE、CWE、CAPEC 和ATT&CK 4 類開(kāi)源網(wǎng)絡(luò)安全知識(shí)庫(kù)的弱點(diǎn)安全知識(shí)圖譜。VulKGC-RN 從安全實(shí)體的正向鄰域角色和逆向鄰域角色2 個(gè)方面來(lái)分析安全實(shí)體的網(wǎng)絡(luò)結(jié)構(gòu)。在初始結(jié)構(gòu)嵌入和初始語(yǔ)義嵌入的基礎(chǔ)上,VulKGC-RN 利用圖注意力網(wǎng)絡(luò)學(xué)習(xí)安全實(shí)體的正向鄰域特征和逆向鄰域特征。最后,VulKGC-RN 通過(guò)特征融合的方式生成三元組中實(shí)體和關(guān)系的特征向量,并利用解碼器對(duì)特征向量進(jìn)行解碼和評(píng)分。在進(jìn)行弱點(diǎn)信息補(bǔ)全時(shí),VulKGC-RN 將給出評(píng)分函數(shù)值由高到低的補(bǔ)全三元組集。
1.1.1 常見(jiàn)漏洞與披露數(shù)據(jù)庫(kù)
常見(jiàn)漏洞與披露數(shù)據(jù)庫(kù)CVE[1]是1 個(gè)識(shí)別、定義和編碼公開(kāi)披露的網(wǎng)絡(luò)安全數(shù)據(jù)庫(kù)。該數(shù)據(jù)庫(kù)為每個(gè)漏洞提供1 個(gè)唯一的CVE-ID,并提供漏洞的相關(guān)描述字段。這些漏洞由世界各地的組織和個(gè)人發(fā)現(xiàn)并通過(guò)官方檢驗(yàn)發(fā)布。本文對(duì)CVD、NVD 等漏洞庫(kù)進(jìn)行總結(jié),以CVE-2022-3001[5]為例,CVE 漏洞字段包括以下部分:
1)CVE 編號(hào):漏洞編號(hào),如CVE-2022-3001。
2)描述:漏洞的文本描述信息,包括漏洞成因、漏洞危害等。
3)危險(xiǎn)性:描述漏洞的安全性、嚴(yán)重性、CVSS2.0 版本和CVSS3.X 版本的漏洞評(píng)價(jià)矩陣等。
4)影響產(chǎn)品(CPE):介紹已知漏洞所影響的軟硬件配置。CPE 名稱是對(duì)7 個(gè)有序字段進(jìn)行編碼的URL,7 個(gè)字段不一定都有,一般寫到product,如cpe:/
5)CWE 類型:描述該漏洞屬于弱點(diǎn)枚舉類型。
6)參考資料:參考的公告、解決方案、工具和相關(guān)緩解措施等信息。
7)歷史狀態(tài):記錄該漏洞的發(fā)現(xiàn)、最近更新和更新源等信息,描述漏洞的時(shí)效性。
1.1.2 弱點(diǎn)枚舉數(shù)據(jù)庫(kù)
常見(jiàn)弱點(diǎn)枚舉數(shù)據(jù)庫(kù)CWE[2]是社區(qū)開(kāi)發(fā)的軟件和硬件弱點(diǎn)類型列表。CWE 既是通用語(yǔ)言,也是弱點(diǎn)識(shí)別、緩解和預(yù)防工作的基準(zhǔn)。CWE 數(shù)據(jù)庫(kù)通過(guò)對(duì)弱點(diǎn)進(jìn)行分類,并列出漏洞弱點(diǎn)及其影響,以幫助安全人員了解攻擊并提供可能的加固措施。
為便于分析和應(yīng)用,CWE 數(shù)據(jù)庫(kù)創(chuàng)建了不同的視圖,整體上分為4 大類視圖:即Navigate CWE 視圖、外部映射視圖、有用的視圖和棄用的視圖。根據(jù)不同的需求,視圖能繼續(xù)細(xì)分,例如Navigate CWE 視圖可細(xì)分為軟件開(kāi)發(fā)、硬件設(shè)計(jì)、研究概念。每個(gè)視圖都是1 個(gè)多層次的樹(shù)狀體系,在版本6.10 中,不同的抽象層次級(jí)別描述如表1 所示。在弱點(diǎn)枚舉數(shù)據(jù)庫(kù)中,以CWE-20[6]為例,每個(gè)CWE 條目包括以下字段:
表1 在CWE 中弱點(diǎn)枚舉類型的不同抽象層次描述Table 1 Different abstraction level description of vulnerability enumeration types in CWE
1)CWE 編號(hào)(CWE-ID):每個(gè)CWE 條目都有1 個(gè)唯一的ID 編號(hào),指向獨(dú)立的解釋界面,例如CWE-20。
2)概要描述:弱點(diǎn)觸發(fā)機(jī)制的簡(jiǎn)要說(shuō)明。
3)詳細(xì)描述:對(duì)弱點(diǎn)進(jìn)一步解釋,包括弱點(diǎn)原理、觸發(fā)機(jī)制、危害、緩解措施等。
4)CWE 關(guān)系:表1 中不同抽象層的CWE 弱點(diǎn)之間存在不同的關(guān)系。通常以表格的形式來(lái)描述,這些關(guān)系有孩子(ChildOf)、父級(jí)(ParentOf)、同級(jí)(PeerOf)、先于(CanPrecede)等。CWE 條目之間的關(guān)系能讓安全人員發(fā)現(xiàn)新的威脅,及時(shí)加固相關(guān)弱點(diǎn)。
5)CVE 實(shí)例:與該弱點(diǎn)相關(guān)聯(lián)的CVE 漏洞實(shí)例,通常以表格形式呈現(xiàn)。
6)相關(guān)攻擊模式:包含與此弱點(diǎn)關(guān)聯(lián)的攻擊模式(CAPEC-ID)的引用。該關(guān)聯(lián)模式存在此弱點(diǎn)的實(shí)例。
7)緩解措施:描述與當(dāng)前弱點(diǎn)相關(guān)的緩解措施,主要從開(kāi)發(fā)生命周期階段、策略應(yīng)用、弱點(diǎn)有效性、說(shuō)明4 個(gè)方面來(lái)提出緩解措施。通常情況下對(duì)于重復(fù)應(yīng)用的緩解措施,可采用唯一標(biāo)識(shí)符進(jìn)行說(shuō)明以引用。
8)其他信息:包括適用平臺(tái)、實(shí)現(xiàn)模式等。
1.1.3 常見(jiàn)攻擊模式枚舉和分類數(shù)據(jù)庫(kù)
了解攻擊者的運(yùn)作方式對(duì)網(wǎng)絡(luò)安全弱點(diǎn)加固至關(guān)重要。常見(jiàn)攻擊模式枚舉和分類數(shù)據(jù)集CAPEC[3]利用網(wǎng)絡(luò)已知弱點(diǎn)所采用的攻擊模式字典給對(duì)手提供幫助。安全人員可以使用該數(shù)據(jù)集理解弱點(diǎn)并增強(qiáng)防護(hù)。為便于分析,CAPEC 與CWE 一樣創(chuàng)建樹(shù)狀視圖,例如安全人員可通過(guò)Navigate CAPEC 視圖下的攻擊機(jī)制和攻擊域2 個(gè)子視圖進(jìn)行分析。以CAPEC-10[7]為例,每個(gè)CAPEC 條目主要包括以下信息:
1)攻擊模式編號(hào)(CAPEC-ID):對(duì)攻擊類型的唯一編號(hào),例如CAPEC-10。
2)描述:對(duì)該攻擊模式原理的簡(jiǎn)要介紹。
3)擴(kuò)展描述:對(duì)該攻擊模式的詳細(xì)介紹,包括利用的弱點(diǎn)、詳細(xì)的攻擊機(jī)制等。
4)CAPEC 關(guān)系:與CWE 一樣,CAPEC 也以抽象層次記錄不同的攻擊模式,其層次結(jié)構(gòu)從上到下依次為類別、元攻擊模式、標(biāo)準(zhǔn)攻擊模式、詳細(xì)攻擊模式。在不同層次攻擊模式間的關(guān)系有孩子、父級(jí)、同級(jí)、先于、后于(CanFollow)等。
5)緩解措施:防御該攻擊模式的方法包括配置信息設(shè)置、可用的安全工具等。
6)相關(guān)弱點(diǎn):該攻擊模式利用的弱點(diǎn)以表格形式提供,每個(gè)表項(xiàng)指向1 個(gè)CWE。
7)其他信息:攻擊模式被使用的可能性、攻擊模式執(zhí)行過(guò)程、危害程度、影響范圍、歷史變更狀態(tài)等。
1.1.4 攻擊者戰(zhàn)術(shù)與技術(shù)知識(shí)庫(kù)
ATT&CK[4]是MTRE 公司于2013 年基于真實(shí)攻擊事件創(chuàng)建的攻擊者戰(zhàn)術(shù)和技術(shù)知識(shí)庫(kù)。ATT&CK數(shù)據(jù)庫(kù)包括3 大類,分別是企業(yè)矩陣、移動(dòng)矩陣、工控系統(tǒng)矩陣。每類矩陣都包括戰(zhàn)術(shù)、技術(shù)、緩解措施、攻擊組、軟件等內(nèi)容。戰(zhàn)術(shù)是支持攻擊目標(biāo)的行為,技術(shù)是執(zhí)行戰(zhàn)術(shù)的方法,緩解措施是防御者可采用的防御方法。在弱點(diǎn)安全加固中,ATT&CK 從攻擊者的意圖出發(fā),為安全人員在弱點(diǎn)安全加固策略、防御體系設(shè)計(jì)、復(fù)雜多步攻擊分析、安全應(yīng)急響應(yīng)等方面提供了思路。在V12 版本中,企業(yè)ATT&CK 包括14 項(xiàng)戰(zhàn)術(shù)、193 項(xiàng)技術(shù)、401 項(xiàng)子技術(shù)、43 類緩解措施、135 個(gè)攻擊組、718 個(gè)軟件等信息。
1.1.5 開(kāi)源網(wǎng)絡(luò)安全知識(shí)庫(kù)中弱點(diǎn)信息缺失情況
在上述4 種開(kāi)源網(wǎng)絡(luò)安全知識(shí)庫(kù)中,CVE 側(cè)重于描述某個(gè)具體的漏洞信息,CWE 側(cè)重于描述某種軟件和硬件弱點(diǎn)類型,CAPEC 側(cè)重于提供攻擊者利于弱點(diǎn)的某種攻擊模式,ATT&CK 側(cè)重于提供攻擊者實(shí)施復(fù)雜攻擊的戰(zhàn)術(shù)、技術(shù)和緩解措施,但是這4 種知識(shí)庫(kù)都存在1 個(gè)共同的問(wèn)題——弱點(diǎn)信息缺失。以弱點(diǎn)關(guān)聯(lián)關(guān)系和弱點(diǎn)緩解措施為例,本文調(diào)研了截至2022 年5 月29 日各大開(kāi)源網(wǎng)絡(luò)安全知識(shí)庫(kù)中弱點(diǎn)信息缺失情況,詳見(jiàn)圖1。圖1 中灰色區(qū)域表示存在的弱點(diǎn)信息,白色區(qū)域表示缺失的弱點(diǎn)信息,灰色和白色區(qū)域的百分比分別表示弱點(diǎn)信息和缺失弱點(diǎn)信息的占比,灰色和白色區(qū)域的數(shù)據(jù)表示弱點(diǎn)信息的數(shù)量。
圖1 各大開(kāi)源網(wǎng)絡(luò)安全數(shù)據(jù)庫(kù)的弱點(diǎn)信息缺失情況Fig.1 Lack of vulnerability information in major open-source network security databases
調(diào)研結(jié)果顯示,CVE[1]、CWE[2]、CAPEC[3]和ATT&CK[4]等開(kāi)源網(wǎng)絡(luò)安全知識(shí)庫(kù)中關(guān)聯(lián)關(guān)系和弱點(diǎn)緩解措施均存在缺失。在各大開(kāi)源網(wǎng)絡(luò)安全知識(shí)庫(kù)中,NVD 包含所有漏洞CVE 數(shù)據(jù)共187 584 條,總的弱點(diǎn)CWE 數(shù)據(jù)共950 條,總的攻擊模式CAPEC 數(shù)據(jù)共546 條,總的攻擊技術(shù)ATT&CK 共577 條,其中約31.5%的CWE 弱點(diǎn)、約29.5%的CAPEC 攻擊模式和約15.6%的ATT&CK 攻擊技術(shù)的緩解措施缺失。此外,在漏洞、弱點(diǎn)類型、攻擊模式、攻擊技術(shù)等不同安全實(shí)體之間的關(guān)聯(lián)關(guān)系也存在缺失。CWE 與CAPEC 之間的關(guān)聯(lián)關(guān)系缺失率為65.9%,CAPEC 到ATT&CK 的關(guān)聯(lián)關(guān)系缺失率為79.5%,ATT&CK 到CAPEC 的關(guān)聯(lián)關(guān)系缺失率為82.0%。該結(jié)果表明開(kāi)源網(wǎng)絡(luò)安全知識(shí)庫(kù)中弱點(diǎn)信息缺失問(wèn)題嚴(yán)重,安全人員無(wú)法從開(kāi)源網(wǎng)絡(luò)安全知識(shí)庫(kù)中獲得充分的漏洞弱點(diǎn)信息,不利于弱點(diǎn)安全加固。
隨著資源描述框架(RDF)[8]、網(wǎng)絡(luò)本體語(yǔ)言(OWL)[9]和谷歌知識(shí)圖譜搜索引擎[10]的相繼出現(xiàn),現(xiàn)代知識(shí)圖譜的思想在網(wǎng)絡(luò)安全領(lǐng)域得到了廣泛的應(yīng)用,例如威脅路徑生成[11-12]、網(wǎng)絡(luò)攻擊圖生成[13]、復(fù)雜攻擊判斷[14]和漏洞弱點(diǎn)挖掘[15]等。針對(duì)漏洞弱點(diǎn)安全加固,網(wǎng)絡(luò)安全知識(shí)圖譜為不同網(wǎng)絡(luò)安全知識(shí)庫(kù)的關(guān)聯(lián)協(xié)同提供了途徑,有利于安全人員從復(fù)雜異構(gòu)數(shù)據(jù)庫(kù)中獲取緩解措施的弱點(diǎn)信息。
網(wǎng)絡(luò)安全知識(shí)圖譜的構(gòu)建有自頂向下和自底向上2 種?;诎踩I(lǐng)域充足的專家知識(shí),常采用自頂向下設(shè)計(jì)網(wǎng)絡(luò)安全本體。網(wǎng)絡(luò)安全本體用于描述1 個(gè)更廣泛的網(wǎng)絡(luò)安全領(lǐng)域中的網(wǎng)絡(luò)安全概念及其概念之間的關(guān)系。這些概念和關(guān)系有1 個(gè)共同的、明確的、唯一的定義。在共享范圍內(nèi),每個(gè)人都同意這些定義,使得人和機(jī)器可以相互通信。
網(wǎng)絡(luò)安全本體可分為通用網(wǎng)絡(luò)安全本體和特殊網(wǎng)絡(luò)安全本體。通用網(wǎng)絡(luò)安全本體是以網(wǎng)絡(luò)安全系統(tǒng)中多種異構(gòu)數(shù)據(jù)和知識(shí)模式為基礎(chǔ)來(lái)設(shè)計(jì)的,其目的是以最常用的網(wǎng)絡(luò)安全標(biāo)準(zhǔn)進(jìn)行信息共享和交換,如STUCCO[16]、統(tǒng)一網(wǎng)絡(luò)安全本體(UCO)[17]、SEPSES[18]等。特殊網(wǎng)絡(luò)安全本體是為實(shí)現(xiàn)某一具體任務(wù)而設(shè)計(jì)的,如安全評(píng)估、惡意軟件分類、網(wǎng)絡(luò)攻擊分析、漏洞分析、態(tài)勢(shì)感知、安全加固等。在當(dāng)今復(fù)雜網(wǎng)絡(luò)環(huán)境下,構(gòu)建通用網(wǎng)絡(luò)安全本體是1 個(gè)困難且耗時(shí)的過(guò)程,該過(guò)程嚴(yán)重依賴于網(wǎng)絡(luò)安全人員的領(lǐng)域知識(shí)和信息技術(shù)知識(shí)。同時(shí),在某些應(yīng)用中,通用網(wǎng)絡(luò)安全本體缺少靈活性。
開(kāi)源網(wǎng)絡(luò)安全信息的補(bǔ)全方法主要分為基于分類模型的方法和基于知識(shí)圖譜的方法。
1.3.1 基于分類模型的方法
在開(kāi)源網(wǎng)絡(luò)安全知識(shí)庫(kù)中,基于分類模型的補(bǔ)全技術(shù)仍局限于補(bǔ)全特定類型信息。AGHAEI 等[19]提出的ThreatZoom 方法自動(dòng)將CVE 實(shí)例分類到CWE。該方法采用自適應(yīng)分層神經(jīng)網(wǎng)絡(luò),根據(jù)文本分析分?jǐn)?shù)和分類錯(cuò)誤自動(dòng)調(diào)整權(quán)重。其從CVE 描述中提取統(tǒng)計(jì)特征和語(yǔ)義特征自動(dòng)將CVE 實(shí)例映射到對(duì)應(yīng)的CWE 類別。AOTA 等[20]根據(jù)多標(biāo)簽分類任務(wù)思想,采用機(jī)器學(xué)習(xí)算法為CVE-ID 分配合適的CWE-ID,并采用PU 學(xué)習(xí)解決訓(xùn)練過(guò)程中缺乏多標(biāo)簽樣本的問(wèn)題。LAKHDHAR 等[21]提出一種基于多標(biāo)簽分類的漏洞檢測(cè)方法,將檢測(cè)到的漏洞自動(dòng)映射為攻擊者可能使用的MITRE 對(duì)抗策略。該方法能幫助網(wǎng)絡(luò)防御者優(yōu)先考慮漏洞防御策略。在最新研究中,GUO 等[22]首次調(diào)查弱點(diǎn)描述信息的缺失情況,并通過(guò)設(shè)計(jì)多分類器來(lái)增強(qiáng)漏洞關(guān)鍵描述信息。然而,該研究側(cè)重于增強(qiáng)弱點(diǎn)描述的6 個(gè)方面:即漏洞類型、根本原因、受影響的產(chǎn)品、影響、攻擊者類型和攻擊向量,未關(guān)注緩解措施等其他弱點(diǎn)信息。
1.3.2 基于知識(shí)圖譜的方法
由于異構(gòu)信息協(xié)同難、歷史信息維護(hù)難等原因,因此利用開(kāi)源網(wǎng)絡(luò)安全知識(shí)庫(kù)構(gòu)建的網(wǎng)絡(luò)安全知識(shí)圖譜存在信息缺失的情況,安全人員無(wú)法從網(wǎng)絡(luò)安全知識(shí)圖譜中獲取到某些漏洞弱點(diǎn)的緩解措施。針對(duì)該問(wèn)題,基于知識(shí)圖譜補(bǔ)全技術(shù)[23],通過(guò)推理來(lái)補(bǔ)全網(wǎng)絡(luò)安全知識(shí)圖譜中缺少的信息。HAN 等[24]提出一種知識(shí)圖譜嵌入方法,將CWE 的結(jié)構(gòu)和文本知識(shí)嵌入到向量表示中,以實(shí)現(xiàn)CWE 知識(shí)庫(kù)的關(guān)系推理。為解決不同安全數(shù)據(jù)庫(kù)中安全實(shí)體之間的關(guān)系缺失,XIAO 等[25]提出將異構(gòu)數(shù)據(jù)庫(kù)融合為1 個(gè)連貫的軟件安全知識(shí)圖譜,并利用嵌入方法預(yù)測(cè)CVE、CWE 和CAPEC 之間的安全實(shí)體關(guān)系。對(duì)于安全知識(shí)圖譜的關(guān)系缺失情況,YUAN 等[26]利用文本增強(qiáng)圖注意力網(wǎng)絡(luò)模型預(yù)測(cè)安全實(shí)體關(guān)系。目前,該研究獲得安全知識(shí)圖譜預(yù)測(cè)的最佳性能,但該方法未解釋安全實(shí)體的鄰域特征如何影響知識(shí)預(yù)測(cè)。此外,與通用知識(shí)圖譜不同,網(wǎng)絡(luò)安全領(lǐng)域知識(shí)圖譜的網(wǎng)絡(luò)結(jié)構(gòu)存在多樣性,安全實(shí)體的鄰域特征能表征這種多樣性并提高信息完善度,但該研究主要關(guān)注正向鄰域特征,忽視了逆向鄰域特征對(duì)信息完善度的影響。
目前基于分類模型和基于知識(shí)圖譜的方法存在的問(wèn)題:對(duì)緩解措施等弱點(diǎn)信息的關(guān)注少,缺乏對(duì)領(lǐng)域知識(shí)圖譜中弱點(diǎn)信息的不同鄰域特征的充分學(xué)習(xí)。針對(duì)上述問(wèn)題,本文提出基于知識(shí)圖譜的融合逆向特征的弱點(diǎn)信息補(bǔ)全方法。
VulKGC-RN 的目標(biāo)是補(bǔ)全開(kāi)源網(wǎng)絡(luò)安全知識(shí)庫(kù)中缺失的漏洞弱點(diǎn)相關(guān)信息。VulKGC-RN 整體框架如圖2 所示。
圖2 VulKGC-RN 的框架Fig.2 VulKGC-RN framework
VulKGC-RN 主要由以下部分組成:
1)弱點(diǎn)安全知識(shí)圖譜構(gòu)建。不同開(kāi)源網(wǎng)絡(luò)安全知識(shí)庫(kù)的信息側(cè)重點(diǎn)不一樣,為便于查詢到與漏洞弱點(diǎn)相關(guān)的緩解措施等信息,需要對(duì)這些信息進(jìn)行處理和關(guān)聯(lián)。參照?qǐng)D數(shù)據(jù)庫(kù)思想,VulKGC-RN 設(shè)計(jì)弱點(diǎn)安全知識(shí)圖譜本體,并基于本體構(gòu)建弱點(diǎn)安全知識(shí)圖譜。
2)初始特征學(xué)習(xí)。在弱點(diǎn)安全知識(shí)圖譜中,不同的安全實(shí)體之間存在不同的關(guān)聯(lián)關(guān)系,這些關(guān)系共同形成了安全實(shí)體特有的圖網(wǎng)絡(luò)結(jié)構(gòu)。VulKGC-RN 利用知識(shí)圖譜嵌入算法,獲得不同安全實(shí)體的初始結(jié)構(gòu)特征。同時(shí),在開(kāi)源網(wǎng)絡(luò)安全知識(shí)庫(kù)中,每個(gè)安全實(shí)體都存在一段文字描述信息,該描述信息包含安全實(shí)體的簡(jiǎn)要概述、觸發(fā)機(jī)制等內(nèi)容。這些描述信息有助于區(qū)分不同的安全實(shí)體,VulKGC-RN 采用預(yù)訓(xùn)練語(yǔ)義模型來(lái)學(xué)習(xí)實(shí)體的初始語(yǔ)義特征。
3)逆向鄰域特征生成。根據(jù)對(duì)弱點(diǎn)安全知識(shí)圖譜網(wǎng)絡(luò)結(jié)構(gòu)的分析可知,弱點(diǎn)安全知識(shí)圖譜中安全實(shí)體的入度邊和出度邊的數(shù)量不均衡,使得安全實(shí)體的初始結(jié)構(gòu)特征不明顯。因此,VulKGC-RN 利用圖注意力網(wǎng)絡(luò)學(xué)習(xí)弱點(diǎn)安全知識(shí)圖譜中安全實(shí)體多跳范疇的正向和逆向鄰域特征。
4)特征融合。為了使得模型能夠充分理解安全實(shí)體的正向和逆向鄰域信息,VulKGC-RN 通過(guò)特征融合方法將正向鄰域特征和逆向鄰域特征相融合。
5)信息補(bǔ)全。VulKGC-RN 的最終目標(biāo)是補(bǔ)全開(kāi)源網(wǎng)絡(luò)安全知識(shí)庫(kù)中缺失的漏洞弱點(diǎn)相關(guān)信息。參照編碼器-解碼器思想,VulKGC-RN 利用解碼器對(duì)融合的特征向量進(jìn)行解碼預(yù)測(cè)。
弱點(diǎn)安全知識(shí)圖譜本體是構(gòu)建弱點(diǎn)安全知識(shí)圖譜的核心。結(jié)合前人對(duì)網(wǎng)絡(luò)安全本體的相關(guān)研究和本文對(duì)各開(kāi)源網(wǎng)絡(luò)安全知識(shí)庫(kù)的數(shù)據(jù)信息分析,VulKGC-RN 在統(tǒng)一網(wǎng)絡(luò)安全本體的基礎(chǔ)上設(shè)計(jì)如圖3 所示的本體結(jié)構(gòu)。該本體結(jié)構(gòu)定義了5 種安全實(shí)體和15 種關(guān)聯(lián)關(guān)系。實(shí)體類型定義為Ce,包括CVE、CWE、CAPEC、ATT&CK-T 和ATT&CK-M。關(guān)系類型定義為Cr,包括AttackOf、CanAlsoBe、CanFollow、CanPrecede、ChildOf、InstanceOf、RelatedATT&CKTechnique、RelatedMitigation、RelatedPattern 等。
圖3 VulKG 中實(shí)體和關(guān)系的本體結(jié)構(gòu)Fig.3 The ontological structure of entities and relationships in VulKG
基于本體結(jié)構(gòu)的設(shè)計(jì),弱點(diǎn)安全知識(shí)圖譜定義為G={E,R},由實(shí)體集E和關(guān)系集R組成。實(shí)體集E={e1,e2,…,en},ei表示單個(gè)實(shí)體節(jié)點(diǎn),每個(gè)實(shí)體節(jié)點(diǎn)都擁有其描述信息和相關(guān)屬性,ei={實(shí)體ID,ce,描述,緩解措施,相關(guān)信息},ce∈Ce。關(guān)系集R={r1,r2,…,rm},rj={h,r,t},rj表示頭實(shí)體節(jié)點(diǎn)h和尾實(shí)體節(jié)點(diǎn)t的關(guān)系,該關(guān)系通過(guò)三元組描述,r∈Cr。
通過(guò)對(duì)開(kāi)源網(wǎng)絡(luò)安全知識(shí)庫(kù)的處理,構(gòu)建的VulKG 共包含118 895 個(gè)實(shí)體節(jié)點(diǎn)和125 966 條三元組關(guān)系。其中,CVE 實(shí)體節(jié)點(diǎn)有116 813 個(gè),InstanceOf 三元組關(guān)系有119 350 條,這說(shuō)明在大量CVE 與CWE 之間存在多對(duì)一的單向關(guān)系。
因CVE 實(shí)體類型占比大,導(dǎo)致VulKG 呈現(xiàn)明顯不均衡的分布特點(diǎn),在CWE、CAPEC、ATT&CK 3 個(gè)開(kāi)源網(wǎng)絡(luò)安全知識(shí)庫(kù)不變的情況下,本文分別考慮在不同漏洞披露時(shí)間段內(nèi)的CVE 數(shù)據(jù)庫(kù)對(duì)VulKG網(wǎng)絡(luò)結(jié)構(gòu)的影響,分析結(jié)果如表2 所示(平均值*表示去掉0 值的平均值)。從表2 可以看出,安全實(shí)體出度邊數(shù)的中位數(shù)為1,且有大量的實(shí)體節(jié)點(diǎn)沒(méi)有入度邊。在減少CVE 實(shí)體類型占比后,該分析結(jié)果并未改變,這表明VulKG 存在只含有出度邊或只含有入度邊的安全實(shí)體,也包含既不存在出度邊也不存在入度邊的安全實(shí)體。
表2 VulKG 中實(shí)體節(jié)點(diǎn)的網(wǎng)絡(luò)結(jié)構(gòu)分析Table 2 Network structure analysis for entity nodes in VulKG
初始特征包括結(jié)構(gòu)特征和語(yǔ)義特征。
1)結(jié)構(gòu)特征
初始結(jié)構(gòu)特征反映了弱點(diǎn)安全知識(shí)圖譜中實(shí)體和關(guān)系的網(wǎng)絡(luò)結(jié)構(gòu)特點(diǎn),VulKGC-RN 采用TransE 生成初始結(jié)構(gòu)嵌入向量。在弱點(diǎn)安全知識(shí)圖譜中,實(shí)體矩陣為n×d1,關(guān)系矩陣為m×d1,n為實(shí)體數(shù)量,m為關(guān)系數(shù)量,d1為初始結(jié)構(gòu)嵌入向量大小。基于平移假設(shè)理論[27],每個(gè)三元組的實(shí)體向量和關(guān)系向量之間滿足h+r≈t,即從實(shí)體矩陣和關(guān)系矩陣中分別抽取頭實(shí)體向量和關(guān)系向量,并利用評(píng)分函數(shù)進(jìn)行范式運(yùn)算,將得到尾實(shí)體向量,且該尾實(shí)體向量是實(shí)體矩陣中的1 個(gè)向量。
2)語(yǔ)義特征
開(kāi)源網(wǎng)絡(luò)安全知識(shí)庫(kù)擁有每個(gè)安全實(shí)體豐富的文本描述,為理解不同安全實(shí)體的語(yǔ)義信息,VulKGC-RN 采用SBERT[28]預(yù)訓(xùn)練模型生成安全實(shí)體的初始語(yǔ)義嵌入向量。SBERT 的優(yōu)勢(shì)是在保障文本語(yǔ)義信息的情況下生成嵌入向量,且解決了常見(jiàn)文本語(yǔ)義模型訓(xùn)練時(shí)間開(kāi)銷大的問(wèn)題。每個(gè)實(shí)體的文本描述將作為一段句子序列輸入到預(yù)訓(xùn)練模型。在該過(guò)程中,實(shí)體和關(guān)系的初始語(yǔ)義嵌入維度均為d2。
通過(guò)對(duì)網(wǎng)絡(luò)結(jié)構(gòu)和語(yǔ)義描述2 個(gè)維度的初始特征學(xué)習(xí),VulKGC-RN 已經(jīng)獲得弱點(diǎn)安全知識(shí)圖譜中每個(gè)安全實(shí)體和關(guān)系的初始嵌入向量E,E=Es||Ed,Es表示初始結(jié)構(gòu)嵌入向量,Ed表示初始語(yǔ)義嵌入向量,||表示連接操作,E的大小為d1+d2。
根據(jù)對(duì)弱點(diǎn)安全知識(shí)圖譜網(wǎng)絡(luò)結(jié)構(gòu)的分析可知,一方面安全實(shí)體的網(wǎng)絡(luò)結(jié)構(gòu)不均衡,弱點(diǎn)安全知識(shí)圖譜既存在網(wǎng)絡(luò)結(jié)構(gòu)稀疏的實(shí)體結(jié)點(diǎn),也存在網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜的實(shí)體結(jié)點(diǎn),然而,在安全實(shí)體間一對(duì)多和多對(duì)多的網(wǎng)絡(luò)結(jié)構(gòu)特點(diǎn)無(wú)法通過(guò)初始嵌入向量表示;另一方面,不同安全實(shí)體在不同三元組關(guān)系中扮演的角色和重要程度也無(wú)法描述。因此,VulKGC-RN 采用逆向思維,通過(guò)圖注意力網(wǎng)絡(luò)分別學(xué)習(xí)弱點(diǎn)安全知識(shí)圖譜中各安全實(shí)體在正向角色和逆向角色中的重要性,該重要性通過(guò)注意力值反映,生成正向鄰域特征和逆向鄰域特征的嵌入向量。
為捕獲逆向鄰域信息,現(xiàn)有方法通過(guò)有向關(guān)系來(lái)表示正逆向信息,但該表征局限于一跳鄰域范圍內(nèi)一對(duì)一關(guān)系。理論上對(duì)VulKG 中任意安全實(shí)體和關(guān)系進(jìn)行逆向遍歷將獲得相應(yīng)多跳范圍內(nèi)多關(guān)系的逆向鄰域信息,但是在VulKG 中正向遍歷的效率比逆向遍歷的效率高?;谠搯l(fā),VulKGC-RN 將三元組關(guān)系的頭尾實(shí)體交換以生成逆向圖譜G',G'={E,R'},R'=={t,r,h},表示頭實(shí)體h和尾實(shí)體t的逆關(guān)系,并按正向遍歷思想對(duì)G'進(jìn)行遍歷,以捕獲VulKG 中安全實(shí)體和關(guān)系的逆向鄰域信息。
為學(xué)習(xí)逆向鄰域特征,VulKGC-RN 采用注意力機(jī)制學(xué)習(xí)VulKG 中安全實(shí)體和不同逆向鄰居之間的注意力值,并生成注意力嵌入向量。在圖注意力網(wǎng)絡(luò)中,注意力嵌入向量的生成是基于三元組中頭實(shí)體h和尾實(shí)體t之間的逆關(guān)系r'的注意力值。該注意力值的計(jì)算過(guò)程如式(1)~式(4)所示:
其中:E表示由初始結(jié)構(gòu)嵌入和語(yǔ)義嵌入連接的實(shí)體或關(guān)系的初始嵌入;W1和W2分別表示2 個(gè)不同的線性變換矩陣;LeakyReLU 用于非線性獲得三元組的絕對(duì)注意力值;Softmax 用于計(jì)算三元組的相對(duì)注意力值;表示逆向圖譜G'中實(shí)體t的k跳鄰域范圍內(nèi)的實(shí)體集合;表示逆向圖譜G'中連接實(shí)體t和實(shí)體h'之間的關(guān)系集合。為了充分考慮結(jié)點(diǎn)的網(wǎng)絡(luò)結(jié)構(gòu),VulKGC-RN 采用k=2 來(lái)計(jì)算逆向鄰域的注意力值。
本文將G和G'中由初始嵌入E表示的三元組關(guān)系分別輸入到不同的圖注意力網(wǎng)絡(luò),將生成弱點(diǎn)安全知識(shí)圖譜中安全實(shí)體和關(guān)系的正向鄰域特征向量Ea和逆向鄰域特征向量,Ea和大小一樣,均為d'。
通過(guò)圖注意力網(wǎng)絡(luò)的計(jì)算,VulKGC-RN 已經(jīng)獲得弱點(diǎn)安全知識(shí)圖譜中每個(gè)安全實(shí)體和關(guān)系的正向鄰域特征向量Ea和逆向鄰域特征向量E'a。為充分學(xué)習(xí)安全實(shí)體的正向和逆向鄰域信息,VulKGC-RN采用特征融合的方法將安全實(shí)體和關(guān)系的正向鄰域特征向量和逆向鄰域特征向量進(jìn)行融合。該融合方法為平均融合,其融合過(guò)程如式(5)所示:
對(duì)于上述生成的融合特征,基于編碼器-解碼器思想,VulKGC-RN 采用ConvKB[29]作為解碼器。ConvKB 的卷積核有利于學(xué)習(xí)三元組的全局特征信息,同時(shí),使用ReLU 激活函數(shù)激活卷積層的輸出值。三元組的解碼過(guò)程通過(guò)評(píng)分函數(shù)f(h,r,t)表示,計(jì)算過(guò)程如式(6)所示:
其中:K表示ConvKB 的卷積核數(shù);Ωi表示第i個(gè)卷積核的過(guò)濾器;*指卷積操作;||指連接操作;W3表示用于計(jì)算三元組評(píng)分函數(shù)的線性轉(zhuǎn)換矩陣。
該解碼器的輸入是三元組中頭實(shí)體、關(guān)系和尾實(shí)體的融合特征嵌入,輸出為三元組的評(píng)分函數(shù)值。理論上,通過(guò)解碼器解碼,真實(shí)三元組的評(píng)分函數(shù)值較高,偽三元組的評(píng)分函數(shù)值較低。在進(jìn)行弱點(diǎn)信息補(bǔ)全時(shí),解碼器將生成所有可能補(bǔ)全的三元組評(píng)分函數(shù)值,并有效區(qū)分真實(shí)三元組和偽三元組。
為訓(xùn)練VulKGC-RN,基于關(guān)系集R中的真實(shí)三元組,VulKGC-RN 分別替換每個(gè)三元組的頭實(shí)體和尾實(shí)體來(lái)合成偽三元組,該替換過(guò)程如式(7)和式(8)所示。同時(shí),在訓(xùn)練過(guò)程中,VulKGC-RN 采用Soft-margin 作為損失函數(shù),該損失函數(shù)的計(jì)算過(guò)程如式(9)所示:
為補(bǔ)全弱點(diǎn)信息,在測(cè)試階段,將不完整三元組的初始特征向量輸入到已訓(xùn)練的VulKGC-RN 模型,VulKGC-RN 將輸出補(bǔ)全的弱點(diǎn)信息列表。例如VulKG 中存在安全實(shí)體h,但缺失與h相關(guān)的r信息。為補(bǔ)全(h,r,?),將E(h)和E(r)輸入到VulKGC-RN 中,VulKGC-RN 將生成融合逆向特征的新特征和;同時(shí)基于VulKG 中的安全實(shí)體,VulKGC-RN 構(gòu)造所有可能的候選三元組[(h,r,t1),(h,r,t2),…,(h,r,tn)],通過(guò)解碼器對(duì)候選三元組解碼評(píng)分,輸出補(bǔ)全的弱點(diǎn)信息列表,列表中的弱點(diǎn)信息按照評(píng)分函數(shù)值進(jìn)行排序。
本文所提方法屬于基于知識(shí)圖譜的方法,因此對(duì)VulKG 中缺失弱點(diǎn)信息的補(bǔ)全就是對(duì)開(kāi)源網(wǎng)絡(luò)安全知識(shí)庫(kù)中缺失弱點(diǎn)信息的補(bǔ)全。為評(píng)估VulKGC-RN補(bǔ)全弱點(diǎn)信息的有效性,本文針對(duì)弱點(diǎn)安全知識(shí)圖譜的補(bǔ)全效果進(jìn)行系列實(shí)驗(yàn)。
因歷史版本中CVE 數(shù)據(jù)庫(kù)占比較大,為了避免數(shù)據(jù)嚴(yán)重不平衡對(duì)實(shí)驗(yàn)結(jié)果產(chǎn)生的影響,本文采用2022 年1 月1 日—2022 年5 月29 日的CVE 數(shù)據(jù)庫(kù),以及截至2022年5月29日的CWE、CAPEC 和ATT&CK網(wǎng)絡(luò)安全數(shù)據(jù)庫(kù)。該數(shù)據(jù)集包括11 817 條三元信息和7 199個(gè)安全實(shí)體。其中,三元組關(guān)系信息如表3所示,包括15 種關(guān)聯(lián)關(guān)系。安全實(shí)體信息中CVE 為5 121 個(gè),CWE 為926 個(gè),CAPEC 為544 個(gè),ATT&CK-T為565個(gè),ATT&CK-M 為43個(gè),總共為7 199個(gè)。
表3 VulKG 中關(guān)系的詳細(xì)信息Table 3 Details information of relationships in VulKG 單位:個(gè)
在VulKGC-RN 模型訓(xùn)練及驗(yàn)證過(guò)程中,本文隨機(jī)選取數(shù)據(jù)集中85%的數(shù)據(jù)作為訓(xùn)練集,另外5%作為驗(yàn)證集,剩下10%作為測(cè)試集,如表4 所示。
表4 訓(xùn)練集、驗(yàn)證集與測(cè)試集劃分情況Table 4 Distribution of training set,validation set and test set 單位:個(gè)
VulKGC-RN 使用SentenceTransformers 2.2.0、Python 3.8.5 實(shí)現(xiàn)。其他參數(shù)設(shè)置:安全實(shí)體及關(guān)系的初始結(jié)構(gòu)嵌入向量為100 維,語(yǔ)義描述向量為384 維,學(xué)習(xí)率為0.001,解碼器的Epoch 為200,Dropout 為0.3。
為評(píng)價(jià)弱點(diǎn)安全知識(shí)圖譜的信息補(bǔ)全效果,本文采用平均排名(MR)、平均倒數(shù)排名(MRR)和Hits@k來(lái)評(píng)價(jià)VulKGC-RN 性能。MR 的值越小說(shuō)明補(bǔ)全效果越好。Hits@k是指在信息補(bǔ)全中排名小于等于k的真實(shí)三元組的平均占比,Hits@k值越大越好。MR、MRR 和Hits@k的計(jì)算式如式(10)~式(12)所示:
其中:N表示弱點(diǎn)安全知識(shí)圖譜中的真實(shí)三元組數(shù)量;rrank(?)指排序函數(shù),表示在補(bǔ)全的所有三元組中真實(shí)三元組的排名;ri表示第i個(gè)真實(shí)三元組關(guān)系。對(duì)于indicator(?)函數(shù),若rrank(ri)≤k為真則函數(shù)值為1,否則值為0。此外,為避免已存在的真實(shí)三元組導(dǎo)致實(shí)驗(yàn)結(jié)果偏高,本文所有實(shí)驗(yàn)均采用Filtered 模式。
3.3.1 對(duì)比實(shí)驗(yàn)結(jié)果
為比較本文提出的方法與傳統(tǒng)基于知識(shí)圖譜的方法在弱點(diǎn)信息補(bǔ)全方面的效果,本文與3 種不同側(cè)重點(diǎn)的基線方法進(jìn)行對(duì)比。為保證實(shí)驗(yàn)的公平性,本文實(shí)驗(yàn)和對(duì)比實(shí)驗(yàn)均在同一數(shù)據(jù)集上進(jìn)行,即融合了4 大知識(shí)庫(kù)的VulKG。對(duì)比方法如下:
TransE[30]方法側(cè)重于通用實(shí)體間一對(duì)一的關(guān)聯(lián)關(guān)系,根據(jù)方法的要求,輸入100 維的獨(dú)熱向量。
TransH[31]方法側(cè)重于通用實(shí)體間一對(duì)多的關(guān)系,根據(jù)方法的要求,輸入100 維的獨(dú)熱向量。
Text-Enhanced GAT[26]方法側(cè)重于安全實(shí)體兩跳正向鄰域之間的注意力關(guān)系,輸入為由TransE 訓(xùn)練生成的100 維結(jié)構(gòu)向量和由CNN 訓(xùn)練生成的100 維語(yǔ)義向量共同拼接組成的200 維合成向量。
對(duì)比實(shí)驗(yàn)?zāi)P偷挠?xùn)練過(guò)程將根據(jù)原文獻(xiàn)提供的參數(shù)進(jìn)行微調(diào)直至收斂。所有對(duì)比方法都是完整的弱點(diǎn)信息補(bǔ)全方法,輸出均為補(bǔ)全的弱點(diǎn)信息排序列表。表5 所示為VulKGC-RN 在各指標(biāo)上同基線方法的對(duì)比結(jié)果,加粗表示最優(yōu)結(jié)果。
表5 VulKGC-RN 與基線方法的實(shí)驗(yàn)結(jié)果對(duì)比Table 5 Comparison of experimental results between VulKGC-RN and baseline methods
從表5 可以看出,根據(jù)補(bǔ)全頭實(shí)體,VulKGC-RN的MR 為274,MRR 為0.652 6,優(yōu)于基線方法。根據(jù)補(bǔ)全尾實(shí)體分析,VulKGC-RN 的MR 為84,MRR 為0.690 2,遠(yuǎn)遠(yuǎn)優(yōu)于基線方法。從平均結(jié)果來(lái)看,VulKGC-RN 的MR 為179,MRR 達(dá)到0.671 4。因此,VulKGC-RN 的性能優(yōu)于其他基線方法。
3.3.2 不同初始特征下鄰域特征的消融實(shí)驗(yàn)結(jié)果
在本文中鄰域特征的生成是基于初始結(jié)構(gòu)特征和初始語(yǔ)義特征。為探究不同初始特征對(duì)生成鄰域特征的影響,本文對(duì)VulKGC-RN 中不同初始特征生成方式進(jìn)行消融實(shí)驗(yàn)。在不進(jìn)行逆向特征融合的情況下,本文模型與經(jīng)典特征生成模型進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表6 所示。其中,TransE 是1 個(gè)比TransH 更簡(jiǎn)單的網(wǎng)絡(luò)結(jié)構(gòu)嵌入模型,CNN 和SBERT 是語(yǔ)義學(xué)習(xí)模型。
表6 VulKGC-RN 在不同初始特征下生成鄰域特征的消融實(shí)驗(yàn)結(jié)果Table 6 Ablation experimental results of neighborhood features generated by VulKGC-RN under different initial features
從表6 可以看出,在利用圖注意力網(wǎng)絡(luò)生成鄰域特征的過(guò)程中,簡(jiǎn)單的初始特征有利于鄰域特征的生成,語(yǔ)義描述特征的豐富度對(duì)鄰域特征生成影響不大。因此,圖注意力網(wǎng)絡(luò)模型在生成逆向鄰域特征時(shí)更關(guān)注網(wǎng)絡(luò)結(jié)構(gòu)特征。
3.3.3 融合逆向鄰域特征的消融實(shí)驗(yàn)結(jié)果
為說(shuō)明融合逆向鄰域特征對(duì)弱點(diǎn)安全知識(shí)圖譜補(bǔ)全的效果,本文對(duì)VulKGC-RN 進(jìn)行消融實(shí)驗(yàn),分別考慮只采用正向鄰域、只采用逆向鄰域、采用融合正向和逆向鄰域的3 種情況。該消融實(shí)驗(yàn)結(jié)果如表7 所示。
表7 VulKGC-RN 融合逆向特征的消融實(shí)驗(yàn)結(jié)果Table 7 Ablation experimental results of VulKGC-RN fusion reverse feature
從表7 可以看出,VulKGC-RN 只考慮正向鄰域特征的評(píng)價(jià)指標(biāo)比只考慮逆向鄰域特征好,同時(shí),融合正向鄰域特征和逆向鄰域特征的評(píng)價(jià)指標(biāo)比只考慮正向鄰域特征或只考慮逆向鄰域特征的好。這表明在進(jìn)行弱點(diǎn)信息補(bǔ)全時(shí),弱點(diǎn)安全知識(shí)圖譜中安全實(shí)體在不同三元組關(guān)系中的角色及重要性不同,正向角色比逆向角色的特征信息更多,但是在進(jìn)行信息補(bǔ)全時(shí),仍需考慮多種角色特征。
3.3.4 不同特征融合方式對(duì)弱點(diǎn)信息補(bǔ)全的影響
為探究不同特征融合方式對(duì)實(shí)驗(yàn)結(jié)果的影響,本文對(duì)VulKGC-RN 中的特征融合方式進(jìn)行消融實(shí)驗(yàn),在其他參數(shù)不變的情況下,分別采用平均融合和連接融合方法對(duì)VulKGC-RN 的信息補(bǔ)全效果進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表8 所示。
表8 VulKGC-RN 采用不同特征融合方式的消融實(shí)驗(yàn)結(jié)果Table 8 Results of ablation experiments using different feature fusion methods in VulKGC-RN
連接融合方式指通過(guò)拼接正向鄰域特征向量和逆向鄰域特征向量進(jìn)行特征融合。平均融合方式指通過(guò)計(jì)算正向鄰域特征向量和逆向鄰域特征向量的平均特征向量進(jìn)行特征融合。從表8 可以看出,在進(jìn)行弱點(diǎn)信息補(bǔ)全時(shí),平均融合方式比連接融合方式更有效。
現(xiàn)有弱點(diǎn)信息補(bǔ)全方法難以覆蓋緩解措施等弱點(diǎn)信息且忽略了知識(shí)圖譜的逆向特征,為此,本文提出一種基于安全知識(shí)圖譜和逆向特征的弱點(diǎn)信息補(bǔ)全方法VulKGC-RN。該方法構(gòu)建了包含多種弱點(diǎn)信息的弱點(diǎn)安全知識(shí)圖譜,并利用圖注意力網(wǎng)絡(luò)學(xué)習(xí)弱點(diǎn)安全知識(shí)圖譜中安全實(shí)體的正向和逆向鄰域角色特征。在特征融合過(guò)程中,利用解碼器補(bǔ)全弱點(diǎn)安全知識(shí)圖譜中缺失的信息。實(shí)驗(yàn)結(jié)果表明,VulKGC-RN 的平均排名達(dá)到179,平均倒數(shù)排名達(dá)到0.671 4。相比基線方法,VulKGC-RN 通過(guò)融合逆向鄰域信息有效提升補(bǔ)全效果且能夠全面覆蓋弱點(diǎn)信息,對(duì)于安全人員通過(guò)開(kāi)源網(wǎng)絡(luò)安全知識(shí)庫(kù)進(jìn)行弱點(diǎn)加固具有重要的促進(jìn)作用。此外,對(duì)于弱點(diǎn)安全加固,本文研究了開(kāi)源網(wǎng)絡(luò)安全知識(shí)庫(kù)中弱點(diǎn)信息的補(bǔ)全問(wèn)題,下一步可結(jié)合具體場(chǎng)景實(shí)現(xiàn)弱點(diǎn)信息的針對(duì)性推薦。