范曉霞 周安民 鄭榮鋒 李孟銘
1(四川大學網絡空間安全學院 成都 610065) 2(四川大學電子信息學院 成都 610065)
(fanxxbili@gmail.com)
暗網(darknet)是指具有高度匿名性的網絡,相對于普通人能輕易接觸到的表網(clearnet),暗網需要使用洋蔥路由器(the onion router, Tor)等專門的工具進行訪問.Tor能阻止他人進行流量分析,是一個可以用來保護用戶隱私、避免網絡監控的軟件.經由Tor的數據包經過多個延遲代理,且不會在服務器上留下日志記錄.并且,Tor會對通信流量進行加密,并以固定的間隔時間改變路由[1].由于暗網的匿名特性,暗網變成了違法犯罪者進行違法活動的天堂.暗網上有許多的違法商品交易網站,也就是暗網市場(darknet markets, DNMs).例如,“絲綢之路”(Silk Road)就是第1個大規模違法商品交易暗網市場.暗網市場給買方和賣方提供了交易違法商品的平臺,包括毒品、武器、假鈔、性奴和網絡攻擊工具等大量非法商品[2],對網絡安全從業者和網絡安全相關部門來說是一個非常有價值的網絡威脅情報來源.同時,從威脅發現的角度來講,暗網數據也是非常有價值的情報.惡意軟件,如病毒和木馬通常早于表網出現在暗網市場上,如何從暗網市場獲取有效信息是一個重要的研究課題,而從暗網市場文本獲取安全相關信息的第1步就是識別出相關的命名實體.
命名實體識別(named entity recognition, NER)抽取有效信息是自然語言處理(natural language processing, NLP)的重要步驟.命名實體識別是許多任務的基礎方法,廣泛應用于信息抽取、關系抽取、語義分析、信息檢索、問答系統、機器翻譯等領域.通常,一般的命名實體識別系統只能識別出通用命名實體.例如,由斯坦福大學開發的自然語言處理工具Stanford NER(Stanford named entity recognitionizer)用于標記文本中的單詞序列,如用“PERSON”標記人名,“ORGANIZATION”標記像WTO和WHO一類的組織實體,“LOCATION”標記地名,“O”標記其他非實體單詞.由于信息安全領域和暗網領域的標注文本不足,應用于普通數據集的命名實體識別系統不能有效識別網絡安全相關的命名實體,不同的研究領域關注不同的命名實體,如:生物醫學領域關注疾病和藥物;建筑領域關注材料和結構.此外,暗網市場主要是大量的短文本,還包含拼寫錯誤、縮寫等刻意和非刻意的難以識別的單詞.基于以上考慮,相比普通領域,網絡安全領域的命名實體識別更加困難,構建一個針對暗網市場的命名實體識別系統是十分必要且重要的.
暗網市場又被稱為加密市場和黑市,支持違法商品的交易,保護賣家和買家信息的匿名性.暗網市場屢禁不止,支持有關監管機構的工作,保護公眾網絡安全迫在眉睫.黃莉崢等人[3]提出了一種暗網文本主動獲取的框架,收集暗網威脅情報,幫助網絡安全從業人員提前應對可能的未知威脅.Nunes等人[4]提出一個系統,從暗網論壇和黑市收集信息,識別出現的網絡威脅.該系統實現了平均每周識別305個高質量的網絡威脅預警,包括一些還未大規模應用在表網攻擊的惡意軟件和漏洞.Han等人[5]提出一種基于Graphical Gaussian模型和Graphical Lasso算法的流量分析方法,可以實時監測通信流量中的惡意軟件流量.Han等人[5]的工作使實時監測惡意流量成為可能,并能更快地響應攻擊.由以上這些文章可知,暗網已成為一個關鍵的威脅情報來源,基于暗網研究的重要性不言而喻.
近年來,命名實體識別已經應用于許多領域.在命名實體識別早期階段,主要是基于規則[6]的和基于字典[7]的方法,在某些特定領域的效果表現良好,但是這種方法十分耗時耗力.為了克服這種限制,命名實體識別開始使用機器學習算法,如支持向量機(support vector machine, SVM)、決策樹、Adaboost等.但是,傳統的機器學習方法嚴重依賴手工特征,需要專業領域的專家來設計特征.隨著人工智能和感知計算的發展,命名實體識別也開始使用神經網絡,不再需要特征工程.廣泛使用的神經網絡模型包括卷積神經網絡(convolutional neural network, CNN)、遞歸神經網絡(recurrent neural network, RNN)、長短時記憶網絡(long short-term memory, LSTM)等等.謝騰等人[8]提出了一種基于BERT-BiLSTM-CRF模型的命名實體識別方法,BERT作語言預訓練得到動態詞向量,相較于傳統的語言預訓練模型訓練出來的靜態詞向量在中文命名實體識別中更有優勢.彭嘉毅等人[9]在命名實體識別中引入主動學習算法,使用較少的標注樣本達到了較好的識別效果.命名實體識別技術在不斷向前發展.
本文提出了一種基于深度學習的暗網市場命名實體識別系統DNER(darknet named entity recognition),檢測5種命名實體,分別是:毒品類(DRUG)、黑客工具類(TOOL)、網絡安全術語類(TERM)、信息販賣類(INFORMATION)和武器類(WEAPON).該系統架構由4部分構成,分別是數據預處理、數據標注、數據向量化、深度學習訓練,如圖1所示:

