陳立國,張躍冬,耿光剛,延志偉
1(中國科學(xué)院 計算機(jī)網(wǎng)絡(luò)信息中心,北京 100190)
2(中國科學(xué)院大學(xué),北京 100049)
3(中國互聯(lián)網(wǎng)絡(luò)信息中心,北京 100190)
隨機(jī)域名是指由隨機(jī)域名算法生成的域名,在針對域名系統(tǒng)[1]發(fā)起的分布式拒絕服務(wù)攻擊中被普遍使用,隨機(jī)域名檢測是過濾拒絕服務(wù)攻擊流量的前提.隨機(jī)域名的檢測工作主要基于隨機(jī)域名的隨機(jī)性特點(diǎn)來進(jìn)行.隨機(jī)域名由隨機(jī)域名算法生成,各字符出現(xiàn)的概率相同且字符之間沒有依賴關(guān)系.基于隨機(jī)域名的隨機(jī)性特點(diǎn),現(xiàn)有的隨機(jī)域名檢測方法主要包括基于域名分布相似度的檢測方法與基于機(jī)器學(xué)習(xí)的檢測方法兩類,這兩類方法將在第1章中詳細(xì)介紹.
隨機(jī)域名檢測是域名系統(tǒng)DDoS流量過濾、僵尸網(wǎng)絡(luò)通信檢測等域名安全任務(wù)的基礎(chǔ)工作,在檢測實(shí)時性、檢測準(zhǔn)確率等方面都有較高的要求.傳統(tǒng)的隨機(jī)域名檢測方法檢測準(zhǔn)確率較低,誤報率較高,且多數(shù)方法在流量過濾等任務(wù)中不能滿足實(shí)時性的需求.
近年來,深度學(xué)習(xí)在圖像、語音、自然語言處理等領(lǐng)域都取得了重大突破[2,3],基于深度學(xué)習(xí)的應(yīng)用越來越多[4–6],應(yīng)用深度學(xué)習(xí)的模型解決傳統(tǒng)研究領(lǐng)域的問題也成為了研究的熱點(diǎn).本文將GRU(Gated Recurrent Unit)型循環(huán)神經(jīng)網(wǎng)絡(luò)模型[7]應(yīng)用于隨機(jī)域名的檢測工作中,經(jīng)過算法生成數(shù)據(jù)與真實(shí)場景數(shù)據(jù)的實(shí)驗(yàn)驗(yàn)證,該模型相比傳統(tǒng)檢測模型擁有更好的檢測性能,且檢測過程中不需要對域名提取特征.
目前,已有的隨機(jī)域名檢測方法主要分為兩類,一類是基于域名分布相似度的檢測方法,另一類是基于機(jī)器學(xué)習(xí)的檢測方法.
Sandeep等[8]提出了一種基于分布相似度判定域名是否遭受隨機(jī)域名攻擊的方法.
首先,對于給定的單一域名d,該方法生成其對應(yīng)的n-gram,如式(1),其中i∈{0,1,···,len(d)?n},n≥1.len(d)為域名d包含的字符數(shù),n在該文章中取值為1,2.
然后,該方法分別統(tǒng)計正常域名與隨機(jī)域名的ngram分布.得到上述兩種分布后,文章選取了三種分布相似度的評價指標(biāo):相對熵、杰卡德距離與編輯距離.最后對每一個IP地址或權(quán)威域名計算其所對應(yīng)域名的n-gram分布分別與正常域名n-gram分布和隨機(jī)域名n-gram分布的相似度,根據(jù)相似度的大小判斷當(dāng)前IP地址或權(quán)威域名是否遭受了隨機(jī)域名攻擊.
文章中驗(yàn)證了n的不同取值以及不同分布相似度時實(shí)驗(yàn)的效果.實(shí)驗(yàn)結(jié)果顯示,當(dāng)n取1,相似度選用相對熵時,達(dá)到100%檢出率,2.5%假陽率,實(shí)驗(yàn)結(jié)果最優(yōu).
該方法優(yōu)勢是實(shí)現(xiàn)簡單,僅需要對比待檢測的權(quán)威域名或IP地址對應(yīng)的域名n-gram分布與正常域名、隨機(jī)域名的分布計算相似度即可.但是單一域名由于字符數(shù)有限,字符分布不具有統(tǒng)計特性,基于分布相似度的方法難以做出類別判斷.
基于機(jī)器學(xué)習(xí)的檢測方法將隨機(jī)域名檢測作為二分類任務(wù)處理,通過最小化代價函數(shù)的方式提升檢測準(zhǔn)確率.這類檢測方法由于具有檢出率高、誤報率小、可實(shí)時檢測等優(yōu)勢,是近年來的研究熱點(diǎn).
Davuth等[9]提出了一種基于支持向量機(jī)的隨機(jī)域名檢測方法.該方法將域名的bi-gram作為特征,通過人工閾值的方式過濾出現(xiàn)頻率較低的bi-gram,實(shí)現(xiàn)特征選擇.文章中采用支持向量機(jī)分類器.在第3章中,本文將該方法與基于GRU型循環(huán)神經(jīng)網(wǎng)絡(luò)的方法進(jìn)行了對比實(shí)驗(yàn).
王紅凱等[10]提出了一種基于隨機(jī)森林的隨機(jī)域名檢測方法.該方法通過人工提取域名特征來構(gòu)建隨機(jī)森林模型訓(xùn)練分類,實(shí)現(xiàn)對隨機(jī)域名的檢測.但人工特征的構(gòu)造過程較為繁瑣,而且由于所使用的統(tǒng)計特征過多,特征抽取過程也較為耗時.
章思宇[11]提出了一種基于DNS圖挖掘的隨機(jī)域名檢測算法,該方法根據(jù)DNS查詢?nèi)罩緦⒂蛎c主機(jī)的集合構(gòu)建成圖模型,然后應(yīng)用置信傳播算法進(jìn)行聲望推斷,據(jù)此進(jìn)行隨機(jī)域名的檢測.該方法不僅可以檢測出隨機(jī)域名,也可以分析出網(wǎng)絡(luò)中的控制服務(wù)器和受害主機(jī),但檢測準(zhǔn)確率較低,且檢測實(shí)時性較差.
近年來,深度循環(huán)神經(jīng)網(wǎng)絡(luò)模型在眾多自然語言處理的任務(wù)中表現(xiàn)出色[7,12,13],由于常規(guī)域名通常也保留一定的語言特性[14],注冊域名中也通常包含漢語拼音、單詞等子串.因此,本文嘗試將神經(jīng)網(wǎng)絡(luò)模型應(yīng)用在隨機(jī)域名的檢測工作中,通過挖掘域名語言特性區(qū)分常規(guī)域名與隨機(jī)域名.
由于循環(huán)神經(jīng)網(wǎng)絡(luò)模型接受的輸入x為定長的向量,而域名本身為字符串,因此需要引入域名向量化步驟,將字符串轉(zhuǎn)換成循環(huán)神經(jīng)網(wǎng)絡(luò)輸入.域名向量化過程首先統(tǒng)計在所有域名中出現(xiàn)的字符集合,假設(shè)該集合中字符數(shù)為n,則將域名中的每個字符編碼成長度為n的one-hot向量,最后將該域名中的所有字符對應(yīng)的one-hot向量按照各個字符在域名中的順序拼接得到循環(huán)神經(jīng)網(wǎng)絡(luò)的輸入x.
GRU型神經(jīng)網(wǎng)絡(luò)是一種循環(huán)神經(jīng)網(wǎng)絡(luò),隱層節(jié)點(diǎn)相互連接,呈現(xiàn)出循環(huán)的特性.不同的是該網(wǎng)絡(luò)隱層節(jié)點(diǎn)內(nèi)部結(jié)構(gòu)并非單一激活函數(shù),而是采用GRU結(jié)構(gòu).圖1為GRU內(nèi)部結(jié)構(gòu)示意圖,其中ht?1為t–1時刻隱藏層輸出,Xt為t時刻輸入,ht為t時刻隱藏層輸出,rt表示重置門,zt表示更新門,h?t表示t時刻隱層節(jié)點(diǎn)的候選值,其他元素操作如右側(cè)圖例所示,用公式描述圖1如下:
圖1 GRU內(nèi)部結(jié)構(gòu)
實(shí)驗(yàn)所采用的循環(huán)神經(jīng)網(wǎng)絡(luò)由輸入層、隱含層、全連接層和輸出層組成,其結(jié)構(gòu)如圖2所示.其中l(wèi)為域名的截斷長度,當(dāng)域名長度超出l則對域名進(jìn)行截斷,當(dāng)域名長度小于l則在域名向量后拼接零向量,直到域名向量長度達(dá)到l.xt為當(dāng)前輸入域名中的第t個字符,采用one-hot編碼.ht為當(dāng)前時刻第t個字符對應(yīng)的隱含狀態(tài).drop_out為隨機(jī)丟棄層,用于防止網(wǎng)絡(luò)的過擬合[15],經(jīng)過實(shí)驗(yàn)測試,當(dāng)隨機(jī)丟棄概率為0.5時,訓(xùn)練得到的模型分類性能最優(yōu).full_connected為全連接層,全連接層的節(jié)點(diǎn)數(shù)設(shè)置為32.Y為輸出的類別,取值為0或1,分別表示當(dāng)前輸入是否為隨機(jī)域名.實(shí)驗(yàn)中,模型的超參數(shù)設(shè)置將在3.2節(jié)中詳細(xì)介紹.
圖2 GRU型循環(huán)神經(jīng)網(wǎng)絡(luò)隨機(jī)域名檢測模型結(jié)構(gòu)
傳統(tǒng)方法為了提升隨機(jī)域名的檢測準(zhǔn)確率,往往會抽取一定維度的域名特征[10],統(tǒng)計當(dāng)前一段時間內(nèi)被請求域名的信息,當(dāng)DNS系統(tǒng)遭受DDoS攻擊后,解析請求量急速上升,特征的提取需要更多的計算資源,為了保證攻擊流量過濾的實(shí)時性,需要減少特征提取的時間,降低特征提取所需的算力成本.而GRU型循環(huán)神經(jīng)網(wǎng)絡(luò)隨機(jī)域名檢測模型是一個端到端的模型,輸入為域名向量,輸出為該域名對應(yīng)的類別.相比傳統(tǒng)方法,該模型不需要對該域名抽取統(tǒng)計特征,節(jié)省了特征抽取的算力成本和時間成本,使得模型能夠及時對當(dāng)前域名的類別做出判斷并設(shè)置防火墻規(guī)則,從而能夠滿足大規(guī)模攻擊流量過濾任務(wù)的實(shí)時性需求.
相比于使用n-gram特征的方法[9],GRU型神經(jīng)網(wǎng)絡(luò)的隨機(jī)域名檢測方法檢測性能更好,準(zhǔn)確率更高,在相同的實(shí)驗(yàn)環(huán)境下,該模型擁有更低的誤報率和漏報率.具體實(shí)驗(yàn)結(jié)果將在3.3節(jié)中詳細(xì)介紹.
本文中所使用的實(shí)驗(yàn)數(shù)據(jù)包含算法生成數(shù)據(jù)與真實(shí)場景數(shù)據(jù)兩部分.
算法生成數(shù)據(jù)中,負(fù)類樣本由5種著名僵尸網(wǎng)絡(luò)的隨機(jī)域名算法生成:newGOZ[16]、Ramnit[17]、Shiotob[18]、Symmni[19]、Banjori[20].負(fù)類樣本共計50萬條,每種隨機(jī)算法產(chǎn)生的隨機(jī)域名占比20%,且各個算法產(chǎn)生的隨機(jī)域名在訓(xùn)練集中服從均勻分布.正類樣本為.cn在正常服務(wù)狀態(tài)下被查詢的域名經(jīng)過隨機(jī)采樣、反向查詢過濾得到的域名集合,共計50萬條.
圖3 算法生成數(shù)據(jù)示例
真實(shí)場景數(shù)據(jù)來自.cn域名服務(wù)在2015年5月12日遭受的一次隨機(jī)子域名攻擊事件.負(fù)類樣本為遭受攻擊時被攻擊域名的子域名去除已注冊子域名得到的域名集合,共計50萬條.正類樣本為.cn在正常服務(wù)狀態(tài)下被查詢的域名經(jīng)過隨機(jī)采樣和過濾反向查詢得到的域名集合,共計50萬條.正負(fù)類樣本合計100萬條,數(shù)據(jù)格式與算法生成數(shù)據(jù)相同.
在隨機(jī)域名檢測任務(wù)中,模型的分類性能是評價模型優(yōu)劣的首要考慮因素,實(shí)驗(yàn)的第一部分將考察模型的分類性能.而神經(jīng)網(wǎng)絡(luò)模型通常存在容易過擬合[21]、收斂難度大等缺陷,實(shí)驗(yàn)的第二部分將會比較邏輯回歸模型與基于GRU型神經(jīng)網(wǎng)絡(luò)模型的收斂過程,驗(yàn)證.
在分類性能實(shí)驗(yàn)中,本文分別實(shí)現(xiàn)了基于邏輯回歸與基于支持向量機(jī)的隨機(jī)域名檢測模型,并分別使用算法生成數(shù)據(jù)和真實(shí)場景數(shù)據(jù)訓(xùn)練、測試兩種模型.在實(shí)驗(yàn)中,訓(xùn)練集占80%,驗(yàn)證集占10%,測試集占10%.使用5種評估指標(biāo)來評估模型效果,評估結(jié)果在3.3小節(jié)中詳細(xì)描述.
在收斂過程實(shí)驗(yàn)中,本文將對比GRU型循環(huán)神經(jīng)網(wǎng)絡(luò)檢測模型與基于邏輯回歸的檢測模型在每輪迭代過程中的AUC,比較兩種模型的收斂過程,為了更明顯的效果對比,兩種模型的學(xué)習(xí)率都調(diào)整為分類性能實(shí)驗(yàn)的0.2倍.
GRU型循環(huán)神經(jīng)網(wǎng)絡(luò)檢測模型的主要超參數(shù)包含:隱層節(jié)點(diǎn)個數(shù)l,隨機(jī)丟棄概率p_drop,全連接層節(jié)點(diǎn)個數(shù)m,學(xué)習(xí)率a,激活函數(shù)f,學(xué)習(xí)算法la,損失函數(shù)loss等.基于邏輯回歸的檢測模型主要超參數(shù)包含:學(xué)習(xí)率a,正則項penalty,正則化強(qiáng)度C.基于支持向量機(jī)的n-gram檢測模型主要超參數(shù)有:核函數(shù)kernel,懲罰因子C.兩次實(shí)驗(yàn)的超參數(shù)如表1所示.
表1 各模型超參數(shù)設(shè)置
本文提出和實(shí)現(xiàn)了基于GRU型循環(huán)神經(jīng)網(wǎng)絡(luò)的隨機(jī)域名檢測模型,為了對比傳統(tǒng)模型的檢測性能,分別實(shí)現(xiàn)了基于n-gram特征的邏輯回歸、支持向量機(jī)隨機(jī)域名檢測模型,以上模型的分類性能在算法生成數(shù)據(jù)上的表現(xiàn)如表2所示,在真實(shí)數(shù)據(jù)上的分類性能如表3所示.根據(jù)實(shí)驗(yàn)可以得出,基于bi-gram特征的模型分類性能普遍優(yōu)于基于uni-gram特征的模型,支持向量機(jī)模型普遍優(yōu)于邏輯回歸,而GRU型循環(huán)神經(jīng)網(wǎng)絡(luò)模型在各項分類性能中都表現(xiàn)優(yōu)異,領(lǐng)先前兩者.
表2 各模型在算法生成數(shù)據(jù)上的分類性能
表3 各模型在真實(shí)場景數(shù)據(jù)上的分類性能
收斂過程實(shí)驗(yàn)結(jié)果如圖4所示,橫軸為模型迭代次數(shù),縱軸為算法生成數(shù)據(jù)上的每一輪迭代后各模型的AUC.由圖中可以看出,基于GRU型循環(huán)神經(jīng)網(wǎng)絡(luò)的檢測模型收斂速度與邏輯回歸模型相當(dāng)且收斂過程較為平穩(wěn).
圖4 GRU型循環(huán)神經(jīng)網(wǎng)絡(luò)檢測模型與邏輯回歸檢測模型收斂過程比較
本文的主要工作是將GRU型循環(huán)神經(jīng)網(wǎng)絡(luò)應(yīng)用到隨機(jī)域名的檢測工作中,提出和實(shí)現(xiàn)了基于GRU型循環(huán)神經(jīng)網(wǎng)絡(luò)的隨機(jī)域名檢測方法,并將該方法與傳統(tǒng)檢測方法進(jìn)行對比分析.經(jīng)過實(shí)驗(yàn)驗(yàn)證,該模型在算法生成數(shù)據(jù)和真實(shí)場景數(shù)據(jù)上都相比傳統(tǒng)方法表現(xiàn)出色,模型收斂速度快,收斂過程平穩(wěn).但目前該模型的檢測對象僅限于隨機(jī)域名,對于可能包含語言特性的惡意域名檢測效果尚未得到驗(yàn)證.在接下來的工作中,將研究如何將現(xiàn)有檢測模型融入注冊、解析等非語言本身的特征,使得融合后的模型能夠應(yīng)對更加復(fù)雜的應(yīng)用場景.