DGA域名檢測


一、DGA域名原理

  • 僵屍網絡(Botnet):互聯網上在蠕蟲、木馬、后門工具等,傳統惡意代碼形態的基礎上發展、融合而產生的一種新型攻擊方法。
  • DNS(Domain Name System) :基於 UDP 的應用層協議。主要用途是將一個域名解析成 IP 地址,這個過程叫做域名解析 (Name resolution)。
  • 域名生成算法(Domain Generation Algorithm):是一種利用隨機字符來生成C&C域名,從而逃避域名黑名單檢測的技術手段。

  僵屍網絡&惡意軟等程序,隨着檢測手段的更新(在早期,僵屍主機通產采用輪詢的方法訪問硬編碼的C&C域名或IP來訪問服務器獲取域名,但是這種方式在安全人員進行逆向之后會得到有效的屏蔽),黑客們也升級了肉雞的C&C手段;用DGA算法在終端生成大量備選域名,而攻擊者與惡意軟件運行同一套DGA算法,生成相同的備選域名列表。

  當需要發動攻擊的時候,選擇其中少量進行注冊,便可以建立通信,並且可以對注冊的域名應用速變IP技術,快速變換IP,從而域名和IP都可以進行快速變化。目前,黑客攻擊者為了防止惡意域名被發現,會使用Domain Flux或者IP Flux來快速生成大量的惡意域名。(Domain Flux是通過不斷變換域名,指向同一個IP,IP Flux是只有一個域名,不斷變換IP,一個域名可以使用多個IP)。

  很顯然,在這種方式下,傳統基於黑名單的防護手段無法起作用,一方面,黑名單的更新速度遠遠趕不上DGA域名的生成速度,另一方面,防御者必須阻斷所有的DGA域名才能阻斷C2通信,因此,DGA域名的使用使得攻擊容易,防守困難。

 

 

 

 

 

 

 

 

 

 

二、DGA分類

DGA算法由兩部分構成,種子(算法輸入)和算法,可以根據種子和算法對DGA域名進行分類

種子分類:

1.基於時間的種子(Time dependence)。DGA算法將會使用時間信息作為輸入,如:感染主機的系統時間,http響應的時間等。

2.是否具有確定性(Determinism)。主流的DGA算法的輸入是確定的,因此AGD可以被提前計算,但是也有一些DGA算法的輸入是不確定的,如:Bedep[4]以歐洲中央銀行每天發布的外匯參考匯率作為種子,Torpig[5]用twitter的關鍵詞作為種子,只有在確定時間窗口內注冊域名才能生效。

算法分類:

現有DGA生成算法一般可以分為如下4類:

1.基於算術。該類型算法會生成一組可用ASCII編碼表示的值,從而構成DGA域名,流行度最高。

2.基於哈希。用哈希值的16進制表示產生DGA域名,被使用的哈希算法常有:MD5,SHA256。

3.基於詞典。該方式會從專有詞典中挑選單詞進行組合,減少域名字符上的隨機性,迷惑性更強,字典內嵌在惡意程序中或者從公有服務中提取。

4.基於排列組合。對一個初始域名進行字符上的排列組合。

三、檢測方法

 

 

 

【參考】:

文獻:

https://www.hindawi.com/journals/scn/2021/8887881/

https://www.secrss.com/articles/14369

https://github.com/360netlab/DGA

DGA數據:

https://osint.bambenekconsulting.com/feeds/

https://data.netlab.360.com/dga/

http://s3.amazonaws.com/alexa-static/top-1m.csv.zip


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM