查看原文
其他

DDoS 攻击的来源:僵尸网络

计算机与网络安全 计算机与网络安全 2022-06-01

一次性进群,长期免费索取教程,没有付费教程。

教程列表见微信公众号底部菜单

进微信群回复公众号:微信群;QQ群:16004488


微信公众号:计算机与网络安全

ID:Computer-network

分布式拒绝服务攻击不会凭空产生,而是有其特定的来源。绝大部分的分布式拒绝服务攻击都是从僵尸网络(Botnet)产生的。


什么是僵尸网络呢?在描述它之前,需要先解释什么是僵尸程序(Bot)。僵尸程序是组成僵尸网络的基础,它通常指可以自动地执行预定义功能,可以被预定义的指令控制的一种计算机程序。僵尸程序不一定都是恶意的,但在僵尸网络中的僵尸程序都是设计用来完成恶意功能的。


实际上,僵尸网络并没有规范而确切的定义。数量庞大的僵尸程序通过一定方式联合,就可以组建成为僵尸网络。僵尸网络一般指僵尸主人(Botmaster)出于恶意目的,传播大量僵尸程序,并采用一对多方式进行控制的大型网络。僵尸网络是在网络蠕虫、木马、后门等传统恶意代码形态的基础上发展并融合而产生的一种复合攻击方式。

因为僵尸网络中的僵尸主机数量往往非常庞大而且分布广泛,所以相比于其他恶意程序,僵尸网络的危害程度和防御难度往往更大。从下表的对比结果来看,虽然僵尸和其他恶意代码有一些相似的地方,但它作为新的恶意代码类别,也有其自身的一些特点。


常见恶意代码特性比对

僵尸网络的一个特点是,控制者和僵尸程序之间存在一对多的控制关系。这种控制具有高度可控性,在僵尸主机采取行动时,不需要控制者登录该主机操作系统。


僵尸网络的另一个特点是,控制者在发布指令后,就可以断开与僵尸网络的连接。之后,控制指令会在僵尸程序之间自行传播和执行。因此,僵尸主机能够在控制者很少或不插手的情况下协同合作,共同完成一项任务。


为了对僵尸网络有更直观的认识,下图给出一个僵尸网络简化后的拓扑示意图。


简化的僵尸网络拓扑

一、僵尸网络的发展


僵尸网络是随着自动智能程序的应用而逐渐发展起来的,从良性僵尸网络的出现到恶意僵尸网络的实现,从被动传播到利用蠕虫技术主动传播,从使用简单的IRC协议构成控制信道到复杂多变的对等网络(Peer-to-Peer,P2P)结构的控制模式,僵尸网络逐渐发展成规模庞大、功能多样且不易检测的恶意模式,给当前的网络安全带来了不容忽视的威胁。


首先简单回顾僵尸网络的演化历史,并根据僵尸网络发展的状况讨论其发展趋势。之后,会对世界上一些知名的僵尸网络进行简要的介绍。


(一)演化和发展趋势


僵尸网络的历史渊源可以追溯到1993年因特网初期的中继聊天(Internet Relay Chat,IRC)网络中出现的Bot工具——Eggdrop,这是一种良性Bot。它的实现初衷是能够自动地执行如防止频道被滥用、权限管理、频道事件记录等一系列功能,从而帮助IRC网络管理员更方便地管理这些聊天网络。


受到良性Bot工具的启发,黑客开始编写僵尸程序对大量的受害主机进行控制,以利用这些主机资源达到恶意目的。1999年6月,在因特网上出现的PrettyPark首次使用了IRC协议构建命令与控制信道,从而成为第一个IRC僵尸网络。之后,IRC僵尸网络层出不穷,如在mIRC客户端程序上通过脚本实现的GT-Bot、开源发布并广泛流传的Sdbot、具有高度模块化设计的Agobot等,这使得IRC成为当时构建僵尸网络命令与控制信道的主流协议。


随着僵尸网络防御技术的不断演进,僵尸网络的传播和组建受到了一定遏制,黑客为了让僵尸网络更具隐蔽性和抗打击性,开始不断地尝试对其组织形式进行创新和发展,相继出现了基于超文本传输协议(HyperText Transfer Protocol,HTTP)及P2P协议构建命令与控制信道的僵尸网络。例如,专注银行窃密的Zeus采用的是HTTP,而主机感染数庞大的Zeroaccess僵尸网络则采用了P2P协议。


僵尸网络的演化过程如下图所示。


僵尸网络的演化

随着防御方安全方案的不断推出以及国家有关网络安全法规的不断完善,僵尸程序和僵尸网络在发展过程中也出现了一些调整,这些调整体现出了僵尸网络的发展趋势。


(1)基于IRC的僵尸网络逐渐减少。


基于IRC协议的僵尸网络最早出现,曾一度被作为僵尸网络的代名词。安全人员对这类Botnet的研究最早、也最多,相应的有效的检测手段也越来越多。目前,越来越多的僵尸网络不再使用IRC协议,转而使用HTTP或P2P协议进行通信和控制。


(2)控制国内僵尸主机的命令与控制服务器被逐步移到国外。


