?

基于深度學習的網絡安全命名實體識別方法

2024-03-05 07:35李大嶺張浩軍王家慧李世龍
無線電工程 2024年3期
關鍵詞:集上字符漏洞

李大嶺,張浩軍,王家慧,李世龍

(1.河南工業大學 信息科學與工程學院,河南 鄭州450001;2.河南省糧食信息處理國際聯合實驗室,河南 鄭州450001)

0 引言

隨著大數據時代的到來,網絡入侵、病毒感染等網絡攻擊事件越來越頻繁,網絡攻擊嚴重影響了計算機使用的安全性。沒有網絡安全就沒有國家安全,為了保證網絡空間安全,國家通過各種技術實時監測網絡,產生了大量的網絡安全數據。同時網絡空間還存在大量的安全信息、漏洞信息等。

為有效地從海量的網絡安全信息中抽取實體,本文提出一種融合漢字多源信息的中文命名實體識別(Named Entity Recognition,NER)方法。在Embedding層使用BERT模型融合漢字偏旁部首信息和字符頻率信息獲取字向量,并使用改進的Para-Lattice模型對字向量和詞向量進行融合,使得字向量能更準確表達字符的信息,進而提升模型的性能。

1 相關工作

命名實體識別任務的目的是識別出人類自然語言中專有名詞的實體[1]?;谏疃葘W習的NER任務可以轉換為序列標注任務[2],將大量帶有標簽標注的數據樣本輸入到模型進行訓練,最后由模型進行預測。統計機器學習算法在NER中得到廣泛應用,隱馬爾可夫模型(Hidden Markov Model,HMM)[3]、支持向量機(Support Vector Machine,SVM)[4]和條件隨機場(Conditional Random Fields,CRF)[5]等機器學習算法被廣泛疊加到深度學習模型中,其中CRF因為能更好地獲取標簽之間的狀態轉移信息,從而被廣泛應用到NER任務中。

隨著人工智能的發展,神經網絡和深度學習逐漸應用到各個領域,基于深度學習的NER模型在領域內逐漸占據主導地位。Wu等[6]開發了一個深度神經網絡,通過無監督學習從大型無標記語料庫生成詞嵌入,使用最小特征工程方法識別中國臨床文檔中的臨床實體。Zhang等[7]首次提出基于字符和詞典的Lattice-LSTM模型,模型會編碼輸入字符以及語詞典匹配的所有潛在詞語,得益于豐富的詞匯,模型在數據集上取得了很好的表現。Li等[8]提出FLAT模型,將晶格結構轉化為扁平結構,模型可以通過位置編碼來捕獲詞信息,有良好的并行計算能力。Ma等[9]把詞典信息編碼到字符表示層,并設計了一個編碼規則來盡可能地保留詞典的匹配結果,模型效率提升,同時提升了性能。楊飄等[10]通過BERT預訓練模型獲取字向量,將字向量序列輸入到BiGRU-CRF模型中,在MSRA數據集上實驗結果表明模型的性能得到提升。

此外,針對網絡安全領域NER研究工作。Joshi等[11]基于CRF算法構建了一個用于識別文本中與網絡安全相關的實體、概念和關系的模型。Lal等[12]提出了一種基于SVM算法的從非結構化文本中提取網絡安全相關術語的信息識別方法。Mulwad等[13]設計了一種基于SVM算法的識別系統,提取用來描述漏洞和攻擊的概念實體。秦婭等[14]結合特征模板提出一種CNN-BiLSTM-CRF的網絡安全實體識別方法,在大規模網絡安全數據集上表現良好。楊秀璋等[15]針對高級可持續威脅(Advanced Persistent Threat, APT)分析報告,提出一種BERT-BiLSTM-CRF的APT攻擊實體識別模型,在數據集上取得了很好的表現。

針對中文網絡安全領域的NER任務,提出改進的一種融合字向量和詞向量的深度學習模型??紤]到中文預訓練模型BERT僅提取漢字的信息,并沒有涉及到漢字的偏旁部首,因此提取字向量時將漢字偏旁部首信息和字符頻率信息與BERT字向量進行融合,進而提升模型性能。

2 模型與方法

