王甜甜,劉雄飛
(中國礦業(yè)大學 銀川學院 信息工程學院,銀川 750000)
E-mail:546211088@qq.com
域名系統(tǒng)(Domain Name System,DNS)作為一種實現(xiàn)網(wǎng)絡域名與IP地址相互轉(zhuǎn)換的服務,得到了廣泛的應用,如流媒體、電子商務和即時通信等,幾乎所有的互聯(lián)網(wǎng)應用都需要對域名進行解析.同時,DNS缺少對攻擊者攻擊行為的檢測能力,極易受到攻擊者的關(guān)注.據(jù)360Netlab威脅檢測報告指出,近年來由于惡意域名攻擊導致信息泄露和資產(chǎn)流失的事件數(shù)不勝數(shù).如2021年國家自然科學基金委員會信息中心遭遇釣魚網(wǎng)絡攻擊,導致評審專家個人信息泄露;2020年葡萄牙能源公司EDP遭遇勒索攻擊,經(jīng)濟損失達數(shù)千萬美元.由此可見,惡意域名攻擊問題不容忽視.
因此,如何快速和準確地檢測出網(wǎng)絡中的惡意域名攻擊,提前進行封堵,阻斷其進一步的危害行為,對于保障互聯(lián)網(wǎng)的正常運行具有重要意義.
通過收集不同家族的惡意域名及其攻擊特征,構(gòu)建惡意域名黑名單,并利用分類或聚類方法實現(xiàn)待測域名的判定.如Sato等[4]提出了一種雙向混合域名判定方法,通過分析已知種子惡意域名與關(guān)聯(lián)域名之間的特征和注冊信息,建立映射關(guān)系圖譜,預測關(guān)聯(lián)域名的合法性.趙宏等[5]提出了一種基于詞法特征的惡意域名快速檢測算法,通過將待測域名按照域名長度屬性值進行聚類分組,并根據(jù)聚類小組權(quán)重值優(yōu)先級排序,按照優(yōu)先級大小依次計算與黑名單上惡意域名之間的相似度.袁福祥等[6]提出了一種基于域名歷史數(shù)據(jù)的異常域名檢測方法.該方法通過提取合法域名樣本集和惡意域名樣本集中每一域名在注冊時間、注冊長度和同IP地址域名數(shù)量等特征,構(gòu)造了合法域名與惡意域名檢測的SVM模型.
由于DNS的開放性使得攻擊者極易利用域名生成算法或人工偽造等方式隨機生成大批量惡意域名,并發(fā)起集群攻擊,短時間內(nèi)訪問流量劇增.同時,惡意域名的訪問記錄會被記錄到日志中,因此,可以通過分析網(wǎng)絡流量的異常變化和DNS日志數(shù)據(jù),實現(xiàn)惡意域名的判定.如Sharifnya等[7]提出一種基于DNS流量特征分析的惡意域名檢測方法,根據(jù)與被攻擊主機之間的關(guān)聯(lián)度將關(guān)聯(lián)主機劃分為多個集群,通過計算流經(jīng)每個集群中主機的訪問時間,定位受惡意域名攻擊的服務器,實現(xiàn)惡意域名的定位.Truong等[8]結(jié)合DNS訪問流量記錄,通過分析流量異常DNS服務器的DNS訪問流量,實現(xiàn)惡意域名檢測.彭成維等[9]根據(jù)域名請求的先后時間順序?qū)Υ郎y域名進行聚類分組,并基于嵌入學習將每一域名映射成低維空間的特性向量,訓練用于合法域名與惡意域名的分類模型.
利用機器學習算法并結(jié)合域名的構(gòu)造特征檢測惡意域名,成為近年來惡意域名檢測的主流方法.如Zhang等[10]提出了一種基于詞素特征的輕量級域名檢測算法,通過分析域名自身蘊含的詞根、詞綴、拼音及縮寫等特征,并利用C4.5決策樹算法按照遞歸思想自上而下構(gòu)造決策樹,實現(xiàn)合法域名與惡意域名的分類.Mao等[11]提出了一種基于機器學習的DGA域名檢測算法,通過提取DGA算法生成的惡意域名在語言、結(jié)構(gòu)和統(tǒng)計等方面存在的5維特征構(gòu)造分類模型,在多種數(shù)據(jù)集上進行測試驗證了該算法的有效性.Cucchiarelli等[12]針對DGA算法產(chǎn)生的惡意域名難以精確檢測的問題,提出了一種面向算法生成的惡意域名檢測方法.該方法利用N-Gram將訓練集域名分割成2-grams和3-grams的序列,通過計算待測域名序列與訓練集域名序列之間的KL和Jaccard系數(shù),快速給出惡意域名的判斷.
以上惡意域名檢測方法各有所長,相比而言,域名相似度的檢測方法具有檢測實時性強和簡單直接的優(yōu)點,但該類檢測方法無法對新出現(xiàn)域名有效檢測,導致檢測準確率低,誤報和漏報率高.流量特征分析的惡意域名檢測方法能夠較好地解決點擊欺詐、釣魚網(wǎng)絡等組行為特征明顯的家族域名,但對其他類型惡意域名的檢測能力較弱,檢測范圍局限.域名構(gòu)造特征分析的檢測方法雖然具有檢測準確率高和檢測范圍廣的優(yōu)點,但該類檢測方法過多依賴特征的設計,對新出現(xiàn)的惡意域名檢測效果不佳.
綜上,基于當前惡意域名檢測方法中存在的檢測開銷較大、檢測范圍局限和檢測準確率不高等問題,結(jié)合域名黑名單、域名白名單、雙向長短時記憶神經(jīng)網(wǎng)絡BiLSTM和卷積神經(jīng)網(wǎng)絡CNN的混合模型,提出一種分階段的惡意域名檢測算法.該算法首先利用域名黑名單進行快速過濾惡意域名;然后,利用域名白名單快速響應合法域名;最后,利用BiLSTM-CNN的混合模型,實現(xiàn)待測域名的最終階段檢測.
從Alexa、Malware Domain List、DGA Domain List和Shodan、Fofa等開源數(shù)據(jù)集和官方網(wǎng)站中獲取惡意域名和合法域名,并檢測域名的完整性,清除掉重復域名和不完整域名,構(gòu)造合法域名樣本集和惡意域名樣本集.
惡意域名具有家族團聚攻擊的特點[2],即利用相同規(guī)則或算法產(chǎn)生的惡意域名具有家族效應.因此,本文借鑒文獻[9]中的方法,并依據(jù)域名與域名在字符組成上的相似度值,實現(xiàn)域名黑名單中惡意域名的聚類分組.惡意域名聚類算法描述如下,惡意域名的聚類分組示意如圖1所示.
圖1 惡意域名的聚類分組Fig.1 Clustering group of malicious domain names
1)在多家族惡意域名數(shù)據(jù)集中隨機選擇基準域名集{x1,y1,z1,…};
2)以域名之間的Ed值為半徑遍歷基準域名的關(guān)聯(lián)域名{x1→x2}、{y1→y2,y3}、{z1→z2,z3,z4};
3)以基準域名的關(guān)聯(lián)域名為基準域名,以Ed為半徑查詢關(guān)聯(lián)域名{x2→x5,x6}、{y2→y4}、{z3→z5},直到滿足條件的所有域名查詢完為止;
4)將關(guān)聯(lián)域名聚類為一個小組,即為一個家族域名集合;如Domain1={x1→{x2→{x5,x6→{x7}}},x3,x4}.
域名與域名之間的字符相似度值計算如公式(1)所示:
(1)
其中,Ed[strm,strn]表示域名strm和域名strn之間的編輯距離值,i表示strm中的字符序號,j表示strn中的字符序號;xi和yj分別表示strm的第i個字符和strn的第j個字符;d[i,j]表示以strm為行,以strn為列,構(gòu)成的矩陣中第i行,第j列處的值.
待測域名檢測時,通過計算待測域名與聚類小組中基準域名之間的編輯距離值,根據(jù)編輯距離值的大小確定待查找聚類小組范圍.然后,通過計算待測域名與小組中關(guān)聯(lián)域名間的編輯距離值,快速給出判斷結(jié)果.并根據(jù)檢測結(jié)果構(gòu)造惡意域名集I和潛在惡意域名集I.
合法域名為了便于用戶記憶與理解,具有自然語言的構(gòu)詞特征,本文借鑒文獻[13,14]中的特征構(gòu)造合法域名的隨機森林分類模型.合法域名在結(jié)構(gòu)、語言和統(tǒng)計等方面存在的構(gòu)詞特征如表1所示.
依據(jù)表1中整理的合法域名特征,利用公式(2)將字符特征的提取轉(zhuǎn)化為具體實數(shù)計算.
Vi=Fi(domaini)
(2)
其中,Vi表示特征向量;domaini表示待提取的第i個域名,F(xiàn)i表示特征轉(zhuǎn)換函數(shù),對應表1中的構(gòu)詞特征.
表1 合法域名構(gòu)詞特征Table 1 Word formation features of normal domain
隨機森林分類模型[17]構(gòu)造流程描述如下:
1)n表示域名訓練樣本中domain的總個數(shù),m表示字符特征的總個數(shù),記為feature_set;
2)隨機從feature_set中選擇m′個特征,建立決策樹,其中m′?m;
3)從域名訓練樣本中隨機抽取n次,構(gòu)造域名訓練集,并將剩余域名作為測試集;
4)根據(jù)投票結(jié)果確定待測域名樣本的分類.
待隨機森林分類模型訓練完成后,將潛在惡意域名集I中的每一域名作為輸入,利用已訓練好的隨機森林分類模型進行決策分類,及時響應合法域名解析請求,并根據(jù)檢測結(jié)果構(gòu)造合法域名集II和最終待測域名集II.
合法域名和惡意域名由于生成算法不同在形式上相對自由,但字符組成和結(jié)構(gòu)上仍然存在上下文依賴關(guān)系[15].因此,本文采用雙向長短時記憶神經(jīng)網(wǎng)絡BiLSTM提取域名在語言、結(jié)構(gòu)和統(tǒng)計等方面的全局特征;然后,利用卷積神經(jīng)網(wǎng)絡CNN在學習雙向長短時記憶神經(jīng)網(wǎng)絡提取域名上下文語義信息的基礎(chǔ)上,進行局部強特征提取;最后,使用Softmax實現(xiàn)待測域名集中合法域名與惡意域名的分類.BiLSTM-CNN構(gòu)造流程如圖2所示.
圖2 BiLSTM-CNN模型Fig.2 Model of BiLSTM-CNN
3.4.1 全局特征提取
合法域名為體現(xiàn)個體特點和方便記憶,具有自然語言的構(gòu)詞特征,而惡意域名是通過域名生成算法或域名變換技術(shù)隨機生成的.兩者雖然都是由相同的字符集構(gòu)成,但在字符組合、結(jié)構(gòu)和統(tǒng)計等方面具有不同的特征,且字符組成和結(jié)構(gòu)上存在上下文依賴關(guān)系.因此,本文利用圖3中的雙向長短時記憶神經(jīng)網(wǎng)絡BiLSTM提取域名的全局特征.
圖3 BiLSTM網(wǎng)絡結(jié)構(gòu)Fig.3 Network structure of BiLSTM
圖3中,D={d(1),d(2),…,d(n)}表示域名,首先利用word2vec將域名中的字符d(i)轉(zhuǎn)換為字符向量V(d(i)),并將d(i)組成的域名映射為域名矩陣Sij,其中Sij=V(d(1)),V(d(2)),…,V(d(n));然后對域名矩陣Sij利用BiLSTM進行上下文特征提取,計算如公式(3)所示:
(3)
3.4.2 局部強特征提取
由于合法域名具有一定的自然語言構(gòu)造特征,而不同惡意域名具有不同的生成方式和組成形式,且呈發(fā)散狀態(tài)[16],提取全局特征中的局部特征是保證網(wǎng)絡對合法域名和惡意域名進行準確分類的關(guān)鍵.本文利用卷積神經(jīng)網(wǎng)絡CNN實現(xiàn)全局特征中的局部強特征提取.CNN網(wǎng)絡模型如圖4所示.
圖4 CNN網(wǎng)絡結(jié)構(gòu)Fig.4 Network structure of CNN
CNN將BiLSTM的輸出作為卷積層的輸入,卷積層采用大小為r×k的濾波器對全局域名特征進行卷積操作,學習域名的局部語義特征,計算方法如式(4)所示:
Ci=f(L(r×k)·F(ht)+b)
(4)
其中,Ci表示CNN提取的局部語義特征;f表示非線性轉(zhuǎn)換函數(shù),L(r×k)表示濾波器,F(xiàn)(ht)表示BiLSTM的輸出,b表示偏置.
3.4.3 惡意域名分類
在BiLSTM-CNN的最后一層連接一個具有分層特征和識別功能的多重感知器Softmax,對輸入域名進行分類;將最終待測域名集II作為已訓練BiLSTM-CNN網(wǎng)絡的輸入,利用公式(5)計算獲得輸入域名的分類值.
Oi=Softmax(widit+bi)
(5)
其中,Oi為輸出類別,wi為全連接層與輸出層之間的權(quán)重矩陣,dit為t時刻全連接層的輸出矩陣,bi為偏置.
實驗環(huán)境為64位windows 10,8核i7-10875H 32G 512G 2.4GHZ CPU,開發(fā)語言為Python 3.8,開發(fā)平臺為Pycharm;參數(shù)的設定決定檢測結(jié)果的精度,本文利用參數(shù)固定的方法確定初始值,并通過實驗對照進行迭代尋優(yōu)確定最佳參數(shù).模型參數(shù)設置如表2所示.
表2 模型超參數(shù)設置Table 2 Model hyperparameter settings
1)訓練步長:為降低BiLSTM-CNN網(wǎng)絡訓練時間開銷和降低模型過擬合,本文采用實驗對照的方法確定訓練步長.訓練步長epochs與檢測精度之間的關(guān)系曲線如圖5所示.
圖5 BiLSTM-CNN網(wǎng)絡平均訓練曲線Fig.5 Average training curve of BiLSTM-CNN
由圖5可知,當訓練步長epochs為16時,測試集上的準確率趨于平穩(wěn),因此,本文設定訓練步長epochs為16.
從公開數(shù)據(jù)集DGA Domain List、Alexa和Malware Domain List等各大網(wǎng)站上收集與整理獲得52萬條域名[16-18].其中合法域名38萬條,惡意域名14萬條,惡意域名數(shù)據(jù)集中包含Zeus、Kraken、Symmi、Banjori、Phishing和Bot等多種類型的家族惡意域名.并將52萬條域名數(shù)據(jù)劃分為80%的訓練集,10%的測試集和10%驗證集.
選用準確率Accuracy、精確率Precision、誤報率(False Positive Rate,F(xiàn)PR)和漏報率(False Negative Rate,F(xiàn)NR)作為評價指標,計算如公式(6)所示.通常準確率Accuracy和精確率Precision越高,誤報率FPR和漏報率FNR越低,表明檢測效果越好.
(6)
其中,TP表示被準確檢測出的合法域名;FN表示將惡意域名誤報為合法域名的個數(shù);FP表示將合法域名誤報為惡意域名的個數(shù);TN表示被準確檢測出的惡意域名.
4.3.1 分階段集成算法性能
在相同的數(shù)據(jù)集上分別構(gòu)造3階段的單一檢測算法:第1階段基于黑名單技術(shù)的惡意域名檢測算法MD(Malicious Domains)、第2階段基于域名白名單技術(shù)的惡意域名檢測算法ND(Normal Domains)和最終階段的惡意域名檢測算法BiLSTM-CNN;1、2階段的聯(lián)合算法MD_ND、1、3階段的聯(lián)合算法MD_BiLSTM-CNN和2、3階段的聯(lián)合算法ND_BiLSTM-CNN;3階段的集成算法MD_ND_BiLSTM-CNN.各模型的檢測性能如表3所示.
表3 單一階段與集成算法性能對比(%)Table 3 Performance comparison between single stage and integrated algorithm (%)
由表3可知,本文集成算法MD_ND_BiLSTM-CNN與單一階段的惡意域名檢測算法MD、ND、BiLSTM-CNN和1、2階段、1、3階段、2、3階段的集成算法MD_ND、MD_BiLSTM-CNN、ND_BiLSTM-CNN相比,在檢測準確率和檢測精確率方面平均提升了2.84%和2.36%;在漏報率和誤報率方面平均降低了43.45%和49.97%,主要原因是3階段的集成算法通過多個輪次諸階段過濾掉符合階段性檢測的惡意域名和合法域名,提升了檢測性能.此外,利用第1、2階段檢測出的惡意域名送入BiLSTM-CNN快速學習新出現(xiàn)的惡意域名構(gòu)詞特征,提高了對于新變種或新出現(xiàn)惡意域名實時檢測的效率.
在時間開銷方面,單一階段的惡意域名檢測算法MD在92s內(nèi)完成12176條惡意域名的準確檢測;ND算法在86s內(nèi)完成35279條合法域名的準確識別;BiLSTM-CNN算法在43s時間內(nèi)完成44592條合法域名與惡意域名的準確檢測;3階段的集成算法在112s時間內(nèi)可完成49881條惡意域名與合法域名的準確檢測,雖本文模型在時間復雜度上有所增加,但其可在最高Accuracy、Precision和最低FNR和FPR下達到445.37個/s的惡意域名檢測速度,具有較高的檢測效率.
4.3.2 BiLSTM-CNN集成算法檢測范圍
在相同的實驗環(huán)境下,選用Zeus、Kraken、Symmi、Banjori、Phishing和Bot等多個家族的惡意域名進行測試驗證.具體檢測性能如圖6所示.
圖6 多家族惡意域名檢測Fig.6 Multi-family malicious domain detection
由圖6可知,本文分階段集成算法BiLSTM-CNN對于多個家族的惡意域名具有較高的檢測準確率,驗證了本文算法在檢測范圍方面的高效性.
4.3.3 同類檢測算法性能對比
在相同的實驗環(huán)境和相同的評價機制下,分別構(gòu)造單一BiLSTM、CNN、RNN(Recurrent Neural Network)、DAE(DenoisingAuto-Encoders)、GRU(Gated Recurrent Unit)和集成算法RNN-CNN、BiLSTM-DAE、RNN-DAE等惡意域名檢測算法,并進行性能評價與分析.具體性能對比結(jié)果如圖7所示.
圖7 同類算法性能對比Fig.7 Performance comparison of similar algorithms
由圖7可知,BiLSTM-CNN模型在Accuracy和Precision等方面優(yōu)勢明顯,究其原因,單一RNN、GRU和BiLSTM模型只考慮了上下文依賴關(guān)系;單一CNN、DAE模型只考慮了局部特征;RNN、GRU與CNN、DAE的集成模型考慮了上下文和局部特征,但本文BiLSTM雙向長短時記憶神經(jīng)網(wǎng)絡充分考慮上下文雙向依賴關(guān)系;此外,DAE降噪自編碼網(wǎng)絡只能提取明顯特征,而域名字符少,特征提取難度大,本文采用CNN通過卷積計算,實現(xiàn)局部特征提取,實驗也驗證了BiLSTM-CNN模型的高效性.
惡意域名的變種隨著檢測手段的增多不斷豐富,現(xiàn)有基于字符特征的惡意域名檢測方法難以滿足新出現(xiàn)惡意域名對于檢測精度和檢測范圍的高要求.為此,本文提出了一種分階段的惡意域名檢測方法,諸階段過濾掉符合當前階段的惡意域名和響應合法域名的解析請求.通過在當前主流數(shù)據(jù)集上進行測試驗證,本文算法具有較好的檢測性能,在抵御僵尸網(wǎng)絡、垃圾郵件、遠控木馬攻擊等方面具有較好的實用價值.深度網(wǎng)絡模型參數(shù)多、計算復雜度高,在實際網(wǎng)絡環(huán)境中需考慮實時性要求.為此,后續(xù)研究在保持檢測精度和域名類型的基礎(chǔ)上,設計更加輕量化的檢測模型,提高檢測的實時性.