陳立國,張躍冬,耿光剛,延志偉
1(中國科學院 計算機網絡信息中心,北京 100190)
2(中國科學院大學,北京 100049)
3(中國互聯(lián)網絡信息中心,北京 100190)
隨機域名是指由隨機域名算法生成的域名,在針對域名系統(tǒng)[1]發(fā)起的分布式拒絕服務攻擊中被普遍使用,隨機域名檢測是過濾拒絕服務攻擊流量的前提.隨機域名的檢測工作主要基于隨機域名的隨機性特點來進行.隨機域名由隨機域名算法生成,各字符出現(xiàn)的概率相同且字符之間沒有依賴關系.基于隨機域名的隨機性特點,現(xiàn)有的隨機域名檢測方法主要包括基于域名分布相似度的檢測方法與基于機器學習的檢測方法兩類,這兩類方法將在第1章中詳細介紹.
隨機域名檢測是域名系統(tǒng)DDoS流量過濾、僵尸網絡通信檢測等域名安全任務的基礎工作,在檢測實時性、檢測準確率等方面都有較高的要求.傳統(tǒng)的隨機域名檢測方法檢測準確率較低,誤報率較高,且多數方法在流量過濾等任務中不能滿足實時性的需求.
近年來,深度學習在圖像、語音、自然語言處理等領域都取得了重大突破[2,3],基于深度學習的應用越來越多[4–6],應用深度學習的模型解決傳統(tǒng)研究領域的問題也成為了研究的熱點.本文將GRU(Gated Recurrent Unit)型循環(huán)神經網絡模型[7]應用于隨機域名的檢測工作中,經過算法生成數據與真實場景數據的實驗驗證,該模型相比傳統(tǒng)檢測模型擁有更好的檢測性能,且檢測過程中不需要對域名提取特征.
目前,已有的隨機域名檢測方法主要分為兩類,一類是基于域名分布相似度的檢測方法,另一類是基于機器學習的檢測方法.
Sandeep等[8]提出了一種基于分布相似度判定域名是否遭受隨機域名攻擊的方法.
首先,對于給定的單一域名d,該方法生成其對應的n-gram,如式(1),其中i∈{0,1,···,len(d)?n},n≥1.len(d)為域名d包含的字符數,n在該文章中取值為1,2.

然后,該方法分別統(tǒng)計正常域名與隨機域名的ngram分布.得到上述兩種分布后,文章選取了三種分布相似度的評價指標:相對熵、杰卡德距離與編輯距離.最后對每一個IP地址或權威域名計算其所對應域名的n-gram分布分別與正常域名n-gram分布和隨機域名n-gram分布的相似度,根據相似度的大小判斷當前IP地址或權威域名是否遭受了隨機域名攻擊.
文章中驗證了n的不同取值以及不同分布相似度時實驗的效果.實驗結果顯示,當n取1,相似度選用相對熵時,達到100%檢出率,2.5%假陽率,實驗結果最優(yōu).
該方法優(yōu)勢是實現(xiàn)簡單,僅需要對比待檢測的權威域名或IP地址對應的域名n-gram分布與正常域名、隨機域名的分布計算相似度即可.但是單一域名由于字符數有限,字符分布不具有統(tǒng)計特性,基于分布相似度的方法難以做出類別判斷.
基于機器學習的檢測方法將隨機域名檢測作為二分類任務處理,通過最小化代價函數的方式提升檢測準確率.這類檢測方法由于具有檢出率高、誤報率小、可實時檢測等優(yōu)勢,是近年來的研究熱點.
Davuth等[9]提出了一種基于支持向量機的隨機域名檢測方法.該方法將域名的bi-gram作為特征,通過人工閾值的方式過濾出現(xiàn)頻率較低的bi-gram,實現(xiàn)特征選擇.文章中采用支持向量機分類器.在第3章中,本文將該方法與基于GRU型循環(huán)神經網絡的方法進行了對比實驗.
王紅凱等[10]提出了一種基于隨機森林的隨機域名檢測方法.該方法通過人工提取域名特征來構建隨機森林模型訓練分類,實現(xiàn)對隨機域名的檢測.但人工特征的構造過程較為繁瑣,而且由于所使用的統(tǒng)計特征過多,特征抽取過程也較為耗時.
章思宇[11]提出了一種基于DNS圖挖掘的隨機域名檢測算法,該方法根據DNS查詢日志將域名與主機的集合構建成圖模型,然后應用置信傳播算法進行聲望推斷,據此進行隨機域名的檢測.該方法不僅可以檢測出隨機域名,也可以分析出網絡中的控制服務器和受害主機,但檢測準確率較低,且檢測實時性較差.
近年來,深度循環(huán)神經網絡模型在眾多自然語言處理的任務中表現(xiàn)出色[7,12,13],由于常規(guī)域名通常也保留一定的語言特性[14],注冊域名中也通常包含漢語拼音、單詞等子串.因此,本文嘗試將神經網絡模型應用在隨機域名的檢測工作中,通過挖掘域名語言特性區(qū)分常規(guī)域名與隨機域名.
由于循環(huán)神經網絡模型接受的輸入x為定長的向量,而域名本身為字符串,因此需要引入域名向量化步驟,將字符串轉換成循環(huán)神經網絡輸入.域名向量化過程首先統(tǒng)計在所有域名中出現(xiàn)的字符集合,假設該集合中字符數為n,則將域名中的每個字符編碼成長度為n的one-hot向量,最后將該域名中的所有字符對應的one-hot向量按照各個字符在域名中的順序拼接得到循環(huán)神經網絡的輸入x.
GRU型神經網絡是一種循環(huán)神經網絡,隱層節(jié)點相互連接,呈現(xiàn)出循環(huán)的特性.不同的是該網絡隱層節(jié)點內部結構并非單一激活函數,而是采用GRU結構.圖1為GRU內部結構示意圖,其中ht?1為t–1時刻隱藏層輸出,Xt為t時刻輸入,ht為t時刻隱藏層輸出,rt表示重置門,zt表示更新門,h?t表示t時刻隱層節(jié)點的候選值,其他元素操作如右側圖例所示,用公式描述圖1如下:


圖1 GRU內部結構
實驗所采用的循環(huán)神經網絡由輸入層、隱含層、全連接層和輸出層組成,其結構如圖2所示.其中l(wèi)為域名的截斷長度,當域名長度超出l則對域名進行截斷,當域名長度小于l則在域名向量后拼接零向量,直到域名向量長度達到l.xt為當前輸入域名中的第t個字符,采用one-hot編碼.ht為當前時刻第t個字符對應的隱含狀態(tài).drop_out為隨機丟棄層,用于防止網絡的過擬合[15],經過實驗測試,當隨機丟棄概率為0.5時,訓練得到的模型分類性能最優(yōu).full_connected為全連接層,全連接層的節(jié)點數設置為32.Y為輸出的類別,取值為0或1,分別表示當前輸入是否為隨機域名.實驗中,模型的超參數設置將在3.2節(jié)中詳細介紹.

圖2 GRU型循環(huán)神經網絡隨機域名檢測模型結構
傳統(tǒng)方法為了提升隨機域名的檢測準確率,往往會抽取一定維度的域名特征[10],統(tǒng)計當前一段時間內被請求域名的信息,當DNS系統(tǒng)遭受DDoS攻擊后,解析請求量急速上升,特征的提取需要更多的計算資源,為了保證攻擊流量過濾的實時性,需要減少特征提取的時間,降低特征提取所需的算力成本.而GRU型循環(huán)神經網絡隨機域名檢測模型是一個端到端的模型,輸入為域名向量,輸出為該域名對應的類別.相比傳統(tǒng)方法,該模型不需要對該域名抽取統(tǒng)計特征,節(jié)省了特征抽取的算力成本和時間成本,使得模型能夠及時對當前域名的類別做出判斷并設置防火墻規(guī)則,從而能夠滿足大規(guī)模攻擊流量過濾任務的實時性需求.
相比于使用n-gram特征的方法[9],GRU型神經網絡的隨機域名檢測方法檢測性能更好,準確率更高,在相同的實驗環(huán)境下,該模型擁有更低的誤報率和漏報率.具體實驗結果將在3.3節(jié)中詳細介紹.
本文中所使用的實驗數據包含算法生成數據與真實場景數據兩部分.
算法生成數據中,負類樣本由5種著名僵尸網絡的隨機域名算法生成:newGOZ[16]、Ramnit[17]、Shiotob[18]、Symmni[19]、Banjori[20].負類樣本共計50萬條,每種隨機算法產生的隨機域名占比20%,且各個算法產生的隨機域名在訓練集中服從均勻分布.正類樣本為.cn在正常服務狀態(tài)下被查詢的域名經過隨機采樣、反向查詢過濾得到的域名集合,共計50萬條.