本文模型如圖1所示,整個模型分為3層,Embedding層將BERT字向量、融合字頻信息的F-FI向量和偏旁部首信息向量進行拼接,Para-Lattice層充分獲取詞匯信息,CRF層通過學習標簽間的狀態轉移信息構建狀態轉移矩陣進行預測。

2.1 詞嵌入層

Embedding層任務是將輸入到模型中的字序列映射成低維度的稠密向量輸入到Para-Lattice層中。本文的Embedding層分為BERT模塊、F-FI模塊和PianPang模塊三部分。其中BERT模塊利用預訓練的BERT模型將輸入序列轉換為實向量。圖2為BERT模型的輸入表示。

圖2 BERT輸入表示Fig.2 BERT input representation

本文以單個字符為輸入單位,所以BERT模型的輸出為字向量,為了使得試驗最終結果相對較好且能降低字向量的維度,本文使用BERT模型最后一層隱含層獲取字向量,對于給定的輸入序列L={a1,a2,a3,…,an},利用BERT模型對序列中每個字符ai輸出它的BERT字向量Bai,即:

Bai=BERT(h(-1)),

(1)

式中:h(-1)表示隱含層最后一層,最終Bai的維度為768維。

F-FI模塊首先將訓練集驗證集和測試集作為統計數據集,計算每一個字符的F-FI值。其中F是字符字頻,FI是字符頻率指數。

(2)

(3)

式中:N表示數據集中實例(Instance)總數,nai表示含有字符ai的Instance總數,加1是為了避免分母為0。

F-FIai=Fai*FIai,

(4)

式中:F-FI值為字符ai的F值乘以字符ai的FI值。F值可以很好地體現字符關鍵性,但數據集中常見字如:“的”的F值同樣會大,所以用FI值弱化常見字的關鍵性。利用計算得出的F-FI值對100維的word2vec靜態字向量進行加權,得到字頻向量Tai。具體求解如算法1所示。

算法1:F-FI求解算法Input: L ∥文本序列Output: word_f_fi ∥字符F-FI值begin1 defaultdict(int) doc_fre2 for word_list L do3 for i word_list do4 doc_fre [i] ←doc_fre [i]+15 declare a dictionary word_f6 for i doc_fre do7 word_f[i] ←doc_fre[i] / sum(doc_fre.values)8 declare a dictionary word_fi9 doc_num ← len(list_words)10 defaultdict(int) word_doc11 foridoc_fre do12 forjIdo13 word_doc[i] ←word_doc[i] + 114 foridoc_fre do15 word_fi← math.log(doc_num / (word_doc(i) + 1)) 16 declare a dictionaryword_f_fi17 fori doc_fredo18 word_f_if[i] ← word_f[i]?word_fi[i]19 return word_f_fiend

PianPang模塊中使用新華字典作為本地字典,以百度漢語作為網絡字典,以訓練集驗證集和測試集作為統計數據集,提取所有的字符匯集為一個字符集。針對字符集中每一個字符若本地字典中存在,則直接查詢其偏旁部首并返回結果,否則到網絡字典中查詢并返回結果。將偏旁部首通過Embedding的方式得到一個130維PianPang靜態向量表。對于給定的輸入序列L={a1,a2,a3,…,an},利用PianPang模塊對序列中每個字符ai輸出它的PianPang向量Pai,即:

Pai=PianPang(ai)。

(5)

把字頻向量Tai、BERT字向量Bai和PianPang向量Pai進行拼接得到字符ai的最終向量表示Eai。最終向量Eai的維度998維,即:

Eai=Bai⊕Tai⊕Pai。

(6)

2.2 編碼層

循環神經網絡(Recurrent Neural Network,RNN)因為能夠考慮到上下文內容而被廣泛應用于自然語言處理(Natural Language Processing,NLP)方向,但是會存在梯度消失和梯度爆炸問題,不能完美地處理具備長期依賴的信息。長短期記憶網絡(Long Short-Term Memory,LSTM)通過引入門機制控制神經單元之間信息的傳遞,緩解梯度消失和爆炸的問題。由于中文NER的特殊性,改進了一種可以進行batch并行化計算的Para-Lattice模型,模型通過word-cell對詞匯信息進行編碼,并將其融合到char-cell的字符編碼中,使得模型可以充分地利用漢字和詞匯的信息,原模型Lattice由于在進行詞匯融合時不能提前預知需要融入的詞匯數量,導致Lattice一次只能處理一條數據,進而導致模型的運算速度很慢,且更新的梯度受極端值影響較大,模型損失劇烈震蕩。本文改進了一種可以進行并行化計算的Para-Lattice模型,在模型進行詞匯信息融合之前,將詞匯數量提前計算構建一個詞匯數量的列表并一同輸入到模型中,字詞融合時將一同計算的所有輸入序列的詞匯最大值定為基準,對其余進行補零操作,進而可以實現并行化計算的Para-Lattice模型。

