网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

什么是域名生成算法?

更新时间:2026年03月27日   作者:spoto   标签(Tag):

域名生成算法是一种常用的网络攻击技术。它通过生成大量的随机域名来迷惑攻击者,从而让攻击者难以察觉攻击的结束。 由于攻击者使用了多个生命周期较短的域名,他们可以频繁地进行修改。因此,防御者很难追踪并控制这些命令与控制服务器。 因此,对于任何想要了解网络安全领域的人来说,理解DGAs的工作原理至关重要。因为这些算法在当今的威胁与防御体系中扮演着非常重要的角色。

什么是域名生成算法?

域生成算法(Domain Generation Algorithm,简称DGA)是一种用于识别大量连续域名的过程,这些域名会被用来作为C2服务器的地址。 其中一些算法能够自动生成域名。而安全系统则无法提前知道哪些C2域名应该被列入黑名单。 DGA能够从多个输入中创建出特定的“域”,这些输入包括日期和种子值等。 这些生成的域名将被用来中断恶意软件与其控制者之间的通信。 这样就能确保,即使部分域名被当局发现并没收了,其他域名仍然能够正常运行。 这种技术使得恶意软件能够具有自适应能力,从而难以被检测出来。

域生成算法的特点

  • 动态域名生成:至于DGAs,它们会在不同时间生成不同的域名列表,这样就能避免被静态黑名单所限制。
  • 种子值的使用:他们经常使用某些特定的种子值,比如日期或任意的数字,来确保该域名在时间线上的唯一性。
  • 难以预测:这使得安全工具难以准确计算出该算法所生成的域名的具体类型。
  • 极高的恢复能力:由于恶意程序能够生成大量的潜在C2域名,因此恶意软件有更大的机会持续与其C2服务器进行通信。
  • 混淆/难以理解:这进一步增加了网络安全专业人员试图破坏该恶意软件的C2结构时的难度,因为那些C2结构可以被DGAs所替代。

领域生成算法是如何工作的呢?

  • 算法设计:DGA被嵌入到恶意软件的代码中。该算法还包含一些规则,用于生成域名,这些域名可以是日期、时间、随机数、种子值或任何其他硬编码的值。为了避免被安全工具轻易检测到,该算法的实现通常比较复杂。
  • 域名生成:在规定的时间间隔内,它们会记录每天、每小时的详细信息。随后,恶意软件会利用DGA技术来生成一系列域名列表。这些域名实际上就是潜在的C2服务器,如果恶意软件拥有这样的服务器的话,它就可以利用这些服务器来与操作方进行通信。
  • 域名解析:目前,这种恶意软件试图执行某种操作。DNS查询需要检查生成的域名所对应的网站是否真的存在。也就是说,如果该域名能够正常访问某个网站的话,那么就可以认为该域名是有效的。IP地址那么,该域名已经可以正常使用,可以用来获取相关信息了。
  • 指挥与控制通信:一旦找到有效的域名,恶意软件就会与该域名对应的C2服务器建立连接。该服务器可以被用来执行各种操作,比如下载更新信息,或者将窃取到的信息反馈给攻击者。
  • 备选方案与持久性:如果解析出的域名不再处于活跃状态,那么可能是安全团队已经对它们进行了处理。在这种情况下,恶意软件可能会转移到下一个生成的域名上。这样,即使某些域名被封锁了,恶意软件仍然能够继续其活动,包括与C2基础设施进行通信。

域名生成算法的类型

基于时间的DGAs

  • 描述:这些DGAs能够在它们被编译时的日期和时间点上,提供可路由的域名。该算法基于日期、时间以及其他一些参数来生成一组独特的域名,这些域名会以每天或每小时的频率被更新。
  • 示例:Conficker病毒利用其基于时间的分布式拒绝服务攻击技术,每天能够生成250个不同的域名。

2. 基于种子的DGAs

  • 描述:基于种子的DGAs在生成域名时,会同时使用一个初始值以及一个伪随机数生成器。这个初始值可以是预先编程好的,也可以是恶意软件在运行过程中自动生成的。
  • 示例:Ramnit使用的是基于种子的DGA算法。可以通过改变所使用的种子来生成不同数量的域名。

