范曉霞 周安民 鄭榮鋒 李孟銘
1(四川大學(xué)網(wǎng)絡(luò)空間安全學(xué)院 成都 610065) 2(四川大學(xué)電子信息學(xué)院 成都 610065)
(fanxxbili@gmail.com)
暗網(wǎng)(darknet)是指具有高度匿名性的網(wǎng)絡(luò),相對(duì)于普通人能輕易接觸到的表網(wǎng)(clearnet),暗網(wǎng)需要使用洋蔥路由器(the onion router, Tor)等專門的工具進(jìn)行訪問.Tor能阻止他人進(jìn)行流量分析,是一個(gè)可以用來保護(hù)用戶隱私、避免網(wǎng)絡(luò)監(jiān)控的軟件.經(jīng)由Tor的數(shù)據(jù)包經(jīng)過多個(gè)延遲代理,且不會(huì)在服務(wù)器上留下日志記錄.并且,Tor會(huì)對(duì)通信流量進(jìn)行加密,并以固定的間隔時(shí)間改變路由[1].由于暗網(wǎng)的匿名特性,暗網(wǎng)變成了違法犯罪者進(jìn)行違法活動(dòng)的天堂.暗網(wǎng)上有許多的違法商品交易網(wǎng)站,也就是暗網(wǎng)市場(chǎng)(darknet markets, DNMs).例如,“絲綢之路”(Silk Road)就是第1個(gè)大規(guī)模違法商品交易暗網(wǎng)市場(chǎng).暗網(wǎng)市場(chǎng)給買方和賣方提供了交易違法商品的平臺(tái),包括毒品、武器、假鈔、性奴和網(wǎng)絡(luò)攻擊工具等大量非法商品[2],對(duì)網(wǎng)絡(luò)安全從業(yè)者和網(wǎng)絡(luò)安全相關(guān)部門來說是一個(gè)非常有價(jià)值的網(wǎng)絡(luò)威脅情報(bào)來源.同時(shí),從威脅發(fā)現(xiàn)的角度來講,暗網(wǎng)數(shù)據(jù)也是非常有價(jià)值的情報(bào).惡意軟件,如病毒和木馬通常早于表網(wǎng)出現(xiàn)在暗網(wǎng)市場(chǎng)上,如何從暗網(wǎng)市場(chǎng)獲取有效信息是一個(gè)重要的研究課題,而從暗網(wǎng)市場(chǎng)文本獲取安全相關(guān)信息的第1步就是識(shí)別出相關(guān)的命名實(shí)體.
命名實(shí)體識(shí)別(named entity recognition, NER)抽取有效信息是自然語言處理(natural language processing, NLP)的重要步驟.命名實(shí)體識(shí)別是許多任務(wù)的基礎(chǔ)方法,廣泛應(yīng)用于信息抽取、關(guān)系抽取、語義分析、信息檢索、問答系統(tǒng)、機(jī)器翻譯等領(lǐng)域.通常,一般的命名實(shí)體識(shí)別系統(tǒng)只能識(shí)別出通用命名實(shí)體.例如,由斯坦福大學(xué)開發(fā)的自然語言處理工具Stanford NER(Stanford named entity recognitionizer)用于標(biāo)記文本中的單詞序列,如用“PERSON”標(biāo)記人名,“ORGANIZATION”標(biāo)記像WTO和WHO一類的組織實(shí)體,“LOCATION”標(biāo)記地名,“O”標(biāo)記其他非實(shí)體單詞.由于信息安全領(lǐng)域和暗網(wǎng)領(lǐng)域的標(biāo)注文本不足,應(yīng)用于普通數(shù)據(jù)集的命名實(shí)體識(shí)別系統(tǒng)不能有效識(shí)別網(wǎng)絡(luò)安全相關(guān)的命名實(shí)體,不同的研究領(lǐng)域關(guān)注不同的命名實(shí)體,如:生物醫(yī)學(xué)領(lǐng)域關(guān)注疾病和藥物;建筑領(lǐng)域關(guān)注材料和結(jié)構(gòu).此外,暗網(wǎng)市場(chǎng)主要是大量的短文本,還包含拼寫錯(cuò)誤、縮寫等刻意和非刻意的難以識(shí)別的單詞.基于以上考慮,相比普通領(lǐng)域,網(wǎng)絡(luò)安全領(lǐng)域的命名實(shí)體識(shí)別更加困難,構(gòu)建一個(gè)針對(duì)暗網(wǎng)市場(chǎng)的命名實(shí)體識(shí)別系統(tǒng)是十分必要且重要的.
暗網(wǎng)市場(chǎng)又被稱為加密市場(chǎng)和黑市,支持違法商品的交易,保護(hù)賣家和買家信息的匿名性.暗網(wǎng)市場(chǎng)屢禁不止,支持有關(guān)監(jiān)管機(jī)構(gòu)的工作,保護(hù)公眾網(wǎng)絡(luò)安全迫在眉睫.黃莉崢等人[3]提出了一種暗網(wǎng)文本主動(dòng)獲取的框架,收集暗網(wǎng)威脅情報(bào),幫助網(wǎng)絡(luò)安全從業(yè)人員提前應(yīng)對(duì)可能的未知威脅.Nunes等人[4]提出一個(gè)系統(tǒng),從暗網(wǎng)論壇和黑市收集信息,識(shí)別出現(xiàn)的網(wǎng)絡(luò)威脅.該系統(tǒng)實(shí)現(xiàn)了平均每周識(shí)別305個(gè)高質(zhì)量的網(wǎng)絡(luò)威脅預(yù)警,包括一些還未大規(guī)模應(yīng)用在表網(wǎng)攻擊的惡意軟件和漏洞.Han等人[5]提出一種基于Graphical Gaussian模型和Graphical Lasso算法的流量分析方法,可以實(shí)時(shí)監(jiān)測(cè)通信流量中的惡意軟件流量.Han等人[5]的工作使實(shí)時(shí)監(jiān)測(cè)惡意流量成為可能,并能更快地響應(yīng)攻擊.由以上這些文章可知,暗網(wǎng)已成為一個(gè)關(guān)鍵的威脅情報(bào)來源,基于暗網(wǎng)研究的重要性不言而喻.
近年來,命名實(shí)體識(shí)別已經(jīng)應(yīng)用于許多領(lǐng)域.在命名實(shí)體識(shí)別早期階段,主要是基于規(guī)則[6]的和基于字典[7]的方法,在某些特定領(lǐng)域的效果表現(xiàn)良好,但是這種方法十分耗時(shí)耗力.為了克服這種限制,命名實(shí)體識(shí)別開始使用機(jī)器學(xué)習(xí)算法,如支持向量機(jī)(support vector machine, SVM)、決策樹、Adaboost等.但是,傳統(tǒng)的機(jī)器學(xué)習(xí)方法嚴(yán)重依賴手工特征,需要專業(yè)領(lǐng)域的專家來設(shè)計(jì)特征.隨著人工智能和感知計(jì)算的發(fā)展,命名實(shí)體識(shí)別也開始使用神經(jīng)網(wǎng)絡(luò),不再需要特征工程.廣泛使用的神經(jīng)網(wǎng)絡(luò)模型包括卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network, CNN)、遞歸神經(jīng)網(wǎng)絡(luò)(recurrent neural network, RNN)、長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(long short-term memory, LSTM)等等.謝騰等人[8]提出了一種基于BERT-BiLSTM-CRF模型的命名實(shí)體識(shí)別方法,BERT作語言預(yù)訓(xùn)練得到動(dòng)態(tài)詞向量,相較于傳統(tǒng)的語言預(yù)訓(xùn)練模型訓(xùn)練出來的靜態(tài)詞向量在中文命名實(shí)體識(shí)別中更有優(yōu)勢(shì).彭嘉毅等人[9]在命名實(shí)體識(shí)別中引入主動(dòng)學(xué)習(xí)算法,使用較少的標(biāo)注樣本達(dá)到了較好的識(shí)別效果.命名實(shí)體識(shí)別技術(shù)在不斷向前發(fā)展.
本文提出了一種基于深度學(xué)習(xí)的暗網(wǎng)市場(chǎng)命名實(shí)體識(shí)別系統(tǒng)DNER(darknet named entity recognition),檢測(cè)5種命名實(shí)體,分別是:毒品類(DRUG)、黑客工具類(TOOL)、網(wǎng)絡(luò)安全術(shù)語類(TERM)、信息販賣類(INFORMATION)和武器類(WEAPON).該系統(tǒng)架構(gòu)由4部分構(gòu)成,分別是數(shù)據(jù)預(yù)處理、數(shù)據(jù)標(biāo)注、數(shù)據(jù)向量化、深度學(xué)習(xí)訓(xùn)練,如圖1所示:
圖1 NDER系統(tǒng)框架
本模型的具體流程如下:1)數(shù)據(jù)預(yù)處理.通過刪除帖子發(fā)布日期等其他無用信息,去除冗余干擾信息.對(duì)文本進(jìn)行詞形還原,排除包括名詞單復(fù)數(shù)和動(dòng)詞時(shí)態(tài)的影響.2)數(shù)據(jù)標(biāo)注.文本數(shù)據(jù)的每個(gè)單詞都將被標(biāo)注一個(gè)詞性(part of speech, POS)和一個(gè)命名實(shí)體標(biāo)簽.單詞詞性的提取使用NLKT python工具包,命名實(shí)體的標(biāo)注采用基于字典的方法.3)文本向量化.結(jié)合單詞向量化和字符向量化,CNN算法提取單詞字符的形態(tài)信息并轉(zhuǎn)化為字符級(jí)表示.4)深度學(xué)習(xí)訓(xùn)練.BiLSTM神經(jīng)網(wǎng)絡(luò)根據(jù)文本的詞級(jí)向量和字符向量序列收集特征,并預(yù)測(cè)命名實(shí)體標(biāo)簽.最后,CRF對(duì)BiLSTM序列標(biāo)注結(jié)果的相關(guān)性進(jìn)行約束,提高序列標(biāo)注的準(zhǔn)確性.
暗網(wǎng)市場(chǎng)的命名實(shí)體標(biāo)注文本很少,大多是短文本內(nèi)容,并不遵循嚴(yán)格的語法規(guī)則,且有大量拼寫錯(cuò)誤和縮寫.為了解決以上這些問題,第1步就是刪除冗余的詞句,如發(fā)帖日期和重復(fù)回復(fù),并且修正錯(cuò)誤拼寫.通過瀏覽數(shù)據(jù)集,建立一個(gè)可能被大量錯(cuò)誤拼寫的單詞詞典,匹配數(shù)據(jù)集的單詞和詞典并進(jìn)行替換.修正這些錯(cuò)誤和冗余信息使模型的表現(xiàn)效果更好.
由于缺少已標(biāo)注命名實(shí)體的數(shù)據(jù)集,需要預(yù)先對(duì)數(shù)據(jù)集添加標(biāo)注信息.本文使用NLTK python工具包(NLTK是一個(gè)文本處理庫(kù),用于分類、詞匯切分、詞干提取、標(biāo)記、解析和語義推理)作詞性標(biāo)注.POS標(biāo)簽代表了一個(gè)單詞的性質(zhì)和語義功能,一個(gè)單詞的詞性必須為名詞,才有可能是一個(gè)命名實(shí)體,詞性對(duì)于命名實(shí)體的識(shí)別有很大幫助.然后根據(jù)建立的網(wǎng)絡(luò)安全相關(guān)命名實(shí)體字典,采用基于字典的辦法對(duì)數(shù)據(jù)集進(jìn)行命名實(shí)體標(biāo)注.經(jīng)過這一步驟,數(shù)據(jù)集中的句子被切分為一個(gè)個(gè)單詞,每個(gè)單詞都有一個(gè)詞性標(biāo)注和一個(gè)命名實(shí)體標(biāo)簽,作為后續(xù)詞向量化和字符向量化的輸入.
通常認(rèn)為,詞向量可以從文本中獲取有用的語義和句法信息.Word2Vec采用淺層神經(jīng)網(wǎng)絡(luò)將文本詞向量化[10],主要有2個(gè)模型,分別是CBOW模型和Skip-gram模型.CBOW模型根據(jù)上下文預(yù)測(cè)中心單詞,而Skip-gram模型基于單詞預(yù)測(cè)上下文.CBOW模型的時(shí)間復(fù)雜度更低,訓(xùn)練時(shí)間更少,所以本文采用CBOW模型進(jìn)行文本詞向量化.
詞向量獲取單詞的形態(tài)信息,如前綴和后綴,而字符向量適合提取拼錯(cuò)詞、新詞(例如,Satoshi作為比特幣的最小單位,2019年才被添加進(jìn)牛津英語詞典)的特征[11].CNN和RNN均能進(jìn)行字符向量化,但是CNN的訓(xùn)練速度優(yōu)于RNN,本文選擇CNN作為文本向量化的模型.CNN對(duì)一個(gè)單詞字符向量化的處理過程如圖2所示:
圖2 CNN提取字符特征的過程
長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(long short term memory, LSTM)是一種特殊的遞歸神經(jīng)網(wǎng)絡(luò).BiLSTM層將上層向量化后的數(shù)據(jù)作為輸入,由4個(gè)不同結(jié)構(gòu)的重復(fù)的模塊連接起來[12].RNN支持捕獲長(zhǎng)文的上下文信息用于當(dāng)前訓(xùn)練,但是本文模型的應(yīng)用場(chǎng)景是基于暗網(wǎng)市場(chǎng).暗網(wǎng)市場(chǎng)文本是短文本,所以本文采用LSTM算法.并且,針對(duì)遞歸神經(jīng)網(wǎng)絡(luò)RNN的梯度消失和梯度爆炸問題,LSTM使用門(gate)機(jī)制有效解決了這個(gè)問題.LSTM單元結(jié)構(gòu)如圖3所示:
圖3 LSTM單元結(jié)構(gòu)
一個(gè)LSTM單元就等同于一個(gè)神經(jīng)細(xì)胞.LSTM單元內(nèi)的門(gate)選擇性地讓信息通過,它由一個(gè)Sigmoid神經(jīng)網(wǎng)絡(luò)層和一個(gè)點(diǎn)陣乘法運(yùn)算組成.LSTM單元的運(yùn)算過程如下:
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神經(jīng)網(wǎng)絡(luò)層.W和b分別代表權(quán)重和Sigmoid層的常數(shù).C代表神經(jīng)細(xì)胞狀態(tài).
然而,LSTM是單向的基于上文或下文進(jìn)行分析的模型[13],在很多NLP任務(wù)場(chǎng)景,基于上下文的雙層雙向語言模型相比單向模型更有優(yōu)勢(shì),能夠更好地捕獲變長(zhǎng)且雙向的n-gram信息.因此,本文采用BiLSTM神經(jīng)網(wǎng)絡(luò)對(duì)輸入序列進(jìn)行訓(xùn)練,通過在輸入和輸出時(shí)間步長(zhǎng)在向前和向后的2個(gè)方向上獲得最大的輸入序列,并輸出每一個(gè)單詞或詞組屬于某個(gè)實(shí)體類別的概率,最后送入CRF層.
條件隨機(jī)場(chǎng)CRF模型是常用于命名實(shí)體識(shí)別的圖形模型.根據(jù)BiLSTM層的輸出結(jié)果,計(jì)算輸出一個(gè)條件概率分布,預(yù)測(cè)最終的命名實(shí)體標(biāo)簽,保證標(biāo)注結(jié)果的有效性[14].本文采用線性鏈條件隨機(jī)場(chǎng)(linear-CRF).假設(shè)有2組隨機(jī)變量:X=(X1,X2,…,Xn),Y=(Y1,Y2,…,Yn),那么線性CRF的條件概率P(Y|X)計(jì)算過程如下:
(7)
Z(x)是歸一化因子.
(8)
其中,fk是特征方程,ωk是對(duì)應(yīng)的權(quán)重.CRF能學(xué)習(xí)到一些約束條件,對(duì)最后的預(yù)測(cè)結(jié)果進(jìn)行約束.特別是當(dāng)預(yù)測(cè)一些多詞組合的命名實(shí)體時(shí),CRF能自動(dòng)預(yù)測(cè)到句子開頭的單詞標(biāo)簽應(yīng)該是“B-”或者“O”,而不可能是“I-”.
為了構(gòu)建暗網(wǎng)市場(chǎng)安全語料庫(kù),本文采用由Branwen開源的暗網(wǎng)市場(chǎng)數(shù)據(jù)文本[15],包括89個(gè)暗網(wǎng)市場(chǎng)數(shù)據(jù)、37個(gè)論壇數(shù)據(jù),如Abraxas,Agora,Silk Road等知名網(wǎng)站.通過刪除無用信息,如HTML、圖片等內(nèi)容以減少噪音干擾后,余下一共10 666條帖子.再刪除文件大小小于1 000 KB的文件,剩余6 990個(gè)文件.最后這些數(shù)據(jù)以8∶1∶1的比例隨機(jī)劃分為訓(xùn)練集、測(cè)試集和驗(yàn)證集.
通過觀察收集到的暗網(wǎng)市場(chǎng)文本數(shù)據(jù),本文收集了暗網(wǎng)領(lǐng)域命名實(shí)體字典,一共分為5類,統(tǒng)計(jì)信息如表1所示.毒品類(DRUG)包括Weed,Cannabis,Shroom,Cocaine等;個(gè)人信息類(INFORMATION)包括Fake ID,Driving License,Credit Card等;安全術(shù)語類(TERM)包括Scam,Malware,DDOS,Botnet等;黑客工具類(TOOL)包括VPN,Napster,Ransomware,Hidemyass等;武器類(WEAPON)包括Rifle,Explosive,Gun,Pistol等.
表1 網(wǎng)絡(luò)安全命名實(shí)體統(tǒng)計(jì)
考慮到命名實(shí)體需要聯(lián)合標(biāo)注的情況,如“hack ebook”,本文采用IOB標(biāo)注方式.B代表命名實(shí)體開始單詞,I代表命名實(shí)體中間單詞,O代表這個(gè)單詞不是命名實(shí)體.因此,標(biāo)注結(jié)果有11種類型,分別是B-DRUG,I-DRUG,B-INFORMATION,I-INFORMATION,B-TERM,I-TERM,B-TOOL,I-TOOL,B-WEAPON,I-WEAPON,O.
實(shí)驗(yàn)環(huán)境的軟硬件配置信息如下.CPU:Intel?Xeon?CPU E3-1231 v3@3.40 GHz;內(nèi)存:8 GB;GPU:NVIDIA Corporation GK208 B;操作系統(tǒng):Linux version 4.15.0-107-generic.
本文評(píng)價(jià)指標(biāo)采用精確率P、召回率R和調(diào)和平均數(shù)F1,其計(jì)算公式為:
(9)
(10)
(11)
其中,TP表示標(biāo)注為陽性的樣本中正確的數(shù)量,F(xiàn)P表示標(biāo)注為陰性的樣本中錯(cuò)誤的數(shù)量,F(xiàn)N表示標(biāo)注為陽性的樣本中錯(cuò)誤的數(shù)量.
本實(shí)驗(yàn)基于字符向量和詞向量,采用BiLSTM和CRF算法訓(xùn)練模型.設(shè)置初始學(xué)習(xí)率為0.005,L2正則化權(quán)重設(shè)置為0.000 2,可以在某種程度上避免過度擬合.同時(shí),所有的數(shù)字也被置換為0,因?yàn)榫唧w的數(shù)字會(huì)導(dǎo)致過擬合.
3.3.1 實(shí)驗(yàn)1:與其他模型的比較
本文比較了CNN-BiLSTM-CRF模型、BiLSTM-CRF模型和LSTM-CRF模型在本實(shí)驗(yàn)數(shù)據(jù)集的命名實(shí)體識(shí)別效果,討論神經(jīng)網(wǎng)絡(luò)中每一層級(jí)的作用,如表2所示:
表2 3個(gè)模型的比較結(jié)果 %
從表2可知,CNN-BiLSTM-CRF模型的識(shí)別效果要好于BiLSTM-CRF模型,F(xiàn)1值得分高于0.65%,說明相比只有詞向量的模型,字符向量能夠增加識(shí)別準(zhǔn)確率.Na等人[16]的研究表明,字符級(jí)向量能夠表達(dá)詞的形態(tài)特征,本文的研究結(jié)果也驗(yàn)證了這一結(jié)果的正確性.并且,BiLSTM-CRF模型比LSTM-CRF模型的F1值高0.46%,說明BiLSTM在序列標(biāo)注任務(wù)方面相對(duì)于LSTM具有優(yōu)越性.可以推測(cè),因?yàn)锽iLSTM的雙向?qū)W習(xí),即不僅從序列前端學(xué)習(xí)到末尾,而且從序列后端學(xué)習(xí)到前端,具有更好的學(xué)習(xí)效果.
3.3.2 實(shí)驗(yàn)2:不同類型實(shí)體的結(jié)果比較
本文分別比較了每一種命名實(shí)體的準(zhǔn)確率P,召回率R和F1值,如表3所示.
從表3可知,每種命名實(shí)體的識(shí)別效果都不盡相同.命名實(shí)體數(shù)量最多的2個(gè)種類DRUG和TERM,擁有最高的F1值,而INFORMATION類的命名實(shí)體數(shù)量最少,相對(duì)的F1值也最小.通過對(duì)表3結(jié)果的初步觀察,可以看出識(shí)別效果可能與命名實(shí)體的數(shù)量有關(guān).為了驗(yàn)證這種猜想,本文將表3的數(shù)據(jù)直觀展示在了折線圖里,以便觀察數(shù)量和準(zhǔn)確率的關(guān)系.
表3 不同種類的命名實(shí)體識(shí)別效果比較
如圖4所示,當(dāng)命名實(shí)體的數(shù)量增加時(shí),其準(zhǔn)確率、召回率和F1值也會(huì)升高,反之,則隨之下降.實(shí)驗(yàn)結(jié)果與前文猜測(cè)一致,可以推測(cè),命名實(shí)體的數(shù)量越多,模型可以從訓(xùn)練集學(xué)到的特征就越多,識(shí)別效果就越準(zhǔn)確.
圖4 不同種類命名實(shí)體的結(jié)果比較
本文提出了一種命名實(shí)體識(shí)別系統(tǒng)DNER,基于CNN-BiLSTM-CRF模型的暗網(wǎng)市場(chǎng)命名識(shí)別系統(tǒng),結(jié)合了字符特征與詞向量特征.由于缺少已標(biāo)注的數(shù)據(jù)集,本文選擇了基于字典的方式來標(biāo)注數(shù)據(jù)集.詞向量和字符向量結(jié)合的方式同時(shí)提取了詞級(jí)和字符級(jí)的特征,幫助BiLSTM神經(jīng)網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù)以取得更好的識(shí)別效果,然后CRF算法約束序列標(biāo)簽之間的相關(guān)性.基于上述過程,本文得到了很好的實(shí)驗(yàn)效果,闡述了DNER系統(tǒng)在暗網(wǎng)市場(chǎng)文本上的命名實(shí)體識(shí)別效果比其他模型的優(yōu)越性.對(duì)于小眾領(lǐng)域的實(shí)體類型,該系統(tǒng)可顯著提高識(shí)別效果.
在將來的研究工作中,希望可以將該系統(tǒng)應(yīng)用于知識(shí)圖譜任務(wù)以建立一個(gè)暗網(wǎng)市場(chǎng)的知識(shí)圖譜,并繼續(xù)優(yōu)化該系統(tǒng)以更低的代價(jià)實(shí)現(xiàn)更好的準(zhǔn)確率.此外,繼續(xù)探索此模型在自然語言處理領(lǐng)域任務(wù)上的表現(xiàn)效果,如機(jī)器翻譯、問答系統(tǒng),希望本文工作為未來的研究者作出一點(diǎn)微小的貢獻(xiàn).