伴随着国内网络安全立法的不断完善,黑客发动攻击被逮捕的风险不断加大,迫使越来越多的黑客将服务器放置于国外。下图是国内安全厂商绿盟科技发布的《2012绿盟科技威胁态势报告》中根据检测到的控制端所在地绘制的分布图。


C&C服务器分布

(3)僵尸网络在攻防对抗中引入了更多的先进技术,使其更加难以检测。


例如,在最新版本的僵尸程序Zeus中,引入了P2P模块进行通信,而一旦P2P网络节点无法连通,则使用域名产生算法(Domain Generation Algorithm,DGA)产生随机域名与C&C进行通信。通信数据则采用数字签名校验,以阻止越来越流行的由安全机构实施的sinkhole技术。通过使用这些先进技术,僵尸网络的隐蔽性和抗打击性有了显著提高。


(4)互联网数据中心托管服务器成为热门感染目标。


众所周知,服务器主机性能和配置一般较好,具有更多的资源可以被僵尸程序和僵尸网络使用。因此,这些托管服务器正逐渐成为僵尸程序新的感染目标。


(5)单个僵尸网络的规模减小,绝大部分僵尸主机数都少于1000台。


下图是2011年国家互联网应急中心(CNCERT/CC)监测统计的僵尸网络规模分布图,可以看出小规模的僵尸网络占据主流。


僵尸网络规模分布

(二)知名僵尸网络


在世界范围内,存在着一些知名的僵尸网络,此处对这些僵尸网络进行简要的介绍,使您能够了解目前僵尸网络的现状。为了使描述更直观,我们对每一个僵尸网络都从感染度、收益度、知名度和生命力四个方面给出了评分,并综合给出这个僵尸网络的总体危害程度。先对上述各项解释如下。

  • 感染度:僵尸程序感染的主机数量,也包括被感染主机地域上的分布。主机感染量越大,地域分布越广泛,分值越高。

  • 收益度:指通过此僵尸网络获得的收益。收益值越大,分值越高。

  • 知名度:在全球范围的影响,这包括其是否开源以及是否被各大媒体广泛报道等。曝光度越高,分值越高。

  • 生命力:特指其存活能力,也可以理解为抗打击性。生命力越强,存活时间越久,分值越高。

  • 危害度:前四项的平均值(四舍五入为整数),表示这个僵尸网络总体的危害程度。

1、ZeroAccess


ZeroAccess出现于2011年,是最为知名、目前最为活跃的僵尸网络之一。它采用先进的rootkit来隐藏自身,使用业界流行的模块化设计,通过创建隐藏文件夹,下载存储指定的功能模块并执行。通信协议采用P2P架构使其具有极强的抗打击性。全球主机感染量在100万~200万台之间,其主收入来源为“点击欺诈”,曾经还通过比特币挖掘获益,预计一天收入为10万美元左右。


2、Zeus


Zeus是历史上最能赚钱的僵尸网络之一,2007年首次被发现。Zeus主要用于监控受害者机器,记录用户的击键以窃取银行账户信息。犯罪分子可以从用户的账户中将钱转出,利用用户的银行卡购物等。控制服务器控制僵尸网络的运行,并对僵尸网络发布命令。截止到本书发稿,其偷取的金额达数百万美元之巨。2011年Zeus源码泄露,致使其变种爆炸式增长,更有黑客为其添加P2P模块,对互联网的危害很大,影响深远。


3、Pushdo/Cutwail


Pushdo本身是一个“装载器”,可以下载其他组件安装在系统中,最初发现于2007年。Pushdo可以为客户定制安装特定恶意软件,根据每个安装来收取费用。在Pushdo进入被感染的电脑系统后,通常会下载垃圾邮件程序Cutwail。Pushdo使用Cutwail来完成自我复制,从而不断扩大其僵尸网络,也可通过Cutwail租出垃圾邮件服务。Pushdo/Cutwail僵尸网络发送的垃圾邮件内容很杂,包括医药产品、网络赌博、网络钓鱼邮件以及链接到包含恶意代码网站的邮件。感染了大约10万台主机,在Storm被摧毁后,它成为了最大的垃圾邮件僵尸网络。控制者从中可能获得了170万~420万美元的收益。


4、Mariposa


Mariposa又被称为“蝴蝶”僵尸网络,主要用于窃取信用卡和其他有价值的数据以及DDoS攻击等,目前已被西班牙当局摧毁。这个僵尸网络从2008年出现,随后迅速蔓延到了全球190多个国家和地区,受到Mariposa影响的电脑超过1000多万台,超过一半的全球1000家最大公司和至少40家大金融机构的电脑被感染,目前还无法估算其造成的损失。


5、Waledac


Waledac僵尸程序主要以发送垃圾邮件而著称,Waledac僵尸网络所使用的控制服务器大多位于德国、荷兰、瑞典和俄罗斯等欧洲国家,控制了全球数十万台计算机,预计每天能发出超过15亿封垃圾邮件。在2010年的中、美、欧联手打击下,Waledac僵尸网络日渐衰弱。不过,2012年的监测信息显示,它有重新抬头的迹象。由其造成的损失还不得而知。


二、僵尸网络的组建


