郭淵博,李勇飛,陳慶禮,方晨,胡陽陽
(1.信息工程大學密碼工程學院,河南 鄭州 450001;2.加利福尼亞大學河濱分校,河濱 CA92521)
一直以來,研究者都在網絡安全領域開展了大量科研工作,然而傳統的網絡被動防御已經難以應對高級持續威脅(APT,advanced persistent threat)[1]等新型攻擊,網絡威脅情報(CTI,cyber threat intelligence)的出現為態勢感知的研究提供了新思路[2]。
2013 年,Mcmillan[2]首次提出了關于威脅情報的定義:威脅情報是關于現有或即將出現的對資產有威脅的知識,包括場景、機制、指標、啟示和可操作建議等,這些知識可為主體提供針對威脅的應對策略。威脅情報可以幫助各組織改進其網絡防御架構,更好地了解威脅狀況,協調對未知威脅的響應,以此來減少威脅對組織的影響。
然而,網絡安全數據存在海量化、分散化、碎片化以及關系隱蔽化的特點,如何及時、精準地對海量數據進行分析處理,提取關鍵要素和關聯關系,挖掘潛在的有價值信息,是網絡安全領域面臨的重要問題。威脅情報作為一種網絡安全數據,通常以文本形式存在,包含大量非結構化數據。這種多源異構性給安全分析師全面、高效地利用威脅情報帶來了巨大挑戰[3]。
知識抽取作為文本挖掘的關鍵技術,能夠提取不同來源、不同結構的數據中包含的信息,形成知識(結構化數據)[4]。現階段知識抽取分為實體抽取、關系抽取、事件抽取三大類。知識抽取面向文本數據,通過自動化/半自動化抽取技術提取相應的知識單元。本文主要研究面向非結構化威脅情報的實體抽取問題。
近年來,基于深度神經網絡的方法被廣泛應用于自然語言處理(NLP,natural language processing)的各項任務中。典型地,卷積神經網絡(CNN,convolutional neural network)、長短期記憶(LSTM,long short-term memory)網絡以及雙向長短期記憶(BiLSTM,bidirection LSTM)網絡均被應用于實體抽取任務。
由于網絡安全領域包含大量專業詞匯和縮略詞,可用數據集較少,缺乏統一、規范的分類標準,且句間結構較復雜,標簽分布極不平衡,因此該領域知識抽取難度較大,需要不斷改進現有算法,獲得更好的性能。
本文在傳統模型BiLSTM-CRF(conditional random field)的基礎上添加了CNN-BiLSTM 網絡提取字符特征,在一定程度上改善了OOV(out of vocabulary)問題。針對網絡安全領域數據集標簽分布極不平衡問題,引入Focal Loss 損失函數[5],平衡樣本損失。
本文主要的研究工作如下。
1) 融入Focal Loss,改進損失函數,引入平衡因子與調制系數,減少負類樣本和易分類樣本的權重,使模型在訓練時更關注實體部分及困難樣本,提升模型性能。
2) 提取單詞的形態信息,不需要考慮語言的語法和語義結構,將字符級特征向量與單詞級特征向量拼接,有效改善OOV 問題。
3) 針對網絡安全領域標注語料缺乏的問題,收集匯總威脅情報并進行人工標注。在此基礎上,系統對比本文模型與主流神經網絡模型BiLSTM和BiLSTM-CRF 在實體抽取任務上的性能。實驗結果表明,本文提出的模型優于現有模型。
實體抽取是自然語言處理的一項基本任務[6]。主要是將非結構化文本中的人名、地名、機構名和具有特定意義的實體抽取出來并加以歸類,進而組織成半結構化或結構化的信息,再利用其他技術實現文本分析和理解的目的。
早期實體抽取主要采用基于規則或詞典的方法,選用特定特征,包括統計信息、標點符號、指示詞、方向詞、中心詞[7]等,以模式與字符串相匹配為主要手段,這種方法對固定模式的文本較有效,在小規模的數據集上容易實現,但模板規則需要專家構建,且難以將所有可能的模式考慮周全,人工成本過高。另外,該方法難以維護,缺乏穩健性,可移植性較差。
基于統計機器學習的方法在網絡安全實體抽取中取得了較好的效果。Mulwad 等[8]提出了一個原型系統,通過使用支持向量機(SVM,support vector machine)分類器來提取與漏洞、攻擊和威脅相關的概念,但該系統所能識別并提取的概念僅限于兩類:攻擊手段和攻擊結果。Bridges 等[9]在不同的安全相關語料庫上評估了最大熵模型(MEM,maximum entropy model),以避免在訓練模型時出現過擬合,而后他們開發了3 個網絡安全實體抽取器。Jones 等[10]描述了一種半監督機器學習方法,并結合主動學習機制,提取網絡安全實體和關系。由于其使用簡單的Bootstrapping 算法,導致提取的結果中含有大量的噪聲。除此之外,基于統計機器學習的方法嚴重依賴特征工程,在面對樣本數較少的數據集時往往難以保證模型的學習效果。
隨著深度學習在多領域的興起,Huang 等[11]首次將BiLSTM-CRF 模型應用于自然語言處理基準序列數據集。Sarhan 等[12]引入注意力機制進行安全命名實體識別,并借助詞嵌入技術融合構建知識圖譜。Zhao等[13]提出基于 CNN的領域識別算法,利用BiLSTM-CRF 識別妥協指標,將其集成并生成帶有領域標簽的CTI。Gasmi 等[14]利用BiLSTM-CRF 模型提取網絡安全概念和實體,比較3種基于LSTM的模型,這些模型結合依賴特征來提取語義關系。王偉平等[15]將CNN 與LSTM 進行組合,構建了一個用于識別包含妥協指標語句的分類器。Wu 等[16]利用依存解析的方法提取電子商務威脅情報中的戰術、技術、過程實體,發現了新的攻擊模式。
針對已發布的數據集SemEval-2018 Task 8,Manikandan 等[17]利用CNN-CRF 模型來識別惡意軟件相關的條目,以便進行進一步的網絡安全文本分析。與此同時,基于文獻[18]工作,Fu 等[19]針對網絡安全報告,開發了一個端到端的序列標注系統,其采用BiLSTM-CNN-CRF 模型在沒有特征工程的情況下處理網絡安全文本,并在語義評測中取得了較好的排名。
目前,實體抽取最新進展主要集中在基于大量人工標注的數據集訓練神經網絡模型,從而產生較好的結果。然而人工標注昂貴耗時,尤其是在威脅情報領域,數據標注需要掌握一定的網絡安全知識。除此之外,威脅情報中實體出現的頻率較低,標簽分布極不平衡,且包含大量漏洞名稱APT 組織等專業詞匯,為實體抽取帶來了巨大挑戰。針對上述威脅情報領域的相關問題,本文提出了一種新的實體抽取模型,并通過實驗證明了該模型在威脅情報實體抽取方面的有效性。
模型架構如圖1 所示,主要包括嵌入層、編碼層和帶有Focal Loss的解碼層。

