網路安全 網域名稱生成演算法(DGA)基礎總結

2021-09-27 08:55:31 字數 1907 閱讀 7112

網域名稱生成演算法(dga)

殭屍網路正在威脅著網際網路網民的安全。殭屍網路中受到惡意軟體感染的殭屍主機由殭屍控制者通過c&c主機進行控制。殭屍主機常常利用dns授權伺服器來解析網域名稱,目的是為了跟c&c伺服器建立通訊通道,然後獲取控制命令,從而進行網路惡意活動。

在早期,殭屍主機通產採用輪詢的方法訪問硬編碼的c&c網域名稱或ip來訪問伺服器獲取網域名稱,但是這種方式在安全人員進行逆向之後會得到有效的遮蔽。目前,黑客攻擊者為了防止惡意網域名稱被發現,會使用domain flux或者ip flux來快速生成大量的惡意網域名稱。domain flux是通過不斷變換網域名稱,指向同乙個ip,ip flux是只有乙個網域名稱,不斷變換ip,乙個網域名稱可以使用多個ip。網域名稱生成演算法(domain generation algorithm),是一種利用隨機字元來生成c&c網域名稱,從而逃避網域名稱黑名單檢測的技術手段。

dga執行方式

攻擊者端(bot-master)

使用種子執行dga生成大量網域名稱,隨機選擇少量的網域名稱進行註冊(可能生成了5000個只註冊1-2個),攻擊者將該網域名稱註冊並指向其c&c伺服器。

受害者端(bot)

使用同樣的種子執行dga,生成大量網域名稱,逐個訪問這些網域名稱,檢測是否存在,如果該網域名稱未註冊,程式繼續檢測其他網域名稱,如果該網域名稱已註冊【如果某生成網域名稱發生了被搶註的情況該怎麼辦?不處理,因為那些網域名稱並不能發攻擊指令,看設計方案是否要繼續進行輪詢】,那麼惡意軟體將選擇使用該網域名稱聯絡c&c伺服器。

dga使用的種子有很多種類,包含日期、社交網路搜尋熱詞、隨機數或字典,生成一串字元字首,新增tld(如com、org等)後得到最終生成網域名稱agd(algorithmically generated domain) 。

【怎樣確定同樣的種子?在程式中內嵌。但是安全人員逆向了之後仍舊不能確定種子是什麼,因為並不能知道攻擊者究竟以什麼字段作為種子】

dga的危害

dga每天可以生成成千上萬的惡意網域名稱,但僅選擇一小部分作為後續的攻擊網域名稱,相對於傳統硬編碼的惡意網域名稱,更難檢測。

dga的優缺點

dga的優點

1、使用dga的殭屍網路有較為健壯的定址方式,可對抗網域名稱黑名單遮蔽、靜態聲望系統以及特徵碼檢測系統。

2、dga是一種理想的備用通道,可作為back up手段恢復殭屍網路控制,如zeus v3。

dga的缺點

1、需要逐一便利agd,定址效率低。

2、大量nxdomain流量導致通訊易被檢測發現。

3、如果agd數量過多,出於時間和金錢成本開銷,攻擊者難以全部註冊,防禦人員可以搶註並通過sinkhole手段測量或劫持殭屍網路。

dga分類

根據種子性質分類

1、根據種子是否依賴於時間分為兩類:依賴於時間的和不依賴於時間的。

時間**於被入侵主機的系統時間,或http響應報文中的日期字段。

2、種子是否確定:確定的和不確定的。

大多數dga的種子都是確定的,即可以**該dga未來使用的種子和以此產生的網域名稱。

一些dga的種子是不確定的,

上述兩種方法將dga劃分為四個類別:

tid、tdd、tdn、tin

根據生成演算法分類

1、基於算術(arithmetic-based)的dga:

計算一系列的數值,這些值能根據ascii碼直接表示成網域名稱,或者這些值作為偏移值,指向在dga在dga中硬編碼的字元表中的乙個字元。大部分dga都屬於這一類。

2、基於雜湊(hash-based)的dga:

使用十六進製制表示的雜湊值生成agd。這dga常使用sha256和md5兩種雜湊值。

3、基於單詞表(wordlist-based)的dga:

從乙個或多個單詞表中選擇單詞並連線成乙個網域名稱,這樣的網域名稱更具有迷惑性。

4、基於置換(permutation-based)的dga:

通過對乙個網域名稱進行置換操作生成多個新的網域名稱。

對目前發現的43種dga進行分類,得到下表:

【圖】

網域名稱生成演算法(DGA)基礎總結

殭屍網路正在威脅著網際網路網民的安全。殭屍網路中受到惡意軟體感染的殭屍主機由殭屍控制者通過c c主機進行控制。殭屍主機常常利用dns授權伺服器來解析網域名稱,目的是為了跟c c伺服器建立通訊通道,然後獲取控制命令,從而進行網路惡意活動。在早期,殭屍主機通產採用輪詢的方法訪問硬編碼的c c網域名稱或i...

網路安全 練習RSA演算法

已知rsa演算法中,素數p 5,q 7,模數n 35,公鑰e 5,明文為bed,對明文進行加解密,使用手工完成rsa公開秘鑰密碼體制演算法加密運算。字母數字對映表如下 請參考 1 設計公私金鑰 e,n 和 d,n 根據題設,p 5,q 7,故 模數n 5 7 35 f n p 1 q 1 4 6 2...

JavaEE 網路安全 加密演算法

aes加密 advanced encryption standard,是一種對稱金鑰加密方式,用於加密解密 sha加密 secure hash algorithm,可以生成資料摘要資訊,主要適用於數字簽名 md5加密 message digest algorithm 5,訊息摘要演算法第5版 通過h...