DDoS botnet常见类型及特点

几个常见的DDoS botnet及其特点 刘亚 周大

利用botnet发起DDoS攻击依然常见,本文从bot种类、C&C通信协议、DDoS攻击类型和服务器活跃情况等角度,对我们在过去一年里跟踪过的几十个大陆地区的DDoS类型的botnet进行了总结。

引言

以botnet为平台发起各种形式的攻击,比如DDOS攻击、垃圾邮件发送、信息窃取等,这种现象已存在多年,并且依然受黑产界的青睐,如果关注这方面的新闻会发现几乎每天都有相关报道出现。因为语言、文化的差异以及网络管制等原因,不同botnet之间往往具有比较大的差异,体现在规模、地理分布、”盈利模式”和技术手段等方面,比如在欧美地区比较活跃的ZeroAccess、Zbot、Kelihos等botnet在中国大陆地区就比较少见[1][2];再比如欧美的botmaster常将垃圾邮件发送作为生财手段,但很少见到中国大陆地区的botnet采取类似的盈利模式,倒是出现了不少游戏盗号、DDOS攻击类型的木马。

如果从技术上分析,会发现差别更大:一些”高端”的botnet已经开始采用诸如FastFlux、P2P、公钥认证等这种以往只在正规的大软件系统中才会采用的复杂技术,以提高其健壮性和隐蔽性,而且会在客户端方面采取各种奇技淫巧比如bootkit等来提高保护等级3,但也有一些botnet的客户端简陋到只是集成了有限的几条远控指令,连加壳保护都没有。

观察已有的botnet并寻找它们之间的共性是建立分类依据的重要手段,可以帮助我们更好地检测和防御通过botnet发起的攻击。本文将以实际数据为基础,对近半年来我们曾检测到的在大陆地区活跃的13种、99个botnet做一些总结,分享一下我们的一些发现。这些botnet均为DDOS攻击类型。

客户端总结

bot指botnet的客户端,在被控主机(俗称僵尸机器、肉鸡)上运行,负责接收和执行botmaster的指令,通常被称为病毒、木马(Trojan)或者恶意软件(malware),与其对应的是由botmaster运行的控制服务器,负责分发指令,常被简称为C&C服务器。对botnet的分类通常是依据bot客户端,比如基于bot家族来源或者所使用的C&C协议来划分,我们只依据C&C协议对bot进行分类,如果两个bot的C&C协议相同,即使它们的C&C服务器IP或者端口号不同,或者家族来源不完全一样,也会被认为是同一种bot。下面介绍我们对所检测到的botnet客户端的一些观察和总结。

bot种类相对集中

前面提到,我们共检测到过99个活跃的DDOS botnet,实际的bot样本近1000个,但依据C&C协议进行分类后发现只有13种bot,也就是说这99个botnet的控制者先后为他们的botnet分发了近1000个md5各不相同的bot样本,而这些样本实际上都只是13个bot的变种而已,有的可能连变种都算不上,只是在每次传播时修改了样本中几个无关紧要的字节使MD5值发生变化而已。这说明实际中的bot种类远远少于bot样本的数量,新类型的bot没有那么多。

表 2.1, bot家族分布

Bot名称 出现次数
darkshell.c.2 44
darkshell.c 6
Nitol 14
artemis/storm.b 13
storm 6
neglemir 5
flyboy 2
Netbot 2
nxs 2
storm.a 2
jgjsfgv 1
Jrq 1
oxoddos 1

表2.1是我们对这13种bot的使用统计,发现被使用最多的是一种名为darkshell.c.2的bot(darkshell.c是其早期版本),有50个这样的botnet,占所有botnet总数的一般以上,这引起了我们的注意,调查后发现原来darkshell.c这种bot不但具有相对全面的DDOS攻击功能,更重要的是其作者开放了源代码,任何人都可以免费获取,这无疑是其出现频率最高的主要原因。与此类似的是后面将要介绍的RAT软件gh0st,也是因为其源代码开放导致使用频率非常高,出现了各种变种。再联想到来自俄国的臭名昭著的bot软件zeus,也是因为源代码被泄露以至于很快就出现了各种变种,有人甚至为其添加了P2P和DGA功能[6],由此似乎可以得出结论,开放源代码的bot更受botmaster的欢迎。