无论多么庞大的系统,都是由一个个具体的元素组成的,僵尸网络也不例外。我们在讨论系统的组建时,一般会讨论两个方面——“组成系统的元素都是什么”以及“这些元素是如何相互联系起来的”。对于僵尸网络来说,则分别对应着僵尸网络的节点和控制方式。


(一)节点


僵尸网络由大量功能节点共同组成,这些节点可能是普通PC、服务器或者移动设备(见下图)。


僵尸网络节点构成

这三种节点分别有其各自的特性,下面依次进行介绍。


误区:DDoS攻击都来自PC组成的僵尸网络。


“DDoS攻击都是由僵尸网络发起的”,这几乎是一个安全领域的“常识”。然而,事实并非如此,至少并不完全是由PC组成的僵尸网络发起的。


随着技术的进步,服务提供商所使用的高性能服务器在处理性能和带宽方面快速提升,而传统的由PC组成的僵尸网络却发展缓慢。除了处理能力方面的因素外,PC通常只有非常有限的带宽资源,而可供利用的时间也很不确定。于是,一些“黑客”开始把目光移向高性能服务器,在“燕子行动”中,他们就这样做了。


此外,黑客组织Anonymous更喜欢组织众多真实的参与者共同发起攻击,我们也称其为“自愿型僵尸网络”。


1、普通PC


由于普通个人计算机(Personal Computer,PC)经历了数十年的发展,数量庞大,而且安全性参差不齐。利用普通PC作为节点组建僵尸网络依然是最主流的方法。


通常,僵尸程序将一台普通PC变成僵尸网络的节点,一般要经历四个步骤(见下图),即感染传播、安装执行、接入僵尸网络以及命令执行。


僵尸网络组建步骤

(1)感染传播


僵尸程序所用的感染传播手段与其他恶意程序(蠕虫、木马、后门等)类似,通常包括带有欺骗性质的电子邮件、网页挂马、自动化的漏洞扫描、即时通信、内网的文件共享和移动存储感染,以及最新出现的网络存储与共享等。它在传播形式上有主动出击型的,如自动化的溢出漏洞攻击,也有被动等待型的,如网页挂马。通过上述手段,僵尸程序就极有可能感染那些没有防护措施或防护措施弱的普通PC,进而将其发展成为僵尸网络中的一员。


(2)安装执行


僵尸程序一旦在受害主机上执行,就会进行一系列的自我复制、实现自启动以及隐藏等行为。通常僵尸程序会将自身复制到系统特定的目录下并设置其隐藏属性,部分程序还会修改文件生成时间,创建或修改注册表以保证程序开机自启动,如服务创建等。为了避免侦测,多数僵尸程序都进行了免杀处理,并采用远程代码注入的方式,以免产生新进程。基于上述手段,僵尸程序将可以在受害者主机上做到长期安全稳定地运行。


(3)接入僵尸网络


当僵尸程序在受害者主机上完成各种安装和隐藏后,便通过解析内置的域名和端口进行通信,构建C&C通道加入僵尸网络,而这大多是通过发送搜集的被感染系统主机信息开始的。


(4)命令执行


接入僵尸网络的僵尸程序将执行Botmaster预先设置好的指令,如对特定目标发动DDoS攻击等。在没有收到指令时,僵尸程序会静静等待(这时用Wireshark捕获可见大量的保活数据包),直到Botmaster有指令下发为止。


通过上面的四个步骤,一台普通PC就变成了任人宰割的僵尸主机(又称“肉鸡”),也成为黑客攻击或再入侵的跳板。


事实上,随着网络犯罪独有系统的完善,已经出现了“肉鸡”销售服务,上述过程也得到了大大简化。下图是这种服务的一个广告截图。

“肉鸡”销售广告

“肉鸡”的价格如下:每1000台“肉鸡”,俄罗斯200美元/天,英国240美元/天,美国180美元/天,法国200美元/天,加拿大270美元/天,国际混合35美元/天,每天限量供应2万台。这种服务的出现使得组建僵尸网络的门槛大为降低,甚至能够让新手迅速实施一个复杂、精密的网络攻击活动。


普通PC是最基本的僵尸网络节点,对普通PC的感染和控制技术已经非常成熟。许多攻击者能够快速地利用普通PC组建僵尸网络并展开攻击。


2、服务器


目前,普通PC依然是组成僵尸网络的主要部分,但是将服务器作为节点、组建僵尸网络正逐渐引起攻击者的兴趣。


与普通PC相比,服务器具有高性能、大带宽、长时间持续在线等特点,这些特点使服务器更具有作为僵尸网络节点的优势。


首先,服务器具有比普通PC更高的性能,通常,一台服务器的性能相当于几十台甚至上百台普通PC的性能,因此,可以利用服务器僵尸主机的高性能和高并发性,快速地构造并发出大量复杂请求。


其次,服务器通常具有更大的网络带宽,普通PC的网络带宽通常为几十兆至数百兆,而服务器的网络带宽通常为数吉比特每秒,利用服务器僵尸主机进行DDoS攻击,可以发出极大的攻击流量。


