收稿日期:2021-11-08;修回日期:2021-12-31
作者簡介:李曉冬(1982-),女,四川成都人,工程師,碩士,主要研究方向為人工智能、信息安全、軟件工程;李育強(qiáng)(1979-),男(通信作者),陜西寶雞人,講師,碩士,主要研究方向為網(wǎng)絡(luò)管理、網(wǎng)絡(luò)測量、網(wǎng)絡(luò)安全(yqli@uestc.edu.cn);宋元鳳(1986-),女,重慶璧山人,工程師,碩士,主要研究方向為大數(shù)據(jù)與智能信息;侯孟書(1971-),男,山東東明人,教授,博導(dǎo),博士,主要研究方向為無線傳感網(wǎng)絡(luò)、分布式存儲、移動計算.
摘 要:由于詞典類DGA域名的字符分布隨機(jī)性低、單詞組合隨機(jī)性高,基于傳統(tǒng)機(jī)器學(xué)習(xí)的惡意域名檢測方法難以識別,雖然利用LSTM等深度學(xué)習(xí)的檢測方法能捕捉域名字符序列特征,但缺乏局部詞根組合特征,檢測準(zhǔn)確率低。針對以上問題,提出一種基于融合嵌入層的DGA域名檢測方法。在域名詞嵌入階段,基于分詞技術(shù)進(jìn)行字符和詞根的融合嵌入向量表示,結(jié)合一維卷積神經(jīng)網(wǎng)絡(luò)(CNN)和雙向門控循環(huán)單元(BiGRU)構(gòu)建混合的深度學(xué)習(xí)模型,實現(xiàn)DGA域名檢測。實驗表明,該方法與單一采用CNN或LSTM模型相比,在域名二分類任務(wù)中的準(zhǔn)確率分別提高3.1%和4.3%,針對詞典類DGA家族matsnu、suppobox、ngioweb的檢測具有更高的精確率。
關(guān)鍵詞:僵尸網(wǎng)絡(luò);惡意域名;深度學(xué)習(xí);卷積神經(jīng)網(wǎng)絡(luò);雙向門控循環(huán)單元
中圖分類號:TP393"" 文獻(xiàn)標(biāo)志碼:A
文章編號:1001-3695(2022)06-040-1834-04
doi:10.19734/j.issn.1001-3695.2021.11.0596
New DGA domain name detection method based on fusion vector
Li Xiaodonga,Li Yuqianga,Song Yuanfenga,Hou Mengshua,b
(a.Information Center,b.School of Computer Science amp; Engineering,University of Electronic Science amp; Technology of China,Chengdu 611731,China)
Abstract:Due to the low randomness of character distribution and high randomness of word combination in word-based DGA domain names,the traditional detection methods are difficult to identify them.The method based on deep learning such as LSTM can capture domain’s sequence features,but it lacks the word combination features and has low detection accuracy.In order to solve above problems,this paper proposed a new DGA domain name detection method based on fusion embedding layer.In domain embedding stage,it carried out a fusion vector representation based on characters and word segmentation technology.Then,it constructed a hybrid deep learning model based on CNN and BiGRU.The experimental results show that the proposed model has increased by 3.1% and 4.3% respectively in accuracy compared with the models based on CNN or LSTM alone.When dealing with the matsnu,suppobox and ngioweb DGAs,the proposed model is more effective.
Key words:botnet;malicious domain name;deep learning;convolutional neural network(CNN);bidirectional gated recurrent unit(BiGRU)
僵尸網(wǎng)絡(luò)[1]是高級持續(xù)性威脅(advanced persistent threat,APT)中的一種常見形式。它采用病毒、蠕蟲等多種手段感染網(wǎng)絡(luò)中大量主機(jī),并在控制者和被感染主機(jī)之間形成一種一對多的隱蔽可控網(wǎng)絡(luò)。被感染主機(jī)通過一種隱蔽的控制信道接收控制端的命令并實施惡意行為,如發(fā)起DDOS攻擊、垃圾郵件攻擊、惡意軟件分發(fā)、釣魚攻擊、流量竊取等。僵尸網(wǎng)絡(luò)具有分布廣、隱蔽性強(qiáng)、控制機(jī)制復(fù)雜、靈活多變等特性,危害巨大。2016年爆發(fā)的Mirai僵尸網(wǎng)絡(luò)控制了65萬臺物聯(lián)網(wǎng)終端設(shè)備,其發(fā)起的大規(guī)模DDoS攻擊導(dǎo)致多個主流站點出現(xiàn)服務(wù)中斷。據(jù)監(jiān)測,Mirai對單個站點的攻擊流量峰值超過1 Tbps;2018年發(fā)現(xiàn)的HNS Botnet采用更加隱蔽的通信技術(shù),造成2萬多個物聯(lián)網(wǎng)設(shè)備的損壞。近幾年,隨著網(wǎng)絡(luò)的普及和攻防技術(shù)的升級,如何有效檢測出僵尸網(wǎng)絡(luò)已成為網(wǎng)絡(luò)安全領(lǐng)域的研究熱點和難點。為了隱蔽命令和控制信道,僵尸網(wǎng)絡(luò)常采用Domain-flux技術(shù)[2]逃避安全檢測。Domain-flux是一種不斷改變僵尸網(wǎng)絡(luò)中Camp;C控制端主機(jī)域名的技術(shù),依靠域名生成算法(domain generation algorithm,DGA)實現(xiàn)。攻擊者使用系統(tǒng)時間、熱點新聞、詞典等信息作為隨機(jī)種子,采用DGA生成大量隨機(jī)域名,并完成部分域名的注冊和IP地址綁定。受控主機(jī)采用相同算法生成同一系列域名,并逐個嘗試解析與連接,最終實現(xiàn)與Camp;C服務(wù)器的通信。利用域名隨機(jī)性的特征,可以通過檢測網(wǎng)絡(luò)中的DGA域名流量有效地發(fā)現(xiàn)僵尸網(wǎng)絡(luò),并快速阻斷僵尸網(wǎng)絡(luò)的命令和控制信道。DGA域名檢測是發(fā)現(xiàn)僵尸網(wǎng)絡(luò)的重要途經(jīng)之一,具有研究的必要性和迫切性。
1 相關(guān)工作
經(jīng)過多年的研究,惡意域名檢測技術(shù)已逐漸成熟,常用方法包括基于流量特征[3~6]和基于文本特征[7~11]的惡意域名檢測技術(shù)。基于流量特征的惡意域名檢測技術(shù)通常在網(wǎng)絡(luò)邊界設(shè)計一套系統(tǒng)采集DNS流量,以域名的持續(xù)發(fā)起時間、突變時間等時間序列特征、Whois注冊信息、域名映射IP總數(shù)、子域名總數(shù)、NXDomain錯誤域名響應(yīng)頻率、請求密度等信息作為流量特征,用深度學(xué)習(xí)在內(nèi)的多種機(jī)器學(xué)習(xí)算法實現(xiàn)惡意域名的檢測和分類,典型的系統(tǒng)[12]如Exposure、Fluxbuster、Notos、Kopis等,這類方法依賴于網(wǎng)絡(luò)流量數(shù)據(jù),由于隱私保護(hù)等問題,網(wǎng)絡(luò)中少有公開的完整網(wǎng)絡(luò)流量數(shù)據(jù)集,獲取有效的數(shù)據(jù)樣本具有一定難度。在不同網(wǎng)絡(luò)環(huán)境中,數(shù)據(jù)通信也存在較大差異,網(wǎng)絡(luò)流量的采集結(jié)果對惡意域名的分析檢測具有較大的影響,該類方法檢測能力較弱,檢測范圍有局限。
基于文本特征的惡意域名檢測技術(shù)從域名字符構(gòu)成出發(fā),利用合法域名與惡意域名在字符分布、詞義、詞素構(gòu)成等方面的差異性實現(xiàn)域名的識別。早期的檢測技術(shù)以機(jī)器學(xué)習(xí)算法為主,通過人工分析提取域名的有效文本特征,如域名總長度、n-gram組成、字符信息熵分布、元輔音比、數(shù)字字母比例、詞根個數(shù)等,然后結(jié)合機(jī)器學(xué)習(xí)算法實現(xiàn)惡意域名識別。這類方法需要人工提取特征,依賴于專家經(jīng)驗,特征選取的好壞對檢測效果有較大的影響,檢測準(zhǔn)確率不高,局限性較大。隨著深度學(xué)習(xí)的發(fā)展,基于深度神經(jīng)網(wǎng)絡(luò)的惡意域名檢測技術(shù)成為研究熱點。2016年,文獻(xiàn)[13]首次將長短期記憶網(wǎng)絡(luò)(long short-term memory,LSTM)用于惡意域名檢測技術(shù),域名字符串首先經(jīng)過嵌入層表示為字符級詞向量,然后由LSTM層提取時序特征,最后采用邏輯回歸完成分類,該方法對域名的二分類檢測效果良好,但在識別DGA家族多分類問題上仍有提升空間。隨后,循環(huán)神經(jīng)網(wǎng)絡(luò)RNN、卷積神經(jīng)網(wǎng)絡(luò)CNN、自編碼器等各種神經(jīng)網(wǎng)絡(luò)技術(shù)開始應(yīng)用于DGA惡意域名檢測。Yu等人[14]比較了五種深度學(xué)習(xí)架構(gòu)在DGA域名檢測任務(wù)中的效果,指出基于深度學(xué)習(xí)的惡意域名檢測方法在域名分類任務(wù)中的檢測準(zhǔn)確率遠(yuǎn)高于基于手工特征的隨機(jī)森林檢測方法。最近的研究工作中,杜鵬等人[15]提出了基于字符和雙字母組級別的混合詞向量深度學(xué)習(xí)模型,在小樣本的DGA域名類別上有更好的分類性能;張斌等人[16]提出了基于CNN與LSTM相結(jié)合的域名檢測模型,通過提取域名字符串中不同長度字符組合的序列特征進(jìn)行惡意域名檢測,該模型較單一采用CNN或LSTM的模型具有更高的召回率和F1分?jǐn)?shù)。
綜上,當(dāng)前惡意域名檢測方法主要基于域名文本字符的高隨機(jī)性特性,針對惡意域名檢測準(zhǔn)確率不高、檢測算法開銷大等問題開展研究,從域名的字符、雙字符組等分布特征上進(jìn)行挖掘分析,雖然檢測總體效果較好,但對于隱蔽性強(qiáng)的詞典類DGA域名檢測率低。隨著網(wǎng)絡(luò)攻防技術(shù)的不斷升級,越來越多的隱蔽通信技術(shù)開始采用基于詞典類的DGA域名,這類域名完全仿照真實正常域名的構(gòu)造方法,域名字符的隨機(jī)性低、域名長度短,可提供的有效特征少,檢測難度大,針對詞典類DGA域名的檢測研究具有重要意義。本文基于詞典類DGA域名的構(gòu)成方法,利用詞典類DGA域名字符分布隨機(jī)性低,詞根組合分布隨機(jī)性高的特性,提出了一種結(jié)合域名字符和詞根組合的融合向量DGA域名檢測模型。實驗結(jié)果表明,相比CNN、LSTM、BiLSTM-CNN深度學(xué)習(xí)檢測模型,該模型對matsnu、suppobox、ngioweb三類DGA家族的檢測精確率更高,檢測效果更好。
2 基于融合向量的DGA域名檢測模型
2.1 模型結(jié)構(gòu)
基于融合向量的DGA域名檢測模型結(jié)構(gòu)如圖1所示,模型包括輸入層、融合向量嵌入層、特征提取層和輸出層四個部分。各模塊功能如下:a)輸入層接收域名樣本輸入并完成樣本數(shù)據(jù)的標(biāo)準(zhǔn)化處理,標(biāo)準(zhǔn)化過程包括域名字符小寫化、去除特殊符號等過程;b)融合向量嵌入層對標(biāo)準(zhǔn)化后的域名字符進(jìn)行淺層特性分析,采用域名字符化、詞根提取和wordninjia分詞技術(shù)三種方法提取域名中的有效信息,并采用word2vec完成向量化表示;c)特征提取層對輸入的嵌入向量采用一維卷積神經(jīng)網(wǎng)絡(luò)提取深層局部強(qiáng)特征,經(jīng)過池化處理后輸入雙向門控循環(huán)單元(BiGRU)進(jìn)一步挖掘字符序列內(nèi)部的依賴關(guān)系;d)輸出層對提取的特征進(jìn)行正則化處理以避免過擬合,采用dense全連接實現(xiàn)域名分類。
2.2 輸入層
域名是一種分層結(jié)構(gòu)的字符串短文本,在輸入層主要完成域名文本的標(biāo)準(zhǔn)化處理,包括將域名統(tǒng)一表示為由小寫字母a~z和數(shù)字0~9組成的字符串序列、過濾重復(fù)域名和標(biāo)簽缺失域名、去除域名中特殊符號和超短域名。經(jīng)輸入層預(yù)處理后,域名樣本表示方式統(tǒng)一,有利于進(jìn)一步深度分析。
2.3 融合向量嵌入層
融合向量嵌入層的作用是將域名文本字符轉(zhuǎn)換為特征提取層可處理的數(shù)值向量,包括兩個處理流程:a)將域名文本字符串轉(zhuǎn)換為組合字符列表;b)將組合字符列表轉(zhuǎn)換為數(shù)值型的嵌入向量。在域名組合字符列表轉(zhuǎn)換階段,采用詞根掃描和wordninja分詞技術(shù)對域名文本字符串進(jìn)行組成詞提取,得到域名的組合字符列表,記為
D={C1,…,Ci,S1…,St,W1,…,Wm}(1)
其中:Ci是域名文本字符的第i個字符,Ci∈{[a~z],[0~9]};St是域名文本字符經(jīng)詞根掃描后得到的字符詞根;Wm是域名經(jīng)wordninja分詞處理后的組成詞;D是輸出的域名組合字符列表。域名分詞掃描過程如圖2所示。
融合向量嵌入層在完成域名文本字符有用信息提取后,還需進(jìn)一步將域名組合字符列表轉(zhuǎn)換為特征提取層可處理的數(shù)值型嵌入向量。在自然語言處理中,字符的向量化表示一般采用獨熱編碼表示和分布式表示兩種方法。獨熱編碼表示(也稱one-hot編碼)利用字符字典對域名字符進(jìn)行編碼,存在向量維度高、稀疏、不能有效表達(dá)字符間關(guān)系的問題。因此本文選用分布式表示方法,采用一種固定維度的浮點數(shù)向量唯一表示一個域名字符向量。選取word2vec算法作為詞嵌入方法,生成域名組合字符詞向量,記為
Vec∈Euclid Math TwoRApu×dm(2)
其中:Vec表示域名文本嵌入表示后的詞向量;u是域名文本組合字符的總個數(shù);dm是嵌入向量維度,Vec的每一行是域名組合字符對應(yīng)的dm維詞向量。完成域名字符向量編碼后,還需統(tǒng)一域名向量總長度,采用末尾0補(bǔ)齊的方式將所有域名向量長度統(tǒng)一為域名序列的最大長度L。融合向量表示過程如圖3所示。
2.4 特征提取層
2.4.1 一維卷積網(wǎng)絡(luò)層
CNN卷積神經(jīng)網(wǎng)絡(luò)在圖像分類和目標(biāo)檢測任務(wù)中已經(jīng)得到廣泛應(yīng)用,文獻(xiàn)[17]利用CNN神經(jīng)網(wǎng)絡(luò)提取域名數(shù)據(jù)的空間特征,最終取得了較好的DGA域名檢測效果。在本文模型中,加入一維卷積網(wǎng)絡(luò)層,利用多個卷積核對域名詞向量進(jìn)行卷積運(yùn)算,以挖掘域名組合字符的局部關(guān)系,包括卷積和池化過程。模型中,融合向量嵌入層的輸出是域名組合字符的二維向量,可表示為矩陣M∈Euclid Math TwoRApL×v,其中,L是域名組合字符列表總長度,v是每個組合字符的向量維度。假設(shè)一維卷積層的卷積核大小定義為h×v,h是卷積核尺寸,分別設(shè)置為2、3、4,卷積核定義為S∈Euclid Math TwoRAph×v,則一維卷積網(wǎng)絡(luò)層的運(yùn)算過程如式(3)所示。
Fi=f(S·Mi:i+h-1+b)(3)
其中:Fi表示通過卷積運(yùn)算后輸出的域名組合字符的第i個特征值;f是非線性激活函數(shù);Mi:j表示域名中第i個組合字符到第j個組合字符的向量矩陣;b是偏置值。通過多次的卷積運(yùn)算后可得到最終的特征圖FM,將其表示為
FM=(F1,F(xiàn)2,…,F(xiàn)i)(4)
最后,為降低過擬合風(fēng)險,通過最大池化層保留域名組合字符的關(guān)鍵文本特征信息。
2.4.2 BiGRU層
門控循環(huán)單元GRU[18]最早在2014年提出,它與LSTM單元類似,通過門控單元來調(diào)節(jié)內(nèi)部信息流,是標(biāo)準(zhǔn)循環(huán)神經(jīng)網(wǎng)絡(luò)的一種改進(jìn)版本。在GRU門控循環(huán)單元中,通過重置門和更新門兩個門單元實現(xiàn)對上下文信息的篩選和過濾,并最終確定門控循環(huán)單元的輸出。GRU輸入輸出結(jié)構(gòu)如圖4所示。
假設(shè)任意時刻t,隱藏層的輸入為xt,輸出為ht,GRU神經(jīng)網(wǎng)絡(luò)更新過程如式(5)~(8)所示。
rt=σ(wr·[ht-1,xt])(5)
zt=σ(wz·[ht-1,xt])(6)
t=tanh(w·[rt·ht-1,xt])(7)
ht=zt·ht-1+(1-zt)·t(8)
其中:rt是t時刻的重置門;zt是t時刻的更新門;t是t時刻的候選激活狀態(tài);ht是最后的輸出;wr、wz、w為權(quán)重矩陣;σ和tanh分別為sigmoid激活函數(shù)和雙切正切激活函數(shù)。BiGRU層利用雙向門控循環(huán)單元挖掘域名字符的上下文信息,輸入是一維卷積網(wǎng)絡(luò)層提取的特征序列。BiGRU模型結(jié)構(gòu)如圖5所示。
2.5 輸出層
輸出層對特征提取層的輸出進(jìn)行正則化處理,采用隨機(jī)失活dropout方法降低節(jié)點間的相互依賴性。最后,采用softmax函數(shù)對BiGRU層的輸出進(jìn)行歸一化處理,得到域名分類結(jié)果:
y=softmax(wsh+bs)(9)
其中:ws是softmax層的權(quán)重矩陣;bs為softmax層的偏置量;y是輸出的概率值,用于判斷是正常域名還是惡意域名。在輸出層采用交叉熵?fù)p失函數(shù)來求解模型。
3 實驗與分析
本文實驗環(huán)境為64位Windows 10,深度神經(jīng)網(wǎng)絡(luò)框架采用Keras作為前端,TensorFlow作為后端,開發(fā)語言為Python 3.7.6。
3.1 數(shù)據(jù)集
本文使用的數(shù)據(jù)集來自公開數(shù)據(jù)集,包括合法域名和惡意域名。合法域名來自Alexa[19]統(tǒng)計的TOP100萬網(wǎng)站域名列表,從中隨機(jī)選取15萬條構(gòu)成合法域名樣本集。惡意域名來自360Netlab[20]提供的DGA家族域名。截至2021年8月,360Netlab共發(fā)布了52個DGA域名家族,但部分家族的域名數(shù)量過少(如Mirai類僅包含1條數(shù)據(jù)),考慮樣本數(shù)量不均衡對模型訓(xùn)練和檢測效果的影響,在選取惡意域名樣本時采取以下處理方法:a)去掉域名數(shù)量小于1 000條的字符型DGA家族;b)將基于字典的DGA家族全部加入數(shù)據(jù)集;c)使用DGArchive工具根據(jù)DGA域名算法手工生成惡意域名;d)對步驟a)~c)生成的數(shù)據(jù)集進(jìn)行分層采樣,即根據(jù)家族類別按比例隨機(jī)抽取一定數(shù)量的數(shù)據(jù),然后將數(shù)據(jù)組合在一起構(gòu)成惡意域名樣本集。最終,構(gòu)建的惡意域名樣本集共有13萬條數(shù)據(jù),包含24個不同DGA家族,包括基于隨機(jī)字符的banjori、chinad、conficker家族,基于詞典的bigviktor、matsnu家族,基于部分詞典的symmi家族等。數(shù)據(jù)集詳情如表1所示。最終,合法域名和惡意域名樣本集合并后按照8:1:1的數(shù)量比例劃分為訓(xùn)練集、驗證集、測試集。
惡意域名360DGA樣本集,包括banjori、bigviktor、chinad、conficker、cryptolocker、flubot、gameover、locky、murofet、mydoom、necurs、ngioweb、pykspa、ranbyus、rovnix、shifu、shiotob、simda、suppobox、symmi、Tinba、virut、vidro、tofsee共24個家族130 000
3.2 評價指標(biāo)
實驗采用的評價標(biāo)準(zhǔn)包括平均準(zhǔn)確率(accuracy)、精確率(precision)、召回率(recall)和F1值四項指標(biāo)。這些指標(biāo)由混淆矩陣統(tǒng)計的TP、FP、TN、FN值計算得出。其中,TP(true positive)為真陽性,是正確預(yù)測出的惡意域名樣本數(shù);FP(1 positive)為假陽性,是錯誤預(yù)測為惡意域名的樣本數(shù);TN(true negative)為真陰性,是正確預(yù)測為合法域名的樣本數(shù);FN(1 negative)為假陰性,是錯誤預(yù)測為合法域名的樣本數(shù)。各項指標(biāo)定義如下:
accuracy=TP+TNTP+TN+FP+FN(10)
precision=TPTP+FP(11)
recall=TPTP+TN(12)
F1=2×precision×recallprecision+recall(13)
精確率表示模型的可信度,召回率反映模型的漏報情況,F(xiàn)1值是模型綜合性能評價指標(biāo)。
3.3 實驗結(jié)果
本文進(jìn)行了兩組對比實驗,第一組實驗是針對DGA域名的二分類檢測實驗,通過將相同樣本集運(yùn)用于常見深度學(xué)習(xí)檢測方法和本文方法,對比各類方法的檢測準(zhǔn)確率、召回率、精確率和F1值,以評估模型的整體性能。根據(jù)前期文獻(xiàn)研究[13],基于深度學(xué)習(xí)的惡意域名檢測方法在性能上優(yōu)于傳統(tǒng)基于人工特征提取的機(jī)器學(xué)習(xí)檢測方法,采用基于LSTM和CNN的深度學(xué)習(xí)檢測方法已經(jīng)能取得較好的檢測準(zhǔn)確率。因此本文不考慮傳統(tǒng)機(jī)器學(xué)習(xí)算法,僅選取CNN、LSTM和BiLSTM-CNN三種檢測模型作為實驗對比模型。在實驗中,使用3.1節(jié)中采樣后的數(shù)據(jù)進(jìn)行訓(xùn)練,實驗設(shè)置的超參數(shù)如下:詞向量的維度為128,一維CNN卷積核大小分別為2×128、3×128、4×128,卷積核數(shù)量為64個,激活函數(shù)為ReLU,優(yōu)化器采用Adam,學(xué)習(xí)率為0.001,訓(xùn)練過程如圖6所示。由圖可知,隨著訓(xùn)練次數(shù)的增加,模型參數(shù)不斷變化調(diào)整,模型在訓(xùn)練中感知到域名的深層特征,誤差值逐步下降并趨于平緩,整體收斂效果理想。
DGA域名的二分類檢測結(jié)果如表2所示。根據(jù)實驗結(jié)果可以發(fā)現(xiàn),深度學(xué)習(xí)模型在DGA域名檢測中都具有較好的性能,基于CNN、LSTM和BiLSTM-CNN混合模型的檢測準(zhǔn)確率均達(dá)到90%以上,性能表現(xiàn)較好。本文方法比BiLSTM-CNN提高了2.1%,在檢測效果上略有提升,模型對DGA域名檢測具有有效性。
第二組實驗是針對基于詞典的matsnu、suppobox、ngioweb三類DGA家族的多分類檢測實驗,這三類家族在LSTM、CNN等常用深度學(xué)習(xí)模型中檢測精確率較低。本實驗中,通過對比CNN、LSTM、加入融合向量的BiLSTM-CNN模型和本文模型的檢測精確率,以評估本文方法對詞典類DGA域名的檢測效果。實驗結(jié)果如圖7所示。
由實驗結(jié)果分析發(fā)現(xiàn),基于LSTM、CNN的深度學(xué)習(xí)檢測方法對詞典類DGA家族的檢測率較低,檢測效果差,本文方法在精確率上有一定的提升。原因主要包括兩方面:a)詞典類DGA域名樣本數(shù)量偏少,數(shù)據(jù)不平衡對檢測任務(wù)造成一定負(fù)面影響;b)詞典類DGA域名通常由多個單詞拼接構(gòu)成,比如matsnu家族中的apple-burn-girlfriend.com域名是由三個常見單詞apple、burn、girlfriend構(gòu)成,包括兩個名詞和一個動詞,局部字符組合并不具備強(qiáng)隨機(jī)性。基于CNN和LSTM的檢測方法是以提取域名文本中字符的局部特征和序列時序特征為基礎(chǔ),對于字符隨機(jī)性大的DGA域名檢測有較好的效果。但詞典類DGA家族的特點是字符構(gòu)成隨機(jī)性低,詞根組合隨機(jī)性高,因此采用CNN或LSTM方式直接對文本進(jìn)行分析挖掘,很難獲取區(qū)別于正常域名的局部特征。本文方法考慮了詞典類DGA家族域名組成詞隨機(jī)性高的特性,在網(wǎng)絡(luò)模型中加入融合向量嵌入層,將域名的詞根融入到字符向量中進(jìn)行訓(xùn)練分析,可有效增加域名文本的信息利用度,利用多個并行的一維CNN卷積層發(fā)掘字符之間、詞根之間的局部特征,然后利用BiGRU分析組成詞之間的前后時序特征,實現(xiàn)詞典類DGA域名的檢測識別。實驗中還將融合向量嵌入層加入BiLSTM-CNN混合模型進(jìn)行對比分析,結(jié)果顯示本文模型在域名特征挖掘過程更符合詞典類DGA域名的構(gòu)成特點,效果優(yōu)于BiLSTM-CNN模型。
4 結(jié)束語
本文提出了一種新的基于融合向量的惡意域名檢測方法,在域名詞嵌入層,基于分詞技術(shù)完成字符與詞根的融合向量表示;在特征提取層,采用一維卷積神經(jīng)網(wǎng)絡(luò)(CNN)提取域名字符和詞根的局部特征;然后輸入雙向循環(huán)門控(BiGRU)網(wǎng)絡(luò)挖掘字符和詞根序列在時序上的深層特征;最終,實現(xiàn)惡意域名的分類檢測。通過在主流公開數(shù)據(jù)集上實驗驗證,該方法能有效檢測DGA惡意域名,平均檢測準(zhǔn)確率較常見檢測模型有小幅度提升,對難以檢測的matsnu、suppobox、ngioweb三類DGA家族的檢測有顯著的效果提升。然而,由于深度神經(jīng)網(wǎng)絡(luò)模型參數(shù)較多、計算復(fù)雜、模型運(yùn)行時間長,在實時性要求較高的網(wǎng)絡(luò)環(huán)境中應(yīng)用難度較大,后續(xù)將在模型實時性與模型泛化能力提升方面開展研究工作,設(shè)計更加輕量化的惡意域名實時檢測系統(tǒng)。
參考文獻(xiàn):
[1]Singh M,Singh M,Kaur S.Issues and challenges in DNS based botnet detection:a survey[J].Computers amp; Security,2019,86:28-52.
[2]李偉東.基于單詞特征的DGA域名識別方法研究[D].武漢:華中科技大學(xué),2019.(Li Weidong.Research on DGA domain name identification method based on word features[D].Wuhan:Huazhong University of Science and Technology,2019.)
[3]韓春雨,張永錚,張玉.Fast-flucos:基于DNS流量的Fast-flux惡意域名檢測方法[J].通信學(xué)報,2020,41(5):37-47.(Han Chunyu,Zhang Yongzheng,Zhang Yu.Fast-flucos:malicious domain name detection method for Fast-flux based on DNS traffic[J].Journal on Communications,2020,41(5):37-47.)
[4]Silveira M R,Da Silva L M,Cansian A M,et al.XGBoost applied to identify malicious domains using passive DNS[C]//Proc of the 19th IEEE International Symposium on Network Computing and Applications.Piscataway,NJ:IEEE Press,2020:1-4.
[5]Fang Xin,Sun Xiaoqing,Yang Jiahai,et al.Domain-embeddings based DGA detection with incremental training method[C]//Proc of IEEE Symposium on Computers and Communications.Piscataway,NJ:IEEE Press,2020:1-6.
[6]Wang Qing,Li Nyu,Jiang Bo,et al.Malicious domain detection based on K-means and smote[C]//Proc of International Conference on Computational Science.Berlin:Springer,2020:468-481.
[7]Cucchiarelli A,Morbidoni C,Spalazz L,et al.Algorithmically generated malicious domain names detection based on n-grams features[J].Expert Systems with Applications,2021,170:114551.
[8]Zhao Hong,Chang Zhaobin,Wang Weijie,et al.Malicious domain names detection algorithm based on lexical analysis and feature quantification[J].IEEE Access,2019,7:128990-128999.
[9]Hwang C,Kim H,Lee H,et al.Effective DGA-domain detection and classification with TextCNN and additional features[J].Electronics,2020,9(7):1070.
[10]Li Yi,Xiong Kaiqi,Chin T,et al.A machine learning framework for domain generation algorithm-based malware detection[J].IEEE Access,2019,7:32765-32782.
[11]Almashhadani A,Kaiiali M,Carlin D,et al.MaldomDetector:a system for detecting algorithmically generated domain names with machine learning[J].Computers amp; Security,2020,93:101787.
[12]李建飛.基于文本特征及DNS查詢特征的非常規(guī)域名檢測[D].南京:南京郵電大學(xué),2019.(Li Jianfei.Irregular domain name detection based on text and DNS query features[D].Nanjng:Nanjing University of Posts and Telecommunications,2019.)
[13]Woodbridge J,Anderson H S,Ahuja A,et al.Predicting domain gene-ration algorithms with long short-term memory networks[EB/OL].(2016-11-02).https://arxiv.org/abs/1611.00791.
[14]Yu Bin,Pan Jie,Hu Jiaming,et al.Character level based detection of DGA domain names[C]//Proc of International Joint Conference on Neural Networks.Piscataway,NJ:IEEE Press,2018:1-8.
[15]杜鵬,丁世飛.基于混合詞向量深度學(xué)習(xí)模型的DGA域名檢測方法[J].計算機(jī)研究與發(fā)展,2020,57(2):433-446.(Du Peng,Ding Shifei.A DGA domain name detection method based on deep learning models with mixed word embedding[J].Journal of Computer Research and Development,2020,57(2):433-446.)
[16]張斌,廖仁杰.基于CNN與LSTM相結(jié)合的惡意域名檢測模型[J].電子與信息學(xué)報,2021,43(10):2944-2951.(Zhang Bin,Liao Renjie.Malicious domain name detection model based on CNN and LSTM[J].Journal of Electronics and Information Techno-logy,2021,43(10):2944-2951.)
[17]Jiang Yanshu,Jia Mingqi,Zhang Biao,et al.Malicious domain name detection model based on CNN-GRU-attention[C]//Proc of the 33rd Chinese Control and Decision Conference.Piscataway,NJ:IEEE Press,2021:1602-1607.
[18]黃蔚秋,歐毓毅,凌捷.基于APCNN和BiGRU-Att的單詞DGA域名檢測方法[J].計算機(jī)應(yīng)用研究,2022,39(5):1541-1545.(Huang Weiqiu,Ou Yuyi,Ling Jie.Word-based DGA domain name detection method based on APCNN and BiGRU-Att[J].Application Research of Computers,2022,39(5):1541-1545.)
[19]Alexa Internet,Inc..Alexa sites[EB/OL].(2021).https://www.alexa.com/topsites/.
[20]Qihoo 360 Technology Co.,Ltd..DGA domain list[EB/OL].(2019).https://data.netlab.360.com/dga/.