3. 基于单词列表的DGAs

  • 描述:这些DGAs通过一种组合列表来生成域名。在这个列表中,单词是随机选取的。由于该列表可能包含词典中的单词、音节或任何其他有意义的片段,因此生成的域名更易于人类阅读。
  • 例如:例如,Matsnu恶意软件采用了基于单词列表的DGAs技术来生成域名。这种技术生成的域名更加难以被有效拦截或控制。

4. 基于数学函数的DGAs

  • 描述:这些DGAs采用数学计算方法来进行处理。加密算法用于计算域名。它可以使用哈希算法、模运算等方法来确保域名的唯一性和随机性。
  • 例如:Kraken僵尸网络使用了一种基于数学函数的DGA技术。该技术结合了多种数学公式,从而能够生成多个域名。

5. 混合型DGAs

  • 描述:DGAs有多种亚型。其中包括不同类型的DGAs的混合体,比如基于时间的DGAs和基于种子的DGAs。这类DGAs会不断改变其使用的方法或输入方式,从而使得模式识别变得非常困难。
  • 示例:Necurs僵尸网络特别值得关注。它结合了基于时间的DGA技术和单词列表技术,能够处理更广泛的域名范围,因此更难被阻止。

领域生成算法所面临的挑战

  • 预测域名:至于DGAs,主要的问题在于如何以高精度预测未来将会出现的域名。该算法本身就很复杂,再加上需要引入基于时间的种子值或其他随机数值等因素,使得几乎无法准确预测这些域名。因此,安全团队很难提前阻止这些域名的创建。
  • 生成的域名数量:它以相对较短的时间就能生成成千上万的域名,这种速度远远超过了传统域名过滤机制的能力。安全分析师们抱怨说,由于域名的动态特性,他们无法区分真正的域名和那些由DGA生成的虚假域名。
  • 检测与分析:识别那些属于DGA的域名的过程是相当复杂的,因为这些域名通常隐藏在正常的流量中,因此很难被识别出来。分析DGA以重建产生这种模式的算法过程既耗时又需要大量的资源。
  • 抗打击能力:DGAs在抵御恶意软件方面非常有用,因为如果之前的域名被关闭的话,新的域名可以立即被创建出来。这样一来,几乎不可能彻底清除这个僵尸网络或C2基础设施。因为,这种威胁的制造者可以利用新创建的域名来重新获得对系统的控制。
  • 误报:某些类型的DGAs拥有看起来与合法域名相似的域名。因此,当安全系统试图阻止这些域名时,就会出现误报的情况。这种情况可能会干扰正常的业务流程。例如,安全团队的职责就是保护组织免受此类威胁的侵害。网络威胁因此,该过程涉及到对恶意域名的屏蔽,同时允许合法域名正常访问。
  • 隐秘和规避策略:其原因是,DGAs可以被编程来生成与真实域名模式几乎无法区分的域名,或者利用同形异义词来实现这一点(例如,用看起来不同但实际上拼写相同的符号来代替某些字符)。这就使得自动检测机制和分析师难以过滤掉那些属于非法网站的域名,同时又不把合法网站也列入黑名单中。
  • 全球与法律方面的协调:禁用DGA域名通常需要国际合作,因为域名注册机构遍布全球。域名的撤销过程可能需要很长时间,而这段时间足以让犯罪分子转移到其他域名上,从而继续开展他们的犯罪活动。即便有持续的撤销操作,这些犯罪分子仍然能够继续从事他们的犯罪行为。

实际案例与研究实例

Conficker蠕虫

  • 概述:Conficker是一种病毒,它在2008年给全球各地的计算机带来了巨大的破坏,影响了数百万台计算机。该病毒采用了基于时间的分布式垃圾邮件攻击方式,在感染期间,它每天会在110种顶级域名下生成250个新的恶意网址。
  • 影响/后果:这使得网络安全团队几乎无法预测攻击者可能使用的所有攻击手段,因此他们也无法有效阻止这些攻击行为。尽管多次试图阻止Damon的蠕虫病毒继续传播,但该病毒仍然能够继续其活动并扩散开来。
  • 缓解措施:多家安全公司和研究人员为了共同的目标而携手合作,他们相互协调,对相关域名进行了“预注册”。这样一来,Conficker就无法与C2服务器建立联系了。

