什麼是域名生成演算法 (DGA)?(工作原理、如何檢測?)


網路攻擊者利用域名生成演算法 (DGA) 為惡意軟體的命令和控制伺服器生成新的域名和IP地址。由於攻擊以看似隨機的方式進行,安全專業人員實際上很難檢測和限制攻擊。

“Conficker A 和 B”蠕蟲家族推廣了這種策略,最初每天生成 250 個域名。從“Conficker C”開始,病毒每天會生成 50,000 個域名並聯系其中的 500 個,如果惡意軟體控制器每天只註冊一個域名,則受感染的工作站每天有 1% 的機會獲得更新。

執法部門必須每天預先註冊 50,000 個新域名,以防止受感染的機器升級其軟體。從殭屍網路所有者的角度來看,他們只需要從每個殭屍程式每天查詢的眾多域名中註冊一個或幾個域名。

另一方面,DGA 易於構建、難以阻止,並且可能無法提前預測。如果之前使用的方法被發現,它們也可以迅速更新。

DGA 通常由三個部分組成:

  • 一個對時間敏感的“種子”

  • 此種子用於域名“主體”生成器。

  • 一組頂級域名 (TLD)

種子通常只是標準格式的當前日期。域名主體生成器是 DGA 中最重要的組成部分,它可以是從隨機字母字串到隨機短語的串聯,再到常量部分後跟可變字尾的任何內容。但是,TLD 集合必須包含指定已註冊生成的域名的網路實體所屬的真實世界值。

域名生成演算法的工作原理

DGA 隨著時間的推移會建立域名,這些域名充當受感染主機和 C&C 伺服器之間的會面地點,以保持方案的執行。DGA 使用多種策略之一定期為其 C&C 伺服器建立新名稱。

它可以生成看起來像是一系列隨機數字或字元(實際上,它從隨機種子值開始,就像所謂的隨機數生成器一樣),並新增頂級域名字尾(例如 .com 或 .org)。另一方面,偽隨機數生成器生成看起來像是隨機數的數字。

每個週期通常會產生數百或數千個域名。為了建立一個新的 C&C DNS 記錄,攻擊者只需要註冊其中一個域名(這通常是自動完成的)。這些域名以病毒或殭屍網路識別的可預測節奏啟動。惡意行為者還可以將 DGA 設定為以對他們方便的任何間隔註冊新域名——每天、每小時甚至每分鐘。

如何檢測 DGA?

黑名單可用於禁止 DGA 域名;但是,它們的覆蓋範圍不足(公共黑名單)或差異很大(私有黑名單)(商業供應商黑名單)。

有兩種型別的檢測技術——被動式即時。為了評估域名身份驗證,前一種方法使用統計資料,例如 DNS 應答、IP 地址位置、WHOIS 和 TLS 證書資訊。前一種方法將域名視為常規字元序列,而後一種方法將域名視為整體。

以下是使用的最常見技術:

  • N 元語法分割,然後對域名進行頻率分析

  • 計算域的熵(這在非 ASCII 域和基於字典的 DGA 中效果不佳)

  • 使用迴圈神經網路 (RNN) 分析域名。

在效能方面,N 元語法技術非常成功,但其準確性只是中等,更不用說實現難度了。

另一方面,熵策略效能最高,並且使用的記憶體和 CPU 最少。它具有三種方法中最低的準確性,但由於其易用性、簡單性和速度,如果您只需要一個大概估計並且不介意偶爾出現誤報,則可以使用它。

然後是機器學習方法,這是最有趣的。訓練有素的神經網路可以提供令人難以置信的結果,並且誤報率低。但是,為了獲得更高的準確性,它會影響效能和資源使用。

更新於:2022年6月27日

269 次瀏覽

開啟您的職業生涯

透過完成課程獲得認證

開始
廣告