最后,服务器通常需要长期在线,大部分的服务器都需要保证7×24小时的可用性,一旦攻击者将这些服务器作为僵尸主机控制,就能够随时迅速地发动持续的DDoS攻击。


服务器的安全性通常会比普通PC高很多,一般无法通过感染、网页挂马等方式植入僵尸程序,这使得利用服务器组建僵尸网络的成本大大增加,但是由于服务器攻击威力大、效果明显,攻击者还是愿意花费一些成本尝试控制服务器。由于Web服务器在互联网上广泛存在,因此攻击者通常愿意选择Web服务器作为目标。


控制Web服务器并植入僵尸程序的方法主要是利用Web应用和服务器组件的安全漏洞进行入侵。由于Web服务的灵活多样性,即便是及时保持更新并且配置良好的Web应用和服务器组件,也依然可能存在安全漏洞,攻击者可以利用如内容管理系统(Content Management System,CMS)等Web应用的漏洞上传脚本后门程序,甚至利用服务器组件的漏洞完全控制整台服务器。


在从2012年下半年开始的针对美国银行和金融机构进行的DDoS攻击“燕子行动”中,攻击者就使用了主要由服务器组成的僵尸网络Brobot进行攻击。Brobot僵尸网络主要是由植入了itsoknoproblembro(哥们儿没问题)工具的僵尸主机所组成的,itsoknoproblembro通过WordPress、Joomla等Web CMS的漏洞植入到Web服务器上,并向index.php文件注入加密的代码,以允许攻击者随时上传新的Perl脚本代码。由于使用Web服务器作为僵尸主机,每台僵尸主机发出的攻击流量非常大,并且能够同时进行多种不同方式的攻击,因此这次行动对美国银行和金融机构的网络服务产生了比较大的影响。


如果将普通PC僵尸节点造成的威胁比作步枪的话,那么服务器僵尸节点造成的威胁就更像是重机枪。虽然这些重武器成本高、数量少,但是一旦拥有,打击的效果就会显著提高。


3、移动设备


随着移动互联网的飞速发展,利用移动设备作为僵尸节点来组建僵尸网络正逐渐成为现实威胁。


从计算能力和网络带宽来看,移动设备正逐渐接近甚至超越普通PC。当前主流的移动设备的CPU都达到了双核1GHz以上的运算速度,RAM容量也都在1GB以上,这些计算性能对于用来发动攻击的僵尸程序来说是绰绰有余的。同时,与2G网络相比,现有的3G网络在数据传输速度上有了很大的提升,其下行速度可以达到2Mbit/s以上,上行速度可达384Kbit/s以上,部分国家和地区的运营商已经部署了实用的3.5G(下行速度14Mbit/s,上行速度5.8Mbit/s)甚至4G(下行速度1Gbit/s,上行速度500Mbit/s)通信网络,这些高速网络已经能够用于发动攻击。


与服务器类似,移动设备的一些特性使得利用移动设备组件的僵尸网络具有一定的优势。移动设备数量众多,并且依然在飞速增长。以Android和iOS设备为例,根据官方给出的数据,Android设备已经超过9亿台,iOS设备的数量也已经超过了6亿台,而移动设备的增长速度远远超过PC的增长速度,因此,移动设备的数量将很快超过PC数量,利用移动设备可以组建十分庞大的僵尸网络。另外,与PC相比,移动设备在线的时间更长。人们在PC上完成工作之后,通常会将PC关机或者让其休眠,但是移动设备,尤其是智能手机则完全不同,使用者为了保持通信通畅,会使移动设备保持待机状态并维持网络连接,甚至会持续数天没有关机或重启操作。与服务器组成的僵尸网络类似,攻击者能够随时控制这些移动设备,迅速地发动持续的DDoS攻击。


与普通PC相比,移动设备的安全防范较差,更容易成为僵尸主机。现有的移动设备主要有Android和iOS两大平台。由于操作系统和生态环境的开放性等原因,Android设备很容易被植入恶意代码成为僵尸主机;iOS设备相对比较封闭,但进行越狱后依然能够从第三方源安装程序,存在成为僵尸主机的可能。向移动设备植入僵尸程序主要是通过应用捆绑和诱骗安装的方式进行。


出于免费或方便等考虑,许多用户会从第三方市场或论坛下载和安装应用。然而,第三方市场和论坛所下载的应用的安全性无法得到保证。第三方市场和论坛中经常会使用付费应用的破解版本或免费应用的去广告版本吸引用户下载并安装,这些应用有可能是攻击者植入了恶意代码的应用。攻击者将官方应用破解拆包,植入恶意代码并申请权限后重新打包,之后提交到第三方市场或论坛进行分发。当用户被这些破解版或去广告版所吸引,下载并安装这些应用后,就成为了受控制的僵尸设备。除了Android设备,越狱后的iOS设备也能够通过Cydia从第三方源处安装各种软件包,修改系统设置,这为僵尸程序的入侵打开了大门。