圖1 NDER系統框架
本模型的具體流程如下:1)數據預處理.通過刪除帖子發布日期等其他無用信息,去除冗余干擾信息.對文本進行詞形還原,排除包括名詞單復數和動詞時態的影響.2)數據標注.文本數據的每個單詞都將被標注一個詞性(part of speech, POS)和一個命名實體標簽.單詞詞性的提取使用NLKT python工具包,命名實體的標注采用基于字典的方法.3)文本向量化.結合單詞向量化和字符向量化,CNN算法提取單詞字符的形態信息并轉化為字符級表示.4)深度學習訓練.BiLSTM神經網絡根據文本的詞級向量和字符向量序列收集特征,并預測命名實體標簽.最后,CRF對BiLSTM序列標注結果的相關性進行約束,提高序列標注的準確性.
暗網市場的命名實體標注文本很少,大多是短文本內容,并不遵循嚴格的語法規則,且有大量拼寫錯誤和縮寫.為了解決以上這些問題,第1步就是刪除冗余的詞句,如發帖日期和重復回復,并且修正錯誤拼寫.通過瀏覽數據集,建立一個可能被大量錯誤拼寫的單詞詞典,匹配數據集的單詞和詞典并進行替換.修正這些錯誤和冗余信息使模型的表現效果更好.
由于缺少已標注命名實體的數據集,需要預先對數據集添加標注信息.本文使用NLTK python工具包(NLTK是一個文本處理庫,用于分類、詞匯切分、詞干提取、標記、解析和語義推理)作詞性標注.POS標簽代表了一個單詞的性質和語義功能,一個單詞的詞性必須為名詞,才有可能是一個命名實體,詞性對于命名實體的識別有很大幫助.然后根據建立的網絡安全相關命名實體字典,采用基于字典的辦法對數據集進行命名實體標注.經過這一步驟,數據集中的句子被切分為一個個單詞,每個單詞都有一個詞性標注和一個命名實體標簽,作為后續詞向量化和字符向量化的輸入.
通常認為,詞向量可以從文本中獲取有用的語義和句法信息.Word2Vec采用淺層神經網絡將文本詞向量化[10],主要有2個模型,分別是CBOW模型和Skip-gram模型.CBOW模型根據上下文預測中心單詞,而Skip-gram模型基于單詞預測上下文.CBOW模型的時間復雜度更低,訓練時間更少,所以本文采用CBOW模型進行文本詞向量化.
詞向量獲取單詞的形態信息,如前綴和后綴,而字符向量適合提取拼錯詞、新詞(例如,Satoshi作為比特幣的最小單位,2019年才被添加進牛津英語詞典)的特征[11].CNN和RNN均能進行字符向量化,但是CNN的訓練速度優于RNN,本文選擇CNN作為文本向量化的模型.CNN對一個單詞字符向量化的處理過程如圖2所示:

圖2 CNN提取字符特征的過程
長短時記憶網絡(long short term memory, LSTM)是一種特殊的遞歸神經網絡.BiLSTM層將上層向量化后的數據作為輸入,由4個不同結構的重復的模塊連接起來[12].RNN支持捕獲長文的上下文信息用于當前訓練,但是本文模型的應用場景是基于暗網市場.暗網市場文本是短文本,所以本文采用LSTM算法.并且,針對遞歸神經網絡RNN的梯度消失和梯度爆炸問題,LSTM使用門(gate)機制有效解決了這個問題.LSTM單元結構如圖3所示:

圖3 LSTM單元結構
一個LSTM單元就等同于一個神經細胞.LSTM單元內的門(gate)選擇性地讓信息通過,它由一個Sigmoid神經網絡層和一個點陣乘法運算組成.LSTM單元的運算過程如下:
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)
其中,i代表輸入門,f代表忘記門,o代表輸出門.σ代表Sigmoid神經網絡層.W和b分別代表權重和Sigmoid層的常數.C代表神經細胞狀態.
然而,LSTM是單向的基于上文或下文進行分析的模型[13],在很多NLP任務場景,基于上下文的雙層雙向語言模型相比單向模型更有優勢,能夠更好地捕獲變長且雙向的n-gram信息.因此,本文采用BiLSTM神經網絡對輸入序列進行訓練,通過在輸入和輸出時間步長在向前和向后的2個方向上獲得最大的輸入序列,并輸出每一個單詞或詞組屬于某個實體類別的概率,最后送入CRF層.
條件隨機場CRF模型是常用于命名實體識別的圖形模型.根據BiLSTM層的輸出結果,計算輸出一個條件概率分布,預測最終的命名實體標簽,保證標注結果的有效性[14].本文采用線性鏈條件隨機場(linear-CRF).假設有2組隨機變量:X=(X1,X2,…,Xn),Y=(Y1,Y2,…,Yn),那么線性CRF的條件概率P(Y|X)計算過程如下:
(7)
Z(x)是歸一化因子.
(8)
其中,fk是特征方程,ωk是對應的權重.CRF能學習到一些約束條件,對最后的預測結果進行約束.特別是當預測一些多詞組合的命名實體時,CRF能自動預測到句子開頭的單詞標簽應該是“B-”或者“O”,而不可能是“I-”.
為了構建暗網市場安全語料庫,本文采用由Branwen開源的暗網市場數據文本[15],包括89個暗網市場數據、37個論壇數據,如Abraxas,Agora,Silk Road等知名網站.通過刪除無用信息,如HTML、圖片等內容以減少噪音干擾后,余下一共10 666條帖子.再刪除文件大小小于1 000 KB的文件,剩余6 990個文件.最后這些數據以8∶1∶1的比例隨機劃分為訓練集、測試集和驗證集.
通過觀察收集到的暗網市場文本數據,本文收集了暗網領域命名實體字典,一共分為5類,統計信息如表1所示.毒品類(DRUG)包括Weed,Cannabis,Shroom,Cocaine等;個人信息類(INFORMATION)包括Fake ID,Driving License,Credit Card等;安全術語類(TERM)包括Scam,Malware,DDOS,Botnet等;黑客工具類(TOOL)包括VPN,Napster,Ransomware,Hidemyass等;武器類(WEAPON)包括Rifle,Explosive,Gun,Pistol等.

