国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于BERT和層次化Attention的惡意域名檢測

2022-07-13 02:38:42魏金花
中國電子科學研究院學報 2022年3期
關鍵詞:域名字符單詞

張 鳳, 張 微, 魏金花

(銀川科技學院 信息工程學院,寧夏 銀川 750003)

0 引 言

惡意域名的變種隨檢測手段的豐富不斷增多,現(xiàn)有惡意域名大多利用域名生成算法(Domain Generate Algorithm, DGA)、IP-Flux或Domain-Flux等技術隨機大批量生成惡意域名[1-2],并具有很強的隱蔽性和潛伏性[3]。因此,如何準確地檢測出潛在的惡意域名,提前封堵,阻斷其進一步的攻擊,已成為網絡安全領域問題之一。

現(xiàn)有惡意域名檢測方法根據技術手段可以劃分為基于域名黑名單的惡意域名檢測、基于深度學習的惡意域名檢測等兩大類[4-8]。其中,基于域名黑名單的惡意域名檢測方法主要根據歷史數據與待測域名之間的字符相似度來給出合法性的判斷。如文獻[9]提出了一種基于詞法特征的惡意域名檢測方法,通過計算待測域名與惡意域名黑名單上域名間的編輯距離,給出待測域名合法性的判斷。文獻[10]利用歷史數據中域名的關聯(lián)信息判斷待測域名的合法性。文獻[11]利用并行與串行相結合的方式對待測域名進行預測。文獻[12]提出了一種分階段的惡意域名檢測算法,首先,利用歷史數據對待測域名進行首輪過濾并構造待測域名集;然后,對待測域名集中的每一域名進行深層次、細粒度的分類。文獻[13]利用歷史數據作為引誘器來追蹤難以正面檢測的惡意域名,實時定位惡意域名的訪問記錄,進一步追蹤家族惡意域名。該類惡意域名檢測算法雖直接有效,但檢測精度過度依賴歷史數據,對新變種或新出現(xiàn)的家族惡意域名檢測精度不佳。

近年來,隨著深度學習和自然語言處理等技術在計算機視覺和文本分類等領域的廣泛應用[14],利用深度學習和自然語言處理等技術解決網絡安全問題也逐漸受到研究學者的廣泛關注。如文獻[15]提出了一種基于詞素特征的輕量級域名檢測方法,根據域名包含的詞根、詞綴、拼音和縮寫等特征構造決策樹,快速判斷合法域名與惡意域名。文獻[16]提出了一種基于深度學習的惡意域名檢測算法,通過提取域名包含的解析特征、字符特征和訪問記錄等多維度特征,構造分類器,實現(xiàn)待測域名的判定。文獻[17]利用機器學習算法有效解決了域名生成算法產生的批量惡意域名隱蔽性強,難以檢測的問題。文獻[18]提出了一種基于卷積神經網絡(Convolutional Neural Network, CNN)與LSTM相結合的惡意域名檢測算法,利用CNN和LSTM提取域名在空間和時序維度上的構詞特征,并結合gram作出最終待測域名合法性的判斷。文獻[19]采用門控循環(huán)(Gated Recurrent Unit, GRU)型循環(huán)神經網絡并結合注意力機制,提出了一種DGA域名檢測算法ATT-GRU,有效解決了DGA算法生成的惡意域名隱蔽性強,導致難以檢測的問題。該類檢測算法可以較好地解決新變種或新出現(xiàn)家族惡意域名檢測不佳的問題,但域名字符串本身攜帶的信息有限,如何細粒度的利用有限字符串中的字符或單詞信息強化合法域名與惡意域名的分類精度,成為基于深度學習算法的惡意域名檢測方法中亟待解決的問題。

針對上述問題,本文提出了一種基于BERT和層次化Attention的惡意域名檢測模型。該模型首先通過BERT預訓練自然語言模型生成包含上下文語義新的詞向量矩陣;然后,利用兩層雙向長短時記憶神經網絡Bi-LSTM分別獲得整條URL和包含單詞的特征表示,并在整條URL中引入全局Attention機制,在所含單詞中引入局部Attention機制,通過計算字符串中字符或單詞的貢獻程度,強化待測域名的分類效果;最后,利用Softmax分類器給出惡意域名的判斷。

1 算法設計

本文提出的一種基于BERT和層次化Attention的惡意域名檢測模型主要包括預訓練BERT語言模型、Bi-LSTM構造和Attention機制引入等模塊。

1.1 預訓練BERT語言模型

BERT是2018年谷歌公司提出的一種自然語言處理模型,近年來被廣泛地應用于自然語言處理(Natural Language Processing, NLP)任務中[20]。BERT模型結構如圖1所示。圖中,domaini={s1,s2,…,sn}表示域名domaini包含的單詞,通過預訓練的多層雙向Transformer編碼器生成對應的詞向量矩陣Vi={v1,v2,…,vn}。

本文使用的BERT利用雙向Transformer編碼器來提取域名字符串中的字符特征表示。Transformer架構如圖2所示。