圖1 模型架構
首先,利用隨機嵌入的方式獲取詞嵌入,相較于文獻[11,13]中的主流模型,本文在嵌入層利用BiLSTM和CNN 提取字符特征,連接向量獲得低維單詞表示,有效改善威脅情報包含大量專業詞匯的OOV 問題;然后,利用BiLSTM 作為編碼層,對單詞表示進行編碼;最后,利用CRF 對文本向量進行解碼,摒棄傳統的交叉熵函數,融合Focal Loss 平衡樣本分布,使模型更加關注文本中的實體標簽。
自然語言文本不能被神經網絡直接編碼,在本文模型中,對每個單詞提取其詞嵌入特征及字符嵌入特征,并進行連接。嵌入層的輸入為單詞序列S={x1,x2,…,xi,…,xm},其中S表示輸入句子,m表示句子的長度,xi表示句子的第i個單詞。每個單詞可表示為x={c1,c2,…,ci,…,cp},其中ci表示單詞的第i個字符,p表示單詞的長度。
2.2.1 詞嵌入層
收集訓練集中所有單詞,基于隨機嵌入的方式將其映射到維度為d的單詞嵌入矩陣表示詞匯表的大小(訓練語料庫中單詞的數目)。將輸入序列S表示為詞嵌入序列表示第i個詞的嵌入向量。
2.2.2 字符嵌入層
文獻[20-21]已經證明,CNN 能夠通過單詞中的字符有效提取形態信息(如單詞的前綴或后綴),并將其編碼為神經網絡表示。圖2 展示了CNN的網絡結構。利用該網絡獲得單詞中每個字符的特征向量,將其與BiLSTM 層獲得的字符特征向量、詞嵌入層獲得的單詞特征向量拼接,獲得原始輸入序列低層特征的向量表示。