表1 網絡安全命名實體統計
考慮到命名實體需要聯合標注的情況,如“hack ebook”,本文采用IOB標注方式.B代表命名實體開始單詞,I代表命名實體中間單詞,O代表這個單詞不是命名實體.因此,標注結果有11種類型,分別是B-DRUG,I-DRUG,B-INFORMATION,I-INFORMATION,B-TERM,I-TERM,B-TOOL,I-TOOL,B-WEAPON,I-WEAPON,O.
實驗環境的軟硬件配置信息如下.CPU:Intel?Xeon?CPU E3-1231 v3@3.40 GHz;內存:8 GB;GPU:NVIDIA Corporation GK208 B;操作系統:Linux version 4.15.0-107-generic.
本文評價指標采用精確率P、召回率R和調和平均數F1,其計算公式為:

(9)

(10)

(11)
其中,TP表示標注為陽性的樣本中正確的數量,FP表示標注為陰性的樣本中錯誤的數量,FN表示標注為陽性的樣本中錯誤的數量.
本實驗基于字符向量和詞向量,采用BiLSTM和CRF算法訓練模型.設置初始學習率為0.005,L2正則化權重設置為0.000 2,可以在某種程度上避免過度擬合.同時,所有的數字也被置換為0,因為具體的數字會導致過擬合.
3.3.1 實驗1:與其他模型的比較
本文比較了CNN-BiLSTM-CRF模型、BiLSTM-CRF模型和LSTM-CRF模型在本實驗數據集的命名實體識別效果,討論神經網絡中每一層級的作用,如表2所示:

表2 3個模型的比較結果 %
從表2可知,CNN-BiLSTM-CRF模型的識別效果要好于BiLSTM-CRF模型,F1值得分高于0.65%,說明相比只有詞向量的模型,字符向量能夠增加識別準確率.Na等人[16]的研究表明,字符級向量能夠表達詞的形態特征,本文的研究結果也驗證了這一結果的正確性.并且,BiLSTM-CRF模型比LSTM-CRF模型的F1值高0.46%,說明BiLSTM在序列標注任務方面相對于LSTM具有優越性.可以推測,因為BiLSTM的雙向學習,即不僅從序列前端學習到末尾,而且從序列后端學習到前端,具有更好的學習效果.
3.3.2 實驗2:不同類型實體的結果比較
本文分別比較了每一種命名實體的準確率P,召回率R和F1值,如表3所示.
從表3可知,每種命名實體的識別效果都不盡相同.命名實體數量最多的2個種類DRUG和TERM,擁有最高的F1值,而INFORMATION類的命名實體數量最少,相對的F1值也最小.通過對表3結果的初步觀察,可以看出識別效果可能與命名實體的數量有關.為了驗證這種猜想,本文將表3的數據直觀展示在了折線圖里,以便觀察數量和準確率的關系.

表3 不同種類的命名實體識別效果比較
如圖4所示,當命名實體的數量增加時,其準確率、召回率和F1值也會升高,反之,則隨之下降.實驗結果與前文猜測一致,可以推測,命名實體的數量越多,模型可以從訓練集學到的特征就越多,識別效果就越準確.

圖4 不同種類命名實體的結果比較
本文提出了一種命名實體識別系統DNER,基于CNN-BiLSTM-CRF模型的暗網市場命名識別系統,結合了字符特征與詞向量特征.由于缺少已標注的數據集,本文選擇了基于字典的方式來標注數據集.詞向量和字符向量結合的方式同時提取了詞級和字符級的特征,幫助BiLSTM神經網絡訓練數據以取得更好的識別效果,然后CRF算法約束序列標簽之間的相關性.基于上述過程,本文得到了很好的實驗效果,闡述了DNER系統在暗網市場文本上的命名實體識別效果比其他模型的優越性.對于小眾領域的實體類型,該系統可顯著提高識別效果.
在將來的研究工作中,希望可以將該系統應用于知識圖譜任務以建立一個暗網市場的知識圖譜,并繼續優化該系統以更低的代價實現更好的準確率.此外,繼續探索此模型在自然語言處理領域任務上的表現效果,如機器翻譯、問答系統,希望本文工作為未來的研究者作出一點微小的貢獻.