Para-lattice對詞匯的算法為:

(7)

(8)

式中:w表示關于詞粒度的變量,c表示關于字粒度的變量

Para-Lattice通過增加一個額外的門來控制字粒度和詞粒度的選取,計算如下:

(9)

Para-Lattice對字符的算法如下:

(10)

(11)

式中:

(12)

(13)

通過式(14)得到

(14)

圖3 Lattice-LSTM結構Fig.3 Lattice-LSTM structure

2.3 解碼層

本文網絡模型中編碼層負責學習上下文信息,解碼層CRF負責構建實體間狀態轉移矩陣。給定X,則Y的概率為P(Y|X),為計算P(Y|X),CRF作出以下2點假設:

① 假設該分布屬于指數分布簇。即存在函數f(y|x)=f(y1,y2,…,yn|x),使得:

(15)

式中:z(x)為歸一化因子,f(y|x)為打分函數。

② 假設輸出之間的關聯僅僅發生在相鄰位置,并且這種關聯是指數相加的。

(16)

式中:s(yi|xi)表示狀態分數,t(yi,yi+1)表示轉移分數。

對CRF采用對數極大似然方法計算損失函數,即:

ln(p(y1,y2,…,yn|x))=

(17)

CRF損失函數的計算需要用到狀態分數和轉移分數,其中狀態分數是根據訓練得到的BERT+Para-Lattice模型的輸出計算出來的,轉移分數是從CRF層提供的轉移矩陣得到的,其解碼過程使用維特比算法得到最優的標簽序列。

3 實驗與分析

3.1 數據集和評估指標

本文收集國家信息安全漏洞庫的漏洞數據作為實驗數據確保了實驗數據的真實性。本次語料收集了近5年的漏洞數據這確保了實驗數據的歷時性,爬取的內容包含操作系統、應用程序、數據庫、Web應用和網絡設備等多個模塊的漏洞信息確保了語料庫文本數據的全面性,2014年12月—2019年9月共計5年的漏洞數據,其中2014年18份、2015年242份、2016年328份、2017年489份、2018年422份、2019年313份,確保了語料庫的歷時性。按照不同的模塊進行統計,包含操作系統模塊210份、應用程序模塊1 067份、數據庫模塊23份、Web應用模塊334份、網絡設備模塊178份的漏洞信息,確保了語料庫文本數據的全面性。按照漏洞危害的程度分類統計,有高級1 041份、中級636份、低級134份。圖4描述了網絡安全文本原始數據的分布情況。

圖4 網絡安全數據分布情況統計Fig.4 Statistical chart of network security data distribution

參考了結構化威脅信息表達對網絡攻擊模式12種構件的定義,以及結合了丁兆云等[16]對網絡安全情報數據的分析,將語料庫中的實體定義為七大類,分別為漏洞編號實體(ID)、危害等級實體(CLA)、軟件名實體(SW)、組織名實體(ORG)、漏洞類型實體(TY)、地名實體(LOC)和相關術語實體(RT)。各實體定義如下。

① 漏洞編號實體:標簽為ID,用來記錄漏洞在國家漏洞數據庫中的編號,例如“CVE-2014-8016”。

② 危害等級實體:標簽為CLA,用來描述該漏洞的危害等級,例如“高”“中”“低”等。

③ 軟件名實體:標簽為SW,用來描述漏洞所存在的軟件名字,例如“Cisco Meraki MS MRMX”和“Huawei USG9560”。

④ 組織名實體:標簽為ORG,用來描述存在漏洞的軟件所屬于的組織或公司名稱,例如“華為”“思科”“谷歌”等。

⑤ 漏洞類型實體:標簽為TY,用來描述漏洞危害的類型,如“拒絕服務漏洞”“SQL注入漏洞”“信息泄露漏洞”等。