C&C 通信基于TCP

对这13种bot进行分析发现它们的C&C协议都基于TCP,而且普遍使用长连接,通过TCP的KeepAlive机制实现存活性检测,未发现基于UDP的C&C协议。猜测这么做的原因可能是为了简化编程,因为如果要实现基于UDP的C&C协议,需要自己处理丢包、乱序等各种繁琐问题,远比使用TCP来的复杂。

TCP和HTTP flood是必备功能

统计发现每种bot都有集成了3种以上的DDOS功能,其中TCP flood和HTTP flood出现频率最高,有的bot甚至在此基础上发展出更多的攻击形式。

使用私有协议

所有13种bot的C&C协议都是私有协议,未发现使用标准的应用层协议(比如HTTP)传输指令的情况。各种bot的C&C协议各不相同,但有一些共同点:

  1. 运行时都有个类似注册的过程:bot连接C&C服务器成功后会首先发送一个包含自身配置信息(比如CPU频率、操作系统版本等)的报文。
  2. botmaster可以在注册包中设置一些自定义的值实现版本和错误检测。比如darkshell.c bot的注册包里就有一个专门用于描述bot版本的字符串字段,观察发现不同的darkshell.c bot生成的注册包此字段明显不同,甚至即使同一个botnet在不同时期分发的bot样本此字段也可能会变化。
  3. 运行端口可自由设置。

样本普遍加壳

从加壳统计看bot样本在分发时普遍做了加壳保护,有极个别的未加任何壳,但其botnet并不活跃,估计是处于试运行阶段,开发者还未考虑做加壳处理。

有一种bot的样本虽然未做加壳处理,但采取了加花机制,通过在样本中添加混淆指令或者混淆原来的执行流程以此增加样本的逆向分析难度。

均留有后门

尽管主要是用于DDOS攻击目的,但分析发现这13种bot都保留了后门功能,botmaster能控制僵尸主机下载并执行任意的可执行程序,实现远程安装。此外,不少bot都集成了远程关机、重启功能,超过一半的bot还集成了C&C IP/port更新功能。

后面将会提到,观察发现这些后门中使用最多的是下载gh0st RAT工具,让botmaster完全控制僵尸主机。

伴随各种gh0st变种

统计下载指令时发现gh0st是下载次数最多的一类软件,共检测到644个、41种gh0st样本,所以有必要专门分析一下。

gh0st本来是国内的一款开源RAT软件[4],用于远程计算机管理,其全面的功能加上源代码开放,使其深受黑产界青睐,常被改做木马使用,以至于出现了各种各样的gh0st变种[5]。

gh0st通信报文的特点是前面有13字节的报文头,里面包含一个特征串和两个长度字段,报文头紧跟的是经过zlib压缩的payload,其压缩前、后的长度分别由报文头中的2个长度字段标识。gh0st变种间的差别在报文上表现为:

  1. 报文头结构不同:特征串可能在前(gh0st1),也可能位于报文头末尾(gh0st2)。
  2. 报文原始报文长度(len2)不同。

图2.1是我们曾检测过的gh0st变种,更多的变种信息可以参考[5]。值得注意的是,我们还发现了多个集成了DDOS攻击功能的gh0st变种,相关的指令检测工作正在进行中。

123

C&C 服务器特点

在统计botnet时我们用3元组(bot类型,C&C服务器,C&C运行端口)唯一标识一个botnet,所以botnet种类和botnet个数是1对多的关系。C&C服务器统计主要从域名使用、地理分布、IP地址解析等角度入手,下面的描述反映了我们对检测到的89个C&C服务器的分析情况。

大多数C&C 服务器分配了域名

在检测到的89个C&C服务器中,只有15个没有域名,其它均分配了域名,这说明给C&C服务器分配域名在国内是主流,而反观欧美一些规模比较大的botnet,往往会不分配C&C域名,而是直接使用纯IP连接。为何有这种差别,现在还不太清楚,需要继续观察。

从所使用的域名后缀看,3322.org后缀的域名出现最多,达20个。值得一提的是2012年9月份微软为了打击Nitol botnet而”劫持”不少3322.org域名,那段时间我们一直观察的几个域名也在被劫持之列,域名都解析到了美国的IP,所以那段时间内新出现的gh0st bot多使用IP连接C&C服务器,而且自那次事件以后,陆续出现了采用新后缀的C&C域名,我们观察到的非3322.org域名大部分自那以后出现。