圖2中所示的Transformer編碼器是基于自注意力機制的Seq2Seq模型,僅利用自注意力機制解決了傳統(tǒng)CNN與RNN存在的時序和空間維度不兼顧的問題,同時強化了對于序列特征的位置信息建模的能力[21]。由于自注意力機制并不具備對位置信息的建模能力,而域名字符串等文本內容對于上下文信息等序列性特征要求較高[20]。因此,在模型編碼階段引入位置編碼(Position Encoder, PE)。即將域名字符串經過位置編碼后作為多頭自注意力機制的輸入,從不同層次、不同角度獲取域名的字符特征信息。此外,為了加速模型收斂,采用殘差結構規(guī)避信息記憶誤差。

圖2 Transformer結構

1.2 Bi-LSTM

合法域名與惡意域名在字符組成和結構等方面存在較大差異,且不同家族的惡意域名結構也有所不同[22];此外,域名在構造規(guī)則和字符組合等方面相對自由,但在字符與字符組合上仍存在上下文依賴關系[22]。因此,本文利用雙向長短時記憶神經網絡(Bi-directional Long ShortTerm Memory, BiLSTM)提取域名的上下文信息。BiLSTM模型是由兩個LSTM網絡通過上下疊加構成,如圖3所示。

圖3 Bi-LSTM網絡結構

圖3中,domaini={s1,s2,…,sn}表示域名集合中的第i個域名,首先利用BERT中的Transformer Encoder將domaini中的字符sj轉換為字符向量v(sj),并將sj組成的域名映射為矩陣Vi,其中Vi={v(s1),v(s2),…,v(sn)};然后對域名矩陣Vi利用BiLSTM進行上下文特征提取,計算公式為

(1)

1.3 Attention機制

受人腦資源分配的啟發(fā),文獻[23]提出了一種注意力機制Attention,通過聚焦重要性特征,弱化邊緣信息的原理提高對重點區(qū)域的關注度。本文利用注意力機制計算域名字字符串所包含的單詞和字符之間的重要性特征。Attention機制的結構如圖4所示。

圖4 Attention機制

Attention機制具體計算公式為

ei=μiδ(wizi+bi)

(2)

(3)

式中:ei表示zi的能量因子;y表示注意力機制的輸出值;δ為tanh函數;μi和wi分別表示權重系數;zi表示隱藏層的初始狀態(tài);bi表示偏置。

1.4 惡意域名檢測

惡意域名檢測整體流程如圖5所示。

圖5 惡意域名檢測流程

(1)輸入層:將域名字符串轉換為Bi-LSTM能夠接受的序列向量。本文從360NetLab、Malware Domain List、Alexa和安全聯(lián)盟等國內外各大網站上收集與整理合法域名和惡意域名,并去除域名中的頂級域名、協(xié)議等,提取二級、三級、四級等域名級,構造合法域名樣本集和惡意域名樣本集。

假設域名domaini由n個單詞組成,即domaini={d1,d2,…,dn};每個單詞d由m個字符組成,則第t個單詞dt可以表示為dt={s1,s2,…,sm}。通過預訓練的BERT自然語言模型可以獲取每個字符的詞向量表示。

(2)特征提取層:完成字符和整條URL的字符特征表示。

1)將經過BERT向量化后的每個字符si作為Bi-LSTM的輸入,提取字符深層次特征。計算如公式(1)所示。

2)將步驟1)的輸出作為局部Attention機制的輸入,提取每個單詞上下文信息中貢獻值最大的字符特征。首先,借鑒文獻[12]利用自然語言處理模型N-Gram滑動取詞的方式,構造長度為l=[α-Δ,α+Δ]的滑動窗口,其中,α表示隨機選擇的中心字符,Δ為設定的窗口大小。根據公式(4)~(6)計算每個滑動窗口內中心字符與其余字符之間的相似度,并根據相似度值給每個字符賦予權重wi。

α=k·σ(pe1(x,y)δ(pe2(x,y)ht))

(4)

(5)

Wt=∑t,ihtwi

(6)

3)將步驟2)計算獲得的Wt作為Bi-LSTM的輸入,提取每個單詞的深層特征表示,計算如公式(1)所示。并引入全局Attention機制對Bi-LSTM提取的特征進行強化,細粒度的提取貢獻值最大的特征。計算公式為

hst=δ(wstht+bst)

(7)

(8)

式中:wst表示權重矩陣;bst表示偏置;δ表示tanh函數;hst表示的ht的隱藏層表示;Ds為隨機初始化的上下文序列矩陣。

(3)輸出層:利用Softmax分類器進行合法域名與惡意域名的分類。

p=soft max(wΠ+b)

(9)

式中:Π為t時刻特征提取層的深層特征表示;w為權重值;b為偏置。

2 實驗與分析

2.1 實驗環(huán)境與數據集

采用Pytorch框架,開發(fā)語言為Python 3.7,測試平臺為Pycharm;設定多頭個數為12。

從Alexa、Fofa、Malware Domain List和360NetLab等數據集中整理獲得36.8萬條域名。其中合法域名13.8萬條,惡意域名23萬條,按照7∶3劃分為訓練集與測試集。數據集信息如表1所示。

