孫天放
(四川大學(xué)網(wǎng)絡(luò)空間安全學(xué)院,成都610065)
近年來,網(wǎng)絡(luò)攻擊在數(shù)量和復(fù)雜度上都呈現(xiàn)了迅速增長的趨勢。信息系統(tǒng)越來越多地暴露于各種安全威脅之下,這些威脅需要網(wǎng)絡(luò)安全從業(yè)人員的持續(xù)關(guān)注,為了更有效地促進安全信息共享,2013年,Gartner提出了威脅情報(Threat Intelligence,TI)的概念[1],“威脅情報是基于證據(jù)的知識,包括場景、機制、指標(biāo)、含義和可操作的建議,這些知識是關(guān)于現(xiàn)存的、或者即將出現(xiàn)的、針對資產(chǎn)的威脅或危險,可為主體響應(yīng)相關(guān)威脅或危險提供決策信息。”由此可知,威脅情報包含了關(guān)于當(dāng)前或即將到來的網(wǎng)絡(luò)安全威脅的各種詳細信息,這可以幫助企業(yè)或組織實施針對網(wǎng)絡(luò)安全威脅的主動網(wǎng)絡(luò)防御。目前,只有少數(shù)安全公司提供標(biāo)準(zhǔn)化結(jié)構(gòu)化的威脅情報,安全人員和機構(gòu)很難獲取大量的威脅信息,CleanMX[2]和PhishTanks[3]等社區(qū)雖然在其平臺上發(fā)布了充足的威脅情報,但僅包含惡意URL、IP等少量威脅信息,無法應(yīng)用于網(wǎng)絡(luò)安全態(tài)勢感知系統(tǒng)或其他防御機制。從開源的互聯(lián)網(wǎng)文章或報告中有效抽取威脅情報信息,并將其轉(zhuǎn)換為標(biāo)準(zhǔn)化、結(jié)構(gòu)化的形式,對網(wǎng)絡(luò)安全研究有著非常重要的意義與實際應(yīng)用價值。威脅情報信息抽取的兩個主要任務(wù)是命名實體識別(Named Entity Recognition,NER)和關(guān)系抽取(Relationship Extraction,RE)。命名實體識別是許多任務(wù)的基礎(chǔ)方法,廣泛應(yīng)用于信息抽取、語義分析、信息檢索、知識圖譜等多個領(lǐng)域。實體包含通用性實體,如地名、人名,也可以是針對特定領(lǐng)域的專業(yè)性實體,如漏洞、攻擊技巧、惡意軟件等網(wǎng)絡(luò)安全領(lǐng)域的實體名稱。目前,主流的網(wǎng)絡(luò)分析工具都依賴于特征工程識別實體,專業(yè)性實體需要針對性的特征進行識別,圖1是一段網(wǎng)絡(luò)威脅情報描述,其中標(biāo)注了威脅情報領(lǐng)域的一些實體。而關(guān)系抽取的目的是從非結(jié)構(gòu)化的文本中抽取相關(guān)實體的關(guān)系,并將這些關(guān)系表示為具有“主語,謂語,賓語”的固定形式的三元組。例如,在圖1的威脅情報描述中,可以提取三元組(APT40,make_use_of,AIRBREAK),和相應(yīng)的關(guān)系類型(Group,MakeUseOf,Software)。
圖1 威脅情報中的實體及其關(guān)系示例
過去的研究表明,現(xiàn)有的模型無法很好地抽取與網(wǎng)絡(luò)安全相關(guān)的實體及其關(guān)系[4]。雖然傳統(tǒng)的基于統(tǒng)計的信息抽取方法在通用領(lǐng)域可以取得較好的效果,但是該方法嚴(yán)重依賴特征工程,給在網(wǎng)絡(luò)安全領(lǐng)域的應(yīng)用帶來了一些局限性。首先,該方法很大程度上依賴于該領(lǐng)域人員的經(jīng)驗,并且需要漫長的試錯與訓(xùn)練過程;其次,特征工程的維護與更新需要耗費大量的人力物力,特別是在網(wǎng)絡(luò)安全這種高活躍度的領(lǐng)域。近年來,神經(jīng)網(wǎng)絡(luò)得到了廣泛應(yīng)用,這種模型可以自主學(xué)習(xí)非線性的特征組合,以避免進行耗時費力的特征工程。其中,遞歸神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)在自然語言處理(Natural Language Processing,NLP)領(lǐng)域取得了良好的效果[5]。而在實踐中,長短時記憶神經(jīng)網(wǎng)絡(luò)(Long Short-Term Memory neural network,LSTM)作為RNN的變體,已經(jīng)成為使用深度學(xué)習(xí)方法進行文本處理的重要手段,該模型解決了RNN的長期依賴性學(xué)習(xí)的問題。
本文的主要貢獻是評估了LSTM模型在威脅情報領(lǐng)域中進行信息抽取任務(wù)的能力,并提出了基于神經(jīng)網(wǎng)絡(luò)模型的威脅情報信息抽取方法(Threat Intelligence Information Extraction based on deep learning,TIIE)。在命名實體識別任務(wù)中,比較了基于LSTM的模型和基于特征工程的條件隨機場(Conditional Random Fields,CRF)模型在威脅情報領(lǐng)域的表現(xiàn),在關(guān)系抽取任務(wù)中,比較了基于最短依賴路徑(Shortest Dependency Path,SDP)的LSTM模型和基于序列和樹結(jié)構(gòu)的LSTM模型的表現(xiàn)。
在網(wǎng)絡(luò)安全領(lǐng)域,提取威脅情報實體及其關(guān)系的方法多種多樣。Joshi等人[6]提出了從異構(gòu)數(shù)據(jù)源中識別實體和相關(guān)概念的方法,使用最大熵模型(Maximum Entropy Model,MEM),并在標(biāo)記好的語料庫中訓(xùn)練該模型,訓(xùn)練語料庫經(jīng)過復(fù)雜的人工標(biāo)注,包含約5萬個標(biāo)簽,其模型實現(xiàn)的準(zhǔn)確率為0.799,F(xiàn)1得分為0.75。為了自動構(gòu)建訓(xùn)練語料庫,Bridges等人[7]利用國家漏洞數(shù)據(jù)庫中的數(shù)據(jù)結(jié)構(gòu)設(shè)計了自動標(biāo)注文本的算法,用更靈活的特征工程構(gòu)建工具,創(chuàng)建了一個包含大約750000個標(biāo)注標(biāo)簽的語料庫,并使用感知機算法,該算法已經(jīng)被證明比最大似然估計方法效果更好。與Joshi等人的工作相比,Bridges等人的訓(xùn)練語料庫更大,其實現(xiàn)的準(zhǔn)確率為0.963,F(xiàn)1得分為0.965。但是,他們的語料庫不像Joshi等人的語料庫那么多樣化,這在一定程度上也影響了實驗結(jié)果。Mulwad等人[8]使用了一種支持向量機(Support Vector Machine,SVM)分類器將威脅情報信息與不相關(guān)的內(nèi)容進行區(qū)分,分類器使用計算機安全分類法來標(biāo)注網(wǎng)絡(luò)安全領(lǐng)域的實體,使用平均精度作為模型性能的衡量標(biāo)準(zhǔn),最終達到了0.8的平均準(zhǔn)確率。Jones等人[9]提出了一個基于bootstrapping算法的識別方法,只需要很少的輸入數(shù)據(jù),包括很少的關(guān)系樣本及其類型,就可以從文本中提取安全實體及其之間的關(guān)系,該模型在其語料庫上的測試精度為0.82。
在最近的研究中,神經(jīng)網(wǎng)絡(luò)開始逐漸替代傳統(tǒng)統(tǒng)計機器學(xué)習(xí)方法,深度學(xué)習(xí)解決了傳統(tǒng)機器學(xué)習(xí)方法的許多缺點[10]。一方面,基于神經(jīng)網(wǎng)絡(luò)模型的方法可以自動學(xué)習(xí)特征,這大大減少了網(wǎng)絡(luò)安全領(lǐng)域中的人工成本和時間成本。此外,在各個領(lǐng)域的研究結(jié)果都表明,神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的特征在準(zhǔn)確性方面優(yōu)于人工生成的特征。另一方面,RNN已經(jīng)被證明具有較長的記憶能力,可以處理可變長度的輸入,這給自然語言處理任務(wù)的效果帶來了極大改善。LSTM則進一步提高了RNN的性能,并支持在任意遠程依賴之間進行學(xué)習(xí),通過適當(dāng)?shù)拇笳Z料庫注釋,可以為傳統(tǒng)機器學(xué)習(xí)方法提供一個可行的替代方案。
威脅情報信息抽取包括命名實體識別和關(guān)系抽取兩個子任務(wù),本文提出的TIIE方法以LSTM神經(jīng)網(wǎng)絡(luò)模型為基礎(chǔ),包含了基于LSTM-CRF模型的命名實體識別方法和基于LSTM-SDP的關(guān)系抽取方法。一方面,本文將Lample等人[11]提出的深度學(xué)習(xí)模型應(yīng)用于威脅情報命名實體識別領(lǐng)域。該方法是LSTM、CRF和詞嵌入方法的組合,該方法實驗用的語料庫帶有網(wǎng)絡(luò)安全領(lǐng)域的命名實體標(biāo)注,數(shù)據(jù)集中每一個單詞都帶有實體類別標(biāo)簽。對于關(guān)系抽取任務(wù),本文根據(jù)威脅情報文本特點,優(yōu)化了Yan Xu等人[12]提出的基于最短依賴路徑的LSTM模型,這種神經(jīng)結(jié)構(gòu)利用了一個句子中兩個實體之間的最短依賴路徑,保留了關(guān)系分類所需的相關(guān)信息,并消除了句子中不重要的單詞。
LSTM是一種經(jīng)典的遞歸神經(jīng)網(wǎng)絡(luò)模型,它能夠檢測和學(xué)習(xí)輸入數(shù)據(jù)序列中的模式,其中,數(shù)據(jù)序列可以是時間序列、自然語言文本,也可以是語音、基因組等。遞歸神經(jīng)網(wǎng)絡(luò)可以將當(dāng)前輸入(例如,文本中的當(dāng)前單詞)與上一個輸入(例如,文本中的前一個單詞)中學(xué)到的知識結(jié)合起來,然而RNN雖然在短序列中表現(xiàn)良好,但當(dāng)處理的序列變得過長時,它會遇到梯度下降甚至消失的問題,當(dāng)模型參數(shù)數(shù)量變多時,訓(xùn)練RNN的難度顯著提高。
LSTM模型則可以解決長期依賴學(xué)習(xí)的問題,它引入了內(nèi)存單元的概念,如圖2所示,它在內(nèi)存中隨時間保持長期依賴狀態(tài)。LSTM結(jié)構(gòu)單元由一個Sigmoid神經(jīng)網(wǎng)絡(luò)層和一個點陣乘法運算組成,LSTM單元內(nèi)的門(gate)選擇性地讓信息通過。其中,i代表輸入門,f代表忘記門,o代表輸出門,σ代表Sigmoid神經(jīng)網(wǎng)絡(luò)層,W和b分別代表權(quán)重和Sigmoid層的常數(shù),C代表神經(jīng)細胞狀態(tài)。LSTM單元的運算過程如下:
圖2 LSTM神經(jīng)網(wǎng)絡(luò)單元結(jié)構(gòu)圖
ft=σ(Wf·[ht-1,xt]+bf)
(1)
it=σ(Wi·[ht-1,xt]+bi)
(2)
(3)
(4)
ot=σ(wo[ht-1,xt]+bo)
(5)
ht=ot·tanh(Ct)
(6)
本節(jié)主要介紹了基于LSTM-CRF模型的命名實體識別方法,該方法的體系結(jié)構(gòu)如圖3所示。
圖3 長短時記憶-條件隨機場模型結(jié)構(gòu)圖
該方法包括三層結(jié)構(gòu)。第一層是底部的輸入層,輸入單詞序列w1,w2,… ,wt,word2vec神經(jīng)網(wǎng)絡(luò)會將每個單詞轉(zhuǎn)換為對應(yīng)的向量xt,得到的詞向量序列x1,x2,… ,xn則被送入下一層,即雙向LSTM層。雙向LSTM層對輸入的向量進行訓(xùn)練,并將輸出傳遞給最后一層,即CRF算法層。在CRF算法層產(chǎn)生神經(jīng)網(wǎng)絡(luò)的最終輸出,預(yù)測單詞對應(yīng)的概率最高的實體類別標(biāo)簽。
該方法的雙向LSTM層由兩部分組成,正向LSTM從序列起點開始讀取輸入并向后移動,反向LSTM從序列的末尾開始讀取輸入并向前移動。正向LSTM基于當(dāng)前詞語t計算其左側(cè)的文本信息lht,反向LSTM基于當(dāng)前詞語t計算其右側(cè)的文本信息rht,最后,結(jié)合左右兩側(cè)的文本信息得到輸出結(jié)果,即ht=[lht;rht]。多項研究表明,雙向LSTM結(jié)構(gòu)在命名實體識別任務(wù)中被證實有效。
基于最短依賴路徑的長短時記憶神經(jīng)網(wǎng)絡(luò)模型的體系結(jié)構(gòu)如圖4所示。首先,使用Stanford解析器對句子進行解析,并生成依賴樹。其次,抽取最短依賴路徑作為神經(jīng)網(wǎng)絡(luò)模型的輸入。除了最短依賴路徑信息以外,四種其他類型的信息也被向量化后傳入模型,包括命名實體、實體關(guān)系、POS標(biāo)簽和WordNet上位詞。
圖4 長短時記憶-最短依賴路徑模型結(jié)構(gòu)圖
兩個實體的共同節(jié)點將最短依賴路徑分離為左子路徑和右子路徑。這兩條子路徑分別由兩個RNN進行處理。在每個RNN中,LSTM單元用于信息傳遞,從這兩個子路徑傳遞的信息被傳入最大池化層,如圖4b。池化層連接后會傳最上方的隱藏層,最后輸出結(jié)果,如圖4a。
本文對所提出方法的有效性進行實驗驗證。本實驗所使用的數(shù)據(jù)集為SCU-iGroup整理的Attack-Technique-Dataset數(shù)據(jù)集[13],其中包含55篇網(wǎng)絡(luò)安全事件相關(guān)的報告。在命名實體識別任務(wù)中,訓(xùn)練LSTM-CRF模型來識別威脅情報領(lǐng)域最常見的7個實體標(biāo)簽,如表1所示,然后在相同的語料庫中訓(xùn)練廣泛應(yīng)用的CRFSuite模型[14]。本文將語料庫分成兩個子集,80%作為訓(xùn)練集,20%作為測試集,以比較兩種模型的性能。同時,在關(guān)系抽取任務(wù)中,訓(xùn)練兩個LSTM模型來抽取威脅情報領(lǐng)域的特定關(guān)系,如表2所示。同樣將語料庫分為80%的訓(xùn)練集和20%的測試集,并分別比較LSTM-SDP和Miwa等人[15]提出的LSTM-STS兩種模型的抽取效果。
表1 威脅情報數(shù)據(jù)集實體數(shù)據(jù)統(tǒng)計
表2 威脅情報數(shù)據(jù)集關(guān)系數(shù)據(jù)統(tǒng)計
本實驗的評估指標(biāo)為準(zhǔn)確率P、召回率R和調(diào)和平均數(shù)F1,評價指標(biāo)計算方法如下:
(7)
(8)
(9)
其中,TP表示標(biāo)注為陽性的樣本中正確的數(shù)量,F(xiàn)P表示標(biāo)注為陰性的樣本中錯誤的數(shù)量,F(xiàn)N表示標(biāo)注為陽性的樣本中錯誤的數(shù)量。實驗從語料庫中留出的20%的測試數(shù)據(jù)來評估方法的有效性,將各個模型的結(jié)果按照上述評價指標(biāo)進行比較,以評價每個模型的性能。
我們對提出的LSTM-CRF方法和應(yīng)用特征工程的CRF方法進行了評估。從SCU-iGroup整理的Attack-Technique-Dataset威脅情報數(shù)據(jù)集中選擇7個最常見的網(wǎng)絡(luò)安全實體標(biāo)簽進行分組,分析兩種模型對于同一威脅情報數(shù)據(jù)集網(wǎng)絡(luò)安全領(lǐng)域的相對性能,標(biāo)注的實體類型包括Vulnerability、Technique、Software、Group、Campaign、Target和Motivation。兩個模型在命名實體識別任務(wù)中的表現(xiàn)性能結(jié)果如表3所示。
表3 LSTM-CRF與CRF對比結(jié)果
從結(jié)果可知,根據(jù)準(zhǔn)確率、召回率和F-1值各方面的性能指標(biāo)來看,LSTM-CRF方法的結(jié)果要優(yōu)于基于特征工程的CRF方法。每種方法對各個網(wǎng)絡(luò)安全命名實體標(biāo)簽的識別結(jié)果如表4所示。
表4 LSTM-CRF與CRF對7種實體類型的抽取對比結(jié)果
本文對LSTM-SDP和LSTM-STS兩種模型的關(guān)系抽取效果進行對比,對比結(jié)果如表5所示。
表5 LSTM-SDP和LSTM-STS對比結(jié)果
從結(jié)果可知,基于最短依賴路徑的LSTM模型在準(zhǔn)確率,召回率和F-1值各方面表現(xiàn)都優(yōu)于基于序列和樹結(jié)構(gòu)的LSTM模型。
本文提出了基于神經(jīng)網(wǎng)絡(luò)的威脅情報信息抽取方法,并通過實驗驗證了所提出方法的實現(xiàn)效果。實驗結(jié)果表明,與傳統(tǒng)的基于統(tǒng)計的方法相比,TIIE在命名實體識別和關(guān)系抽取領(lǐng)域的效果都有了顯著提高。傳統(tǒng)方法需要進行大量的特征工程,耗時費力,且訓(xùn)練得到的模型只針對特定領(lǐng)域,難以在其他領(lǐng)域復(fù)用,而基于深度學(xué)習(xí)的方法減少了對特征工程的需求,預(yù)處理和訓(xùn)練成本更低,具有一定的應(yīng)用價值。在將來的研究工作中,可以繼續(xù)研究語料庫自動標(biāo)注算法,并提高神經(jīng)網(wǎng)絡(luò)模型精度,實現(xiàn)威脅情報信息的自動化抽取方法,供網(wǎng)絡(luò)安全從業(yè)人員使用。