中国科技论文在线
http://www.paper.edu.cn
基于僵尸网络的 DDoS 攻击研究与仿真#
徐爱梅,任建华,赵同刚*
(北京邮电大学电子工程学院,北京 100876)
摘要:基于僵尸网络(BotNet)的分布式拒绝服务攻击(DDoS,Distributed Denial of
Service)是一种结合了 Botnet 和 DDoS 攻击二者优点的新型的网络攻击。为了更全面的了
解此类攻击的原理及行为特征,本文首先分别阐述了僵尸网络和 DDoS 的攻击原理及基于
Botnet 僵尸网络攻击攻击特点,然后利用 NS2 网络仿真工具模拟了基于僵尸网络的 DDoS 攻
击,最后从吞吐量和丢包率两方面对仿真结果进行了分析。
关键词:基于僵尸网络的 DDoS 攻击;僵尸网络;DDoS;NS2 仿真
中图分类号:TP393
The research and simulation of DDoS attacks based on
Botnet
(School of Electronic Engineering,Beijing University of Posts and Telcommunications,
Xu Aimei, Ren Jianhua, Zhao Tonggang
Beijing 100876)
Abstract: Botnet-based distributed denial of service(DDoS) attacks ,which take advantages of both
BotNet and DDoS, represent a more sophisticated attack for today’s cyber security. In this paper,
principles of both Botnet and DDoS are elaborated respectively,characteristics of botnet-based DDoS
are also set forth in order to get more comprehensive understanding about principles and characteristics
of such attack.Then,Botnet-based DDoS attacks are simulated by using NS2.Finally, results of
simulation are analyzed in two aspects: throughput packet loss rate.
Keywords:Botnet-based DDoS;Botnet;DDoS;NS2 simulation
0 引言
目前僵尸网络(Botnet)和分布式拒绝服务(DDoS)攻击是网络安全领域面临的重要
威胁,是互联网络领域的研究热点和亟待解决的问题。Botnet 可以发动大规模的恶意活动如
DDoS 攻击、蠕虫、垃圾邮件、网络钓鱼、窃取商业信息等。DDoS 攻击实施简单,攻击者
可以不用了解技术细节针对某一网络资源快速发动大规模的、分布式的且危害性极大的攻
击。随着防御和检测攻击技术的提高,网络攻击的反侦测技术也不断的提高。因此,基于
Botnet 的 DDoS 攻击结合了二者的优点而逐渐成为备受黑客的青睐攻击方式,这种攻击可以
在很大程度上模拟合法用户的操作,使得检测和预防这类攻击更具挑战性。僵尸网络是当前
发起 DDoS 攻击的主力军。2009 年 6~7 月[1],攻击者利用僵尸网络对美、韩部分政府、新闻
媒体和商业网站等发动大规模的 DDoS 攻击;同时 Twitter、Facebook 和 Google 等社交网站
也遭到了类似的攻击。因此,研究基于 Botnet 的 DDoS 攻击原理并对其进行仿真,进而找
出有效的防御方法和检测机制其必要性及重要性是显而易见的。
基金项目:基金项目:北京邮电大学青年科研创新计划专项基金(the Special Fundation for Scientific and
Innovative Project of BUPT under Grant NO.2009RC0312)
作者简介:徐爱梅(1984-),女,硕士,计算机工程应用与光通信. E-mail: emilyaimeihsu@gmail.com
- 1 -
中国科技论文在线
1 攻击原理简述
1.1 僵尸网络攻击原理
http://www.paper.edu.cn
僵尸网络(Botnet)是指攻击者利用网络搭建的可以集中控制和相互通信的计算机群[2][3]。
Botnet 采用主动漏洞攻击、邮件病毒、蠕虫等恶意传播手段,将互联网上的不同物理位置的
主机感染恶意僵尸程序并添加到自己控制的僵尸网络,从而在控制者与被感染主机之间形成
一个一对多的可控网络,攻击者与僵尸主机之间是通过命令与控制信道通信。
按照不同的命令与控制模型[4],僵尸网络可以分为两类:集中式的僵尸网络和分布式的
僵尸网络。集中式的僵尸网络主要采用基于 IRC 协议和 HTTP 协议的命令与控制机制,主
要采用 PUSH 和 PULL 两种形式实现命令与控制服务器的通信。在 PUSH 机制中,僵尸主
机被连接到 C&C 服务器上(如 IRC 服务器)并等待接收来自攻击者(Bot Master)的命令;
而在 PULL 机制中,攻击者将命令存放在 C&C 服务器(如 HTTP 服务器)的一个文件里,
僵尸主机会不断连接到服务器来读取最新的命令。集中式僵尸网络的典型结构[5],如图 1 所
示:
图 1 集中式僵尸网络的典型架构
Fig. 1 Typical Arcitechture of Centralized Botnets
与集中式的僵尸网络不同,分布式僵尸网络主要采用基于 P2P 协议的命令与控制机制,
攻击命令文件会被放置在 P2P 的网络中,僵尸主机可以使用特定的搜索关键字来查找发布
的命令文件。综上所述,二者最大的区别在于集中式的僵尸网络需要一个特定的服务器,而
分布式的僵尸网络却只需要通过共享的网络资源进行广播即可。分布式僵尸网络的典型结构
[6],如图 2 所示:
图 2 分布式僵尸网络的典型架构
Fig. 2 Typical Arcitechture of Distributed Botnets
1.2 DDoS 攻击原理
分布式拒绝服务攻击 DDoS,是一种基于拒绝服务(DoS,Denial of Service)特殊形式
的拒绝服务攻击,是采用一对多机制轻而易举地针对商业站点或某一基础设施发起分布式
的、相互协作的、极具破坏性的大规模网络攻击。DDoS 攻击原理[7],如图 3 所示:
- 2 -
中国科技论文在线
http://www.paper.edu.cn
图 3 DDoS 攻击原理
Fig. 3 Attack Principle of DdoS
从上图中可以看出,DDoS 攻击架构分 3 层:攻击者(Real Attacker)、主控端(Master)
和攻击机(Daemon),三者在攻击中扮演不同的角色。攻击者操纵整个攻击过程,向主控
端发送攻击命令;主控端是安装了特定的程序的主机,其接受攻击者发来的特殊指令,同时
能把攻击命令发送到其控制的大量攻击主机;攻击机是接受和运行主控端发来的攻击程序的
主机,是攻击的执行者,直接向攻击目标发送攻击。攻击者首先在网络上“寻找”存在漏洞
的主机,进入系统后在其上面安装后门程序,攻击者将对这些被感染的主机分成两部分:一
部分主机充当攻击的主控端,一部分主机充当攻击的攻击机。各个主机在攻击者的调遣下对
被害者发起攻击。攻击者利用分布不同地理位置的主机发动对受害者发攻击多对一的攻击来
“隐藏”自身,躲避监控系统的跟踪,增加了检测和防御这种攻击的难度。
DDoS 攻击可以从攻击对象和攻击特点两方面进行分类[8] ,按攻击对象不同分为终端攻
击和带宽攻击。终端攻击是指通过攻击耗尽目标主机(系统)资源(如 CPU、内存等),
使其无法响应需崩溃,这种攻击与硬件及性能紧密相关;带宽攻击是利用网络协议漏洞对中
间传输设备进行攻击,让到达目标链路带宽被大量的攻击流量占用,而正常用户数据包被丢
弃。按攻击特点有同有直接 DDoS 攻击和反射型 DDoS 攻击。直接攻击是攻击机直接向攻击
目标发送大量的 TCP、ICMP、UDP 等攻击数据包,攻击包中源地址利用伪造源地址随机产
生。当攻击包到达受害主机后,受害主机须按接收到的攻击数据包的源地址发送相应的响应
数据包,由于地址是伪造的,这些数据包始终得不到确认,因些占用受害主机大量资源而无
法提供正常服务;反射式攻击是攻击机向大量的反射主机发送大量需要响应的源地址受害者
的 IP 地址数据包,进而反射端的庞大主机群收到数据包后,会向已接收的数据包源地址发
送大量的请求响应数据包,导致受害主机的网络连接阻塞。
2 基于 Botnet 的 DDOS 攻击
Botnet 是当前发起 DDoS 攻击的主力军,一是由于僵尸网络可以形成庞大规模,攻击者
可以利用其增强 DDoS 攻击的破坏力;二是攻击者以利用僵尸网络发动攻击时隐藏自身不被
发现,增强了攻击者自身的“安全系数”而逐渐成为不法分子青睐的攻击工具。基于 Botnet
的 DDoS 攻击结合了二者优点而演化出的一种新型且更为复杂的网络威胁,而且比原来的
DDoS 危害更大,更加难以防范,这使得之前的检测和防御 DDoS 攻击的方法不再适用于基
于 Botnet 的 DDoS 攻击。
基于 Botnet 的 DDoS 攻击通常会在某种程度上模仿合法用户的行为和耗尽主机的稀缺
资源(CPU、内存、数据库、硬盘带宽等),比如当大量的僵尸主机在接收到命令后连接到
某个受害 WEB 服务器(或者其他类型的服务器),开始下载普通网页、图片、大数据文件
等方式来消耗服务器更多的资源,这种攻击的结果是受害主机无法从合法请求中区分出攻击
流量,从而使某个(或某些)资源处于崩溃状态,利用基于 IRC 协议的僵尸网络发动 DDoS[9],
如图 4 所示基于 IRC 协议的僵尸网络对某一服务器发动 DDoS 攻击过程。
- 3 -
中国科技论文在线
http://www.paper.edu.cn
图 4 基于 IRC 协议的僵尸网络的攻击行为
Fig. 4 Attacking behavior of an IRC based Botnet
首先 Botmaster 利用某一远程主机的漏洞将该主机变成自己的一台僵尸主机,该主机便
会自动下载和安装二进制代码;其次是建立命令控制信道:僵尸主机会自动通过 DNS 查询
获得 IRC 服务器 IP 地址,僵尸主机会向服务器发送请求加入命令,服务器进行验证成功后,
僵尸主机便与与服务器成功连接。多数情况下,Botmaster 自身也需要向服务器认证,认证
成功后,命令控制信道将 Botmaster、僵尸主机、IRC 服务器三者紧密联系起来;最后,
Botmaster 若想对某一目标主机发动 DDOS 攻击,只需通过 IRC 服务器向僵尸主机发送像
“.ddos.start victim_ip”命令,一旦僵尸主机接收到命令后,便开始攻击目标主机。
3 攻击仿真
3.1.1 仿真工具及性能参数
为了模拟基于 Botnet 的 DDoS 攻击行为,本文将采用目前网络研究领域应用最广泛的
网络模拟软件 NS2[10]来模拟利用僵尸网络对某一 DNS 服务器发动 DDoS 攻击行为。将从两
个方面度量攻击效果:
1)吞吐量,指单位时间内某个主机或网络发送或接收的数据量,单位一般是 bit/s.当某
个节点被攻击时,吞吐量应该包括正常数据量和攻击数据量。假设吞吐量用α表示,ρl 表
示正常请求数据量, ρa 表示攻击数据量,Δ 表示时间,则有,
α = (ρl + ρa)/Δ
2)丢包率,是一个由于某种原因被丢掉的数据包和发送或接收的数据包的比率,假设
丢包率用β表示,η表示发送/接收数据包的总数量,ηd 表示被丢掉的数据包的数量,那么,
β = ηd / η * 100
3.1.2 仿真环境设置
为了在最大程度上与真实网络接近的基于 Botnet 的 DDoS 攻击,应该考虑以下几个方
面:网络拓朴、正常请求流量、攻击流量等。由于目前针对 DNS 服务的 DDoS 事件层出不
穷,攻击形式也是多种多样如:缓冲期溢出;海量流量堵塞带宽;伪造源 IP 发送海量 DNS
查询;源端口 53 的 UDP FLOOD(攻击负载均衡设备);真实协议栈大量查询随机域名引
起迭代查询等。本次实验将模拟带宽耗尽型的 DDoS 攻击行为:海量流量堵塞带宽 DDoS
攻击,即利用集中式的僵尸网络针对某一 DNS 服务器的一个瓶颈带宽资源发起大量 UDP
请求数据包堵塞带宽的拒绝服务攻击,通过较快速率发送请求数据包来耗尽中间路由器或其
他主机资源实现。模拟实验运行的软硬件环境分别是操作系统为 Linux Fedora 11、NS2 的版
本为 2.33、双核 2.0GHz 处理器、内存为 1GB 的一台个人电脑。攻击实验的网络拓朴结构,
如图 5 所示:
- 4 -
中国科技论文在线
http://www.paper.edu.cn
图 5 模拟拓朴结构
Fig. 5 Topo of simulation
在本次实验中,假设所有的 DNS 查询请求数据包都要通过路由器和互联网络云到达
DNS 服务器,此时路由器和互联网络云之间的链路是该网络的瓶颈。攻击者利用 UDP 来发
起攻击,U 是做为 UDP 流量攻击的接收点。合法请求和攻击请求数据包均通过互联网络云
到达 DNS 服务器,目的是尽可能多的占用瓶颈带宽以致正常的流量不能到达服务器。其中,
合法 DNS 查询请求由 150 个主机随机的产生,50 个主机充当 DDoS 僵尸主机角色;一个节
点用来模拟真正的攻击者,其会在 0~18 秒内随机向 C&C 服务器发送攻击命令,C&C 服务
器收到后将攻击命令发送给僵尸主机,在第 20 秒的时候向目标 DNS 发起 DDoS 攻击,攻击
持续时间是 20 秒。具体参数如表 1 所示
表 1 模拟网络环境参数表
Tab. 1 Parameters of attack simulation
参数名称
模拟时间
合法主机数量(台)
攻击主机数量(台)
命令控制信道服务器数量(台)
攻击者主机数量(台)
访问带宽
瓶颈带宽
合法流量产生器
攻击流量产生器
合法请求产生时间
攻击命令发出时间
攻击开始时间
攻击持续时间
DNS 请求查询数据包
攻击命令数据包
参数值
60 秒
150
50
1
1
1Mb/s,延迟 10ms
3Mb/s 延迟 20ms
指数流量产生器(Exponential)
固定比特率流量产生器(CBR)
在 0~45 秒之间随机产生
在 0~18 秒之间随机产生
在第 20 秒的时候开始
20 秒
UDP 数据包
TCP 数据包
利用 NS2 自带节点生成工具 Nam 随机生成的各个节点分布图如图 6 和图 7 所示,其中,
绿色节点 1 表示的 Internet Cloud 节点,红色节点 0 表示与 DNS 服务器直接相连的 Router,
蓝色 202 号节点表示 C&C,黄色 203 号节点代表的是真正的攻击者。
图 6 未受到攻击节点分布图
Fig. 6 Non-attacked Distributions
- 5 -
中国科技论文在线
http://www.paper.edu.cn
图 7 受攻击后节点分布图
Fig. 7 Attacked Distributions
合法请求是在 0~45 秒内随机产生的,各节点请求开始时间和结束时间分布如图 8 所示:
图 8 正常请求开始和结束时间分布图
Fig. 8 Start Time and End Time Distribution
3.1.3 仿真结果分析
根据上述模拟参数,实验将分别模拟不同的攻击数据包发送速率下攻击行为对合法请求
产生的影响。
在 DDoS 攻击过程中,攻击流量大量充斥着瓶颈链路,从而迫使路由器不得不丢弃一些
合法请求数据包,以下讨论将重点关注攻击时间段 20~40 秒内吞吐量的变化。
图 9 正常流量变化图
Fig. 9 Variation of Good Throughput
图 10 攻击流量变化图
Fig. 10 Variation of Bad Throughput
图 9、10 分别表示受到攻击和未受到攻击时吞吐量的变化,从图 10 中可以看出,攻击
流量按照不同的发送速率发送时,产生的攻击流量呈递增状态,从图 9 中可以看出,合法请
求流量按照指数据分布产生数据,按照固定的速率 128kb/s 发送请求数据包;攻击者在 0~18
秒的一个随机时间内向僵尸主机发送攻击指令,僵尸主机收到攻击命令后在第 20 秒开始向
目标发送 UDP 请求数据包。在受到攻击时间段内,合法请求数据流量明显降低。随着攻击
- 6 -
0
512Kb/s
1Mb/s
2Mb/s
3Mb/s
0/30914
219200/30750
428100/30750
644586/30750
858639/30750
丢包率
0
6.5%
18.4%
24%
27.9%
中国科技论文在线
http://www.paper.edu.cn
包发送速率增大,合法请求数据量呈现明显下降的趋势,此时在合法请求主机端便呈现出拒
绝服务状态。
利用 AWK 分析工具分析模拟结果计算出了在不同攻击速率下合法请求数据包的丢包
率及在 60 秒内合法请求数据包和攻击数据包总量的比,如表 2 所示:
表 2 丢包率及请求数据包数据量对比表
Tab. 2 Contrasts of Droprate and Quantity of Qurey Packet
DDoS 攻击数据包发送速率
攻击包数量/合法请求包数量
可以看出,随着攻击数据包速率增大时,攻击数据包总量和丢包率均明显上升,发送攻
击数据包速率较小时,瓶颈链路中的攻击数据包数量较少时,只有少部分合法请求数据包被
丢弃;随着攻击速率增大,瓶颈链路被大量攻击数据包充斥,这样导致大量合法请求数据包
被丢弃,合法请求的丢包率增大,此时便形成了拒绝服务。
4 结束语
本文从研究僵尸网络和 DDoS 攻击的原理入手引出结合二者优点的一种更为复杂且攻
击力更强的网络攻击:基于僵尸体网络的 DDoS 攻击,并利用 NS2 针对这类攻击作了模拟
实验并对结果做了简单的分析。实验表明,攻击者可以方便的利用数据以百万计的僵尸主机
对某一目标发动攻击并使其处于拒绝服务的崩溃状态。下一步研究工作将是从响应时间、平
均服务速率等多个方面针对这类攻击行为进行更全面的分析和研究,力争突破传统防御和检
测手段,提出针对此类攻击更有效的检测方法和防御机制。
[参考文献] (References)
[1] SUMNER LEMON.Conficker worm hasn’t gone away.[OL].(2010-01-15)[2010-3-20].
http://www.computerworld.com/s/article/9145018/Conficker_worm_hasn_t_gone_away_Akamai_says?.
[2] 诸葛建伟,韩心慧等.僵尸网络研究[J].Journal of Sofware,2008,19(3): 702-715 ,3
[3] 李金良.僵尸网络及其防御研究[D].山东:曲阜师范大学,2007.
[4] WEI LU,MAH BOD TAVALLAEE,ALI A. GHORBANI.BotCop:An Online Botnet Traffic Classifier.Seventh
Annual Communication Networks and Services Reaserch Conference, .Moncton,NB,2009[C/OL]:[S.l]IEEE
computer society,2009:70-77.
[5]MARYAM FEILY, ALIREZA SHAHRESTANI.A Survey of Botnet and Botnet Detection:Third International
Conference on Emerging Security Information, Systems&Technologies,Athens,2009[C/OL].[S.l.]:IEEE computer
society,2009:268-273.
[6] 方圆,吴灏,杨利明.双层架构的 P2P Botnet 研究[J].Computer Engineering and Design ,2008,
29(11):2724-2747,6.
[7] FELIX LAU,STUART H.RUBIN,MICHAL H.SMITH,LJIJANA TRAJKOVIC.Distributed Denial of Service
Attacks[J]. IEEE Internaltional Conference, 2000,3:2275-2280.
[8] 孙向阳.基于 NS2 的 DDoS 攻防模拟系统研究与实现[D].北京:国防科技大学,2008.
[9] WEI LU,MAHBOD TAVALLAEE,ALI A. GHORBANI.Automatic Discovery of Botnet Communities on
Large-Scale Communication Networks:Third International Conference on Emerging Security Inforation,Systems
&Technologies,Sydney,2009[C/OL].[S.l.]:IEEE computer society,2009.
[10] NS Documentation[EB/OL].[2010-03-20] http://www.isi.edu/nsnam/ns.
- 7 -