⑥ 地名實體:標簽為LOC,用來描述存在漏洞的軟件的組織或公司所屬于的地名,如“瑞士”“美國”“英國”等。

⑦ 相關術語實體:標簽為RT,用來描述網絡安全漏洞相關的術語,例如“拒絕服務”“HTTP會話”“蠻力攻擊”等。

本文數據集采用BIO標注策略,B表示實體開始的位置,I表示實體的非開始位置,O表示非實體字符。本文數據集中共計包含15種實體標簽,標簽統計情況如表1所示。

表1 網絡安全實體數據統計

標注規則在遵循“不重疊標注、不嵌套標注、不包含標點符號”的基本標注原則的基礎上,制定適合網絡安全領域的標注規則。

① 最大范圍標注

例1:Microsoft XML Core Services MSXML中存在遠程代碼執行漏洞,攻擊者可借助特制的網站利用該漏洞運行惡意代碼,進而控制用戶系統。

例1中Microsoft為后面軟件的公司名,遵循最大范圍標注原則,將Microsoft和XML Core Services MSXML一起標注為軟件名實體。

② 去特殊符號標注

例2:Cisco IOS XE是美國思科(Cisco)公司的一套為其網絡設備開發的操作系統,Cisco IOS XE中的Web UI存在跨站請求偽造漏洞。

例2中Cisco為思科的英文名,遵循去特殊符號標注原則,將思科和Cisco分別標注為組織名實體。

圖5為網絡安全命名實體標注實例。

圖5 網絡安全命名實體標注實例Fig.5 An instance of a network security named entity annotation

表2將網絡安全領域數據集與微博NER數據集Weibo-NER、微軟亞洲研究院數據集MSRA、中國股市高管簡歷數據集Resume以及人民日報數據集PeopleDairy四種公開的常見的中文NER數據集進行了對比。通過對比可以發現,本文所構建的網絡安全領域數據集相對于常見的中文語料庫實體的類別比較豐富,其中MSRA數據集和PeopleDairy數據集包含的實體類型最少,均包含3類實體;本文數據集NSD-NER和Weibo數據集均包含7類實體,僅次于Resume數據集中的8類實體;MSRA數據集和PeopleDairy數據集數據體量比較大,分別為14 k和9.2 k,相對來說本文所構建的網絡安全領域數據集NSD-NER數據體量比較小,數據大小為2.2 k,但其數據體量也大于Weibo數據集的0.8 k以及Resume數據集的1.4 k。5種數據集對比,本文數據集體量處于中游水平。

表2 不同語料庫對比分析

本文采用精確率(P)、召回率(R)、F1值和ACC值作為實驗的評估指標。其中P表示所有被預測為正的樣本中實際為正的樣本的概率,R表示實際為正的樣本中被預測為正樣本的概率,F1值是綜合P值和R值的一個F1分數,ACC值表示模型的準確率。計算如下:

(18)

(19)

(20)

(21)

式中:TP表示正樣本被判斷為正樣本的數量,FP表示負樣本被判斷為正樣本的數量,TN表示負樣本被判斷為負樣本的數量,FN表示正樣本被判斷為負樣本的數量。

3.2 參數設置

本實驗優化器采用Adam[17],該優化器集合了適應性梯度算法和均方根傳播2種隨機梯度下降擴展式的優點,可以高效地進行計算并且所需的內存比較少,模型使用Dropout[18]緩解過擬合的發生,在一定程度上達到正則化的效果。實驗模型參數設置如表3所示。

表3 參數設置

3.3 實驗結果分析

為了確定加入偏旁的有效性以及偏旁維度對模型最終結果的影響,使用融合漢字多源信息實體識別模型(Named Entity Recognition Model Based on Multi-Source Information of Chinese Characters,Msicc-NER)在Weibo數據集上做了各維度偏旁向量對比實驗,實驗結果如圖6所示。

圖6 偏旁維度對F1值影響Fig.6 Influence of radical dimension on F1 value

由圖6可以看出,隨著PiangPang向量維度的升高,F1增長值呈現上升趨勢最后趨于平緩,綜合考慮模型運行時間與F1值,實驗最終選擇最優的130維的PianPang向量與字向量進行融合。使用F-FI對100維的word2vec向量進行加權得到F-FI向量與字向量進行融合。

