周景賢,王曾琪
(1.中國民航大學 科技創(chuàng)新研究院, 天津 300300;2.中國民航大學 計算機科學與技術學院, 天津 300300)
網絡威脅情報(Cyber Threat Intelligence,CTI)用于描述已經發(fā)生的網絡攻擊活動,它包含的攻擊信息能夠為當前網絡防御提供幫助[1,2].在對時效要求非常高的網絡安全防御中,人工分析CTI已遠遠不能滿足其需求.近年來自然語言處理的發(fā)展令人矚目,其中命名實體識別(Named Entity Recognition,NER)[3]用于對文本中具有特殊含義的詞匯進行識別,將網絡威脅情報分析與命名實體識別結合能夠極大提升情報分析工作的效率.
目前命名實體識別方法主要有三種:基于規(guī)則和字典模板方法、基于機器學習方法以及基于深度學習的網絡模型方法.基于規(guī)則和字典模板的方法[4]依賴于專家手動編寫的規(guī)則,只能用于指定規(guī)則的特定領域,識別精度低,耗費人工和時間成本.基于機器學習的方法改善了特征工程方法依賴專家建立規(guī)則的狀況,對人名、地名和組織三類傳統(tǒng)實體識別精度達到80%以上[5-7].與機器學習相比,深度學習將命名實體識別定義為序列標注任務,該方法能夠自動提取特征并且具有更好的泛化能力.Lample G等[8]提出將雙向長短期記憶網絡(Bidirectional Long-Short Term Memory,BiLSTM)與條件隨機場(Conditional Random Field,CRF)結合組成BiLSTM-CRF神經網絡模型.然而神經網絡模型不能很好地表達字符級特征,Qiu Q等使用Word2Vec、Skip-Gram等詞嵌入模型與BiLSTM-CRF結合的方法并將其應用于NER[9,10].
為了更好的理解上下文信息,并根據(jù)文本信息使單詞獲得動態(tài)語法和語義信息特征,學習文本中單詞的多義性.Devlin J等[11]提出預訓練語言模型BERT(Bidirectional Encoder Representations from Transformers),模型使用雙向Transformer編碼器作為特征提取器.但BERT模型參數(shù)過多,訓練模型難度越來越大,時間和資源得到了很大的浪費.Lan Z等[12]提出了BERT的簡化版模型ALBERT(A Lite BERT)通過優(yōu)化參數(shù)來解決這個問題.
不同于通用領域的命名實體識別只對文本中人名、地名和組織進行識別,網絡威脅情報需要識別多種威脅實體(例如黑客組織、惡意工具、攻擊目的等)才能夠得到完整的攻擊鏈[13].但專業(yè)領域實體識別需要大量人工標注領域數(shù)據(jù)集,成本高,且識別精度低難度大.而深度學習具有自學習的特點,可通過少量標注數(shù)據(jù)集自學習實體特征而有效提取實體[14-16].在網絡安全研究中雖然已有部分研究文獻構建與網絡安全領域相關的數(shù)據(jù)集,但都無法應用于網絡威脅情報實體識別[17,18].
綜上所述,針對傳統(tǒng)詞嵌入不能很好的表示單詞多義性以及領域特征提取不足難以有效識別威脅實體信息問題.本文一方面融合ALBERT和BiLSTM-CRF提出一種面向網絡威脅情報的命名實體識別模型;另一方面根據(jù)專業(yè)的領域知識并結合實際情況,人工收集并標注了一個網絡威脅情報數(shù)據(jù)集(Cti-E)用于模型的特征學習及訓練,以解決模型訓練時詞向量不足的問題.
為了對網絡威脅情報領域進行準確的命名實體識別,本文提出了網絡威脅情報命名實體識別模型——ALBERT-BiLSTM-CRF(CTI-ALBC)模型.該模型分為四部分,從下到上分別為ALBERT層、BiLSTM層、Attention層和CRF層.
模型的輸入是句子中的詞,首先通過ALBERT在未標注的語料數(shù)據(jù)上進行訓練,以提取結合了上下文句法和語義的特征信息,得到動態(tài)詞向量.然后將詞向量輸入到BiLSTM對序列特征信息學習,之后Attention層對原始詞向量和學習后的文本向量加權,最后通過CRF層進行校正,以得到概率最大的序列標簽并輸出.
模型的整體結構如圖1所示.其中Attacks、began為輸入的單詞序列,X1,X2,…,Xn為ALBERT層輸出向量,h1,h2,…,hn為BiLSTM層上下文表示向量,St為ht的向量加權值,a1,a2,…,an為注意力層的輸出,0.3、0.9、0.6、0.1為模型的預測標簽概率值,B-HackGro、B和O為模型預測結果的標簽.

