基于Passive DNS迭代聚類的惡意域名檢測方法
【專利摘要】本發明公開了一種基于Passive DNS迭代聚類的惡意域名檢測方法,包括如下步驟:步驟一:提取DNS查詢數據,得到DNS數據組;步驟二:根據已知的白名單域名網站及域名的總訪問量,去除DNS數據組中包含白名單域名的數據組,得到處理后DNS數據組;步驟三:通過處理后DNS數據組中域名與IP之間的相互映射關系,反復迭代查詢,得到存在關聯的域名組;步驟四:抽取惡意域名的特征并訓練得到模型,判斷存在關聯的域名組是否存在惡意域名。本發明公開的一種基于Passive DNS迭代聚類的惡意域名檢測方法,通過域名和IP之間的映射關系,反復迭代查詢,得到存在關聯的域名組,大大提高了惡意域名的正檢率。
【專利說明】
基于Pass i ve DNS迭代聚類的惡意域名檢測方法
技術領域
[0001]本發明涉及計算機網絡安全領域的惡意域名檢測領域,尤其涉及一種基于Passive DNS迭代聚類的惡意域名檢測方法。
【背景技術】
[0002]惡意域名通常指婦蟲、病毒等惡意代碼用于命令控制(Command and Control,C&C)通信的域名,以及嵌入了惡意代碼或者包含非法信息的網站域名。近年來,惡意軟件威脅的持續增長,對我國關鍵基礎設施和重要信息系統安全造成嚴重威脅,尤其是木馬、病毒種類高速增長,垃圾郵件、釣魚網站更加泛濫,給社會帶來了很大的損失。因此,對惡意軟件檢測的研究也就具有了迫切的現實意義。
[0003]惡意軟件依賴于域名系統實現域名到IP的轉換,以完成命令控制通信。當前的惡意軟件為了防止被屏蔽和封鎖,實現高度可用性,通常會頻繁的更改域名的解析,并不斷產生新的域名,同時大大縮短惡意域名的生存周期,增加了檢測難度,使惡意軟件的C&C通信更加可靠。這樣的方法同時會導致大量的惡意域名解析到了一組相同的IP,這些域名之間也就產生了關聯。進一步的,此類惡意域名通常由算法隨機生成,與正常域名相比有著很明顯的特征。
[0004]現有的惡意域名檢測方法和系統,主要集中在對單個域名特征的分析上,主要有:域名響應特征(包括IP的數量,NS的數量,TTL等),域名訪問時間特征,who i S信息,單個域名的字符串特征等。這些檢測方法面臨以下缺陷:
[0005]I)域名響應特征干擾因素越來越多,惡意域名與CDN域名有著諸多相似之處,該方法誤檢率越來越高;
[0006]2)域名訪問的時間規律并不穩定,攻擊者可以輕易通過算法改變;
[0007]3)單個域名的字符串特征有很大的局限性,只能發現已知的惡意域名種類。
[0008]因此,本發明致力于開發一個基于全局特征的惡意域名檢測系統和方法,找出存在關聯的域名組,進而通過域名組特征發現惡意域名。
[0009]鑒于現有的惡意域名檢測方法的缺陷,本發明提出了一種基于passivedns迭代聚類的惡意域名檢測系統和方法。
[0010]本發明提出的檢測方法,是基于這樣的觀察結論:惡意軟件通常會注冊大量的域名來規避檢測,這些域名解析到攻擊者的同一組IP,因此大量的惡意域名之間會產生關聯;這些有關聯的域名通常由同一個算法生成,因此會有一定的字符串特征,與正常域名有明顯的區別。
[0011]為了規避檢測,網絡攻擊者通常會頻繁的改變域名的解析,同時不斷產生新的域名。但是為了節約成本,他們會重復的利用這些域名和IP,比如在一定的時間周期內,不同的域名解析到了同一個IP,不同的IP被同一個域名解析,這樣的行為使某些不同的域名之間產生了關聯,如圖1所示。我們首先要利用域名與IP之間的映射關系,發現域名間的關聯,然后進一步判斷這些關聯的域名組是否存在惡意行為。
【發明內容】
[0012]本發明所要解決的技術問題是開發一個基于全局特征的惡意域名檢測系統和方法,找出存在關聯的域名組,進而通過域名組特征發現惡意域名,為了解決上述問題,本發明提供一種基于Passive DNS迭代聚類的惡意域名檢測方法,其特征在于,包括如下步驟:
[0013]步驟一:提取DNS查詢數據,得到DNS數據組;
[0014]步驟二:根據已知的白名單域名網站及域名的總訪問量,去除DNS數據組中包含白名單域名的數據組,得到處理后DNS數據組;
[0015]步驟三:通過處理后DNS數據組中域名與IP之間的相互映射關系,反復迭代查詢,得到存在關聯的域名組;
[0016]步驟四:抽取惡意域名的特征并訓練得到模型,判斷存在關聯的域名組是否存在惡意域名。
[00?7] 進一步地,在步驟一中,DNS數據組包括四元組(d,i,Tf,Ti,c),d為請求域名,i為響應IP,Tf為開始時間,Ti為結束時間,c為該域名在Tf到Ti時間段內的請求次數,時間窗口 W =Tf-Ti0
[0018]優選地,時間窗口 W的取值為5分鐘。
[0019]進一步地,步驟二中,白名單域名網站包括Alexa前10000域名,將Alexa前10000域名和DNS數據組中的域名包含的比public suffix低一級的子域名進行歸并分組,去除DNS數據組中包含與Alexa前10000域名有相同的低一級域名的數據組。
[0020]進一步地,步驟二中,當域名的總訪問量大于預設的閾值,則去除DNS數據組中包含相應域名的數據組。
[0021]優選地,閾值取值10000。
[0022]進一步地,步驟三中反復迭代查詢的具體步驟包括:在處理后DNS數據組中選定一個域名Do,查找域名Do在時間周期T內映射到的全部第一 IP;解析第一 IP的全部域名形成第一集合Cn,查詢在時間周期T內第一集合Cn中的域名解析過的全部第二 IP,解析到第二 IP的全部域名形成第二集合Cn’,即完成一次迭代循環;當迭代循環中得到的第一集合Cn和第二集合Cn ’不相等,則繼續迭代循環;當迭代循環中得到的第一集合Cn和第二集合Cn ’相等,則結束迭代循環。
[0023]優選地,時間周期T為一天。
[0024]進一步地,惡意域名的特征包括域名數量、域名各級標簽長度的分布范圍和離散程度、域名標簽數量的離散程度、隨機標簽的分布狀況、同一組域名中相同字符的長度以及域名中包含的數字數量。
[0025]進一步地,模型為支持向量機模型。
[0026]本發明具有如下有益效果:
[0027]1、本發明公開的一種基于Passive DNS迭代聚類的惡意域名檢測方法,通過域名和IP之間的映射關系,反復迭代查詢,得到存在關聯的域名組,大大提高了惡意域名的正檢率。
[0028]2、數據經過預處理,減少了數據處理量,大大提高了檢測效率。
[0029]3、機器學習使得本發明公開的一種基于Passive DNS迭代聚類的惡意域名檢測方法能夠不斷學習,從而提尚惡意域名的判斷能力。
【附圖說明】
[0030]圖1是某惡意域名和相應IP的映射結構圖
[0031]圖2是本發明的一種基于PassiveDNS迭代聚類的惡意域名檢測方法的系統結構圖。
[0032]圖3是本發明的一種基于PassiveDNS迭代聚類的惡意域名檢測方法的一個迭代聚類步驟示例圖。
[0033]圖4是本發明的一種基于PassiveDNS迭代聚類的惡意域名檢測方法的一個迭代聚類步驟示例圖。
[0034]圖5是本發明的一種基于PassiveDNS迭代聚類的惡意域名檢測方法的一個迭代聚類步驟示例圖。
[0035]圖6是本發明的一種基于PassiveDNS迭代聚類的惡意域名檢測方法的一個迭代聚類步驟示例圖。
[0036]圖7是本發明的一種基于PassiveDNS迭代聚類的惡意域名檢測方法的一個迭代聚類步驟示例圖。
[0037]圖8是迭代聚類形成的分組中,一組惡意域樣本圖。
【具體實施方式】
[0038]下面結合附圖并參照數據進一步詳細描述本發明。應理解,實施方式只是為了舉例說明本發明,而非以任何方式限制發明的范圍。
[0039]如圖2所示,本發明公開了一種基于PassiveDNS迭代聚類的惡意域名檢測方法,包括如下步驟:
[0040]步驟一,即數據收集:提取DNS查詢數據,得到DNS數據組;
[0041 ]以DNS服務器的網絡出口為數據源,從DNS查詢數據中提取出四元組(d,i,Tf,Ti,c),d為請求域名,i為響應IP,Tf為開始時間,Ti為結束時間,c為該域名在Tf到Ti時間段內的請求次數,時間窗口 W=Tf-Ti,在一個實施例中時間窗口 W = Tf-Ti為5分鐘,并將提取出的數據存入本地數據庫。
[0042]步驟二,即數據預處理:根據已知的白名單域名網站及域名的總訪問量,去除DNS數據組中包含白名單域名的數據組,得到處理后DNS數據組;
[0043]獲取public suffix列表和Alexa top 10000列表。將全部的域名數據根據每個域名包含的比public suffix低一級的子域名進行歸并。與Alexa前10000域名歸并在同一組的域名加入白名單。進一步的,計算每組域名的總訪問量,超過閾值m的,則認為該組域名為大型網站或CDN服務商的域名,加入白名單。將白名單域名從數據中刪除。優選的,閾值m取值 10000 0
[0044]獲取public suffix列表和Alexa排名前10000的域名。將Alexa前10000域名和收集的DNS數據組分別根據public suffix層級的數量進行歸并,如果public suffix包含了η級域名,則有相同的η+1級域名的全部域名歸為一組;DNS數據組中,與Alexa前10000域名有相同η+1級域名的分組作為可信任的域名組從流量數據中刪除,加入白名單數據庫;計算每組域名訪問總量C,如果C大于預設的閾值m,則認為該組域名為大型網站或CDN服務商的域名,將其從DNS數據組中刪除,加入白名單數據庫,在一個實施例中,閾值m取值10000。
[0045]步驟三,即迭代聚類:通過處理后DNS數據組中域名與IP之間的相互映射關系,反復迭代查詢,得到存在關聯的域名組;
[0046]通過域名到IP,IP到域名的相互映射關系,反復迭代查詢,即可將有關聯的域名聚合到一起,步驟如下:
[0047](I):在輸入的處理后DNS數據組中,取時間周期T內的數據。優選的,周期T取值為I天。選定一個域名Do,查找這個域名在時間周期T內映射到的全部IP,解析到這一組IP的全部域名形成一個集合Cn;
[0048](2):查詢周期T內集合Cn中的域名解析過的全部IP,解析到這一組IP的全部域名形成集合Cn’,完成一次迭代循環;
[0049](3):如果集合Cn’不等于集合Cn,那么繼續查詢(:?’中的域名解析到的IP,找到周期T內曾解析到這一組IP的全部域名,形成集合Cn,如果集合Cn’不等于集合Cn則回到步驟(2),直到集合Cn ’等于集合Cn。
[0050]如此迭代進行下去,直到集合大小不再變化,即集合匕等于集合Cn’,集合Cn即為與域名Do有關聯的全部域名。
[0051]圖3-圖7示出了一個實施例中迭代聚類的詳細過程。其中,圖3表示從域名Dl開始迭代。圖4為第一次迭代結果,集合&1為(01,03,04);圖5為第二次迭代結果,集合0/為(01,D2,D3,D4,D5),此時集合匕,不等于集合Cn,所以繼續迭代。圖6為第三次迭代結果,集合匕為(01,02,03,04,05,06),此時集合&1’不等于集合&1,繼續進行第四次。如圖7,此時集合0/為(01,02,03,04,05,06),集合&1’等于集合&1,結束迭代,域名01,02,03,04,05,06形成一個分組。
[0052]步驟四,即機器學習:抽取惡意域名的特征并訓練得到模型,判斷存在關聯的域名組是否存在惡意域名。惡意域名的特征包括域名數量、域名各級標簽長度的分布范圍和離散程度、域名標簽數量的離散程度、隨機標簽的分布狀況、同一組域名中相同字符的長度以及域名中包含的數字數量。在一個實施例中通過支持向量機建立模型。
[0053]如圖8所示,迭代聚類形成的分組中,惡意域名組表現出了明顯的字符特征,我們進而總結了惡意域名組的特征:
[0054]I)域名組的域名數量:攻擊者會注冊大量域名來規避檢測,所以域名組中的域名越多,該域名組越可疑。
[0055]2)域名各級標簽長度的分布范圍和離散程度:域名生成算法通常會產生一些在相同長度范圍內的字符串,再添加公共的域名后綴(public suffix)。有的域名生成算法產生的域名長度甚至完全一致。由此可見,同一個惡意軟件使用的域名總長應大致相同或者分布集中。因此我們將域名長度的分布范圍和離散程度作為惡意域名組的一個特征。
[0056]3)域名標簽數量的離散程度:常見的惡意域名域名的構成通常為“隨機標簽.后綴”或者“固定前綴.隨機標簽.后綴”,由于域名后綴長度較為一致,因此,同一組惡意域名的層次數量,或者說標簽數量,應較為接近或完全相同。
[0057]4)隨機標簽的分布狀況:由于同一組惡意域名后綴的層次數相對一致,因此,它們的隨機標簽所在的層次也大多保持一致,通常為二級或三級。與之相對的,其他應用的最長標簽則可能并不位于注冊域名標簽,例如DNS隧道和域名,其注冊域名之前的前綴部分,SP存儲數據的標簽長度遠大于注冊標簽即注冊后綴。所以我們將域名組中隨機標簽的分布狀況作為惡意域名組的一個特征。
[0058]5)同一組域名中相同字符的長度以及域名中數字的數量:我們發現,還有一類惡意域名會在相同的層次中出現重疊的部分,比如“固定的字符+不同的數字或字符”或“不同的數字或字符+固定的字符”,這些域名多用于非法的服務,包括色情網站、釣魚網站等,此類域名通常還會包含大量的數字或重復的字符。將上述特征向量化,輸入已知的惡意域名數據進行訓練得到模型,即可對迭代聚類形成的分組數據進行預測。經實驗測試,SVM算法可以達到最高的正檢率。
[0059]以上詳細描述了本發明的較佳具體實施例。應當理解,本領域的普通技術人員無需創造性勞動就可以根據本發明的構思作出諸多修改和變化。因此,凡本技術領域中技術人員依本發明的構思在現有技術的基礎上通過邏輯分析、推理或者有限的實驗可以得到的技術方案,皆應在由權利要求書所確定的保護范圍內。
【主權項】
1.一種基于PassiveDNS迭代聚類的惡意域名檢測方法,其特征在于,包括如下步驟: 步驟一:提取DNS查詢數據,得到DNS數據組; 步驟二:根據已知的白名單域名網站及域名的總訪問量,去除DNS數據組中包含白名單域名的數據組,得到處理后DNS數據組; 步驟三:通過處理后DNS數據組中域名與IP之間的相互映射關系,反復迭代查詢,得到存在關聯的域名組; 步驟四:抽取惡意域名的特征并訓練得到模型,判斷存在關聯的域名組是否存在惡意域名。2.如權利要求1所述的一種基于PassiveDNS迭代聚類的惡意域名檢測方法,其特征在于,在所述步驟一中,所述DNS數據組包括四元組(d,i,Tf,Ti,c),d為請求域名,i為響應IP,Tf為開始時間,Ti為結束時間,c為該域名在Tf到Ti時間段內的請求次數,時間窗口 W=Tf-Ti。3.如權利要求2所述的一種基于PassiveDNS迭代聚類的惡意域名檢測方法,其特征在于,所述時間窗口 W的取值為5分鐘。4.如權利要求1所述的一種基于PassiveDNS迭代聚類的惡意域名檢測方法,其特征在于,所述步驟二中,所述白名單域名網站包括Alexa前10000域名,將所述Alexa前10000域名和所述DNS數據組中的域名包含的比pub lie suffix低一級的子域名進行歸并分組,去除DNS數據組中包含與Alexa前10000域名有相同的低一級域名的數據組。5.如權利要求1所述的一種基于PassiveDNS迭代聚類的惡意域名檢測方法,其特征在于,所述步驟二中,當所述域名的總訪問量大于預設的閾值,則去除DNS數據組中包含相應域名的數據組。6.如權利要求5所述的一種基于PassiveDNS迭代聚類的惡意域名檢測方法,其特征在于,所述閾值取值10000。7.如權利要求2所述的一種基于PassiveDNS迭代聚類的惡意域名檢測方法,其特征在于,所述步驟三中反復迭代查詢的具體步驟包括:在所述處理后DNS數據組中選定一個域名Do,查找所述域名Do在時間周期T內映射到的全部第一 IP;解析所述第一 IP的全部域名形成第一集合匕,查詢在所述時間周期T內第一集合Cn中的域名解析過的全部第二 IP,解析到所述第二IP的全部域名形成第二集合Cn’,即完成一次迭代循環;當所述迭代循環中得到的第一集合Cn和第二集合Cn’不相等,則繼續所述迭代循環;當所述迭代循環中得到的第一集合Cn和第二集合Cn ’相等,則結束所述迭代循環。8.如權利要求7所述的一種基于PassiveDNS迭代聚類的惡意域名檢測方法,其特征在于,所述時間周期T為一天。9.如權利要求1所述的一種基于PassiveDNS迭代聚類的惡意域名檢測方法,其特征在于,所述惡意域名的特征包括域名數量、域名各級標簽長度的分布范圍和離散程度、域名標簽數量的離散程度、隨機標簽的分布狀況、同一組域名中相同字符的長度以及域名中包含的數字數量。10.如權利要求1所述的一種基于PassiveDNS迭代聚類的惡意域名檢測方法,其特征在于,所述模型為支持向量機模型。
【文檔編號】H04L29/12GK106060067SQ201610497879
【公開日】2016年10月26日
【申請日】2016年6月29日
【發明人】鄒福泰, 孫文杰, 譚凌霄, 劉渝嬌
【申請人】上海交通大學