摘 要:漏洞報(bào)告在網(wǎng)絡(luò)安全中發(fā)揮著重要作用,大量且不斷增加的漏洞對(duì)漏洞分類的效率和準(zhǔn)確性提出了巨大挑戰(zhàn)。為了緩解漏洞分類深度學(xué)習(xí)模型無法關(guān)注重要特征和容易陷入過擬合的問題,提出了一種新穎的基于雙注意力機(jī)制和改進(jìn)對(duì)抗訓(xùn)練的漏洞分類方法。首先,提出TextCNN-DA(text convolutional neural network with double attention) 模型,將空間注意力和通道注意力機(jī)制與 TextCNN 結(jié)合,以更好地關(guān)注到重要特征。然后,提出SWV-FGM (single word vector-fast gradient method) 算法,對(duì)模型進(jìn)行對(duì)抗訓(xùn)練,進(jìn)而提高模型的魯棒性和泛化性。在漏洞數(shù)據(jù)集上與其他基線算法進(jìn)行了對(duì)比,并且對(duì)不同漏洞類型數(shù)據(jù)的表現(xiàn)進(jìn)行了具體分析,該方法在accuracy、macro-F1等多項(xiàng)指標(biāo)上都有更良好的表現(xiàn),能夠更好地完成漏洞分類任務(wù)。
關(guān)鍵詞:網(wǎng)絡(luò)安全; 漏洞分類; 注意力機(jī)制; 對(duì)抗訓(xùn)練
中圖分類號(hào):TP319 文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1001-3695(2024)11-036-3447-08
doi: 10.19734/j.issn.1001-3695.2024.01.0061
Vulnerability classification method based on double-attention mechanism and adversarial training
Yang Jinneng1, Li Wenshan1, 2, He Junjiang1, Zhou Shaohong1, Li Tao1, Wang Yunpeng1, 3?
(1.School of Cyber Science amp; Engineering, Sichuan University, Chengdu 610207, China; 2. School of Cyber Science amp; Engineering, Chengdu University of Information Technology, Chengdu 610225, China; 3. Smart Rongcheng Operation Center, Xindu District, Chengdu 610095, China)
Abstract:Vulnerability reports play a pivotal role in cybersecurity, and the ever-growing number of vulnerabilities challenges the efficiency and accuracy of vulnerability classification. To alleviate issues with deep learning models in vulnerability classification, which often fail to focus on significant features and are prone to overfitting, this paper introduced a novel vulnerability classification approach based on a double attention mechanism and improved adversarial training. Firstly, this paper proposed the TextCNN-DA model, which augmented the conventional TextCNN with spatial and channel attention mechanisms to enhance focus on pertinent features. Furthermore, this paper introduced the SWV-FGM algorithm for adversarial training to increase the robustness and generalization of the model. Comparative analysis with other baseline algorithms on a vulnerability dataset, and specific performance evaluation across different vulnerability types, show that the proposed method outperforms in several key metrics such as accuracy and macro-F1, effectively advancing vulnerability classification tasks.
Key words:cyber security; vulnerability classification; attention mechanism; adversarial training
0 引言
當(dāng)前,計(jì)算機(jī)和網(wǎng)絡(luò)系統(tǒng)中的安全漏洞對(duì)個(gè)人、組織和國(guó)家網(wǎng)絡(luò)安全構(gòu)成嚴(yán)重威脅。CVE (common vulnerabilities and exposures) 提供了一個(gè)唯一識(shí)別的公開已知網(wǎng)絡(luò)安全漏洞列表,被廣泛應(yīng)用于網(wǎng)絡(luò)安全產(chǎn)品和服務(wù)中。其中,在軟件開發(fā)生命周期中為避免漏洞的產(chǎn)生,需要從大量不同類型的CVE中準(zhǔn)確識(shí)別和了解漏洞類型。因此,快速準(zhǔn)確地識(shí)別和了解漏洞類型對(duì)于軟件開發(fā)人員、集成商和用戶至關(guān)重要。
CWE (common weakness enumeration) 是一種對(duì)軟件弱點(diǎn)或漏洞進(jìn)行分類的行業(yè)標(biāo)準(zhǔn)。每個(gè)弱點(diǎn)都被分配了一個(gè)唯一的字母數(shù)字標(biāo)識(shí)符,稱為CWE ID。將現(xiàn)有和新發(fā)現(xiàn)的漏洞映射為CWE是快速理解和減輕漏洞影響的重要方法。通過用相應(yīng)的CWE ID標(biāo)記漏洞報(bào)告(例如CVE條目),可以很容易地識(shí)別漏洞的類型。然而,目前為漏洞報(bào)告分配CWE ID基本上是人工任務(wù),需要花費(fèi)大量人力,且存在可擴(kuò)展性較差、質(zhì)量難以保證的問題。根據(jù)NVD (national vulnerability database)的統(tǒng)計(jì),2013年報(bào)告了5 187個(gè)條目,2023年增加到28 963個(gè),如圖1所示。面對(duì)不斷增加的漏洞報(bào)告數(shù)量,人工標(biāo)注會(huì)變得越來越不現(xiàn)實(shí);另外,為正確分配CWE ID,必須要由熟悉每個(gè)弱點(diǎn)描述的安全專業(yè)人員來進(jìn)行標(biāo)注,標(biāo)注成本太高。因此,亟需一種將CWE ID自動(dòng)分配給漏洞報(bào)告的方法。
隨著網(wǎng)絡(luò)安全威脅的不斷增加,利用機(jī)器學(xué)習(xí)技術(shù)對(duì)漏洞進(jìn)行高效、準(zhǔn)確的分類成為了研究重點(diǎn)。盡管傳統(tǒng)的機(jī)器學(xué)習(xí)算法為漏洞分類提供了初步解決方案,但面對(duì)數(shù)據(jù)的高維度和復(fù)雜性,它們逐漸顯示出局限性。深度學(xué)習(xí)技術(shù)因能應(yīng)對(duì)這些挑戰(zhàn)而獲得關(guān)注,并顯示出在自動(dòng)漏洞分類任務(wù)中相比傳統(tǒng)算法的顯著優(yōu)勢(shì)。
盡管深度學(xué)習(xí)已經(jīng)在漏洞分類領(lǐng)域有了很多研究,但現(xiàn)有研究依舊存在許多不足。一方面,其缺乏關(guān)注重要特征的能力;另一方面,模型的泛化性較差。為了解決這些問題,本文提出一種基于雙注意力機(jī)制和對(duì)抗訓(xùn)練的漏洞分類框架。首先,本文對(duì)漏洞文本數(shù)據(jù)進(jìn)行數(shù)據(jù)預(yù)處理,并利用word2vec模型得到初始詞嵌入;然后,本文將空間注意力機(jī)制和通道注意力機(jī)制引入TextCNN模型,提出 TextCNN-DA (TextCNN with double attention) 模型,該模型可以對(duì)輸入特征分別在空間維度和通道維度上進(jìn)行注意力計(jì)算,更好關(guān)注到兩個(gè)維度上的重要特征,從而增強(qiáng)漏洞分類效果;最后,本文提出SWV-FGM (single word vector-FGM) 算法,該方法根據(jù)每一次反向傳播的梯度信息,以單個(gè)詞向量為基本單位來生成擾動(dòng)數(shù)據(jù),對(duì)模型進(jìn)行對(duì)抗訓(xùn)練,迫使模型在不同類別之間尋找更具有區(qū)分性的決策邊界,增強(qiáng)了模型的泛化性。實(shí)驗(yàn)結(jié)果證明了該方法的有效性。本文的主要貢獻(xiàn)如下:a)提出將空間注意力機(jī)制和通道注意力機(jī)制引入TextCNN模型,使模型能更好地關(guān)注到重要特征,增強(qiáng)漏洞分類效果;b)提出改進(jìn)對(duì)抗樣本生成算法SWV-FGM,該算法對(duì)FGM算法進(jìn)行改進(jìn),使其更適合漏洞文本分類任務(wù),增強(qiáng)了模型的泛化性;c)在收集的漏洞文本數(shù)據(jù)集上評(píng)估了該方法的有效性。實(shí)驗(yàn)結(jié)果表明,該方法在macro-F1度量為86.54%,優(yōu)于其他分類算法。
1 相關(guān)工作
為了實(shí)現(xiàn)漏洞報(bào)告的自動(dòng)分類,研究人員首先利用機(jī)器學(xué)習(xí)算法進(jìn)行研究。Neuhaus等人[1]研究CVE數(shù)據(jù)庫的漏洞報(bào)告,使用LDA主題模型來半自動(dòng)地找到普遍的漏洞類型和新趨勢(shì)。Wijayasekara等人[2]提出了一種基于文本挖掘Bug數(shù)據(jù)庫來識(shí)別隱藏影響B(tài)ug的方法。文本挖掘過程提取錯(cuò)誤報(bào)告的句法信息,壓縮后生成特征向量送入機(jī)器學(xué)習(xí)分類器。Na等人[3]使用樸素貝葉斯分類器將CVE條目分類到對(duì)應(yīng)漏洞類型。Davari等人[4]提出一個(gè)使用隨機(jī)森林等機(jī)器學(xué)習(xí)方法的漏洞自動(dòng)分類框架。Yang等人[5]將模糊熵用于脆弱性特征選擇,用TF-IDF確定特征權(quán)重,用改進(jìn)的粒子群優(yōu)化算法優(yōu)化支持向量機(jī)的參數(shù),提高了分類精度,縮短了分類時(shí)間。Chen等人[6]提出了一種基于詞頻-逆重力矩陣TF-IGM和特征選擇的漏洞嚴(yán)重性分類框架。Aota等人[7]選取19個(gè)弱點(diǎn)作為目標(biāo),利用機(jī)器學(xué)習(xí)方法對(duì)弱點(diǎn)進(jìn)行分類,最終得出Boruta用于特征提取和隨機(jī)森林用于分類器的分類性能最好。文獻(xiàn)[8]結(jié)合文本分析和XGBoost等樹模型自動(dòng)對(duì)漏洞進(jìn)行分類。Russo等人[9]提出了CVErizer,自動(dòng)生成每日發(fā)布漏洞摘要并進(jìn)行分類,實(shí)驗(yàn)利用了不同的機(jī)器學(xué)習(xí)方法,其中表現(xiàn)最好的是貝葉斯網(wǎng)絡(luò)。Terdchanakul等人[10]提出了一種基于n-gram IDF的漏洞報(bào)告分類方法,該方法利用n-gram IDF和主題建模的特征構(gòu)建邏輯回歸和隨機(jī)森林的分類模型。文獻(xiàn)[11]使用三種特征,應(yīng)用監(jiān)督和非監(jiān)督方法將軟件漏洞報(bào)告自動(dòng)分類為安全和非安全相關(guān)。
隨著漏洞描述的復(fù)雜性和對(duì)應(yīng)的弱點(diǎn)數(shù)量的增加,傳統(tǒng)的機(jī)器學(xué)習(xí)方法已經(jīng)難以滿足需求。近年來,深度學(xué)習(xí)迅速發(fā)展,深度學(xué)習(xí)在文本分類中具有自動(dòng)特征提取、學(xué)習(xí)長(zhǎng)期依賴關(guān)系的能力和強(qiáng)語義表示等優(yōu)點(diǎn)。因此,大量研究提出了基于深度學(xué)習(xí)的漏洞分類方法。Aghaei等人[12]利用TF-IDF對(duì)文本進(jìn)行向量化,并使用單層神經(jīng)網(wǎng)絡(luò)進(jìn)行多標(biāo)簽分層分類,將漏洞分類為弱點(diǎn)類別。Huang 等人[13]將詞向量模型與神經(jīng)網(wǎng)絡(luò)相結(jié)合,證明了神經(jīng)網(wǎng)絡(luò)在 NVD 數(shù)據(jù)集上的分類性能優(yōu)于傳統(tǒng)機(jī)器學(xué)習(xí)分類器。Nakagawa 等人[14]使用特征級(jí)別 CNN 預(yù)測(cè)漏洞的嚴(yán)重程度。Sharma等人[15]使用單詞嵌入和CNN來評(píng)估軟件漏洞的嚴(yán)重性,數(shù)據(jù)集包括Linux、微軟、谷歌和混合供應(yīng)商的漏洞。Das等人[16]基于Transformer的V2W-BERT,將CVE和CWE嵌入到同一空間,通過鏈接預(yù)測(cè)相互映射,對(duì)于頻繁出現(xiàn)的CVE得到了不錯(cuò)的分類效果。Vishnu等人[17]提出使用自注意力深度神經(jīng)網(wǎng)絡(luò)對(duì)CVE漏洞進(jìn)行分類,并使用潛在狄利克雷分配 (LDA) 方法進(jìn)行主題建模,以發(fā)現(xiàn)數(shù)據(jù)集中各種 CVE 類別的主題趨勢(shì),實(shí)驗(yàn)結(jié)果顯示該方法優(yōu)于其他深度學(xué)習(xí)方法。Wang等人[18]提出基于加權(quán)詞向量和融合神經(jīng)網(wǎng)絡(luò)的自動(dòng)漏洞分類算法。通過改進(jìn)TF-IDF算法并與word2vec模型相結(jié)合,生成加權(quán)單詞嵌入向量,并構(gòu)建TCNN-BiGRU模型,以進(jìn)一步自動(dòng)提取漏洞描述的特征并實(shí)現(xiàn)漏洞分類。Dong等人[19]提出DeKeDVer,利用TextRCNN和代碼屬性圖對(duì)漏洞描述文本和源代碼進(jìn)行漏洞分類。
2 基于雙注意力機(jī)制和改進(jìn)對(duì)抗訓(xùn)練的分類方法
為了解決當(dāng)前漏洞分類面臨的挑戰(zhàn),本文提出了一種基于雙注意力機(jī)制和對(duì)抗訓(xùn)練的漏洞分類方法,如圖2所示。首先,本文從NVD中收集了漏洞文本數(shù)據(jù),包括漏洞描述、對(duì)應(yīng)的CVE ID和CWE ID,并進(jìn)行文本預(yù)處理清洗文本,通過word2vec模型得到詞嵌入。然后,過濾的文本信息被送入本文TextCNN-DA模型來進(jìn)行漏洞分類任務(wù),輸出預(yù)測(cè)的CWE ID。最后,為了增強(qiáng)模型的魯棒性和泛化性,本文利用提出的SWV-FGM算法使用對(duì)抗訓(xùn)練進(jìn)一步提升模型效果,使生成的對(duì)抗樣本更符合文本數(shù)據(jù)的特點(diǎn)。
2.1 漏洞文本預(yù)處理
在這個(gè)階段,本文對(duì)漏洞描述文本數(shù)據(jù)進(jìn)行預(yù)處理,以使文本數(shù)據(jù)足夠干凈。本文的預(yù)處理工作具體步驟如下:
a)大小寫轉(zhuǎn)換。將所有大寫轉(zhuǎn)換為小寫,消除大小寫產(chǎn)生的差異。
b)去除特殊符號(hào)。刪除文本中的特殊符號(hào)、標(biāo)點(diǎn)符號(hào)和HTML標(biāo)簽等。本文會(huì)將像“7.3.5”這種表示版本信息的文本形式保留。
c)刪除停用詞。刪除文本中通常被忽略的單詞,因?yàn)檫@些單詞通常不會(huì)改變文本的意義,例如:“the”“and”和“in”等。
d)處理縮寫詞。本文會(huì)將縮寫詞后面的縮寫刪除,例如:“it’s”變?yōu)椤癷t”,這是因?yàn)榇蠖鄶?shù)的縮寫都屬于停用詞。
e)詞干化。本文將單詞后綴去除,保留核心部分。例如,將詞匯“jumps”和“jumping”轉(zhuǎn)換為“jump”。
f)詞性還原。將一些單詞還原成基本形式,即詞元。例如,“best”“better”還原成“good”。
本文經(jīng)過文本數(shù)據(jù)預(yù)處理后的漏洞數(shù)據(jù)如表1所示。
2.2 TextCNN-DA 模型
為解決傳統(tǒng)漏洞分類模型缺乏關(guān)注文本重要特征的能力導(dǎo)致分類效果不佳的問題,本文提出了基于雙注意力機(jī)制的TextCNN-DA模型。由于漏洞數(shù)據(jù)集是一種領(lǐng)域特定的短文本數(shù)據(jù),往往根據(jù)文本中的幾個(gè)關(guān)鍵詞就可以確定漏洞所屬類別,而TextCNN是一種將卷積網(wǎng)絡(luò)應(yīng)用到文本領(lǐng)域的典型代表,具有很強(qiáng)的局部特征捕捉能力,非常適合領(lǐng)域性短文本數(shù)據(jù)集,因此本文選擇TextCNN模型作為基本模型。傳統(tǒng)TextCNN模型的缺陷在于會(huì)將每個(gè)通道的特征和單個(gè)通道上的特征都視為同等重要的特征信息,導(dǎo)致模型不能關(guān)注到重要特征?;诖藛栴},本文將空間注意力機(jī)制和時(shí)間注意力機(jī)制引入到了TextCNN模型中,改進(jìn)后的TextCNN-DA模型不僅可以在空間域中更加重視關(guān)鍵詞的特征,而且在通道域上更加關(guān)注重要的通道特征。
2.2.1 空間注意力機(jī)制
空間注意力機(jī)制主要在空間維度進(jìn)行注意力計(jì)算。不是圖像中的所有區(qū)域?qū)θ蝿?wù)的貢獻(xiàn)都是同樣重要的,只有任務(wù)相關(guān)的區(qū)域才是需要關(guān)心的,空間注意力模型就是尋找網(wǎng)絡(luò)中最重要的部位進(jìn)行處理。將其應(yīng)用到文本分類任務(wù)中,相當(dāng)于從整個(gè)文本中選擇重要的詞匯。空間注意力機(jī)制原理如圖3所示,其中展示了空間注意力機(jī)制根據(jù)特征信息生成空間注意力權(quán)重矩陣的過程。
在圖3中,輸入的文本矩陣形狀為(c, h, 1),其中通道數(shù)為 c,文本長(zhǎng)度為 h,詞向量維度為 1,將矩陣在通道維度分別進(jìn)行最大池化和平均池化, 得到兩個(gè)(1, h, 1)的矩陣,以此獲取到關(guān)鍵特征和特征變化趨勢(shì),然后在通道維度上進(jìn)行矩陣連接,保留兩種特征信息,形成(2, h, 1)的矩陣A。為了保證卷積后矩陣維度保持不變,將矩陣A進(jìn)行填充得到矩陣B,隨后進(jìn)行卷積得到矩陣C。最后經(jīng)過一個(gè)sigmoid層得到最終的空間注意力權(quán)重矩陣。
在本文的TextCNN-DA模型中,空間注意力機(jī)制扮演了決定一句話中每個(gè)詞語重要性的角色。模型利用它來識(shí)別并強(qiáng)調(diào)輸入文本的那些對(duì)分類任務(wù)貢獻(xiàn)最大的部分。具體地,輸入的文本矩陣形狀為(c, h, 1),其中通道數(shù)為 c,文本長(zhǎng)度為 h,詞向量維度為 1,輸出為形狀為 (1,h,1) 的空間注意力權(quán)重矩陣,該矩陣會(huì)與輸入矩陣相乘,附加權(quán)值到輸入文本矩陣中,從而突出那些對(duì)分類貢獻(xiàn)程度最高的部分。例如,在處理一個(gè)包含“sql”和“injection”的文本矩陣時(shí),空間注意力機(jī)制允許模型重點(diǎn)關(guān)注這些關(guān)鍵詞的表示。這個(gè)過程如圖4所示,其中包含了從識(shí)別關(guān)鍵特征到生成空間注意力權(quán)重,再到如何賦予這些權(quán)重來突出重點(diǎn)區(qū)域的詳細(xì)步驟。具體流程如下:
a)形為(6, 5)的文本矩陣代表的是文本“sql injection is a common vulnerability”的文本特征圖,文本中的“sql” 和“injection”是具有區(qū)分文本類別能力的關(guān)鍵詞,其中“sql” 的詞向量為[0.1, 0, 0, 0, 0],“injection”的詞向量為[0.2, 0, 0, 0, 0],相較于其他非關(guān)鍵詞,關(guān)鍵詞的重要性沒有在初始的文本矩陣中得到體現(xiàn)。
b)初始的文本矩陣經(jīng)過卷積之后,生成了(4, 1)的文本矩陣A,在矩陣A中可以看到1號(hào)特征同時(shí)包含了“sql”和“injection”兩個(gè)關(guān)鍵詞,2號(hào)特征包含了“injection”關(guān)鍵詞,但兩個(gè)特征的權(quán)值都低于其他非關(guān)鍵詞組成的特征。
c)空間注意力矩陣B擁有和矩陣A相同的形狀,為了讓模型可以關(guān)注到重要的詞匯,矩陣B為1號(hào)和2號(hào)特征賦予更高的權(quán)值。
d)將矩陣A和B逐元素相乘之后,得到了具有空間注意力的矩陣C,此時(shí)的1號(hào)和2號(hào)位的特征值高于其他非關(guān)鍵詞組成的特征,使得模型在后續(xù)的分類任務(wù)中,可以關(guān)注到重要詞匯的信息。
2.2.2 通道注意力機(jī)制
基于通道的注意力機(jī)制通過建模各個(gè)特征通道的重要程度,然后針對(duì)不同的任務(wù)增強(qiáng)或者抑制不同的通道。通道注意力機(jī)制原理如圖5所示,其中展示了通道注意力根據(jù)特征信息生成通道注意力權(quán)重矩陣的過程。
輸入形狀為(c, h, 1)的特征矩陣。將矩陣在空間維度上分別進(jìn)行最大池化和平均池化操作, 得到兩個(gè)(c, 1, 1)的矩陣,以此獲取到關(guān)鍵特征和特征變化趨勢(shì),并進(jìn)行矩陣變換形成兩個(gè)(1, c)的矩陣,然后進(jìn)行矩陣相加保留兩種特征信息,得到矩陣A。為了讓卷積后的矩陣可以保持維度不變,在矩陣A的基礎(chǔ)上進(jìn)行填充得到矩陣B。將矩陣B送入到卷積層進(jìn)行卷積得到矩陣C,通過 sigmoid 層后得到矩陣D,最后將矩陣D進(jìn)行矩陣變換,得到最終的通道注意力權(quán)重矩陣。
通道注意力機(jī)制能衡量各個(gè)特征通道的重要程度,本文使用通道注意力機(jī)制讓模型關(guān)注具有良好區(qū)分漏洞類別能力的通道特征。輸入的文本矩陣形狀為(c, h, 1),其中通道數(shù)為 c,文本長(zhǎng)度為 h,詞向量維度為 1,輸出為形狀為 (c,1,1) 的通道注意力權(quán)重矩陣,該矩陣用于附加權(quán)值到文本矩陣中。
例如,在處理一個(gè)包含“sql”和“injection”的文本矩陣時(shí),通道注意力機(jī)制允許模型重點(diǎn)關(guān)注關(guān)鍵特征通道的表示。具體過程如圖6所示, 為了方便表示,圖中對(duì)向量的數(shù)值進(jìn)行了簡(jiǎn)化。
具體流程如下:
a)形為(6, 5)的文本矩陣代表的文本是“sql injection is a common vulnerability”的文本特征圖。文本中的“sql”和“injection”是具有良好區(qū)分文本類別能力的關(guān)鍵詞,其中“sql”的詞向量為[0.4, 0, 0, 0, 0],“injection”的詞向量為[0.3, 0, 0, 0, 0]。
b)初始的文本矩陣送入到3個(gè)不同的卷積核后,生成具有三個(gè)通道數(shù)的文本矩陣D,三個(gè)通道的特征圖分別用A、B、C表示,三個(gè)特征圖的1號(hào)特征包含了“sql”和“injection”兩個(gè)關(guān)鍵詞的信息,2號(hào)特征包含了“injection”關(guān)鍵詞的信息。
c)通過分析發(fā)現(xiàn),通道B的1號(hào)和2號(hào)特征值在整個(gè)矩陣中占比最高,分別為0.333和0.256,通道A的1號(hào)特征值占比為0.321,高于通道C中的占比。因此認(rèn)為通道B具有最好的文本類別區(qū)分能力,其次為通道A。
d)根據(jù)每個(gè)通道的重要性,通道注意力權(quán)重矩陣為每個(gè)通道附加不同的權(quán)值,最終得到經(jīng)過加權(quán)的文本矩陣D′,其中通道B′的權(quán)值最高,通道A′的權(quán)值其次,通道C′的權(quán)值最小。使得模型可以更加重視通道B′的信息。
為了根據(jù)文本矩陣的通道數(shù)來確定通道注意力模塊中一維卷積層的卷積核大小,本文采用ECA注意力機(jī)制中的自適應(yīng)函數(shù)來計(jì)算每次卷積大小,該函數(shù)如式(1)所示。
k=|log2cγ+bγ|(1)
其中:γ為2;b為1;當(dāng)k不為奇數(shù)時(shí),k的值加1。
2.2.3 雙注意力機(jī)制
最終融合了空間注意力機(jī)制 (SA)和通道注意力機(jī)制 (CA) 的 TextCNN-DA 模型如圖7所示。假設(shè)輸入文本矩陣形狀為(7×3),處理流程如下:
a)將形為(1, 7, 3)的單通道文本矩陣送入到TextCNN-DA網(wǎng)絡(luò)中。
b)文本矩陣經(jīng)過不同的卷積層進(jìn)行卷積,生成形為(2, 5, 1)和(2, 4, 1)的矩陣。
c)將不同卷積層生成的矩陣送入到不同的空間注意力模塊中,這一步相當(dāng)于選擇具有關(guān)鍵詞信息的特征。
d)將空間注意力模塊輸出的形為(2, 5, 1)和(2, 4, 1)的矩陣,送入到共享的通道注意力模塊中,這一步相當(dāng)于確定什么樣的特征組合更能區(qū)分文本類別。
e)最后將通道注意力模塊輸出的形為(2, 5, 1)和(2, 4, 1)的矩陣,經(jīng)過池化層和向量連接之后,組合成新的向量,送入后續(xù)的全連接層。
2.3 SWV-FGM算法
為解決傳統(tǒng)漏洞分類方法容易過擬合和泛化性不好的問題,進(jìn)一步提升模型效果,本文提出了改進(jìn)對(duì)抗樣本生成算法SWV-FGM。
對(duì)抗樣本生成算法就是利用對(duì)抗訓(xùn)練來緩解模型的過擬合和泛化性問題。對(duì)抗訓(xùn)練的核心在于將經(jīng)過精心構(gòu)造的對(duì)抗樣本納入訓(xùn)練集中,從而迫使模型學(xué)習(xí)到更為一般化和健壯的數(shù)據(jù)特征表示。文獻(xiàn)[20]對(duì)此提供了直觀的闡述,如圖8所示。圖8(a)展示的是模型學(xué)習(xí)到的基于原始訓(xùn)練數(shù)據(jù)的決策邊界??梢杂^察到,部分?jǐn)?shù)據(jù)點(diǎn)緊鄰這一邊界,這導(dǎo)致模型在遇到新的或邊緣樣本時(shí)更易出錯(cuò)。這些接近邊界的數(shù)據(jù)表示模型對(duì)于所學(xué)習(xí)的知識(shí)過于自信,產(chǎn)生過擬合現(xiàn)象,沒有足夠的邊緣區(qū)域來應(yīng)對(duì)新樣本的波動(dòng)。圖8(b)進(jìn)一步描繪了每個(gè)數(shù)據(jù)點(diǎn)的變化區(qū)域,用方框來表示。當(dāng)數(shù)據(jù)在這些方框內(nèi)發(fā)生微小變動(dòng)時(shí),如果模型的泛化能力不足,可能導(dǎo)致錯(cuò)誤的預(yù)測(cè)。圖中的星號(hào)示例顯示了模型的原始決策邊界錯(cuò)誤地將本應(yīng)屬于綠色類別的數(shù)據(jù)劃分為黃色類別(詳見電子版)。最終,圖8(c)展示了采用對(duì)抗訓(xùn)練后的效果。在訓(xùn)練過程中加入這些方框內(nèi)的對(duì)抗樣本,迫使模型去重新調(diào)整和優(yōu)化其決策邊界。通過這種方式,模型不僅學(xué)習(xí)了原始數(shù)據(jù)的模式,也涵蓋了潛在的數(shù)據(jù)變化,從而具備更好的泛化能力,最終能夠更準(zhǔn)確地區(qū)分不同的數(shù)據(jù)類別。
一個(gè)經(jīng)典的對(duì)抗樣本生成算法是FGM(fast gradient method),其原理是在模型訓(xùn)練過程中,通過計(jì)算輸入樣本的梯度信息,然后在梯度方向上對(duì)輸入樣本進(jìn)行微小的擾動(dòng)。公式如下:
其中:x 表示原始的樣本數(shù)據(jù);xadv表示添加擾動(dòng)后樣本;ε 是人為設(shè)置的一個(gè)值來保證產(chǎn)生的擾動(dòng)在一個(gè)很小范圍內(nèi); xJ(θ,x,y) 表示J(θ,x,y)損失值對(duì)x求偏導(dǎo)。計(jì)算擾動(dòng)時(shí)使用L2范數(shù)對(duì)全局梯度數(shù)值進(jìn)行了歸一化,這樣既保留了原始梯度的特征,也控制了擾動(dòng)的大小。
為了解決模型在處理漏洞分類任務(wù)時(shí)可能出現(xiàn)的過擬合問題及泛化能力有限的挑戰(zhàn),本文SWV-FGM通過專門設(shè)計(jì)的對(duì)抗樣本生成流程增強(qiáng)模型的魯棒性。與傳統(tǒng)的FGM相比,SWV-FGM考慮到單個(gè)詞向量的梯度信息,對(duì)每個(gè)詞產(chǎn)生針對(duì)性的擾動(dòng),而不是使用全局標(biāo)量。這種針對(duì)單個(gè)詞向量的梯度信息處理允許模型在學(xué)習(xí)過程中考慮到詞匯層面的變化,可以更有效地捕獲文本數(shù)據(jù)的細(xì)微差異,從而降低過擬合風(fēng)險(xiǎn)且提升模型在未知數(shù)據(jù)上的泛化能力。本文SWV-FGM如式(3) 所示,與式(2)相比,后半部分不是對(duì)全局梯度歸一化,而是對(duì)單個(gè)詞向量梯度歸一化,θ 是可調(diào)參數(shù),作用是防止某個(gè)詞向量梯度為0,可以根據(jù)不同數(shù)據(jù)集進(jìn)行調(diào)整。該算法的框架如圖9所示,完整對(duì)抗訓(xùn)練流程如算法1所示,具體解釋如下:
a)圖中第1步是第一次前向傳播過程和反向傳播過程。得到模型輸出的embedding層A并計(jì)算損失獲取梯度矩陣B,對(duì)應(yīng)算法2~6行;
b)圖中第2步是對(duì)embedding層A進(jìn)行備份,得到備份矩陣A′,對(duì)應(yīng)于算法8行。備份矩陣A′用于后續(xù)梯度更新前,將embedding層A中的參數(shù)恢復(fù)成原始狀態(tài),再進(jìn)行梯度更新;
c)圖中第3步是梯度矩陣B以每一行向量為單位進(jìn)行L2范數(shù)運(yùn)算,得到范數(shù)梯度C,對(duì)應(yīng)于算法9行;
d)圖中第4步是范數(shù)梯度C與一個(gè)可調(diào)參數(shù) θ 相加,得到范數(shù)梯度D,對(duì)應(yīng)于算法10行;
e)圖中第5步是梯度矩陣B和范數(shù)梯度D每一行分別進(jìn)行向量相除,得到歸一化的擾動(dòng)矩陣E,對(duì)應(yīng)于算法11行;
f)圖中第6步是擾動(dòng)矩陣E和原始的embedding層矩陣A相加,得到添加了擾動(dòng)的embedding層,對(duì)應(yīng)于算法12行;
g)繼續(xù)后面的第二次前向傳播和反向傳播,對(duì)應(yīng)于算法13~15行。
h)然后先將模型參數(shù)恢復(fù)到添加對(duì)抗樣本之前,再在原始參數(shù)上更新梯度信息,對(duì)應(yīng)于算法17、18行。
算法1 SWV-FGM對(duì)抗訓(xùn)練流程
輸入:訓(xùn)練數(shù)據(jù)train_data;總輪數(shù)epoch;當(dāng)前輪數(shù)time;模型model;可調(diào)參數(shù)θ。
輸出:模型model。
1 while time lt; epoch do:
2 for trains, labels in train_data:
3 model.zero_grad() // 梯度清零
4 outputs← model(trains)
5 loss← 損失計(jì)算(outputs, labels)
6 loss.backward() //反向傳播
7 /* 對(duì)抗樣本生成模塊 */
8 backup← model.param.clone() //備份原始參數(shù)
9 c← L2(model.grad, dim=1) //L2范數(shù)計(jì)算
10 c← c + θ
11 radv ← model.grad / c
//生成擾動(dòng)
12 model.param ← model.param + radv
13 outputs← model(trains)
14 loss_adv ← 損失計(jì)算(outputs, labels)
15 loss_adv.backward()
16 /* 對(duì)抗樣本恢復(fù)模塊 */
17 model.param ← backup //恢復(fù)參數(shù)
18 梯度更新(model, loss_adv)
19
time← time + 1
20 end while
21 return model
3 實(shí)驗(yàn)與分析
3.1 數(shù)據(jù)集
本文在 NVD 網(wǎng)站收集了 70 819 條漏洞數(shù)據(jù),每條漏洞數(shù)據(jù)集的組成包括漏洞文本描述、CVE 編號(hào)和 CWE 編號(hào)。其中漏洞文本描述介紹了該漏洞的相關(guān)信息,例如漏洞類型、軟件版本、系統(tǒng)版本和利用方式等。CWE 編號(hào)表示漏洞所屬類型,CVE 編號(hào)用于唯一表示某個(gè)漏洞。
本文以 CWE 編號(hào)作為標(biāo)簽信息,以漏洞文本描述作為文本訓(xùn)練數(shù)據(jù)來構(gòu)建漏洞環(huán)境分類器。本文收集的漏洞數(shù)據(jù)一共包含 17 種漏洞類型,具體信息如表2所示。
每種漏洞類型的數(shù)量分布如圖10所示。本文以7∶1.5∶1.5的比例分為訓(xùn)練集、驗(yàn)證集和測(cè)試集,具體信息如表3所示。
3.2 實(shí)驗(yàn)設(shè)置
3.2.1 評(píng)價(jià)標(biāo)準(zhǔn)
因?yàn)楸緦?shí)驗(yàn)是多類別的分類任務(wù),所以本文采用accuracy、macro-precision、macro-recall和macro-F1指標(biāo)來評(píng)估模型表現(xiàn)。
3.2.2 實(shí)施細(xì)節(jié)
在本實(shí)驗(yàn)中,使用word2vec生成詞向量,word2vec模型訓(xùn)練的類型為skip-gram,上下文窗口大小為3,最小詞匯數(shù)為1。負(fù)采樣數(shù)設(shè)置為30,高頻詞下采樣閾值設(shè)置為1E-3,隨機(jī)種子為1,輸出詞嵌入的維度為100。
對(duì)于模型訓(xùn)練過程的參數(shù),本文設(shè)置dropout為0.6,epoch為60,batch size為128,學(xué)習(xí)率為1E-3,早停為1 000,卷積核為256。對(duì)于式(3)中的可變參數(shù)θ,不同模型設(shè)置不一樣,具體細(xì)節(jié)會(huì)在結(jié)果分析部分進(jìn)行參數(shù)分析。所有模型訓(xùn)練環(huán)境為Intel Xeon Silver 4214R CPU和NVIDIA GeForce RTX 3080 Ti GPU,Python和PyTorch的版本分別為3.10.9和2.0.1。
3.3 基線方法
本文使用TextCNN、DPCNN和TextRNN為基礎(chǔ)模型進(jìn)行實(shí)驗(yàn)對(duì)比。同時(shí),為了表現(xiàn)出本文引入的空間注意力模塊和通道注意力模塊對(duì)實(shí)驗(yàn)結(jié)果的影響,實(shí)驗(yàn)針對(duì) TextCNN-DA 模型進(jìn)行了消融實(shí)驗(yàn)的對(duì)比,在下文的實(shí)驗(yàn)結(jié)果展示中:TextCNN-DA(c)表示只加入了通道注意力機(jī)制;TextCNN-DA(s)表示只加入了空間注意力機(jī)制;TextCNN-DA(cs)表示先進(jìn)行通道注意力計(jì)算,再進(jìn)行空間注意力計(jì)算;TextCNN-DA(sc)表示先進(jìn)行空間注意力計(jì)算,再進(jìn)行通道注意力計(jì)算。為了避免隨機(jī)性產(chǎn)生的影響,實(shí)驗(yàn)選取了 1~5的數(shù)字作為隨機(jī)種子,對(duì)比實(shí)驗(yàn)結(jié)果以 5 次實(shí)驗(yàn)取平均為準(zhǔn)。
3.4 實(shí)驗(yàn)結(jié)果與分析
為證實(shí)本文TextCNN-DA(sc)+SWV-FGM方法的有效性,在漏洞文本數(shù)據(jù)集上對(duì)多種模型進(jìn)行了比較實(shí)驗(yàn),每種模型都用了原始、添加FGM對(duì)抗樣本算法和SWV-FGM對(duì)抗樣本算法三種方法進(jìn)行實(shí)驗(yàn)評(píng)估,實(shí)驗(yàn)結(jié)果以5次實(shí)驗(yàn)取平均為準(zhǔn)。得到的實(shí)驗(yàn)結(jié)果如表4所示。
從表4可以看出,本文TextCNN-DA+SWV-FGM方法在所有指標(biāo)上都優(yōu)于其他三個(gè)baseline model。與TextCNN相比,本文TextCNN-DA(sc)+SWV-FGM方法在accuracy、macro-precision、macro-recall、macro-F1指標(biāo)分別提升了1.5百分點(diǎn)、1.54百分點(diǎn)、1.84百分點(diǎn)、1.74百分點(diǎn)。所有模型在添加了對(duì)抗樣本算法后表現(xiàn)都有了明顯的提升,并且與添加FGM算法相比,添加SWV-FGM方法提升都更加明顯,提升從0.6百分點(diǎn)到3.19百分點(diǎn)不等。從實(shí)驗(yàn)結(jié)果可以看出,在本文的漏洞數(shù)據(jù)集上,TextCNN-DA+SWV-FGM方法具有優(yōu)勢(shì),證明了該方法能夠關(guān)注到重要特征,并增強(qiáng)模型的泛化性。除此之外,本文對(duì)結(jié)果差距進(jìn)行了可視化展示,展示了每個(gè)模型在漏洞數(shù)據(jù)集上相對(duì)于TextCNN-DA+SWV-FGM方法的指標(biāo)對(duì)比,如圖11所示,可以明顯看出其他方法和本文方法的差距。
為了決定最終的漏洞分類模型,本文從5次實(shí)驗(yàn)中選擇效果最優(yōu)的模型來作為最終的漏洞分類器。每個(gè)模型在SWV-FGM算法基礎(chǔ)上的最優(yōu)結(jié)果如表5所示。從實(shí)驗(yàn)結(jié)果可以看出,TextCNN-DA(sc)模型綜合表現(xiàn)更好。
為了評(píng)估每種具體漏洞類型的分類效果,得到了該數(shù)據(jù)集的混淆矩陣,如圖12所示。從實(shí)驗(yàn)結(jié)果可以看出,CWE-79和CWE-89漏洞種類的分類效果是最好的,CWE-79在2 484條測(cè)試數(shù)據(jù)中只有45條誤報(bào)和40條漏報(bào),CWE-89在841條測(cè)試數(shù)據(jù)中只有8條誤報(bào)和4條漏報(bào)。這可能是因?yàn)閄SS漏洞(CWE-79)和SQL注入漏洞(CWE-89)的特征比較明顯且常見,與其他漏洞的區(qū)別較大。然而,CWE-787、CWE-119、CWE-20、CWE-125和CWE-120的分類表現(xiàn)相比之下就不是很理想。為了判斷造成這種現(xiàn)象的原因,本文深入分析了CWE-119(緩存區(qū)錯(cuò)誤)的混淆矩陣。在CWE-119的874個(gè)測(cè)試數(shù)據(jù)中,CWE-787(越界寫入)是最常被分類錯(cuò)誤的漏洞類型,有58個(gè)。其次是CWE-20(不正確的輸入驗(yàn)證)的43個(gè),之后是CWE-120(經(jīng)典緩存區(qū)溢出)和CWE-125(越界讀?。?。可以發(fā)現(xiàn)這幾個(gè)漏洞類型之間的相關(guān)性比較強(qiáng)。實(shí)際上,CWE-119是一個(gè)寬泛的類別,包含多種內(nèi)存相關(guān)的安全漏洞,而CWE-120、CWE-125和CWE-787都是CWE-119漏洞下的細(xì)分項(xiàng),也就是說緩存區(qū)錯(cuò)誤會(huì)包括緩沖區(qū)溢出、越界讀取和越界寫入的錯(cuò)誤。與此同時(shí),CWE-20(不正確的輸入驗(yàn)證)漏洞的主要特點(diǎn)是由于軟件沒有正確驗(yàn)證輸入數(shù)據(jù)的有效性,從而可能被攻擊者利用觸發(fā)緩沖區(qū)溢出、執(zhí)行代碼等多種攻擊。也就是說CWE-20漏洞可能會(huì)引發(fā)CWE-119漏洞,具體來說,如果一個(gè)惡意輸入由于沒有被正確驗(yàn)證和清洗,最終觸發(fā)了緩沖區(qū)溢出,那么這個(gè)漏洞很可能會(huì)被分類為CWE-119,雖然其根源是輸入驗(yàn)證問題,即CWE-20。綜上所述,漏洞CWE-119和CWE-20、CWE-120、CWE-125、CWE-787之間的界限很模糊,并且漏洞描述文本在某種程度上是相似的,所以它們更有可能被錯(cuò)誤地分類,導(dǎo)致最后結(jié)果不佳。除此之外,還有一些CWE-20的漏洞與CWE-200和CWE-287的漏洞相互被錯(cuò)分,這可能是由于不正確的輸入驗(yàn)證(CWE-20)、信息泄漏(CWE-200)和身份驗(yàn)證問題(CWE-287)使幾種漏洞的定義有所重疊,從而導(dǎo)致了漏洞描述文本的相似性,致使分類錯(cuò)誤。
3.5 比較實(shí)驗(yàn)
由于所選擇的漏洞類型及其數(shù)據(jù)的數(shù)量在不同的研究中存在顯著差異,所以無法直接將本文模型的性能與其他研究的性能進(jìn)行比較。據(jù)此,本文選擇了與其他研究人員研究的漏洞類型有重疊的幾個(gè)最常見的漏洞類型,并在這些漏洞類型上將本文模型性能與文獻(xiàn)[18]進(jìn)行了比較,這幾個(gè)漏洞的分類性能呈現(xiàn)在表6中。
實(shí)驗(yàn)結(jié)果表明,與文獻(xiàn)[18]相比,盡管本文選取的測(cè)試數(shù)據(jù)數(shù)量要更多,本文提出的分類模型依然能保持一個(gè)相似的分類表現(xiàn)。在CWE-78、CWE-79、CWE-89、CWE-125上,本文方法macro-F1值稍低,但在CWE-190、CWE-352、CWE-787上,本文方法都要比文獻(xiàn)[18]的方法好,特別是對(duì)于CWE-787漏洞,本文方法的查準(zhǔn)率為88.67%,高于文獻(xiàn)[18]的70.70%,且最終的F1值也有7.94百分點(diǎn)的提升。
3.6 消融實(shí)驗(yàn)
對(duì)本文方法進(jìn)行了消融實(shí)驗(yàn),結(jié)果如表4、5和圖11所示。為了驗(yàn)證SWV-FGM的有效性,本文對(duì)每個(gè)模型都進(jìn)行了原始和添加FGM對(duì)抗樣本算法的實(shí)驗(yàn)對(duì)比。為了驗(yàn)證TextCNN-DA(sc)的有效性,本文使用不同設(shè)置的模型進(jìn)行對(duì)比,TextCNN-DA(c)表示只加入了通道注意力機(jī)制,TextCNN-DA(s)表示只加入了空間注意力機(jī)制,TextCNN-DA(cs)表示先進(jìn)行通道注意力計(jì)算,再進(jìn)行空間注意力計(jì)算,TextCNN-DA(sc)表示先進(jìn)行空間注意力計(jì)算,再進(jìn)行通道注意力計(jì)算。實(shí)驗(yàn)結(jié)果顯示,SWV-FGM算法和TextCNN-DA模型都對(duì)結(jié)果提升有重要的作用,并且先進(jìn)行空間注意力計(jì)算,再進(jìn)行通道注意力計(jì)算的順序?qū)β┒捶诸愋Ч奶嵘詈谩?/p>
3.7 參數(shù)分析
本文對(duì)SWV-FGM中的可調(diào)參數(shù)θ提供了超參數(shù)分析。θ是一個(gè)較小的值,作用是避免范數(shù)梯度出現(xiàn)零的情況,該參數(shù)需要根據(jù)不同的數(shù)據(jù)集和模型進(jìn)行調(diào)整。因此本文針對(duì)不同模型進(jìn)行可調(diào)參數(shù)θ的確定,實(shí)驗(yàn)以單次實(shí)驗(yàn)結(jié)果為準(zhǔn),如圖13所示。θ的取值原則是:如果兩者之間的準(zhǔn)確率相差較大,則選擇準(zhǔn)確率高的參數(shù)值;如果兩者之間的準(zhǔn)確率相差較小,則優(yōu)先選擇參數(shù)在1E-5~1E-3的值,避免生成的擾動(dòng)過大或過小。實(shí)驗(yàn)結(jié)果顯示,除了 TextCNN-DA(sc)選取準(zhǔn)確率第二高(89.11%) 時(shí)對(duì)應(yīng)的參數(shù) 1E-5 外,其余都選擇準(zhǔn)確率最高時(shí)對(duì)應(yīng)的參數(shù)值。最后的參數(shù)選擇情況如表7所示。
4 結(jié)束語
本文研究了漏洞文本分類問題,主要針對(duì)兩個(gè)漏洞分類領(lǐng)域的挑戰(zhàn):缺乏對(duì)重要特征的關(guān)注能力和面對(duì)未知文本時(shí)泛化性不佳的問題。為了解決這些問題,本文首先引入空間注意力機(jī)制和通道注意力機(jī)制,將其與TextCNN結(jié)合,使得模型可以關(guān)注更具有類別區(qū)分能力的關(guān)鍵詞特征和通道特征;然后,本文提出了改進(jìn)的對(duì)抗樣本生成算法,根據(jù)梯度矩陣的每一行生成擾動(dòng)數(shù)據(jù),使得每個(gè)詞向量會(huì)在不同的擾動(dòng)范圍內(nèi)生成對(duì)抗樣本,更加符合文本數(shù)據(jù)的特點(diǎn);最后通過對(duì)分類模型進(jìn)行對(duì)抗訓(xùn)練以提升模型的魯棒性和泛化性。本文在NVD漏洞數(shù)據(jù)集上對(duì)本文方法進(jìn)行了評(píng)估,證明了與其他分類模型相比,本文方法在多數(shù)情況下都表現(xiàn)出了優(yōu)異的效果。
盡管本文方法能夠有效提升漏洞分類效果,但是將兩個(gè)注意力機(jī)制引入到模型中也大大增加了模型的參數(shù)數(shù)量,并且SWV-FGM對(duì)每一個(gè)詞向量都計(jì)算擾動(dòng),這些都導(dǎo)致提出的方法需要更多的計(jì)算資源和訓(xùn)練時(shí)間。未來研究將考慮解決這些問題。
參考文獻(xiàn):
[1]Neuhaus S, Zimmermann T. Security trend analysis with CVE topic models[C]// Proc of the 21st International Symposium on Software Reliability Engineering. Piscataway, NJ: IEEE Press, 2010: 111-120.
[2]Wijayasekara D, Manic M, McQueen M. Vulnerability identification and classification via text mining bug databases[C]// Proc of the 40th Annual Conference of the IEEE Industrial Electronics Society. Piscataway, NJ: IEEE Press, 2014: 3612-3618.
[3]Na S, Kim T, Kim H. A study on the classification of common vulnera-bilities and exposures using Na?ve Bayes[C]// Proc of the 11th International Conference on Broad-Band Wireless Computing, Communication and Applications. Cham: Springer, 2017: 657-662.
[4]Davari M, Zulkernine M, Jaafar F. An automatic software vulnerability classification framework[C]// Proc of International Conference on Software Security and Assurance. Piscataway, NJ: IEEE Press, 2017: 44-49.
[5]Yang Huiting, Guo Wenbin, ZouZhenwan, et al. Research on vulnerability classification method based on DMO-PSO-SVM algorithm[C]// Proc of the 3rd Advanced Information Technology, Electronic and Automation Control Conference. Piscataway, NJ: IEEE Press, 2018: 1180-1183.
[6]Chen Jinfu, Kudjo P K, Mensah S, et al. An automatic software vulnerability classification framework using term frequency-inverse gravity moment and feature selection[J]. Journal of Systems and Software, 2020, 167: 110616.
[7]Aota M, Kanehara H, Kubo M," et al." Automation of vulnerability classification from its description using machine learning [C]// Proc of IEEE Symposium on Computers and Communications. Piscataway, NJ: IEEE Press, 2020: 1-7.
[8]Aivatoglou G, Anastasiadis M, Spanos G, et al. A tree-based machine learning methodology to automatically classify software vulnerabilities[C]// Proc of IEEE International Conference on Cyber Secu-rity and Resilience. Piscataway, NJ: IEEE Press, 2021: 312-317.
[9]Russo E R, Di Sorbo A, Visaggio C A, et al. Summarizing vulnerabili-ties’descriptions to support experts during vulnerability assessment activities[J]. Journal of Systems and Software, 2019, 156: 84-99.
[10]Terdchanakul P, Hata H, Phannachitta P, et al. Bug or not? Bug report classification using n-gram IDF[C]// Proc of IEEE International Conference on Software Maintenance and Evolution. Piscataway, NJ: IEEE Press, 2017: 534-538.
[11]Goseva-Popstojanova K, Tyo J. Identification of security related bug reports via text mining using supervised and unsupervised classification[C]// Proc of IEEE International Conference on Software Quality, Reliability and Security. Piscataway, NJ: IEEE Press, 2018: 344-355.
[12]Aghaei E, Al-Shaer E.ThreatZoom: neural network for automated vulnerability mitigation[C]// Proc of the 6th Annual Symposium on Hot Topics in the Science of Security. New York: ACM Press, 2019: 1-3.
[13]Huang Guoyang, Li Yazhou, Wang Qian, et al. Automatic classification method for software vulnerability based on deep neural network[J]. IEEE Access, 2019, 7: 28291-28298.
[14]Nakagawa S, Nagai T, Kanehara H, et al. Character-level convolutional neural network for predicting severity of software vulnerability from vulnerability description[J]. IEICE Trans on Information and Systems, 2019, 102(9): 1679-1682.
[15]Sharma R, Sibal R, Sabharwal S. Software vulnerability prioritization using vulnerability description[J]. International Journal of System Assurance Engineering and Management, 2021, 12: 58-64.
[16]Das S S, Serra E, Halappanavar M, et al. V2W-BERT: a framework for effective hierarchical multiclass classification of software vulnerabilities[C]// Proc of the 8th International Conference on Data Science and Advanced Analytics. Piscataway, NJ: IEEE Press, 2021: 1-12.
[17]Vishnu P R, Vinod P, Yerima S Y. A deep learning approach for classifying vulnerability descriptions using self attention based neural network[J]. Journal of Network and Systems Management, 2022, 30(1): article No. 9.
[18]Wang Qian, Gao Yuying, Ren Jiadong, et al. An automatic classification algorithm for software vulnerability based on weighted word vector and fusion neural network[J]. Computers amp; Security, 2023, 126: 103070.
[19]Dong Yukun, Tang Yeer, Cheng Xiaotong, et al. DeKeDVer: a deep learning-based multi-type software vulnerability classification framework using vulnerability description and source code[J]. Information and Software Technology, 2023, 163: 107290.
[20]Madry A,Makelov A, Schmidt L, et al. Towards deep learning models resistant to adversarial attacks[EB/OL]. (2019-09-04). https://arxiv.org/abs/1706.06083.