什么是域名生成算法 (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 次浏览

开启您的职业生涯

通过完成课程获得认证

开始
广告