圖1 ALBERT-BiLSTM-CRF模型
詞向量是將文本信息映射到一個連續(xù)的低維空間,從而獲得相應的語義信息和句法特征.詞向量模型是一種將抽象文本轉化為可以用公式計算的向量的工具,對輸入文本數(shù)據(jù)進行向量化.Word2Vec、Glove[19]、ELMo[20]等傳統(tǒng)詞嵌入模型只能表示固定詞向量,無法很好地表示詞的多義性.在網絡威脅情報領域,同一個詞語在不同的語境中常常存在不同的含義,如“蠕蟲”表示為一種常見的計算機病毒,因此本文引入預訓練語言模型ALBERT可以有效減少單詞表達歧義.
ALBERT是精簡版BERT模型,與BERT的模型構造非常相似.ALBERT預訓練模型使用多層的Transformer結構并加入Attention機制,對輸入的語料進行無監(jiān)督學習,得到蘊含大量威脅情報領域文本信息的特征向量.該向量能夠更好地理解單詞的含義以及句子豐富的句法和語義信息.模型的具體結構如圖2所示.

圖2 ALBERT預訓練語言模型
1.1.1 ALBERT輸入表示
ALBERT中一個詞的輸入表示由三個部分組成,分別是詞向量、段向量和位置向量.詞向量是最重要的信息,根據(jù)維度生成一個詞向量矩陣表示輸入的單詞,隨著模型維度而改變;段向量在ALBERT中主要用于下一句預測任務,兩句之間需要區(qū)分,因此開頭用[CLS]符標記,在句尾加[SEP];由于Transformer模型無法記住時序,所以引入位置向量來標記位置信息.在圖2中,E1,E2,…,En為字符向量表示,經過多個Transformer編碼得到最后ALBERT的輸出向量Xn.
1.1.2 Transformer結構
為融合單詞左右兩側的上下文,ALBERT使用了一個雙向轉換編碼器Transformer.
Transformer編碼單元如圖3所示,基于Self-Attention[21]對輸入的文本信息編碼以提取向量特征,是最重要的模塊.計算公式如(1)所示:

圖3 Transformer編碼單元
(1)
式(1)中:Q、K、V分別是查詢向量、鍵向量和值向量,QKT用于計算Q在V上的注意力權重,最后對所有單詞值向量進行加權求和.
另外,Transformer通過增加“Multi-Head”注意力機制,從兩方面提高了注意力層的性能,分別是給注意力層多個“表示子空間”和擴展模型集中于不同位置的能力,如式(2)和式(3)所示,WO為附加權重矩陣:
MultiHead(Q,K,V)=
Concat(head1,…,headk)WO
(2)
(3)
此外,在Transformer中加入了殘差網絡和歸一化層來改善退化問題:
(4)
FNN=max(0,xW1+b1)W2+b2
(5)
式(4)、(5)中:α和β是要學習的參數(shù),μ是均值,σ是輸入層的方差.
1.1.3 ALBERT改進
BERT模型可以提取更多的特征詞向量,通過訓練后得到非常高的精度,原因是它的模型參數(shù)很大,而且運行需要的GPU非常大且時間久.但對于詞的分布式表示,往往并不需要這么高的維度.例如在網絡威脅情報中使用詞嵌入方法Word2Vec最多采用50或300的維度就可實現(xiàn)識別精度.因此ALBERT優(yōu)化參數(shù)后,在有些公開數(shù)據(jù)集上訓練的精度反而高于BERT[16,22],在本文第三章中也有相關對比實驗.
ALBERT主要進行了三方面的改進:
(1)因式分解詞嵌入?yún)?shù):將詞嵌入?yún)?shù)矩陣因式分解為兩個小矩陣.先將單詞向量V映射到低維空間E,再映射到高維隱藏空間H.BERT中E與H始終相等,但詞向量不需要這么高的維度.通過因式分解能夠將詞嵌入?yún)?shù)從O(V×H)降低到O(V×E+E×H),當H?E時,參數(shù)急劇減小,更高效的提升模型效率.原理如圖4所示.