除了应用和应用市场方面的问题,更重要的是移动设备的用户没有较强的安全意识。人们在使用PC时,大部分都会安装和使用杀毒软件、防火墙等安全防护软件对PC进行安全保护。但在使用移动设备时,却并没有意识到这些移动设备也需要进行安全防护,只有一少部分用户会在智能设备上安装安全防护软件。此外,部分移动设备用户在安装应用时不考虑应用的来源,也不仔细查看应用申请的权限就确认安装,这些用户的移动设备很容易被恶意应用控制并被加入到僵尸网络之中。


事实上,移动设备与普通PC没有本质上的区别。曾经在PC上被广泛使用进行DoS攻击的LOIC工具,已经被移植到了Android平台(见下图)。可以预测,随着移动设备的计算能力、网络带宽和数量的不断增长,以及移动平台本身安全性和用户安全意识薄弱等问题的逐渐显现,由移动设备作为节点组成的僵尸网络将会在未来不断增加,甚至超过普通PC僵尸网络的数量。


Android平台下的LOIC工具

(二)控制


僵尸网络最早通过IRC通信协议进行控制。随着攻防对抗的升级,通信协议由简单的IRC向HTTP甚至更复杂的P2P进化。通信协议变化的同时,僵尸网络在网络拓扑结构上也有了很大调整,主要体现在C&C控制信道从单一中心向分散方向发展,由一个C&C服务器向多个C&C发展,更进一步地发展为P2P模式。僵尸网络正变得更加复杂,更具有抗打击性。


三种僵尸网络控制方式的规模和优缺点如下表所示。


僵尸网络控制模式比对

下面介绍IRC、HTTP和P2P这三种僵尸的控制形式。


1、IRC型僵尸网络


IRC型僵尸网络是出现最早、存在数量最庞大的僵尸群。它最大的特点是利用IRC协议构造命令与控制信道,交互性好,容易创建。采用一个服务器能轻易创建和控制多台僵尸主机。


IRC型僵尸网络常见的拓扑结构如下图所示。


IRC型僵尸网络

可以看出,无论是僵尸主机还是Botmaster都必须与C&C服务器进行通信,但两者的通信目的稍有不同。僵尸主机与C&C服务器通信主要是为了接收指令、反馈执行结果以及汇报工作状态等;Botmaster与C&C服务器通信的目的通常是发送控制指令和分类管理。


(1)僵尸主机与C&C服务器之间的通信


首先,僵尸程序执行后,会解码内置的配置信息以获取C&C服务器域名及端口号,并与其建立三次握手连接;然后,僵尸程序会发送NICK和USER命令,而NICK通常有固定的前缀,加入预定义频道(大多数都要求提供频道密码方能进入);最后,在完成上述步骤后,僵尸程序会进入PING/PONG状态等待接收指令。


上述步骤对应的数据包如下图所示。


IRC僵尸主机通信

(2)Botmaster与C&C服务器之间的通信


Botmaster首先需要认证自己,即被频道内的所有僵尸主机接纳,往往采用口令的认证机制,即Botmaster先发送认证命令给C&C服务器,C&C服务器将消息转发给频道内所有僵尸主机。


频道内僵尸主机收到消息后,会比较收到的密码和自身硬编码的密码,判断Botmaster是否合法,同时判断Botmaster所用控制端软件版本及主机域名是否可信。


如下图所示,Botmaster的自我认证成功了。


Botmaster认证

在认证通过后,Botmaster就可以发送控制命令了。Bot的命令通常设置为“.”(如.synflood),IRC已有命令以“/”开始,控制命令不能和IRC已有命令冲突。除普通命令外,还可以改变频道TOPIC通知,使频道内(不管是频道内已有的还是后来加入的僵尸主机)所有僵尸主机都能收到此消息,做到命令的自动执行。下图所示为下发SYN FLOOD攻击命令。


启动SYN FLOOD攻击

截获的攻击数据包见下图。


SYN FLOOD攻击数据包

从上面的介绍可以看出,通过IRC进行僵尸网络的控制相对比较容易,而且能高效地分发控制者命令。


但这种控制方式存在一些不足,最主要是单点失效问题,即一旦中央服务器被关闭,僵尸程序会因失去与C&C服务器的通信而灭亡。此外,防御方可以利用逆向得出的配置信息,将自己伪装成为IRC僵尸网络中的一员,加入特定的频道,从而达到监视整个僵尸网络的目的。这也成为IRC控制的僵尸网络越来越不被看好的主要原因。目前,通过IRC进行控制的僵尸网络多见于国外,在国内并不多见。


2、HTTP型僵尸网络


通过HTTP进行控制的僵尸网络在国内出现得比较多,这种僵尸网络规模往往不大,但攻击活动却异常频繁。


HTTP型僵尸网络常见的拓扑结构如下图所示。


HTTP型僵尸网络

相比于IRC型僵尸网络,HTTP型僵尸网络在端口选择上以及通信的加解密方面有更大的灵活性。IRC型僵尸网络需要考虑隐藏性与稳定性,因此控制者多会借助于网络公有IRC服务器,这些服务器的端口往往是固定的,也就间接地决定了整个IRC型僵尸网络的通信端口是不可改变的。而HTTP型僵尸网络则有所不同,虽然大多数HTTP型僵尸网络的通信端口默认选择80,但由于C&C服务器多由控制者搭建,端口的设定可以由控制者自由决定。