圖2 CNN的網絡結構
在序列標注任務中,利用當前單詞之前的文本信息(歷史信息)和當前單詞之后的文本信息(未來信息)能夠有效提升模型的性能,但LSTM 隱藏層僅能獲取歷史信息。在文獻[11]中,BiLSTM 編碼層展示了其捕獲每個單詞語義信息的有效性。BiLSTM 包括前向LSTM 層、后向LSTM 層和連接層。每個LSTM 包含一組循環連接子網絡,稱為存儲模塊。每個時間步都是一個LSTM 存儲模塊,基于前一個時刻隱藏向量ht?1、前一個時刻存儲單元向量ct?1和當前輸入單詞嵌入向量ωt運算獲得。
對于序列標注任務,考慮相鄰標簽之間的相關性,聯合解碼出標簽序列能夠有效提升模型性能。例如,在實體抽取中,“I-ORG”不可能在“I-VIRUS”之后。因此,本文引入了CRF,損失函數包括2 種分數:發射分數和轉移分數。發射分數是BiLSTM編碼層的輸出矩陣表示單詞i對應的標簽為yi的概率;轉移分數是CRF 層的矩陣,表示標簽之間的轉移關系。分數定義為

損失函數定義為

其中,表示y的預測值,Yx表示該句所有可能的標簽序列。
網絡威脅情報通常為長文本,數據中包含大量的非實體詞(標簽為O),二元交叉熵損失函數迭代緩慢且可能偏離正確的優化方向,無法調整至最優。另外,在網絡安全領域實體抽取任務中,存在嚴重的標簽分布不平衡問題,因此本文引入Focal Loss 函數對模型進行優化。Focal Loss 函數是二元交叉熵損失函數的一個變種,通過改變正負樣本的相對頻率和降低簡單樣本的貢獻權重來解決二元交叉熵損失函數中的類不平衡問題,使學習更難的樣本成為可能,Focal Loss 定義為

其中,α∈ [ 0,1]是平衡因子,用于平衡正負樣本的數量;γ≥0是調制系數,用于減少非實體樣本(簡單樣本)的損失,使模型更加關注于實體標簽(困難樣本);P(y|x)是單詞x的標簽為y的概率。例如,當γ=2時,對于置信度為0.9的簡單樣本與置信度為0.6的困難樣本,其權重比例由交叉熵中的1:4變為1:16,有效增強了困難樣本的影響。Focal Loss能夠削弱簡單樣本對梯度更新方向的主導作用,避免網絡學習到大量無用的信息。同時能夠避免模型向樣本多的類別偏移,緩解類別不平衡問題。
由于網絡安全領域數據集較少,本文從Help Net Security、The Hacker News 等網站預先爬取80 篇威脅情報并進行人工標注。為驗證模型在數據樣本較少時的訓練效果,從中選出25 篇作為訓練樣本,55 篇作為測試樣本。訓練集共包括1 199 個實體,其中各實體樣本分布如表1 所示。實體標簽由實體邊界和實體類別組成,采用“BIO”模型來識別單詞在實體中的具體位置,B(Begin)表示實體的開始位置,I(Inside)表示實體的內部或結尾,O(Outside)表示該單詞為非實體詞,在其之后連接實體類型。

表1 數據集實體樣本分布
本文采用實體抽取任務常用的指標對模型性能進行評價,即精確率(P,precision)、召回率(R,recall)和F1 分數(F1-score),并選取F1 作為綜合性指標。
統計訓練集句子的長度分布如圖3 所示,句子長度由單詞數量衡量。模型超參數設置如下:輸入句子的最大長度為50,對于長度不足50的句子使用“