圖4 因式分解詞嵌入?yún)?shù)原理圖
(2)用SOP(Sentence-order prediction)損失替換NSP(Next-sentence prediction)損失:相比NSP,SOP對于句子間語義關系的學習更加優(yōu)秀.在替換為SOP損失后,模型對句子之間的連貫性更加關注,能夠顯著提升模型在下游編碼任務中的性能.
(3)跨層參數(shù)共享:防止參數(shù)隨著網絡深度的加深而復雜.ALBERT采用Transformer共享全連接層和Attention層,也就是說它共享隱藏層的所有參數(shù),Transformer采用這個方法后參數(shù)會少很多同時提升模型的訓練速度.例如BERT_base隱藏層為12,ALBERT參數(shù)共享后變?yōu)橐粚樱鲗又g參數(shù)仍相互獨立.參數(shù)共享后能夠有效減少模型參數(shù)量,在不顯著影響模型性能的情況下提高了模型效率.參數(shù)量計算如公式(6)所示,其中L為參數(shù)層數(shù)量.
O(12×L×H×H)→O(12×H×H)
(6)
ALBERT大幅度減少模型參數(shù)也只是略微或不減少模型訓練精度,能夠實現(xiàn)輕量化的網絡威脅情報命名實體識別功能,綜合加強了網絡威脅情報命名實體識別能力.
LSTM(Long Short-Term Memory,LSTM)[23]是專門為處理序列數(shù)據(jù)而提出的.通過門控概念實現(xiàn)長時記憶,解決了長序列帶來的長期依賴問題,適用于網絡威脅情報領域的命名實體識別.其結構如圖5所示.

圖5 LSTM單元結構圖
LSTM中包含三個門結構:遺忘門、輸入門和輸出門.計算公式如下:
it=σ(Wixxt+Wihht-1+bi)
(7)
ft=σ(Wfxxt+Wfhht-1+bf)
(8)
ot=σ(Woxxt+Wohht-1+bo)
(9)
(10)
ht=ot?tanh(ct)
(11)


