采用独特域名生成算法的Tofsee僵尸网络

概述

瑞士政府计算机应急响应中心(GovCERT)近日发现了Tofsee僵尸网络恶意软件的新样本,让他们感到惊讶是,Tofsee的域名竟然是由算法随机生成的,目前他们已经恢复出了算法的细节,并将未来12个月中可能出现的域名列入了黑名单。

内容

今天,我们发现了一个有趣的恶意软件样本,我们确认出这是Tofsee恶意软件,它试图在几分钟内发送数百封垃圾邮件,然而,这并不是它出现在我们视线中的原因(我们每天分析数以千计的恶意软件样本,很多都有这样的行为)。这个特定的样本引起我们注意的原因是它所使用的域名查询方法。它使用的域名似乎是用算法生成的,并且大约有一半域名是瑞士国家顶级域名(ccTLD)。

使用域名生成算法(DGAs)的恶意软件是非常罕见的。

分析

我们分析的这个Tofsee样本有一个非常新的时间戳:“2016年12月16日星期五,07:09:11”。

生成种子

下面我们来探讨DGA的具体过程。首先,计算1974年1月1日0时到现在的秒数(下图中 0x40A0A0),然后在 0x0040A0A8处,用这个值加再加上126230400秒(UNIX纪元到1974年1月1日的秒数),实际上,通过上面的步骤得到了当前的UNIX时间。目前我们尚不清楚为什么要采用这种复杂的方法获取当前UNIX时间。这个Unix时间分别再除以四个整数,分别是60,60,24和7,最后得到的是从UNIX纪元到现在的周数。这个值用作域名生成算法的种子。因此域名的有效期是一周,按UTC时间,从每周四开始。

[[180565]]

在种子生成过程中还调用了一个伪随机数发生器(PRNG),并将结果模10,得到0到9中的一个数。这个随机数发生器采用Borland C/C++编译器使用的标准线性同余算法。

[[180566]]

r2的初始值是几乎不可预测的:

DGA

每次域名生成过程,共产生10个域名。

(域名级别是网址分类的一个标准,包括顶级域名、二级域名等。一个完整的域名由二个或二个以上部分组成,各部分之间用英文的句号”.”来分隔,倒数第一个”.”的右边部分称为顶级域名(TLD),顶级域名的左边部分字符串到下个”.”为止称为二级域名(SLD),二级域名的左边部分称为三级域名,以此类推,每一级的域名控制它下一级域名的分配)

在0x040A0FC 位置,根据种子生成一个随机字符串,例如周数。随后这个随机字符串在0x040A114又被复制了一次。例如:字符串dqg在这变成了dqgdqg,这个字符串的生成细节,待会我们回过头来再细讲。

生成第一个SLD时,用上面讲到的不可预测的随机数生成算法(0到9共10个数),选取“a”到“j”之间(共10个字母)的随机字母,添加到上面的字符串后面,就生成了二级域名,如dqgdqgc.ch。然后,从选取的字母开始,DGA会依次选取a到j中的字母,比如,如果第一次选取了“c”,后面的依次就是“d”,“e”,“f”,“g”,“h”,“j”,“a”,最后是“b”,共10个域名。

前5个域名的顶级域名设为“.ch”,剩下的设置为“.biz”

下面,我们再来看一下0x040A0FC处的随机字符串(上面的dqgdqg)是怎么生成的。

这段过程使用了最开始生成的种子r(周数),例如,根据1970年1月到现在的时间,换算成周数,利用周数得出随机字符串,如下:

例如:2016年12月20日,根据UNIX纪元计算出的周数是r=2450,string1 = 2450%26+‘a’=g,r=2450/26=94,因此第一个字母是g,同时r!=0,继续循环,直到r=0时结束,最后依次得到的字母是:g、q、d。随后,随机字符串gqd被倒序为dqg。随后又被复制了一次,得到dqgdqg。

程序实现

下面是用python实现在DGA算法,根据给定的日期,能打印出所有20个可能的域名。需要注意的是,对于每一个正在运行的Tofsee恶意软件,只会用到其中的一个域名。

[[180567]]

下面是在日期设置为2016年12月20日时的所有20个可能的域名:

域名列表

下表列出了未来52周的所有可能的域名,域名中括号包含了随机扩展,如dqgdqg{a..j}.{ch,biz}代表20个不同的域名。所有的时间都采用CET(中欧时间)时间。

采取的行动

为了防止这种Tofsee僵尸网络操作者滥用瑞士域名空间(ccTLD .ch),我们和瑞士国家顶级域名注册机构已经采取了进一步的措施,所有可能的DGA域名的组合,在注册状态处已经被设置为非注册状态。因此在未来12个月,任何由DGA算法生成的域名,都不会被注册。

参考链接

https://www.easyaq.com/newsdetail/id/1946003877.shtml

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/124163.html<

(0)
管理的头像管理
上一篇2025-02-23 03:51
下一篇 2025-02-23 03:52

相关推荐

  • 云服务器和云虚拟主机怎么选?云服务器和虚拟主机区别

    云服务器适合业务增长快、需弹性扩展的场景,而云虚拟主机适合预算有限、技术门槛低的小型静态网站或测试环境,二者核心区别在于资源独享性与运维复杂度,核心差异解析:从底层架构到使用体验很多人容易混淆这两者,觉得它们都是“买空间建站”,它们的底层逻辑完全不同,云服务器(ECS)就像是你租了一整栋别墅,水电网络独立,你想……

    2026-06-29
    0
  • 赣州智慧旅游招聘是真的吗?赣州旅游人才招聘信息

    中级岗位(3-5年经验)月薪范围通常在6000-10000元,这类岗位需要独立负责项目模块,如独立运营一个抖音账号,或维护一个景区小程序的功能迭代,具备成功案例的候选人议价能力较强,高级岗位(5年以上经验)月薪范围通常在10000-20000元,部分核心管理岗可达更高,这类人才需要具备战略规划能力,如制定整个景……

    2026-06-29
    0
  • 赣州智能物联网车位锁如何管理?智能车位锁管理系统多少钱

    赣州智能物联网车位锁管理的核心在于通过云端平台实现远程控锁、状态实时监控及自动计费,彻底解决传统车位“被占难管”与“找位难”的痛点,在赣州这样的城市,随着机动车保有量的持续增长,老旧小区、商业综合体以及私人固定车位的资源矛盾日益凸显,传统的机械地锁或简易遥控锁,不仅操作繁琐,更无法实现数据化管理,引入智能物联网……

    2026-06-29
    0
  • 赣州智能消防栓好用吗,智能消防栓多少钱一个

    赣州智能消防栓通过物联网技术实现实时监测与远程报警,能显著降低火灾响应时间并提升城市消防安全管理水平,是目前智慧城市建设中不可或缺的基础设施,赣州智能消防栓的核心价值与应用场景传统消防栓往往存在“看不见、摸不着、用不了”的痛点,在赣州这样地形复杂、老城区与新城区并存的区域,传统设施的管理难度极大,智能消防栓的出……

    2026-06-29
    0
  • 云服务器和物理机到底有啥区别?

    云服务器本质上是虚拟化资源池中的弹性实例,而传统物理服务器是独占的硬件实体,前者胜在弹性与运维便捷,后者强在物理隔离与性能稳定,具体选择取决于业务对成本、扩展性及安全合规的权衡,很多人初次接触服务器时,容易把“云服务器”和“传统物理服务器”混为一谈,觉得它们都是用来跑网站或存数据的盒子,这两者的底层逻辑完全不同……

    2026-06-29
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注