同时,HTTP型僵尸网络也更容易隐藏攻击活动。使用HTTP构建的信道,可以更容易地让僵尸网络的控制流量淹没在大量的Web通信中,从而使得基于HTTP的僵尸网络活动更难以被检测出来。


通过HTTP控制的僵尸程序通常由控制面板和生成器两部分组成。下图所示为僵尸程序BlackEnergy的工具包组成。


BlackEnergy工具包

BlackEnergy的生成器界面如下图所示。


BlackEnergy生成器

BlackEnergy的控制端指令下发界面(控制面板)如下图所示。


BlackEnergy控制面板

HTTP型僵尸网络的僵尸程序通常具有后门性质,会搜集系统基本信息,又有自身升级模块以及插件下载等功能。僵尸程序发送的第一个数据包往往是搜集到的被感染主机的系统基本信息,然后从C&C服务器收取并分离要执行的指令,如下图所示。


发送系统基本信息

而对于大多数僵尸网络来说,DDoS攻击仍然是其最主要的目的,而且攻击的形式多样。下图是Athena僵尸网络程序控制面板中显示的多种攻击模式。


多种DDoS攻击模式

通过HTTP进行僵尸网络的组建和控制非常灵活和简单,不过,HTTP僵尸网络与IRC型僵尸网络面临着同样的问题,这种星式的拓扑结构使其抗打击性不强,一旦C&C服务器被破坏,整个僵尸网络就会受到毁灭性的打击。


3、P2P型僵尸网络


在介绍P2P型僵尸网络之前,先说P2P的概念。P2P又称对等网络,在此网络中,各节点处于对等地位,网络节点既可作为客户端向P2P网络中的其他节点请求服务,也可以作为服务器为提出请求的网络节点服务。P2P技术使得网络中人与人的交流、数据交换、分布计算等方面得到直接交互,消除了过去客户端必须连接到服务器进行浏览、请求服务的传统模式。


P2P型僵尸网络,即基于P2P协议建立命令与控制信道的僵尸网络。由于P2P网络中节点对等性的特点,P2P型僵尸网络中的所有节点(或大部分节点)既充当控制服务器的角色,也充当客户端的角色。


P2P型僵尸网络的典型拓扑结构如下图所示。


P2P型僵尸网络

相比于IRC型僵尸网络和HTTP型僵尸网络,P2P型僵尸网络中充当控制服务器的节点不再单一,攻击者可以通过网络中任一节点控制整个P2P型僵尸网络。解决了传统IRC型僵尸网络和HTTP型僵尸网络集中式控制服务器的单点失效问题。由于攻击者可以自己定制P2P协议,对P2P型僵尸网络的检测很难找到通用的特征,也很难发现未知特征的僵尸网络活动。当然,随之而来的是更为复杂的搜索节点算法和维护过程。


这里以最为流行的半分布式P2P型僵尸网络为例,来展示其网络构成和控制方法。根据节点在整个僵尸网络中的地位和作用不同,可以将僵尸节点分为两类:一类是拥有静态IP地址并可以从因特网访问的僵尸节点,我们将其称为Servent bot,这类僵尸节点承担客户端和服务端的双重角色;另一类是IP地址动态分配、私有IP地址或防火墙过滤等原因无法从因特网访问的僵尸节点,我们将其称为Client bot,这类僵尸节点也是受控主机,能主动地周期性连接Servent bot。


半分布式P2P型僵尸网络中的两种节点都存有一张有限的邻接Servent bot节点的链表(Peer List)。一旦僵尸主机重启或脱离僵尸网络,将周期性地主动连接其链表中的服务节点,维护整个僵尸网络的连接。


从僵尸程序植入主机到组建完成半分布式P2P僵尸网络,共经历了程序植入、感染传播和网络维护三个阶段。在程序植入阶段,要求攻击者具备一般黑客所具备的入侵技能,需要在植入的僵尸程序的链表结构中硬编码入数台攻击者已攻陷主机(Servent bot)的IP地址。受控主机上的僵尸程序依次感染其他主机,每感染一台都会首先判断感染的主机是否可成为服务节点(Servent bot),同时构建该僵尸主机的链表表。每台主机被植入僵尸程序后,都会自启动僵尸主程序。在其重启后会根据链表表中的服务器的IP地址,主动连接其他的僵尸节点,从而维护半分布式P2P僵尸网络的整个网络结构。链表数量有限,当其已满而需要存储下台被感染的、可成为服务节点的主机IP时,就会使用该台主机的IP覆盖掉链表中的已存在的一个IP,这样可以保证链表列表中的主机时刻处于最活跃状态。


那攻击者是如何管理已组建好的僵尸网络的呢?简单地说,就是攻击者通过命令与控制机制来控制整个僵尸网络。首先,攻击者接入半分布式P2P型僵尸网络,这主要依靠攻击者的攻击平台。该平台可以封装攻击者的攻击命令,并接收命令的反馈信息。攻击者可通过该平台了解僵尸网络的基本信息。攻击者要连接网络中的服务节点,往往需要通过一定的认证,在通过认证后,即可从此节点中注入其控制命令。其次,指令开始在各节点自动传播。服务节点收到指令后,与自身存储的指令链表比较。如果该指令已存在,则不处理;如果不存在,则将这条指令转发给其他服务节点(依据链表中的IP地址)。其他收到指令的服务节点做同样的操作,使指令得以在整个僵尸网络中扩散。最后,僵尸主机将指令的执行结果通过层层节点再反馈给攻击者。