(12)
BiLSTM在處理較長的網絡威脅情報時,仍然存在語義信息丟失的問題.將BiLSTM與注意力結合,當前處理的單詞與句子中的所有詞對齊后,對結果進行歸一化得到每個詞的權重,能有效突出關鍵詞在文本數(shù)據(jù)中的作用.引入注意矩陣A來計算當前目標向量與序列中所有向量之間的關系,將當前目標向量xt與序列中第j個向量xj進行比較,得到注意矩陣中的注意權重向量rt,j.
(13)
f(xt,xj)=Wa(xt-xj)T(xt-xj)
(14)
(15)
at=func(Wr[rt∶hj])
(16)
式(13)~(16)中:Wa是模型的權重矩陣,st為加權向量,at為注意力層的輸出.
命名實體識別任務中,BiLSTM只輸出標簽中得分最高的序列標簽,而忽略了標簽之間存在很強的依賴性.在CTI-ALBC模型中,CRF網絡位于末端作為序列標記層,并輸出對應的單個字符的序列標簽.CRF充分考慮了句子上下文的相關性,保證了序列標注的準確性.假設輸入序列為X(x1,x2,…,xn),對應的模型預測標簽序列為Y(y1,y2,…,yn),那么標簽Y為X的正確標簽的得分為S.
(17)
Y*=argmaxS(X,Y)
(18)
與一般領域的命名實體識別不同,網絡威脅情報缺乏大規(guī)模公開可用的數(shù)據(jù)集和標注方法.因此,本文使用爬蟲工具從全球多家網絡安全公司、政府機構網站等開源威脅情報網站收集和分析了200多份威脅情報報告.每一份威脅情報報告均由全球知名安全公司或政府機構發(fā)布,在對報告清洗并刪除了不可用的部分實體(例如頁碼、注釋和水印等)后,由具有豐富網絡安全知識的領域專家進行分析和標注,以確保標注數(shù)據(jù)集的質量.該數(shù)據(jù)集共包含65 885個單詞,可用于開發(fā)和評估威脅情報領域的其他人工智能模型,比如信息提取、知識圖譜等.在本文中用于威脅情報領域的命名實體識別模型評估.
本文使用Brat Rapid Annotation Tool(Brat)來標注威脅情報,這是一種基于Web的文本標注工具,并選擇了文本標注領域的行業(yè)標準標注形式BIO標注.對于威脅情報中的每個實體,將實體的第一個單詞標記為“B-實體類型”,第二個及以后的單詞標記為“I-實體類型”,沒有實體的標記為“O”.由于pdf上有很多不規(guī)則的數(shù)據(jù)或網頁廣告,在標注數(shù)據(jù)之前,先對收集的數(shù)據(jù)進行預處理,刪除網頁上非必要的信息,然后轉化為文本格式,之后對每個單詞進行標記.例如“32-bit Windows executable”為惡意工具,B-MalTool和I-MalTool用于標記該詞屬于MalTool類別,且“B-”為第一個單詞而“I-”為非第一個的單詞.圖6為使用Brat的標注過程,表1為威脅情報標注樣本,圖7為網絡威脅情報數(shù)據(jù)集部分標注結果.

圖6 Brat標注工具

表1 威脅情報標注樣本

圖7 網絡威脅情報標注結果
根據(jù)網絡威脅情報的特點和領域專家的經驗知識,結合威脅情報標準STIX[24].本文在數(shù)據(jù)集中選擇并標注了9個類別,包括黑客組織、攻擊、網絡安全團隊、惡意工具、目的、行業(yè)、攻擊方式、漏洞、特征,這些類別能夠很好的描述威脅情報以及情報中蘊含的信息.這9個類別在數(shù)據(jù)集中對應的標簽分別是HackGro、Att、SecResTeam、MalTool、Purp、Idus、AttWay、Exp、Features.表2為部分實體對應的標簽及描述示例.

表2 部分實體對應的標簽及描述示例
將本文標注數(shù)據(jù)集(Cti-E)與Honeynet數(shù)據(jù)集進行比較,后者是一個相對成熟的數(shù)據(jù)集,用于反應黑客的攻擊模式,包括攻擊行為、攻擊時間、攻擊目的等.其中Honeynet數(shù)據(jù)集中的“Entity”在本文數(shù)據(jù)集中細分為“HackGro”和“Att”,“Action”細分為“Purp”和“AttWay”,“Modifier”是一些沒有意義的動詞或詞組,沒有什么價值.本文所標注的數(shù)據(jù)集不僅在類別數(shù)量上超過Honeynet,在每個類別的實例數(shù)量上也有所增加.Honeynet數(shù)據(jù)集主要用于小范圍黑客攻擊的機器學習,而本文提供的數(shù)據(jù)集在此基礎上進行了學習和補充,并將其用于威脅情報領域的機器學習.兩個數(shù)據(jù)集中每個實體的類型和數(shù)量如圖8所示.

圖8 兩個數(shù)據(jù)集中每個實體的類型和數(shù)量
本文標注的數(shù)據(jù)集中有65 885個詞匯,所有實體分為9類,共19種標簽類型.其中,O標簽實體51 588個,非O標簽實體14 297個,帶有非O標簽的實體占總詞匯量的21.7%.每個標簽的具體數(shù)量如表3所示.