圖3 統計訓練集句子的長度分布
針對具有特定形式的網絡安全實體CVE 漏洞編碼、Email 地址等,本文模型采用基于正則匹配的方法進行實體識別,如表2 所示。

表2 部分實體的正則表達式
為進一步說明本文模型的優勢,復現BiLSTM和BiLSTM-CRF 模型,并將其作為基線模型,與本文模型進行比較,結果如表3 所示。由表3 可以看出,融合單詞的字符特征能夠有效解決網絡安全領域的OOV 問題。在CRF 層中融入Focal Loss 能夠平衡樣本分布,使模型更加關注實體標簽,減少非實體樣本給模型帶來的影響。本文提出的融合Focal Loss的(CNN-BiLSTM)-BiLSTM-CRF 模型在實體抽取任務上表現出最優的性能,相較于主流模型BiLSTM和BiLSTM-CRF 在F1 分數上分別提升了7.07%和4.79%。

表3 模型性能比較
相較于現有工作,本文主要增加了基于CNN 模型和BiLSTM 模型的字符特征,以及在CRF 解碼層中增加了Focal Loss 損失函數。為驗證其必要性,本節進行消融實驗,觀察其對模型性能的改進效果。
表4展示了不同損失函數對模型性能的影響。由于標簽分布不平衡,移除Focal Loss 后,使用交叉熵損失函數使模型F1 分數下降了0.56%,證明了其對模型性能提升的效果。

表4 不同損失函數對模型性能的影響
表5展示了字符特征對模型性能的影響。由于威脅情報包含大量專業詞匯,分別移除BiLSTM和CNN 字符特征,模型F1 分數下降了2.07%和0.62%。同時可以分析得到,CNN的優勢在于能夠提取一定的結構特性,而威脅情報中單詞通常較長,沒有固定的命名標準,因此,捕獲長距離依賴信息的BiLSTM 對模型性能影響更大。

表5 字符特征對模型性能的影響
表6詳細展示了單類別細粒度性能。從表6 可以直觀地發現,引入字符特征能夠顯著提升ORG、ATTACKER 等類別的分類能力。這一現象表明,傳統方法受限于這些類別中存在的OOV 問題,而本文模型能夠通過學習字符上下文信息對該問題進行改善。

表6 單類別細粒度性能
為進一步研究平衡因子與調制系數對模型性能的影響,本文進行了平衡因子與調制系數不同組合的對比實驗,性能變化曲線如圖4 所示。

圖4 平衡因子與調制系數對系統性能的影響
由圖4 可以看出,當α=0.96、γ=2時,系統能夠獲得最好的性能。
3.3節中對比了幾種實體抽取方法,本節利用實例進一步比較模型的抽取效果。模型抽取實例如表7所示,“”表示能夠正確識別的實體,“”表示未被正確識別的實體,實體下標表示實體類型。

表7 模型抽取實例
針對實例1,BiLSTM 模型未能很好地考慮標簽之間的相互關系,錯誤地將“them”識別為“I-ATTACK”;而另外2 種模型則準確識別出相應實體。
針對實例2,2 種基線模型都未能識別出惡意軟件“Android.Doublehidden”,此結果可能是由訓練集中缺乏相關詞匯,且類似正樣本較少導致。而本文模型融入了字符特征,利用Focal Loss 平衡了正負樣本分布,因此可正確識別出該未知單詞并分類。
針對實例 3,3 種模型均未能準確識別出“VERSION”類型的實體“7”“2003”,且實體“Windows Server”的邊界識別有誤,由此說明本文模型在少樣本實體抽取中還有待改進和優化。
為實現面向網絡威脅情報的實體抽取,解決該領域存在的樣本分布不平衡問題,本文提出了一種融合Focal Loss的實體抽取模型,并通過實驗驗證了模型的有效性。所提模型在主流模型的基礎上增加了字符特征,有效解決了威脅情報中存在的OOV問題。在未來工作中,筆者將進一步探索威脅情報中的關系抽取問題,構建知識圖譜,實現網絡安全實體的關聯分析。