跳转至

T1562-002-动态解析-域名生成算法(DGA)

来自ATT&CK描述

域生成算法

攻击者可能会使用(DGA) 以程序方式生成用于命令和控制通信以及其他用途(例如恶意应用程序分发)的域名。DGA增加了防御者阻止、跟踪或接管命令和控制通道的难度,因为恶意软件可能会检查数千个域以获取指令。

当DGA通过生成每个字母来构建域名时,它们可以采用明显随机或“乱码”字符串的形式(例如:istgmxdejdnxuyla.ru)。或者,一些DGA通过将单词连接在一起而不是字母来使用整个单词作为单位(例如:cityjulydish.net)。许多DGA是基于时间的,为每个时间段(每小时、每天、每月等)生成不同的域。其他人也包含种子值,以使防御者更难以预测未来的域。

攻击者可以将DGA用于备用通道。当与主要命令和控制服务器失去联系时,恶意软件可能会使用DGA作为重新建立命令和控制的手段。

缓解措施

这种类型的攻击技术无法通过预防性控制轻松缓解,因为它基于对系统功能的滥用。

检测

由于不同DGA算法的数量、不断发展的恶意软件系列以及算法复杂性的增加,检测动态生成的域可能具有挑战性。检测伪随机生成的域名有无数种方法,包括使用频率分析、马尔可夫链、熵、字典单词的比例、元音与其他字符的比例等等。CDN域可能会因其域名格式而触发这些检测。除了根据名称检测DGA域外,另一种更通用的检测可疑域的方法是检查最近注册的名称或很少访问的域。

检测DGA域的机器学习方法已经开发出来,并在应用中取得了成功。一种方法是使用N-Gram方法来确定域名中使用的字符串的随机性分数。如果随机性得分很高,并且域未列入白名单(CDN 等),则可以确定域是否与合法主机或DGA相关。另一种方法是使用深度学习将域分类为DGA生成的。

打败算法的只能是算法,所以还是需要检测DGA域名相关算法来辅助,单纯的依靠区分域名,是无法解决根本问题。

参考推荐

MITRE-ATT&CK-T1568-002

https://attack.mitre.org/techniques/T1568/002