表3 每個標簽的具體數(shù)量
本文采用準確率(P)、召回率(R)和F1分數(shù)作為衡量識別性能的指標.具體評估指標的計算公式如下:
(19)
(20)
(21)
模型CTI-ALBC流程如圖9所示.首先使用爬蟲工具爬取威脅情報,然后進行數(shù)據(jù)清洗,將不需要的信息刪除整理,形成所需的威脅情報數(shù)據(jù)集.接著使用專業(yè)知識對數(shù)據(jù)集實體標注,共分為9類.為了保證訓練數(shù)據(jù)和測試數(shù)據(jù)的分布近似匹配,隨機選擇原始文本的70%作為訓練集,15%作為驗證集,15%作為測試集.之后將通過ALBERT模型后得到的預訓練字符向量輸入BiLSTM和CRF模型最后輸出最佳預測標簽.

圖9 模型CTI-ALBC實驗流程
在模型的實驗參數(shù)上,采用了ALBERT預訓練語言模型,它包含12層、768個隱藏維度、12個注意力頭和12 M參數(shù).此外,使用Adam作為模型優(yōu)化器,最大序列長度設置為128,隱藏單元的數(shù)量設置為128,學習率設置為0.001,Dropout設置為0.5,Clip設置為5,Batch_size大小為32.模型算法訓練過程在算法1中給出.

算法1 模型訓練輸入 X=(x1,x2,…,xn)輸出 Y=(y1,y2,…,yn)1 for each epoch do2 for each batch do3 參數(shù)初始化;4 ALBERT模型正向傳遞字符級特征;5 BiLSTM-CRF模型前向傳遞和自動學習以提取特征;6 前向狀態(tài)的前向傳遞;7 后向狀態(tài)的正向傳遞;8 CRF向前和向后傳遞并計算序列的全局似然概率;9 BiLSTM-CRF模型反向傳遞;10 正向狀態(tài)的反向傳遞;11 后向狀態(tài)的后向傳遞;12 更新參數(shù);13 end for14 end for
本實驗所采用的環(huán)境如表4所示.

表4 實驗環(huán)境
為了驗證本文提出的CTI-ALBC模型在威脅情報領域命名實體識別上具有更優(yōu)的性能,在本文自標注數(shù)據(jù)集上進行實驗.同樣的條件下對比模型均使用傳統(tǒng)Word2Vec嵌入方法,而本文的聯(lián)合模型使用BERT方法.為減少實驗結果誤差,將每個實驗重復6次并計算平均值,實驗結果如表5所示.從表5可以看出,對于P、R、F1和參數(shù)量,本文提出的模型取得了最好的結果.
從表5還可以看到,基于Word2Vec算法的模型與BERT-finetuning模型性能持平,但是基于BERT預訓練的聯(lián)合模型與其相比,所有指標都有顯著的提高.其中,BERT-CRF模型比CRF模型的準確率,召回率和F1值分別提高了7.67%,15.96%和11.79%;BERT-LSTM-CRF模型在LSTM-CRF模型的基礎上準確率提高了5.49%,召回率提高了3.68%,F(xiàn)1評分提高了4.61%;BERT-BiLSTM-CRF模型平均比BiLSTM-CRF模型的準確率高6.22%,召回率高6.15%,F(xiàn)1值高6.18%;ALBERT-BiLSTM-CRF模型的性能與BERT-BiLSTM-CRF模型幾乎相同,但F1值相對較高,且空間利用更小.

表5 不同模型命名實體識別結果
可以看出,對比傳統(tǒng)模型,嵌入BERT模型后,在準確率,召回率和F1值上分別有不同程度的提高.這是因為網絡威脅情報中有些實體需要根據(jù)上下文來判斷語義信息,而使用動態(tài)詞向量方法處理文本可以得到更深層次的語義表示,提取的詞向量包含更多的語義信息.這表明本文提出的模型可以識別網絡威脅領域的特殊詞匯且效果更好.
另外還將數(shù)據(jù)集Honeynet在CTI-ALBC模型上進行實驗,實驗結果表明本文自標注的數(shù)據(jù)集在算法模型上有更好的表現(xiàn).這是因為本文所標注數(shù)據(jù)集在實體類型和實體數(shù)量方面都高于數(shù)據(jù)集Honeynet,數(shù)據(jù)量更豐富、實體邊界更加清晰.
針對網絡威脅情報命名實體識別模型在訓練上的時間和內存開銷問題.在表6中,本文通過調整層數(shù)和隱藏維度來對比在不同情況下BERT和ALBERT兩種模型的時間和內存開銷以及識別準確率.

表6 BERT與ALBERT內存及時間消耗對比
從表6可以看出,在層數(shù)和隱藏維度相同的情況下,ALBERT在內存開銷和識別準確度上都明顯優(yōu)于BERT,在時間開銷上略微優(yōu)于BERT;在層數(shù)、隱藏維度減半的情況下,ALBERT內存和時間開銷大幅度降低,同時識別準確率與BERT基本持平.由此可知,ALBERT利用有限的時間和空間資源可以達到與BERT正常工作狀態(tài)相同的識別效率,更適用于網絡威脅情報領域日益遞增的情報數(shù)據(jù)和分析工作.
本文利用CTI-ALBC模型識別各類網絡威脅情報實體的實驗結果如表7所示.表7顯示了每個類別的P、R和F1值.
從表7和圖10中可以看出,對于每個類別的實體,可以發(fā)現(xiàn)實體類別“HackGro”、“Att”、“AttWay”、“Exp”、“Features”具有更好的識別效果.對于實體類別“SecResTeam”、“MalTool”、“Purp”,較低的召回率是其F1分數(shù)不理想的原因,這些實體沒有特定的詞匯形式,且大部分是不同的,低重復率不利于深度學習.在未來的工作中,可以考慮改變這些類型實體的定義,以便更清楚的確定這些實體的類型.

表7 不同類型命名實體識別結果

圖10 9類實體在不同模型上的F1
圖11顯示了不同數(shù)據(jù)集大小對本文提出的模型的影響.從圖11可以看出,數(shù)據(jù)集的大小對實體識別的結果有很大的影響.隨著網絡威脅情報數(shù)據(jù)的增加,識別準確率大大提高,但當網絡安全數(shù)據(jù)超過一定閾值時,識別準確率隨著數(shù)據(jù)集的進一步增加而趨于穩(wěn)定.這一現(xiàn)象與本文自標注的數(shù)據(jù)集數(shù)量相一致,即本文提出的模型可以有效地處理不同規(guī)模的數(shù)據(jù)集,并顯著提高識別能力.

圖11 模型在不同數(shù)據(jù)集下的性能
針對網絡威脅情報實體識別任務,本文在ALBERT和BiLSTM-CRF的基礎上,提出一種改進的網絡威脅情報命名實體識別模型——CTI-ALBC模型.該模型使用ALBERT預訓練模型來提取領域特征詞向量,而不是傳統(tǒng)的靜態(tài)詞向量模型,使下一層得到更多可學習的特征,然后輸入到BiLSTM模型中進行特征提取,最后通過CRF模型輸出網絡威脅情報中黑客組織、攻擊、網絡安全團隊等實體及其標注標簽.
在網絡威脅情報語料數(shù)據(jù)集上的實驗表明,CTI-ALBC模型的評價指標明顯優(yōu)于其他傳統(tǒng)模型,準確率和召回率分別為91.38%、93.05%,F(xiàn)1值為92.21%.在實現(xiàn)BERT模型同等準確率情況下,本模型時間開銷降低53.1%,空間開銷降低95.2%,可有效應用于網絡威脅情報領域的命名實體識別任務.下一步的研究工作將繼續(xù)對各種實體進行標注,并擴展實體實驗數(shù)據(jù)集,使模型在所有實體的識別上都能取得更好的效果.