2. Kraken僵尸网络

  • 概述:Kraken是一个庞大的僵尸网络,它利用基于数学函数的DGA技术来生成其C2服务器的域名。这个僵尸网络参与了各种攻击行动,包括发送大量垃圾邮件以及其他网络犯罪活动。
  • 影响/后果:DGA的行为真是让人讨厌。网络安全由于无法确定C2服务器的具体位置,这些专业人士不得不放弃继续追踪的工作。因为那个僵尸网络可以轻易地创建出新的域名来隐藏自己的身份。
  • 缓解/减轻后来,专家们成功破解了所使用的DGA算法,从而推测出该恶意软件可能创建的域名。因此,僵尸网络所使用的许多C2服务器都被关闭了。

3. Necurs僵尸网络

  • 概述:Necurs是历史上最大的僵尸网络之一,其主要任务是传播垃圾邮件、勒索软件以及银行相关木马程序。该僵尸网络的指挥控制中心域名是通过一种结合了时间和单词列表的方法来生成的。
  • 影响:之所以能够做到这一点,是因为Necurs拥有复杂的DGA技术。这一技术使得它能够长期在网络世界中活跃着,同时控制着全球范围内数百万被感染的设备。僵尸网络参与了Locky的分发工作。勒索软件此外,还有Dridex银行木马病毒,该病毒导致了巨大的损失。
  • 缓解措施:在2020年3月,微软在多个执法机构的协助下,成功阻止了Necurs利用其DGA技术以及预先购买域名的方式来与C2服务器进行通信。

4. 拉姆尼特

  • 概述:Ramnit是一种属于银行类特洛伊木马病毒的恶意软件,后来发展成了一种更为通用的恶意软件。病毒这种病毒可以窃取数据,并通过可移动存储设备进行传播。实现这一目的的方法是使用基于种子的DGA技术来生成用户自定义的C2域。
  • 影响/后果:基于种子的DGA结构使得Ramnit难以被有效控制。因为域名会频繁且动态地发生变化,因此很难阻止所有可用的通信渠道。
  • 缓解措施:在2015年,欧洲警察机构与几家网络安全公司合作,通过研究DGA数据,成功阻止了Ramnit的恶意行为。他们提前注册了那些被Ramnit试图控制的域名,从而有效地终止了该恶意软件的运作。

5. 玛茨努(仙女座)

  • 概述:Matsnu,也被称为Andromeda,是一种基于模块化的僵尸网络。它利用DGA技术来生成域名列表,从而进行恶意软件的传播和点击欺诈行为。它的主要服务就是用于传播恶意软件以及实施点击欺诈行为。
  • 影响:采用基于单词列表的DGA技术后,僵尸网络更容易生成看似合法的域名。这样一来,这些域名就不容易被识别或阻止,从而避免引发不必要的警报。
  • 缓解措施:在2017年,由FBI及其欧洲同行主导的一项国际行动针对了Andromeda。他们开发出了DGA的新版本,并成功控制了该版本所预测的所有域名。

为什么网络犯罪分子会使用域名生成算法呢?

  • 避免被检测到:大多数安全解决方案都是基于“黑名单”的概念来设计的,即把那些被认定为危险的域名列入黑名单中。而DGAs则会产生大量随机生成的、生命周期较短的域名,这些域名很难被现有的安全解决方案所拦截。
  • 与指挥与控制服务器之间的通信:感染过程必须通过与C2服务器建立连接,才能接收进一步的命令或传输信息。通过使用DGA技术,恶意软件能够列出所有可能的域名列表,从而让对手难以预测下一个会被使用的域名。
  • 动态且具有弹性的基础设施:由于生成的域名是动态变化的,因此即使某个域名被占领或封锁,恶意软件仍然可以轻松地转移到算法生成的下一个域名上。这意味着……网络攻击不会停止。
  • 减少对单一领域的依赖:同样重要的是,不要使用单一的、硬编码的域名。因为这样的做法很容易让恶意软件得以渗透或被禁用。根据DGAs的规定,可以使用多个域名,这样就能减少对单一域名的依赖,同时确保攻击者无法以任何方式限制访问权限。
  • 让击倒动作变得更加复杂:通过DGA生成的无效域名的处理方式,需要与域名注册商或注册机构合作。不过,由于恶意软件有时会生成大量且随机的无效域名,因此这一过程可能会有些繁琐。
  • 基于签名的旁路检测方式:通常,传统的安全措施包括扫描各种“签名”等数据。URLs或者,那些已经被识别为包含恶意软件的域名。这意味着,通过DGAs,恶意软件能够不断创建新的域名,因此基于签名系统的系统很难识别出这些域名,也无法阻止它们被使用。
  • 全球影响力:它可以在不同的顶级域名下创建多个域,比如.com、nets等。此外,DGAs还允许攻击者扩大其控制范围。这样一来,IT安全人员就更难以关闭由攻击者控制的那些域了。
  • 诱饵域名:因此,虽然使用DGAs来管理僵尸网络是可行的,但攻击者所需的命令与控制域数量相对于生成的域名数量来说其实很少。这种情况就像“大海捞针”一样,防御者需要花费大量时间才能找到那些真正具有恶意性的域名。因为有很多合法且无害的域名,使得防御者难以找到那些真正的恶意域名。

