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