运行端口非标准

统计发现bot种类和其运行端口不存在绑定关系,而且大部分botnet运行在大于1024的非标准端口上,不到1/3的botnet运行在标准端口上,但均与标准端口本来的使用意图无关。比如我们发现多个运行在81端口的botnet,该端口本来分配给了Kerberos用于身份认证,但实际的C&C通信与Kerberos完全无关。

C&C域名和IP 的对应

分析域名解析情况时发现实际解析的IP数要大于C&C域名数,实际检测到的C&C域名加C&C IP共有89个,但先后检测到的C&C服务器IP有212个,这说明C&C域名和IP存在1对多的关系。

绝大部分域名都会固定的解析到有限的几个IP上,只有极个别域名映射IP较多,比如有1个C&C域名在近3个月的时间内曾先后解析到32个不同的IP,目前还不清楚这些IP确实为该botmaster所拥有还是使用了被黑的服务器,但我们确实发现过国外的botnet拿被黑的服务器充当C&C服务器的,先后检测到其C&C IP有100多个,而且地理上是全世界分布。

统计还发现存在单个IP对应多个域名的情况,这说明同一个botmaster可能运行了多个botnet。

运行和活跃情况

活跃情况主要依据攻击指令数和攻击频率来衡量,我们半年来陆续检测到27万多条DDOS攻击指令,被攻击目标有1万7千多个。如果将这些攻击指令按照24小时分布统计,可以看出攻击主要发生在上午10点到晚上12点之间,其中下午是最活跃的时段。

2

对被攻击目标分布统计表明,被攻击目标主要位于大陆地区,私服和电子商务网站出现比例最高,也有个别政府、教育网站,有意思的是攻击目标中多次出现了DDOS”服务商”网站。

从具体攻击参数看,尽管每种bot都集成了多种类型的DDOS攻击功能,但botmaster明显只偏爱某几种类型的攻击,其中TCP和HTTP flood是使用最多的攻击手段。

从后门指令的使用看,大部分botnet都检测到了后门指令,而远程安装指令使用最多,共检测到1万1千多条,其它的诸如关机、重启和更新C&C配置这些功能则极少使用,不超过100条。

从统计看,远程安装的内容集中在如下几种情况:

  1. 安装RAT类软件,最常见的是gh0st软件,这个前面已经介绍。猜测这么做的原因是为了完全控制僵尸主机。
  2. 安装新的bot软件,组建新的botnet。
  3. 将僵尸主机作为跳板,继续攻击其它机器。
  4. 安装一些刷流量的软件,这种情况比较少见。

从后门的使用频率看botmaster非常希望完全控制僵尸主机,以榨取更多的利益。另外,某些bot尽管可以通过指令将已有bot迁移到新的botnet中(不同的C&C服务器IP和端口),但botmaster更喜欢通过远程安装新bot的方式来实现迁移。

总结

本文跟大家分享了我们观察到的大陆地区一些DDOS botnet的现象和特点,实际中应该还有不少这类botnet未被观察到,所以我们不能说这些特点对其它的都适用,但管中窥豹,我们相信在botnet的种类、运维方式、DDOS攻击的手段等方面,本文所总结的特点应该具有一定的代表性,希望对大家有所帮助。

参考

1,Over 9 million PCs infected – ZeroAccess botnet uncovered, http://nakedsecurity.sophos.com/2012/09/19/zeroaccess-botnet-uncovered/。

2,Zeus Tracker, https://zeustracker.abuse.ch/。

3,Win32/Gapz: New Bootkit Technique,http://blog.eset.com/?p=16288。

[4],Gh0st,红狼安全小组,http://www.wolfexp.net/。

[5],The many faces of Gh0st Rat,http://www.norman.com/about_norman/press_center/news_archive/2012/the_many_faces_of_gh0st_rat/en/。

[6],Zeus (Trojan horse),http://enc.tfode.com/Gameover_%28trojan_horse%29。

《DDoS botnet常见类型及特点》文章下载 DDOS botnet常见类型及特点

Spread the word. Share this post!

Meet The Author

Leave Comment