组织如何检测DGA域名呢?

机器学习模型

  • 模式识别:由DGAs生成的域名所呈现的模式,可以通过机器学习模型进行分析。这些模型基于对概率分布特征的研究,以及字符的非重复性、域名的长度以及是否存在具有逻辑意义的单词等因素的分析而构建。
  • 行为分析:它还可以学习到这些域名是如何被请求的,比如了解DNS查询的历史记录。DGA域名还具有一些特殊特性,比如寿命较短、注册频率较高,以及使用一些非常规的顶级域名等。

2. DNS流量监控

  • 异常的DNS查询:在那些需要查找新域名的DNS查询中,实施安全措施是非常必要的。例如,DGA域名可能看起来没有任何规律可循,比如we4xdm3.net这样的域名。而正常的、有意义的域名则会有一定的规律性。
  • 大量查询失败的情况:不幸的是,DGA会产生大量的域名,而其中大多数域名实际上并不存在。DNS查询失败的比例增加也可能表明存在DGA活动。

3. 黑名单机制与威胁情报推送功能

  • 实时威胁情报:许多网络安全机构也拥有他们所使用的DGA域名或算法的列表。通过这种方式,DNS流量可以与这些数据库进行比对,从而识别出可能具有风险的域名。
  • DGA家庭:可以加入那些已知的多重基因算法家族及其相关算法的相关信息,这样有助于预测更多的领域。

4. 熵与词汇分析

  • 角色随机性:可以利用域名的熵值以及其他特征,比如其词汇模式,作为区分恶意软件与正常程序的依据。合法网站的域名通常包含一些简单的单词或缩写,而恶意软件的域名则主要由字母和数字构成的虚假字符串组成。

5. 恶意软件的逆向工程

  • DGA逆向工程:通过分析这些恶意软件样本,安全研究人员能够了解该恶意软件所使用的DGA逻辑。只有在经过分析之后,才能预测出未来的攻击目标,从而防止新的恶意网站被创建出来。这种算法正是为了这个目的而设计的。

6. 网络沙箱技术与异常检测

  • 孤立测试:使用/运用恶意软件在沙箱环境中运行这些样本,可以利用安全工具来检测由 DGAs 执行的各种查询行为。
  • 网络行为分析:对于基于DGA的恶意软件检测来说,观察那些使用频率较低的域名之间的通信情况是非常有用的。通过检查出站流量,可以发现与这些域名之间频繁的连接。

7. 域名注册频率分析

  • 注册量激增:观察发现,多个DGA域名会同时被注册,而且这些域名大多是在很短的时间内被注册的。这种情况尤其值得注意,因为域名注册的模式可能表明存在各种恶意活动,而这些活动与DGA的使用有关。

结论

综上所述,可以得出结论:域生成算法是一种相当复杂的手段,恶意软件利用这种方法来避免被检测出来,同时不断与C&C服务器进行通信。 DGAs会导致域名删除的问题,因为它们会动态生成大量的域名。这就会阻碍对恶意域名的拦截工作,同时也会给网络犯罪分子制造出更多破坏机会。 DGAs所引发的问题,只有通过有针对性的威胁识别、实时检测以及有效的集体应对机制来加以解决。 最终可以得出结论:保持对最新信息的了解,并准备好应对因使用DGAs而带来的各种挑战,是非常重要的。

              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料