為了驗證本文模型Msicc-NER的有效性和普適性,將模型與常見模型在Weibo和MSRA公開數據集上進行實驗對比。Weibo和MSRA數據集數據統計結果表4所示。

表4 公開數據集數據統計

圖7和圖8為各模型在公開數據集Weibo和MSRA數據集上的實驗結果對比,通過對比結果可以看出,相對于Lattice+CRF、BiLSTM+CRF、BERT+BiLSTM+CRF等模型,本文模型Msicc-NER在公開數據集上有良好的表現,具有普適性,更進一步說明了融合偏旁信息和F-FI信息的有效性。

圖7 不同模型在Weibo數據集識別結果Fig.7 Recognition results of different models in the Weibo dataset

圖8 不同模型在MSRA數據集識別結果Fig.8 Recognition results of different models in MSRA dataset

使用本文模型Msicc-NER與BERT+LSTM+CRF、BERT+BiLSTM+CRF、FLAT、PLTE[19]等模型在構建的網絡安全領域數據集上進行實驗對比,識別結果如表5所示。

表5 不同模型在網絡安全數據集上識別結果

由表5可以看出,本文模型在網絡安全領域實體識別任務中取得了較好的效果,精確率、召回率和F1值為0.864 9、0.840 2和0.852 3,相較其余4種模型都有一定程度的提高。Msicc-NER相比LSTM模型的F1值提升8.98%,比BiLSTM模型F1值提升4.91%,比FLAT提升2.32%,比BERT+FLAT提升了1.68%,比BERT+PLTE提升了1.88%。其中,FLAT相較于LSTM與BiLSTM模型性能提升的主要原因在于模型中引入了詞匯以及詞匯位置信息,而BERT+FLAT相較于FLAT模型性能提升的主要原因是加入了BERT預訓練模型的字向量信息。同時,本文模型的F1值是5種模型中最高的,主要原因在于本文模型同時將漢字偏旁信息和字頻信息等先驗知識融合進BERT字向量,又將字向量和詞向量進行輸入,實現了字、詞融合進而提高了模型的性能。

為更形象地表示模型的性能,在網絡安全數據集進一步進行模型實驗對比,得出如表6所示的準確率。通過表6可以看出,與其他模型相比較,本文模型Miscc-NER取得最高的準確率96.54%,進一步體現了本文模型的有效性。

表6 不同模型在網絡安全數據集上ACC值對比

圖9為本文模型Msicc-NER在網絡安全領域數據集上ACC值隨著訓練輪數的增加變化曲線,可以看出,ACC值首先快速增加,說明本文模型隨著訓練輪數的增加可以使神經網絡有效地學習到知識;然后ACC曲線在ACC=0.965處逐漸趨于平緩,說明本文模型預測正確的概率在96.5%左右。

圖9 Msicc-NER模型在ACC變化曲線Fig.9 ACC variation curve of Msicc-NER model

選取漏洞類型、軟件名和相關術語3種類型的實體進行精確率、召回率和F1值比較,對比結果如表7所示。

表7 Msicc-NER模型在數據集上識別效果對比

通過表7可以看出,相關術語實體識別性能的召回率和F1值相較于其他實體類型的識別性能比較低,主要原因是相關類型實體的定義比較寬泛,標注時的規則不是太明確,進而導致模型無法很好地學習,實體識別不完全。

4 結束語

本文提出一種融合漢字偏旁信息、字頻信息以及詞匯信息的中文網絡安全命名實體方法,結合網絡安全領域的特點設計了7種實體類別,通過實驗證明了本文模型的有效性,為后續網絡安全知識圖譜的構建提供了幫助。在后續工作中將設計更加合適的模型算法,進行網絡安全領域實體關系的抽取。

猜你喜歡
集上字符漏洞
漏洞
尋找更強的字符映射管理器
Cookie-Cutter集上的Gibbs測度
鏈完備偏序集上廣義向量均衡問題解映射的保序性
字符代表幾
一種USB接口字符液晶控制器設計
消失的殖民村莊和神秘字符
復扇形指標集上的分布混沌
三明:“兩票制”堵住加價漏洞
漏洞在哪兒
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合