对于安全研究者来说,通过捕获的一个节点可以发现此僵尸网络的许多僵尸主机,但却很难窥其全貌。而且即使有一些僵尸主机被封杀,也不会影响到整个僵尸网络的生存。


通过P2P控制的僵尸网络的典型代表是ZeroAcess,它的最新版本使用了P2P协议。为了使文件传播和IP地址更新速度更快,ZeroAcess仅包含了很少的命令(getL、retL和newL),并借助简单加密来躲避安全设备侦测。每个节点在初始时都包含256个IP地址,存储于当前目录下的@文件,当前节点使用getL命令和临近节点进行交互。临近节点通过retL指令返回自己节点的相关信息,以便当前节点进行信息更新。


虽然每个节点有256个初始IP地址,但用于信息交换的仅有从中选取的最多16个而不是全部。由于其复杂度,这里不对其更多细节做深入探究。


通过P2P组建和控制的僵尸网络,其僵尸主机数量往往非常庞大,地域分布上可以跨越多个国家甚至洲,找出僵尸网络真正的控制者往往变得非常困难。在没有各国政府有效协调的情况下,对这种僵尸网络的打击几乎是不可能的。正是由于P2P固有的优势,近年来,这种组建和控制僵尸网络的方式正变得越来越流行。


三、僵尸网络的危害


僵尸网络是联合众多联网计算机所组成的一个攻击平台,攻击者利用僵尸网络可以发起各式各样的攻击,可以导致整个基础信息网络或重要应用系统瘫痪,或导致大量机密和个人隐私泄露,以及从事网络欺诈等其他违法犯罪活动。


1、发动DDoS攻击


借助僵尸网络发动大规模DDoS攻击是当前最主要的威胁之一,甚至有的僵尸网络将DDoS攻击作为其唯一功能。攻击者可以向自己控制的所有僵尸主机发送指令,让它们在特定的时间同时连接访问指定的网络目标,在短时间内以大流量冲击,造成目标资源耗尽而无法响应合法请求,产生拒绝服务的效果。


僵尸网络和DDoS工具的区别。


能发动DDoS攻击的不只有僵尸网络,专业的DDoS工具也可以进行DDoS攻击。那么两者之间又有哪些区别呢?大体来看,两者之间的区别主要表现在以下三个方面。


首先,僵尸主机大多拥有真实的IP且分布广泛,甚至可以说遍布全球。而DDoS工具的工作原理则是在单台主机(单个IP)上开启多个线程来模拟多主机情形,一部分攻击工具也不能够进行源IP地址的伪造,因此,相比于前者海量的IP来源,后者则更容易遭到防御方黑白名单的封堵。


其次,僵尸网络控制的是真实主机,在发起攻击尤其是HTTP GET FLOOD时可以在后台启动浏览器访问目标资源,绕过防御方大多数的防御措施。而一些DDoS攻击工具则由于没有实现相应的交互机制,甚至是因为具有某些特定的字符特征而遭到过滤。


最后,僵尸网络往往具有传播功能,之间的维系依靠复杂的协议,如HTTP和P2P等,正是这种传播机制,使攻击者在较短时间内就可以组建颇具规模的网络大军,对目标实施有效打击。而DDoS攻击工具一般不具有自传播功能,好比单兵作战,威力较弱。


2、发送垃圾邮件


垃圾邮件给人们的日常生活造成极大的困扰,而利用僵尸网络发送垃圾邮件更具备以下几个优点:首先,黑客可以隐藏自身的真实IP地址以躲避法律的追究;其次,可以在短时间内发送大量的垃圾邮件;最后,由于僵尸主机的广泛分布,造成很多的反垃圾邮件措施失效,尤其是使用黑白名单机制。


3、窃取敏感信息


由于现在的僵尸程序往往具备后门的功能,所以其一旦加载运行,则存储于受感染主机上的一切敏感信息都将暴露无遗,用户的一举一动都在攻击者的监视之下。如果用户没有有效的阻断措施,则这种控制行为将可能一直存在,而且黑客会以此做跳板来攻击同网络的其他主机。


4、抢占系统资源


僵尸网络一旦形成,就相当于给控制者提供了大量免费的网络和计算机资源,控制者就可以利用这些资源非法牟取暴利,如付费点击(Pay-Per-Click,PPC)以及曾经广泛实施的比特币挖矿行为等。


如下图所示,上面列出的四个方面并不是孤立存在的,一个僵尸网络为了利益最大化,甚至四方面兼而有之。而且在僵尸网络的组建方面,各利益体分工明确。


利益体分工协作

随着计算机网络和攻防技术的不断发展,僵尸网络还有可能被用来发动更多新的攻击。


四、自愿型僵尸网络


