本發(fā)明涉及網(wǎng)絡(luò)安全,具體為一種基于知識(shí)圖譜和大語(yǔ)言模型的漏洞修復(fù)方法及系統(tǒng)。
背景技術(shù):
1、在信息技術(shù)不斷進(jìn)步的背景下,網(wǎng)絡(luò)安全已成為企業(yè)及國(guó)家安全的重要組成部分,漏洞修復(fù)作為網(wǎng)絡(luò)安全的關(guān)鍵環(huán)節(jié),技術(shù)的發(fā)展經(jīng)歷了從傳統(tǒng)的手工修復(fù)到半自動(dòng)化工具的演變,近年來(lái),知識(shí)圖譜作為一種結(jié)構(gòu)化的語(yǔ)義網(wǎng)絡(luò),以及大語(yǔ)言模型在自然語(yǔ)言處理領(lǐng)域的突破,為漏洞修復(fù)技術(shù)的發(fā)展提供了新的動(dòng)力,知識(shí)圖譜的構(gòu)建和應(yīng)用,使得漏洞數(shù)據(jù)的語(yǔ)義關(guān)聯(lián)得以揭示,而大語(yǔ)言模型的強(qiáng)大語(yǔ)言生成能力為自動(dòng)化生成修復(fù)代碼提供了可能,這一領(lǐng)域的研究正逐步深入。
2、然而,盡管現(xiàn)有技術(shù)在漏洞修復(fù)方面取得了一定的進(jìn)展,但仍存在顯著的不足,在漏洞數(shù)據(jù)預(yù)處理階段,現(xiàn)有技術(shù)往往未能充分提取和利用漏洞的語(yǔ)義信息,導(dǎo)致后續(xù)修復(fù)過(guò)程中的信息支持不足,影響了修復(fù)的準(zhǔn)確性和效率,漏洞修復(fù)知識(shí)圖譜的構(gòu)建多依賴于專家經(jīng)驗(yàn),缺乏自動(dòng)化和智能化的匹配機(jī)制,導(dǎo)致漏洞代碼與修復(fù)代碼之間的匹配度不高,修復(fù)方案的效果不佳,最后,盡管大語(yǔ)言模型具有生成代碼的潛力,但現(xiàn)有技術(shù)尚未有效整合這一能力以實(shí)現(xiàn)漏洞修復(fù)的自動(dòng)化,導(dǎo)致在實(shí)際應(yīng)用中修復(fù)過(guò)程仍然依賴大量的人工干預(yù),無(wú)法滿足快速響應(yīng)的需求,這些問(wèn)題共同制約了漏洞修復(fù)技術(shù)的發(fā)展,亟需新的技術(shù)方案來(lái)解決。
技術(shù)實(shí)現(xiàn)思路
1、鑒于上述存在的問(wèn)題,提出了本發(fā)明。
2、因此,本發(fā)明解決的技術(shù)問(wèn)題是:現(xiàn)有的漏洞修復(fù)技術(shù)存在漏洞數(shù)據(jù)預(yù)處理語(yǔ)義信息提取不足,知識(shí)圖譜構(gòu)建缺乏自動(dòng)化和智能化匹配機(jī)制,大語(yǔ)言模型在自動(dòng)化生成修復(fù)代碼方面的應(yīng)用不足,以及如何實(shí)現(xiàn)漏洞修復(fù)過(guò)程的自動(dòng)化、智能化和高效率的問(wèn)題。
3、為解決上述技術(shù)問(wèn)題,本發(fā)明提供如下技術(shù)方案:一種基于知識(shí)圖譜和大語(yǔ)言模型的漏洞修復(fù)方法,包括對(duì)漏洞數(shù)據(jù)進(jìn)行預(yù)處理,提供漏洞修復(fù)過(guò)程中的語(yǔ)義信息支持;構(gòu)建漏洞修復(fù)知識(shí)圖譜,進(jìn)行漏洞代碼與修復(fù)代碼的匹配,提供匹配結(jié)果;基于大語(yǔ)言模型生成漏洞修復(fù)補(bǔ)丁代碼,對(duì)漏洞進(jìn)行自動(dòng)化修復(fù)。
4、作為本發(fā)明所述的基于知識(shí)圖譜和大語(yǔ)言模型的漏洞修復(fù)方法的一種優(yōu)選方案,其中:所述對(duì)漏洞數(shù)據(jù)進(jìn)行預(yù)處理包括獲取漏洞知識(shí)并提取漏洞實(shí)體,通過(guò)采用自然語(yǔ)言處理工具從漏洞報(bào)告和修復(fù)報(bào)告中提取所需要的信息,在漏洞報(bào)告中提取出漏洞id、組件、產(chǎn)品、摘要信息、描述信息,根據(jù)漏洞id從github上尋找對(duì)應(yīng)的報(bào)告,并從報(bào)告中提取出漏洞代碼和正確代碼,stackoverflow為開(kāi)源社區(qū)交流平臺(tái),記錄漏洞內(nèi)容,數(shù)據(jù)存儲(chǔ)格式為.xml,通過(guò)解析文件提取提交id、標(biāo)簽信息。
5、作為本發(fā)明所述的基于知識(shí)圖譜和大語(yǔ)言模型的漏洞修復(fù)方法的一種優(yōu)選方案,其中:所述對(duì)漏洞數(shù)據(jù)進(jìn)行預(yù)處理還包括進(jìn)行漏洞實(shí)體間關(guān)系提取,采用takg模型,對(duì)漏洞報(bào)告、開(kāi)源平臺(tái)描述信息進(jìn)行預(yù)處理,去除停用詞、標(biāo)點(diǎn)符號(hào)、統(tǒng)一大小寫(xiě),并將詞轉(zhuǎn)換為bag-of-words向量,并將處理好的數(shù)據(jù)訓(xùn)練神經(jīng)主題模型生成主題分布,ntm基于變分自編碼器的架構(gòu),處理xbow的重建任務(wù),編碼器負(fù)責(zé)估計(jì)先驗(yàn)變量μ和σ。
6、隱表示z通過(guò)誘導(dǎo)中間主題參與生成模型decoder的生成過(guò)程,利用ntm對(duì)于xbow的重建過(guò)程,模型學(xué)習(xí)關(guān)于不同的詞所對(duì)應(yīng)的主題信息,作為生成過(guò)程的指導(dǎo)信息,表示為:
7、μ=fμ(fe(xbow)),logσ=fσ(fe(xbow))
8、其中,μ為編碼器輸出的均值,fe(.)為編碼器函數(shù),用于將輸入向量轉(zhuǎn)換為潛在表示,xbow為輸入的詞袋模型向量,fμ(.)表示映射函數(shù),fσ(.)為神經(jīng)網(wǎng)絡(luò)映射函數(shù),σ表示潛在變量方差。
9、使用處理好的數(shù)據(jù)訓(xùn)練神經(jīng)主題模型生成主題分布,根據(jù)主題困惑度和主題一致性確定最優(yōu)主題數(shù),引入一致性得分作為評(píng)估標(biāo)準(zhǔn),衡量主題模型生成主題的質(zhì)量和相關(guān)性,得分越高,表明主題在語(yǔ)義上更加連貫和有意義。
10、作為本發(fā)明所述的基于知識(shí)圖譜和大語(yǔ)言模型的漏洞修復(fù)方法的一種優(yōu)選方案,其中:所述構(gòu)建漏洞修復(fù)知識(shí)圖譜包括確定知識(shí)圖譜的數(shù)據(jù)結(jié)構(gòu),包括實(shí)體、關(guān)系和屬性,實(shí)體作為知識(shí)圖譜中的節(jié)點(diǎn),關(guān)系作為連接節(jié)點(diǎn)的邊,屬性則用于描述節(jié)點(diǎn)和邊的特性。
11、作為本發(fā)明所述的基于知識(shí)圖譜和大語(yǔ)言模型的漏洞修復(fù)方法的一種優(yōu)選方案,其中:所述提供匹配結(jié)果包括將收集到的數(shù)據(jù)轉(zhuǎn)換成三元組格式,每個(gè)三元組由主語(yǔ)、謂語(yǔ)和賓語(yǔ)三個(gè)部分組成,形成主語(yǔ),謂語(yǔ),賓語(yǔ)的結(jié)構(gòu),以便在neo4j中進(jìn)行存儲(chǔ),在neo4j數(shù)據(jù)庫(kù)中部署知識(shí)圖譜,利用neo4j的圖形數(shù)據(jù)庫(kù)特性,將轉(zhuǎn)換后的三元組數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù),并建立相應(yīng)的節(jié)點(diǎn)和邊,展示實(shí)體之間的關(guān)聯(lián),并定義知識(shí)圖譜中的實(shí)體類型和關(guān)系類型。
12、使用py2neo創(chuàng)建節(jié)點(diǎn)索引和節(jié)點(diǎn)、添加屬性、根據(jù)索引搜索節(jié)點(diǎn)并創(chuàng)建節(jié)點(diǎn)之間的關(guān)系創(chuàng)建漏洞修復(fù)知識(shí)圖譜bkg。
13、作為本發(fā)明所述的基于知識(shí)圖譜和大語(yǔ)言模型的漏洞修復(fù)方法的一種優(yōu)選方案,其中:所述對(duì)漏洞進(jìn)行自動(dòng)化修復(fù)包括使用bkg搜索漏洞問(wèn)題,使用自然語(yǔ)言技術(shù)提取輸入的漏洞問(wèn)題的關(guān)鍵字,采用預(yù)訓(xùn)練的bert模型,將提取的關(guān)鍵字轉(zhuǎn)換為高維向量表示,bert模型通過(guò)深度學(xué)習(xí)和自然語(yǔ)言處理的能力,捕捉關(guān)鍵字之間的語(yǔ)義關(guān)系,并轉(zhuǎn)化為向量空間中的點(diǎn)。
14、通過(guò)計(jì)算關(guān)鍵字向量與主題向量之間的余弦相似度,找出與輸入漏洞描述最匹配的主題,衡量?jī)蓚€(gè)向量在方向上的接近程度,當(dāng)值越接近1時(shí),表示越相似,是兩個(gè)向量的點(diǎn)積,分別是向量a和b的模,表示為:
15、
16、其中,cos_sim為余弦相似度,表示輸入漏洞描述的特征向量,表示向量表示漏洞修復(fù)方案的特征向量,為向量的模,為向量的模。
17、作為本發(fā)明所述的基于知識(shí)圖譜和大語(yǔ)言模型的漏洞修復(fù)方法的一種優(yōu)選方案,其中:所述對(duì)漏洞進(jìn)行自動(dòng)化修復(fù)還包括采用基于incoder預(yù)訓(xùn)練代碼模型的漏洞修復(fù)方法,使用大語(yǔ)言模型從大量完整的代碼片段中學(xué)習(xí)直接生成補(bǔ)丁。
18、選擇存在bug的項(xiàng)目,并根據(jù)漏洞定位信息找到錯(cuò)誤行,獲取包含錯(cuò)誤行的整個(gè)方法代碼以及方法注釋,針對(duì)錯(cuò)誤行,使用javaparse庫(kù)識(shí)別錯(cuò)誤行中的參數(shù)、方法的內(nèi)容,并使用掩碼模板生成多個(gè)掩碼行,每個(gè)掩碼行將替換錯(cuò)誤行,并與整個(gè)方法代碼和方法注釋一起作為代碼生成模型的輸入,迭代調(diào)用incoder模型,自動(dòng)生成掩碼部分的代碼,每個(gè)補(bǔ)丁都是將掩碼行中的<mask>部分替換為生成部分的代碼行,重新檢查生成的補(bǔ)丁,剔除與原錯(cuò)誤代碼相同以及重復(fù)的補(bǔ)丁,進(jìn)行補(bǔ)丁驗(yàn)證,編譯每個(gè)候選補(bǔ)丁,并使用測(cè)試套件進(jìn)行驗(yàn)證,輸出通過(guò)測(cè)試的補(bǔ)丁,開(kāi)發(fā)人員對(duì)生成的補(bǔ)丁進(jìn)行逐一檢查。
19、本發(fā)明的另外一個(gè)目的是提供一種基于知識(shí)圖譜和大語(yǔ)言模型的漏洞修復(fù)系統(tǒng),其能通過(guò)構(gòu)建漏洞修復(fù)知識(shí)圖譜,進(jìn)行漏洞代碼與修復(fù)代碼的匹配,提供匹配結(jié)果,解決了目前的漏洞修復(fù)技術(shù)含有知識(shí)圖譜構(gòu)建不完善和漏洞代碼與修復(fù)代碼匹配效率低的問(wèn)題。
20、作為本發(fā)明所述的基于知識(shí)圖譜和大語(yǔ)言模型的漏洞修復(fù)系統(tǒng)的一種優(yōu)選方案,其中:包括語(yǔ)義信息支持模塊,漏洞匹配修復(fù)模塊,補(bǔ)丁自動(dòng)生成模塊。
21、所述語(yǔ)義信息支持模塊用于對(duì)漏洞數(shù)據(jù)進(jìn)行預(yù)處理,提供漏洞修復(fù)過(guò)程中的語(yǔ)義信息支持;所述漏洞匹配修復(fù)模塊用于構(gòu)建漏洞修復(fù)知識(shí)圖譜,進(jìn)行漏洞代碼與修復(fù)代碼的匹配,提供匹配結(jié)果;所述補(bǔ)丁自動(dòng)生成模塊用于基于大語(yǔ)言模型生成漏洞修復(fù)補(bǔ)丁代碼,對(duì)漏洞進(jìn)行自動(dòng)化修復(fù)。
22、一種計(jì)算機(jī)設(shè)備,包括存儲(chǔ)器和處理器,所述存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序是實(shí)現(xiàn)基于知識(shí)圖譜和大語(yǔ)言模型的漏洞修復(fù)方法的步驟。
23、一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)基于知識(shí)圖譜和大語(yǔ)言模型的漏洞修復(fù)方法的步驟。
24、本發(fā)明的有益效果:本發(fā)明提供的基于知識(shí)圖譜和大語(yǔ)言模型的漏洞修復(fù)方法對(duì)漏洞數(shù)據(jù)進(jìn)行預(yù)處理,提供漏洞修復(fù)過(guò)程中的語(yǔ)義信息支持,為后續(xù)的漏洞修復(fù)提供了數(shù)據(jù)基礎(chǔ)和語(yǔ)義理解,提高了漏洞修復(fù)的準(zhǔn)確性和修復(fù)效率,構(gòu)建漏洞修復(fù)知識(shí)圖譜,進(jìn)行漏洞代碼與修復(fù)代碼的匹配,提供匹配結(jié)果,建立了一個(gè)結(jié)構(gòu)化的知識(shí)庫(kù),使得漏洞與修復(fù)方案之間的關(guān)系更加清晰,從而提高了匹配速度和匹配準(zhǔn)確性,為自動(dòng)化修復(fù)提供了強(qiáng)有力的支持,基于大語(yǔ)言模型生成漏洞修復(fù)補(bǔ)丁代碼,對(duì)漏洞進(jìn)行自動(dòng)化修復(fù),精確地識(shí)別了漏洞問(wèn)題的關(guān)鍵特征,并通過(guò)大語(yǔ)言模型自動(dòng)生成修復(fù)補(bǔ)丁,不僅減少了人工干預(yù),還提高了修復(fù)的速度和可靠性,實(shí)現(xiàn)了高效、可靠的自動(dòng)化修復(fù)補(bǔ)丁,縮短了漏洞修復(fù)的周期,降低了安全風(fēng)險(xiǎn),本發(fā)明在漏洞數(shù)據(jù)預(yù)處理、漏洞匹配修復(fù)以及自動(dòng)化修復(fù)補(bǔ)丁生成方面都取得更加良好的效果。