圖3 算法生成數據示例
真實場景數據來自.cn域名服務在2015年5月12日遭受的一次隨機子域名攻擊事件.負類樣本為遭受攻擊時被攻擊域名的子域名去除已注冊子域名得到的域名集合,共計50萬條.正類樣本為.cn在正常服務狀態(tài)下被查詢的域名經過隨機采樣和過濾反向查詢得到的域名集合,共計50萬條.正負類樣本合計100萬條,數據格式與算法生成數據相同.
在隨機域名檢測任務中,模型的分類性能是評價模型優(yōu)劣的首要考慮因素,實驗的第一部分將考察模型的分類性能.而神經網絡模型通常存在容易過擬合[21]、收斂難度大等缺陷,實驗的第二部分將會比較邏輯回歸模型與基于GRU型神經網絡模型的收斂過程,驗證.
在分類性能實驗中,本文分別實現(xiàn)了基于邏輯回歸與基于支持向量機的隨機域名檢測模型,并分別使用算法生成數據和真實場景數據訓練、測試兩種模型.在實驗中,訓練集占80%,驗證集占10%,測試集占10%.使用5種評估指標來評估模型效果,評估結果在3.3小節(jié)中詳細描述.
在收斂過程實驗中,本文將對比GRU型循環(huán)神經網絡檢測模型與基于邏輯回歸的檢測模型在每輪迭代過程中的AUC,比較兩種模型的收斂過程,為了更明顯的效果對比,兩種模型的學習率都調整為分類性能實驗的0.2倍.
GRU型循環(huán)神經網絡檢測模型的主要超參數包含:隱層節(jié)點個數l,隨機丟棄概率p_drop,全連接層節(jié)點個數m,學習率a,激活函數f,學習算法la,損失函數loss等.基于邏輯回歸的檢測模型主要超參數包含:學習率a,正則項penalty,正則化強度C.基于支持向量機的n-gram檢測模型主要超參數有:核函數kernel,懲罰因子C.兩次實驗的超參數如表1所示.

表1 各模型超參數設置
本文提出和實現(xiàn)了基于GRU型循環(huán)神經網絡的隨機域名檢測模型,為了對比傳統(tǒng)模型的檢測性能,分別實現(xiàn)了基于n-gram特征的邏輯回歸、支持向量機隨機域名檢測模型,以上模型的分類性能在算法生成數據上的表現(xiàn)如表2所示,在真實數據上的分類性能如表3所示.根據實驗可以得出,基于bi-gram特征的模型分類性能普遍優(yōu)于基于uni-gram特征的模型,支持向量機模型普遍優(yōu)于邏輯回歸,而GRU型循環(huán)神經網絡模型在各項分類性能中都表現(xiàn)優(yōu)異,領先前兩者.

表2 各模型在算法生成數據上的分類性能

表3 各模型在真實場景數據上的分類性能
收斂過程實驗結果如圖4所示,橫軸為模型迭代次數,縱軸為算法生成數據上的每一輪迭代后各模型的AUC.由圖中可以看出,基于GRU型循環(huán)神經網絡的檢測模型收斂速度與邏輯回歸模型相當且收斂過程較為平穩(wěn).

圖4 GRU型循環(huán)神經網絡檢測模型與邏輯回歸檢測模型收斂過程比較
本文的主要工作是將GRU型循環(huán)神經網絡應用到隨機域名的檢測工作中,提出和實現(xiàn)了基于GRU型循環(huán)神經網絡的隨機域名檢測方法,并將該方法與傳統(tǒng)檢測方法進行對比分析.經過實驗驗證,該模型在算法生成數據和真實場景數據上都相比傳統(tǒng)方法表現(xiàn)出色,模型收斂速度快,收斂過程平穩(wěn).但目前該模型的檢測對象僅限于隨機域名,對于可能包含語言特性的惡意域名檢測效果尚未得到驗證.在接下來的工作中,將研究如何將現(xiàn)有檢測模型融入注冊、解析等非語言本身的特征,使得融合后的模型能夠應對更加復雜的應用場景.