前面我们对僵尸网络的发展、组建和危害进行了比较详细的介绍。接下来,我们把僵尸网络的概念稍稍延伸一下,介绍一种特殊的僵尸网络——自愿型僵尸网络。


什么是自愿型僵尸网络呢?与本章前面所介绍的由机器所组成的僵尸网络不同,自愿型僵尸网络是由一个个现实世界的人组成的僵尸网络,这些人通常被称为黑客行动主义者。


如果将由机器组成的僵尸网络与自愿型僵尸网络进行一些简单的类比,我们会发现这两种僵尸网络是非常类似的。由机器组成的僵尸网络通过系统漏洞和社会工程的方式感染一台台机器,而自愿型僵尸网络通过黑客行动主义信仰感染了一个个黑客行动主义者;由机器组成的僵尸网络通过IRC、HTTP和P2P等通信协议进行控制指令的发送,而自愿型僵尸网络通过网站和IRC频道确定攻击目标和攻击计划;由机器组成的僵尸网络能够发动大规模的拒绝服务攻击,而自愿型僵尸网络中的黑客行动主义者们也能够利用手中的计算机和攻击工具击垮一个个站点。实际上,如果将自愿型僵尸网络中的一个个人看做是相对更高级的机器的话,那么这个僵尸网络与传统意义上的僵尸网络几乎没有什么差别。


提到自愿型僵尸网络,最典型的例子就是近几年不断扩大并发出声音的著名黑客组织——匿名者(Anonymous)。


匿名者黑客组织(其图标如下图所示),是一个松散的黑客团体,任何人都可以宣称代表该组织或属于该组织。该组织也是近年来在国际上影响较为广泛的黑客组织之一,在重大的攻击事件中都有他们的身影。


匿名者(Anonymous)组织图标

匿名者组织源于2003年成立的网络信息论坛4chan,这里聚集了一群喜欢恶作剧的黑客和游戏玩家,他们主要做些“为他人定制垃圾邮件”的骚扰。4chan最大的特点就是所有用户都被标记为Anonymous。渐渐地,一些用户自我组织起来形成线下力量,用Anonymous作为称号,自发形成松散的黑客组织。


匿名者组织主要由两种类型的志愿者组成:技术黑客和外行人。


技术黑客,这组人由数个技术熟练的成员组成,他们通常有专业的编程和网络攻防技术,是有真正黑客经历的一群人,也是这个团体的领导力量。


外行人,这个组的人数量最多,也是攻击的执行体,由来自世界各地成千上万的志愿者组成。他们最主要的黑客活动是进行DDoS攻击,通过下载和使用傻瓜式的攻击软件或同时访问网站以阻塞目标网络通信。这个组的成员的最大特点是所拥有的技术水平参差不齐。


匿名者组织有自己的一些特点:他们有自己的网站,借此可以发出自己的声音;并通过IRC频道定期举行聚会,使用投票系统,选择用最好的方式处理任何情况。他们的投票操作如下图所示。


为攻击目标投票

如下图所示,投票后,他们决定接下来的操作。


统计投票结果

这个黑客组织擅长使用DDoS来攻击政府、知名企业及宗教团体的网站等。攻击前,则又通常使用社交媒体,如Twitter、Facebook等来推广攻击活动。以显示和证明一个攻击的政治意义。所以在这种情况下,一个网站会得到一个“合理化”的被攻击的理由(下图)。


造势宣传

匿名者组织在进行DDoS攻击时,会在社交媒体中提供下载工具,以方便更多的人加入到攻击行动当中,如下图所示。


攻击工具下载

匿名者已经组织了许多著名黑客活动,比如阿拉伯之春、抗议捷运、攻击索尼用户数据库以及“占领华尔街”等。他们也通过DDoS攻击使多个知名电子商务公司瘫痪了,如PayPal、Visa、MasterCard和Sony等。


由匿名者官方网站公布的最新数据来看,匿名者组织的最高领导者是Lj·Xie,是匿名者的资深战略家和最高领导者。他说:“我们将发动游击网络战,这是一种非传统、非对称的战争。事实上,战争之火早已点燃。”他承认匿名者组织的行为违反法律,但仍辩称他们违法是出于“道德”目的,是为了监督大公司和政府,曝光他们的错误行为。他们采取的攻击手段将包括:入侵各种国际政府网站及企业网站、入侵渗透各国军事或卫星系统、在网络上公布官员的私人信息,以及破坏大公司的网络和电话通信等。


五、结语


我们对僵尸网络有了一个较全面的认识。僵尸网络已成为几乎所有计算机用户的最大威胁之一,这不仅是对网络安全专家而言,对企业和消费者用户也是如此。此外,黑客建立僵尸网络的动机目前也已开始发生变化,除了金钱,僵尸网络已开始被利用于为政治服务,随着网络战威胁及危害的不断加剧,未来的冲突中不排除利用僵尸网络作为武器的可能性,或许现在已经被投入使用了。随着移动终端的智能化发展,未来的僵尸网络将不仅仅收揽PC,日益火爆的Android等移动设备也将可能成为僵尸网络的新成员。僵尸网络所带来的威胁真的离我们很近!

    微信公众号:计算机与网络安全

    ID:Computer-network

    【推荐书籍】

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存