張建輝 孫皓月 趙萬旗
(河北建筑工程學(xué)院,河北 張家口 075000)
域名系統(tǒng)(Domain Name System)為我國現(xiàn)代網(wǎng)絡(luò)業(yè)務(wù)提供了方便[1],增加了用戶的上網(wǎng)體驗.與此同時,域名系統(tǒng)解析也成為僵尸網(wǎng)絡(luò)發(fā)動攻擊的重要依托,為了逃避安全設(shè)施的檢測,僵尸網(wǎng)絡(luò)的攻擊也越來越復(fù)雜,其中一個常見的技術(shù)就是在僵尸網(wǎng)絡(luò)中使用DGA域名生成算法,使攻擊服務(wù)器域名快速變化.在該方式下,控制服務(wù)器與受控機器的通信節(jié)點是動態(tài)變化的,安全人員難以捕捉到控制服務(wù)器的域名和IP地址[2],以至于無法切斷聯(lián)系,阻止攻擊.僵尸網(wǎng)絡(luò)利用DGA域名生成算法進行通信的原理如下:攻擊端和受控主機使用相同DGA算法,從生成的DGA域名中選取少量注冊.由于通信節(jié)點處域名不斷變化,傳統(tǒng)的黑名單防護手段在更新上無法做到及時性,并且開銷較大.因此業(yè)界急需一種有效的DGA惡意域名檢測手段.
DGA算法通過輸入隨機種子,以偽隨機化算法作為輔助,生成一系列的隨機字符串域名.所以域名表面上看似乎是隨機的,但內(nèi)部結(jié)構(gòu)都是通過偽隨機化算法生成的,其實是有跡可循的,比如對于算法輸入的隨機種子的選擇,往往會選擇當(dāng)前的時間、網(wǎng)絡(luò)熱詞等.
當(dāng)前學(xué)術(shù)界對于DGA域名的檢測從未停止.文獻[3]使用機器學(xué)習(xí)方法,基于語法特征基礎(chǔ)上加入了N-Gram模型特征,提高了算法的精確率;文獻[4]提出了基于聚類和分類算法的惡意域名檢測方法,使用聚類算法分出DGA域名的類別,再使用分類算法篩選出惡意域名.文獻[5]將域名的語法特征細化,提取出字母和數(shù)字的轉(zhuǎn)換頻率、連續(xù)字母的最大長度等特征.文獻[6]將隱馬爾可夫模型應(yīng)用于域名檢測,實驗結(jié)果相較于隨機森林模型效果更好.
本文在語法特征、N-Gram模型特征的基礎(chǔ)上,加入了隱馬爾可夫模型特征,并且出于計算復(fù)雜度的考慮,并未將N-Gram本身出現(xiàn)的頻率當(dāng)做特征,而是選用了N-Gram平均排名.
使用機器學(xué)習(xí)工程進行域名檢測流程主要包括收集數(shù)據(jù)、提取特征、模型的選擇和訓(xùn)練、評價函數(shù)和交叉驗證4個部分.
(1)收集數(shù)據(jù).本次實驗的數(shù)據(jù)包括正常域名和DGA域名.采用Alexa網(wǎng)站中前1萬的域名作為正常域名,而實驗中的DGA域名取自360安全網(wǎng)站,選取1.5萬條DGA家族中的Conficker家族域名.
(2)提取特征.從域名數(shù)據(jù)集中提取出三類特征.一類是語法特征;一類是N-Gram[7]特征;最后本文在此基礎(chǔ)上加入隱馬爾可夫[8]特征.
(3)模型選擇和訓(xùn)練.本文選取SVM[9]和決策樹[10]進行對比評估.
(4)評價函數(shù)和交叉驗證.本文使用精確率和召回率作為模型評價標(biāo)準(zhǔn),將數(shù)據(jù)的4/5用于訓(xùn)練模型,剩下的1/5用于模型預(yù)測,同時將數(shù)據(jù)多次洗牌做10次交叉驗證.
特征工程是惡意域名檢測的關(guān)鍵,特征選擇的好壞直接影響最后的實驗結(jié)果.因此,本文對合法域名和DGA域名特征進行深入了解,反復(fù)試驗,最終得出特征集合.提取的特征有語法特征、N-Gram模型特征、馬爾可夫模型特征.N-Gram特征選取域名的unigram、bigram、trigram的平均排名;隱馬爾可夫模型特征選擇的是域名從Ai到Ai+1轉(zhuǎn)換的概率乘積.
(1)域名長度.域名最初就是為了使用戶上網(wǎng)方便,因此合法域名長度不會太長,并且有些具有明確的定義,而DGA域名是以偽隨機算法作為輔助,生成的隨機字符串,再加上域名數(shù)量日益增長,為了防止與正常域名沖突,一般域名較長,并且沒有任何含義.在表1中幾個正常域名與DGA域名長度進行了對比,可以看出正常域名長度一般在10左右,而DGA域名長度在20左右.
表1 正常域名長度和DGA域名長度
(2)域名熵值.熵是衡量事物混亂程度的度量指標(biāo).經(jīng)過對大量數(shù)據(jù)的分析比對,正常域名內(nèi)部結(jié)構(gòu)相對整齊有規(guī)律,混亂程度較低;而DGA域名隨機性強,分布混亂,熵值也會更大.本文從數(shù)據(jù)集中選取1萬條正常域名和1萬條DGA域名,如圖1所示,正常域名熵值在1.0-2.0之間,而DGA域名大都集中在2.0-2.5之間,因此,熵值可以作為很好的區(qū)別特征.
圖1 正常域名和DGA域名熵值直方圖
(3)元音字母比例.正常域名為了讓人讀起來更加順口會在輔音字母的基礎(chǔ)上加入一些元音字母,來增加域名的可讀性;而DGA域名生成時未考慮這個因素,元音字母會相對較少,因此DGA域名可讀性差.從數(shù)據(jù)集中取1萬正常域名和1萬DGA域名,DGA域名元音占比在0.1-0.3,正常域名元音占比在0.3-0.5.因此,元音字母比例可以作為區(qū)別特征.
(4)連續(xù)輔音字母比例.經(jīng)過大量數(shù)據(jù)分析比對,DGA域名的連續(xù)輔音字母比例較高.如圖2可以看出正常域名大多在0.2-0.4之間,而DGA域名在0.6-0.8之間的居多,盡管有少數(shù)正常域名和DGA域名比例有重疊,但是整體來說連續(xù)輔音字母比例特征區(qū)分度很大.
圖2 正常域名和DGA域名連續(xù)輔音比例直方圖
(5)頂級域名.正常域名的頂級域比較常見,例如.cn和.com等,而DGA惡意域名會選一些審核不嚴(yán)的,不常見的域名如.ru和.ws等.本文選取正常域名常見三個頂級域,取1萬條正常域名和1萬條DGA域名,分別統(tǒng)計正常和惡意域名中各類別的數(shù)量,正常域名中有2872條使用的是常見頂級域,DGA域名有0條.因此頂級域名對于域名檢測的重要性比重很大.
N-Gram模型是自然語言處理常用的模型,常用于詞語分析,語音識別,詞語分類等.它的基本思想是將文本內(nèi)容進行固定大小的滑動窗口操作,對每個窗口進行頻率統(tǒng)計,以此概率來推斷下一組詞.本文提取正常域名和DGA域名的unigram(一個字符)、bigram(兩個字符)和trigram(三個字符)特征,采用N-Gram函數(shù)對域名字符進行統(tǒng)計,例如將www.goole.com放入unigram函數(shù)中會得到單個的字符數(shù)組[c,e,g,l,m,o,w]以及字符出現(xiàn)的頻率,一般來說,可以將域名字符頻率直接當(dāng)做特征,但是特征維度會很大,會影響訓(xùn)練速度.換個角度思考,正常域名相比于DGA域名更加好念,因此它的頻率排名相對靠前,而DGA域名是隨機生成的,頻率相對靠后,所以本文選用N-Gram模型的平均排名作為域名區(qū)別特征.
隱馬爾可夫模型是一種統(tǒng)計模型,大致思想是通過已知去預(yù)測未知,輸入已知序列到轉(zhuǎn)換矩陣,得到未知序列出現(xiàn)的概率,用于詞語分類、語言識別等自然語言處理領(lǐng)域.本文以1萬正常域和1萬DGA域名來訓(xùn)練隱含馬爾可夫鏈,計算從Ai到Ai+1轉(zhuǎn)換的概率,這里所說的Ai為域名的當(dāng)前字符,Ai+1為下一個字符,例如baidu.com,如果Ai為d,那么Ai+1為u.以每個域名字符從Ai到Ai+1轉(zhuǎn)換概率的乘積作為特征,為了防止下溢,對每個域名概率結(jié)果取對數(shù).正常域名的隱馬爾可夫模型數(shù)值大部分在-15和-30之間,而DGA域名的隱馬爾可夫模型數(shù)值在-35和-50之間,正常域名的值是高于DGA域名的,所以隱馬爾可夫模型特征可以作為區(qū)別特征.
實驗中的正常域名數(shù)據(jù)取自www.Alexa.com網(wǎng)站,在實驗中采用在Alexa網(wǎng)站中前排名前1萬條域名作為實驗過程中的正常域名.而實驗中的DGA域名取自網(wǎng)站data.netlab.360.com/dga/,該網(wǎng)站每天也都會更新DGA域名,在實驗中采用了1.5萬個DGA域名來作為實驗中的樣本,并標(biāo)注類別,選取語法特征、N-Gram模型特征和隱馬爾可夫模型特征作為區(qū)別特征,然后使用SVM算法和決策樹算法進行模型訓(xùn)練,為了實驗的嚴(yán)謹性,進行10次交叉驗證,選擇4/5的數(shù)據(jù)用于訓(xùn)練模型,剩余1/5進行預(yù)測,使用精確率、召回率作為評價指標(biāo).
支持向量機是一類按監(jiān)督學(xué)習(xí)方式對數(shù)據(jù)進行二元分類的廣義線性分類器,廣泛應(yīng)用于統(tǒng)計分析、回歸和分類等.它的基本思想是使用核函數(shù)映射到高維空間,在高維空間中找到間隔最大的分類超平面.作為一種新的機器學(xué)習(xí)方法,依據(jù)結(jié)構(gòu)風(fēng)險最小原理,支持向量機表現(xiàn)出獨特的泛化和推廣能力,已逐漸成為國內(nèi)外機器學(xué)習(xí)研究的熱點.決策樹是一種常用的分類算法,它是一種樹形結(jié)構(gòu),基本思想是,通過對數(shù)據(jù)集樣本的學(xué)習(xí)建立決策樹,內(nèi)部節(jié)點代表特征的選擇,最后的葉子節(jié)點代表分類的結(jié)果.
本文將兩組特征組合進行評估,特征組合如下:A組為語法特征和N-Gram模型特征組合,B組為語法特征、N-Gram模型特征和馬爾可夫模型特征,為了使實驗更加嚴(yán)謹,進行10次交叉驗證,兩種特征組合下的精確率和召回率如圖3、圖4所示,實驗發(fā)現(xiàn):B組特征組合下的精確率在98%以上,而A組特征組合下的精確率在97%左右.因此,說明分類模型在語法特征、N-Gram模型特征的基礎(chǔ)上添加了隱馬爾可夫模型特征后分類效果有了一定的提高.
圖3 兩種特征組合的精確率
選取語法特征、N-Gram模型特征和隱馬爾可夫模型特征作為區(qū)別特征,對比SVM算法和決策樹算法兩種訓(xùn)練模型,如圖4所示,使用SVM訓(xùn)練模型準(zhǔn)確率可以達到0.98以上,而使用決策樹模型準(zhǔn)確率在0.97左右,因此,可以得出結(jié)論:SVM模型相較于決策樹模型分類效果更好.
圖4 不同模型的準(zhǔn)確率折線圖
本文的目的是分析域名的語法特性,在語法特征、N-Gram模型特征基礎(chǔ)上加入隱馬爾可夫模型作為區(qū)別特征,以提升DGA域名的檢測率,對于N-Gram模型特征維度太大的問題,本文選取域名的N-Gram平均排名作為特征,減少了計算復(fù)雜度,通過兩種特征組合的精確率、召回率對比,兩種訓(xùn)練模型準(zhǔn)確率對比,印證了上面的結(jié)論.但是本文選取的惡意域名數(shù)據(jù)是DGA家族中的Conficker域名數(shù)據(jù),可能最后訓(xùn)練出的模型對于其他種類的DGA域名檢測率并不太理想,因此,下一步工作是選取的數(shù)據(jù)集更加廣泛化,找出更多區(qū)分特征,使訓(xùn)練模型精確率更高、適應(yīng)性更強.