表1 數據集描述

2.2 評價指標

為驗證本文算法的有效性,查準率Precision、查全率Recall、誤報率FPR和F1分數進行評價。具體計算如公式(10)~(13)所示。其中,Precision和FPR驗證模型的可信度;Recall驗證模型的漏報情況;F1驗證模型的綜合表現(xiàn),分數越高,模型檢測性能越好。

(10)

(11)

(12)

(13)

式中:tp表示準確檢測出的惡意域名總數;tn表示準確檢測出的合法域名總數;fp表示將合法域名誤報為惡意域名的總數;fn表示將惡意域名漏報為合法域名的總數。

2.3 多家族惡意域名檢測結果與分析

為驗證本文模型在多家族惡意域名數據集上的檢測性能,分別在360Netlab包含的23種家族惡意域名和Malware Domain List(MD)數據集上進行測試驗證,檢測結果如表2所示。

由表2可知,本文算法在多家族惡意域名數據集上的檢測性能表現(xiàn)良好,其中可對18種家族惡意域名保持查準率在96%以上,平均查準率為96.49%;17種家族惡意域名保持查全率在96%以上,平均查全率為96.27%;平均誤報率為3.90%;F1-Score為94.13%。究其原因是本文模型采用雙向長短時記憶神經網絡Bi-LSTM可以有效捕獲上下文語義信息,此外,局部和全局Attention機制可以對特征權重重新分配,凸顯重要特征的決策能力,進一步提升模型對多家族惡意域名的泛化性能。

表2 多家族惡意域名檢測結果 %

2.4 同類相關工作對比

(1)誤報結果與分析

為驗證本文模型的誤報情況和查全率等的綜合表現(xiàn),采用受試者工作曲線(Receiver Operating Characteristic, ROC)曲線進行評估,其中ROC曲線中曲線下面積(Area Under Curve, AUC)越大,表明模型檢測性能越好。圖6給出了本文模型與當前主流惡意域名檢測模型在相同的數據集下的ROC曲線。

圖6 ROC曲線對比圖

由圖6可知,本文模型的AUC值最大,為99.17%,較對比模型中表現(xiàn)最高的文獻[27]和文獻[12]的AUC值分別提高約1.79%和4.05%,有效提高了多家族惡意域名檢測的表現(xiàn)性能。

(2)綜合性能對比

為驗證本文模型與當前主流算法在綜合檢測性能方面的優(yōu)勢,在相同的評價指標下進行測試驗證,不同模型的檢測性能對比如表3所示。

表3 不同模型檢能對比 %

由表3可知,雖文獻[27]在查準率方面可達到96.63%的精度,文獻[18]在F1-Score方面表現(xiàn)最佳,為94.66%,但本文模型在查全率和誤報率方面優(yōu)勢明顯,分別可以達到96.27%和3.90%,綜合性能優(yōu)勢顯然。

對比本文算法和文獻[12,25]方法可知,根據單一或部分字符特征的組合決策能力尚不足以對域名生成算法或域名隨機變換等技術產生形式多樣的家族惡意域名進行高效檢測;對比本文算法與文獻[8,18,24,26,27]方法可知,層次化的Attention機制可以加強模型對于字符等序列特征的關注度,通過細化域名字符和單詞對于檢測特征的貢獻度,提高模型對于合法域名與惡意域名的決策能力,驗證了本文模型的設計初衷。

3 結 語

本文綜合考慮檢測性能,從域名字符和單詞等層次化結構角度進行研究,提出了一種基于BERT和層次化Attention機制的惡意域名檢測算法。該模型首先通過BERT生成包含上下文語義信息的詞向量矩陣;然后,通過兩層Bi-LSTM獲得字符和單詞表示,并分別引入局部注意力和全局注意力機制,強化字符或單詞對于模型決策的能力。實驗也驗證了本文模型的綜合檢測性能。在僵尸網絡、垃圾郵件等惡意域名防范工作中具有一定的實際應用價值。

猜你喜歡
域名字符單詞
尋找更強的字符映射管理器
單詞連一連
字符代表幾
一種USB接口字符液晶控制器設計
電子制作(2019年19期)2019-11-23 08:41:50
消失的殖民村莊和神秘字符
看圖填單詞
如何購買WordPress網站域名及綁定域名
看完這些單詞的翻譯,整個人都不好了
騰訊八百萬美元收購域名
頂級域名爭奪戰(zhàn):ICANN放出1930個通用頂級域名,申請者有上千家
武胜县| 北安市| 万宁市| 张家界市| 江津市| 湖北省| 家居| 济宁市| 汉阴县| 黑山县| 濮阳市| 江口县| 宁国市| 手游| 乌兰察布市| 宾阳县| 镇巴县| 楚雄市| 许昌县| 涿鹿县| 江达县| 周至县| 会理县| 鱼台县| 新乡市| 寿宁县| 吴堡县| 太原市| 舞阳县| 临泽县| 泸州市| 朝阳市| 井研县| 双城市| 忻城县| 三都| 万年县| 许昌县| 海门市| 靖江市| 沧州市|