行久紅 牛保民
摘要:針對(duì)現(xiàn)階段互聯(lián)網(wǎng)軟件中存在的漏洞問(wèn)題,文章提出了基于文本挖掘的軟件漏洞信息知識(shí)圖譜構(gòu)建方法。先確定軟件漏洞信息知識(shí)圖譜構(gòu)建的基本架構(gòu),應(yīng)用文本挖掘技術(shù),完成軟件漏洞信息的采集、預(yù)處理與特征提取,然后設(shè)計(jì)本體模型,完成軟件漏洞信息的抽取與融合,最后設(shè)計(jì)存儲(chǔ)機(jī)制,構(gòu)建軟件漏洞信息知識(shí)圖譜。實(shí)驗(yàn)結(jié)果表明,文章所構(gòu)建知識(shí)圖譜的軟件漏洞信息完整度均值為93.6%,構(gòu)建所需時(shí)間均值為1.52 s,均優(yōu)于對(duì)比方法,具有較好的應(yīng)用價(jià)值。
關(guān)鍵詞:文本挖掘技術(shù);互聯(lián)網(wǎng)技術(shù);軟件漏洞信息;構(gòu)建知識(shí)圖譜
中圖分類(lèi)號(hào):TP751? 文獻(xiàn)標(biāo)志碼:A
0 引言
隨著科技的發(fā)展,互聯(lián)網(wǎng)技術(shù)、通信技術(shù)等廣泛應(yīng)用,給人民生活、生產(chǎn)帶來(lái)了便利[1],但也帶來(lái)了一定危機(jī)。目前,網(wǎng)絡(luò)安全問(wèn)題已經(jīng)成為人民最為重視的問(wèn)題,信息安全漏洞嚴(yán)重威脅個(gè)人隱私和財(cái)產(chǎn)安全,如不及時(shí)處理將會(huì)給人民造成經(jīng)濟(jì)財(cái)產(chǎn)損失[2]。因此,如何高效地排查軟件漏洞成為互聯(lián)網(wǎng)技術(shù)領(lǐng)域重點(diǎn)研究的課題之一[3]。知識(shí)圖譜可以通過(guò)抽取知識(shí)融合與分析計(jì)算,得到整體描述并挖掘隱藏內(nèi)涵[4],可將其應(yīng)用其中,提升軟件漏洞的排查效果?;诖耍疚难芯苛嘶谖谋就诰蚣夹g(shù)的軟件漏洞信息知識(shí)圖譜構(gòu)建方法,旨在提高網(wǎng)絡(luò)安全管理工作的可靠性,維護(hù)網(wǎng)絡(luò)信息安全。
1 確定軟件漏洞信息知識(shí)圖譜構(gòu)建的基本架構(gòu)
知識(shí)圖譜本質(zhì)上是一種用來(lái)描述語(yǔ)義的網(wǎng)絡(luò)結(jié)構(gòu),旨在客觀地描述與反映實(shí)體與實(shí)體之間的關(guān)系[5]。為實(shí)現(xiàn)軟件工程中漏洞信息的實(shí)時(shí)監(jiān)測(cè)與管理,必須擁有完整的軟件漏洞信息之間的關(guān)聯(lián)性文本數(shù)據(jù),結(jié)合相關(guān)的人工智能技術(shù),達(dá)到最終目的[6]?;诖?,綜合考慮軟件漏洞信息的模糊性、海量化等特征,本文應(yīng)用文本數(shù)據(jù)挖掘技術(shù),確定軟件漏洞信息知識(shí)圖譜構(gòu)建流程如圖1所示。
圖1 軟件漏洞信息知識(shí)圖譜構(gòu)建流程
根據(jù)上述流程,分別利用相關(guān)技術(shù),通過(guò)不同階段的數(shù)據(jù)分析融合處理,將軟件漏洞相關(guān)的所有有效信息融合到數(shù)據(jù)庫(kù)中,應(yīng)用構(gòu)圖軟件,完成軟件漏洞信息知識(shí)圖譜的構(gòu)建。
2 軟件漏洞的文本挖掘分類(lèi)
2.1 軟件漏洞的采集及預(yù)處理
為獲取大量、復(fù)雜的軟件漏洞信息,本文采用文本挖掘技術(shù)采集信息,然后應(yīng)用信息檢索、人工智能學(xué)習(xí)、統(tǒng)計(jì)和數(shù)據(jù)挖掘等技術(shù)對(duì)軟件漏洞信息進(jìn)行采集、分類(lèi)、聚類(lèi)和特征提取,使其形成軟件漏洞信息數(shù)據(jù)庫(kù)[7]。再采用Python網(wǎng)絡(luò)爬蟲(chóng)技術(shù),采集對(duì)應(yīng)的漏洞信息,設(shè)真實(shí)漏洞數(shù)據(jù)為w,采集過(guò)程如下:
w=P-C
cmin 式(1)中,C為爬蟲(chóng)檢索出的非有效信息,cmin為漏洞最小信息數(shù)據(jù)載量,cmax為漏洞最大信息數(shù)據(jù)載量,P為全部采集信息數(shù)據(jù)。得到的真實(shí)漏洞數(shù)據(jù)在于中國(guó)國(guó)家漏洞數(shù)據(jù)庫(kù)中相關(guān)的安全漏洞信息核實(shí),并存儲(chǔ)備用。軟件漏洞信息知識(shí)圖譜包括軟件信息、漏洞信息、PoC信息以及補(bǔ)丁信息等,需要進(jìn)行預(yù)處理,如分詞和清洗等提高數(shù)據(jù)信息的有效性,以此來(lái)提高構(gòu)建知識(shí)圖譜的準(zhǔn)確率和效率。 2.2 軟件漏洞的特征提取 為統(tǒng)一軟件漏洞向量映射的維度,使不同長(zhǎng)度大小、不同文本數(shù)量、不同計(jì)量單位的軟件漏洞信息具有相同維度的向量表示,提高軟件漏洞信息分類(lèi)的準(zhǔn)確性,本文應(yīng)用文本挖掘技術(shù)中的信息增益算法,對(duì)軟件漏洞信息的特征信號(hào)進(jìn)行分類(lèi)與提取[8]。根據(jù)自然語(yǔ)義的漏洞信息轉(zhuǎn)化為數(shù)學(xué)向量形式的公式為 U=∑wi=1(ψi/σ)(2) 式(2)中,U表示轉(zhuǎn)化后的自然語(yǔ)義下的漏洞信息,i表示漏洞信息的特征提取條件,ψ表示特征提取條件下的總數(shù)據(jù),σ表示特征提取條件外的非定于數(shù)據(jù)。以此為基礎(chǔ),將其轉(zhuǎn)化后,根據(jù)每段漏洞信息數(shù)學(xué)向量的出現(xiàn)次數(shù)確定該漏洞在整體信息集合中的權(quán)重值,提取出軟件漏洞信息的特征信號(hào),便于后續(xù)知識(shí)圖譜的構(gòu)建。 3 構(gòu)建軟件漏洞信息知識(shí)圖譜 3.1 設(shè)計(jì)軟件漏洞的本體模型 為表述與反映不同軟件漏洞信息之間的關(guān)聯(lián)性,結(jié)合文本挖掘技術(shù)設(shè)計(jì)軟件漏洞的本體模型ω,模型的目標(biāo)函數(shù)表示為: ω={A,E,G,F(xiàn),H,T,W,Y}(3) 式(3)中,A表示軟件漏洞名稱(chēng);E表示軟件屬性;G表示情報(bào)信息;F表示評(píng)價(jià)標(biāo)準(zhǔn);H表示PoC;T表示補(bǔ)?。籛表示數(shù)據(jù)當(dāng)量值;Y表示模型承載量。將上述本體模型中的信息抽取出來(lái),并建立關(guān)聯(lián)性,以此來(lái)實(shí)現(xiàn)軟件信息知識(shí)圖譜的構(gòu)建。 3.2 抽取軟件漏洞信息 為提高軟件漏洞信息知識(shí)圖譜構(gòu)建的可靠程度和效率[9],需要進(jìn)行實(shí)體識(shí)別和抽取,過(guò)程如下: F1(α)=∑ni∈n,j∈n,i≠j(αi-αj)2(4) 式(4)中,α表示抽取中限制參數(shù),F(xiàn)1表示識(shí)別出的抽取數(shù)據(jù),i,j表示漏洞信息知識(shí)圖譜對(duì)應(yīng)的漏洞信息起始數(shù)據(jù)和終止數(shù)據(jù),n表示實(shí)際抽取數(shù)量。實(shí)體抽取技術(shù)使用基于規(guī)則和詞典的方法,可識(shí)別并抽取出軟件漏洞信息中的七大類(lèi)實(shí)體數(shù)據(jù);關(guān)系抽取技術(shù)可通過(guò)使用統(tǒng)計(jì)、規(guī)則和分類(lèi)器等方法從軟件漏洞信息中提取實(shí)體之間的內(nèi)在關(guān)系。針對(duì)軟件漏洞的本體模型實(shí)體屬性的抽取,需要應(yīng)用卷積神經(jīng)網(wǎng)絡(luò)算法進(jìn)行分類(lèi)和訓(xùn)練[10]。 3.3 軟件漏洞信息的數(shù)據(jù)融合 在軟件漏洞信息的處理中,可能存在錯(cuò)誤、冗余信息和邏輯模糊等問(wèn)題,這會(huì)影響軟件漏洞信息知識(shí)圖譜構(gòu)建的準(zhǔn)確性和可靠性。為解決以上問(wèn)題,本文采用實(shí)體消歧技術(shù),將具有歧義命名的實(shí)體映射到具體的概念,然后進(jìn)行數(shù)據(jù)融合,過(guò)程如下: I=θ{(β+ε+η)λ}(5) 式(5)中,I表示融合后軟件漏洞數(shù)據(jù),θ表示融合指標(biāo),β表示融合數(shù)據(jù)模式,ε表示融合工具,λ表示融合參量的權(quán)值,η表示現(xiàn)有的漏洞信息數(shù)據(jù)。這種融合方式可有效降低信息中的邏輯模糊和層次不匹配現(xiàn)象,并實(shí)現(xiàn)數(shù)據(jù)融合。通過(guò)概率統(tǒng)計(jì)和圖像排序方法,實(shí)現(xiàn)軟件漏洞信息實(shí)體鏈接的消歧與對(duì)齊,使漏洞信息更具體化,同時(shí)篩除冗余信息以提高準(zhǔn)確度。該步驟能夠有效提高軟件漏洞信息知識(shí)圖譜構(gòu)建的準(zhǔn)確性和可靠性。 3.4 數(shù)據(jù)的存儲(chǔ)與知識(shí)圖譜的構(gòu)建 為使海量化的軟件漏洞信息全面地、動(dòng)態(tài)化地展示在同一圖譜中,本文應(yīng)用Neo4j圖數(shù)據(jù)庫(kù)存儲(chǔ)軟件漏洞信息,結(jié)合可視化技術(shù),完成基于文本挖掘技術(shù)的軟件漏洞信息知識(shí)圖譜的構(gòu)建,過(guò)程如下: B=(1-y)×L×R(6) 式(6)中,B表示信息知識(shí)圖譜表示當(dāng)量(CVE-2022-N),y表示數(shù)據(jù)挖掘方向,表示重疊度,L表示知識(shí)圖譜像元,R表示知識(shí)圖譜內(nèi)存量。其中信息知識(shí)圖譜表示當(dāng)量CVE-2022-N表示中國(guó)國(guó)家漏洞數(shù)據(jù)庫(kù)中的軟件漏洞信息及其編號(hào)。根據(jù)上述軟件漏洞信息的本體模型,并通過(guò)相關(guān)的處理操作,構(gòu)成對(duì)應(yīng)的軟件漏洞知識(shí)圖譜,充分地為后續(xù)相關(guān)的軟件漏洞安全管理工作奠定良好的數(shù)據(jù)基礎(chǔ)。 4 測(cè)試與分析 4.1 試驗(yàn)準(zhǔn)備 為檢測(cè)本文設(shè)計(jì)的基于文本挖掘的軟件漏洞信息知識(shí)圖譜構(gòu)建方法的可行性與應(yīng)用效果,結(jié)合其它方法,本文設(shè)計(jì)了仿真模擬對(duì)比試驗(yàn)。試驗(yàn)在JAVA語(yǔ)言編程環(huán)境下搭建,搭建參數(shù)如表1所示。 將中國(guó)國(guó)家漏洞數(shù)據(jù)庫(kù)中的軟件漏洞信息作為測(cè)試樣本數(shù)據(jù),存儲(chǔ)在數(shù)字?jǐn)?shù)據(jù)庫(kù)與圖像數(shù)據(jù)庫(kù)中。 4.2 漏洞信息知識(shí)圖譜的完整度檢測(cè) 記錄不同方法構(gòu)建知識(shí)圖譜中收錄漏洞數(shù)量的大小,與實(shí)際有效漏洞數(shù)量進(jìn)行對(duì)比分析,計(jì)算完整度,結(jié)果如圖2所示。 由圖2可知,對(duì)于隨機(jī)選取10組大小、漏洞種類(lèi)均不同的數(shù)據(jù)組,試驗(yàn)組方法融合并構(gòu)建的知識(shí)圖譜軟件漏洞信息的完整度高于對(duì)照組1、對(duì)照組2。試驗(yàn)組方法構(gòu)建的知識(shí)圖譜信息完整度均值為93.6%,分別比對(duì)照組1、對(duì)照組2高28.4%、13.8%,有效提高了對(duì)軟件漏洞有效信息采集與存儲(chǔ)的覆蓋范圍。 4.4 漏洞信息處理效率檢測(cè) 記錄不同方法從采集漏洞信息到完成知識(shí)圖譜構(gòu)建所用時(shí)間,對(duì)比結(jié)果如圖3所示。 由圖3可知,通過(guò)對(duì)10組隨機(jī)選取的不同大小和漏洞種類(lèi)的數(shù)據(jù)組進(jìn)行試驗(yàn)組方法的數(shù)據(jù)處理,發(fā)現(xiàn)試驗(yàn)組知識(shí)圖譜構(gòu)建時(shí)間均低于對(duì)照組1和對(duì)照組2。試驗(yàn)組方法平均構(gòu)建時(shí)間為1.52 s,比對(duì)照組1和2分別快6.02 s和4.11 s。這說(shuō)明本文設(shè)計(jì)的軟件漏洞信息知識(shí)圖譜構(gòu)建方法具有高效和實(shí)時(shí)的特點(diǎn),能夠準(zhǔn)確而快速地完成漏洞信息的采集和預(yù)處理,為軟件工程項(xiàng)目的安全管理提供可靠的數(shù)據(jù)基礎(chǔ)和依據(jù)。 5 結(jié)語(yǔ) 隨著科學(xué)技術(shù)與互聯(lián)網(wǎng)技術(shù)的大范圍應(yīng)用,相關(guān)的軟件漏洞也層出不窮,對(duì)用戶(hù)的信息安全與個(gè)人財(cái)產(chǎn)造成了較為嚴(yán)重影響。在此背景下,本文通過(guò)應(yīng)用文本挖掘技術(shù),充分結(jié)合現(xiàn)代化技術(shù)手段,構(gòu)建完整、精準(zhǔn)的軟件漏洞信息知識(shí)圖譜,為軟件工程安全管理與防御系統(tǒng)的智能化運(yùn)行提供數(shù)據(jù)基礎(chǔ)。本文所提方法構(gòu)建時(shí)間較短、信息完整度更強(qiáng),可有效保證軟件工程項(xiàng)目運(yùn)營(yíng)過(guò)程中的安全性與可靠性,為我國(guó)網(wǎng)絡(luò)科技市場(chǎng)結(jié)構(gòu)的長(zhǎng)久穩(wěn)定發(fā)展,奠定良好基礎(chǔ)。 參考文獻(xiàn) [1]郭軍軍,王樂(lè),王正源,等.軟件安全漏洞知識(shí)圖譜構(gòu)建方法[J].計(jì)算機(jī)工程與設(shè)計(jì),2022(8):2137-2145. [2]張瑞,王曉菲.基于混合深度學(xué)習(xí)模型的軟件漏洞檢測(cè)方法[J].電腦知識(shí)與技術(shù),2021(18):72-73. [3]彭佳玲,周茂林,楊青.公眾對(duì)上門(mén)護(hù)理服務(wù)的態(tài)度和關(guān)注點(diǎn):基于網(wǎng)絡(luò)爬蟲(chóng)的文本挖掘[J].護(hù)理學(xué)雜志,2023(5):110-113,116. [4]周潔,夏換.基于文本挖掘的微博用戶(hù)健康信息關(guān)注熱點(diǎn)研究[J].新媒體研究,2023(2):102-106. [5]孫寶生,敖長(zhǎng)林,王菁霞,等.基于網(wǎng)絡(luò)文本挖掘的生態(tài)旅游滿(mǎn)意度評(píng)價(jià)研究[J].運(yùn)籌與管理,2022(12):165-172. [6]梁俊毅,陳靜.基于雙向LSTM的軟件漏洞自動(dòng)識(shí)別方法研究[J].信息與電腦(理論版),2021(8):174-176. [7]蔡敏.基于混合深度學(xué)習(xí)模型的網(wǎng)絡(luò)服務(wù)軟件漏洞挖掘方法[J].寧夏師范學(xué)院學(xué)報(bào),2020(7):73-79. [8]王曉輝,宋學(xué)坤.基于知識(shí)圖譜的網(wǎng)絡(luò)安全漏洞類(lèi)型關(guān)聯(lián)分析系統(tǒng)設(shè)計(jì)[J].電子設(shè)計(jì)工程,2021(17):85-89. [9]劉存,李晉.安卓平臺(tái)軟件漏洞挖掘與分析技術(shù)淺析[J].保密科學(xué)技術(shù),2020(2):33-38. [10]陶耀東,賈新桐,吳云坤.一種基于知識(shí)圖譜的工業(yè)互聯(lián)網(wǎng)安全漏洞研究方法[J].信息技術(shù)與網(wǎng)絡(luò)安全,2020(1):6-13,18. (編輯 李春燕) Construction method of knowledge graph of software vulnerability information based on text mining Xing? Jiuhong, Niu? Baomin (School of Big Data and Artificial Intelligence, Zhengzhou University of Science and Technology, Zhengzhou 450064, China) Abstract:? A method for constructing a knowledge graph of software vulnerability information based on text mining is proposed to address the vulnerability issues in current internet software. Firstly, the basic architecture for constructing a knowledge graph of software vulnerability information is determined, and text mining technology is applied to complete the collection, preprocessing, and feature extraction of software vulnerability information. Then, an ontology model is designed to complete the extraction and fusion of software vulnerability information. Finally, a storage mechanism is designed to construct a knowledge graph of software vulnerability information. The experimental results show that the average integrity of software vulnerability information in the constructed knowledge graph is 93.6%, and the average construction time is 1.52 seconds, both of which are superior to the comparison method and have good application value. Key words: text mining technology; Internet technology; software vulnerability information; construction of knowledge graph