分布式拒绝服务攻击及防范研究
摘 要 随着 网络 应用 的日益广泛,网络结构框架已经暴露在众多网络安全的威胁之下
,DDoS 攻击随处可见,人们为克服 DDoS 攻击进行了大量 研究 ,提出了多种解决方案
。本文系统 分析 了 DDoS 攻击的原理和 方法 ,在分析具体的攻击工具的基础上给出防御
方法。 关键词 拒绝服务攻击;分布式拒绝服务攻击;扫描;黑客
1 引言 随着网络应用的日益广泛,网络结构框架已经暴露在众多网络安全的威胁之下
,其中拒绝服务(DoS)攻击和基于 DoS 的分布式拒绝服务(DDoS)攻击最为常见。例如,
2000 年黑客们使用 DDoS 连续攻击了 Yahoo、ebay、Amazon 等许多知名网站,致使一
些站点中断服务长达数小时甚至几天,国内的新浪、163 等站点也遭到类似的攻击。
2001 年 5 月对 CERT Co-ordination Center 的攻击,2002 年 5 月对 edNET 的攻击都造成
了很大的损失[1]。在 2001 年 4 月的中美黑客大战中,DDoS 也被广泛使用。随着高速网
络的不断普及,尤其是随着近年来网络蠕虫的不断 发展 ,更大规模 DDoS 攻击的威胁也
越来越大。2 分布式拒绝服务(DDoS)攻击 DoS 是指攻击者在一定时间内向网络发送大
量的服务请求,消耗系统资源或网络带宽,占用及超越被攻击主机的处理能力,导致网络
或系统不胜负荷,停止对合法用户提供正常的网络服务;DDoS 是在 DoS 的基础上引入了
Client/Server 机制,使得攻击强度更大,隐藏性更高。 DDoS 攻击原理 DDoS 采用
多层的客户/服务器模式,一个完整的 DDoS 攻击体系一般包含四个部分:攻击控制台、
攻击服务器、攻击傀儡机和攻击目标,其攻击体系结构如图 1 所示
◆ 攻击控制台。攻击者利用它来操纵整个攻击过程,它向攻击服务器下达攻击命令。
◆ 攻击服务器也叫主控端,它是攻击者非法入侵并且安装特定程序的一些主机。它接
收从攻击控制台发过来的各种命令。同时,它也控制了大量的攻击傀儡机,并向它们转发
攻击控制台的攻击指令。 ◆ 攻击傀儡机也叫代理端,它也是攻击者非法入侵并且安装
特定程序的一些主机。它们上面运行攻击程序,用于对目标发起攻击。它受控于主控端,
从主控端接收攻击命令,是攻击的执行者。 DDoS 攻击的特点 DDoS 攻击作为一种
特殊的 DoS 攻击方式,相对于传统的拒绝服务攻击有自己很多的特点:首先,分布式拒
绝服务的攻击效果更加明显。使用分布式拒绝服务,可以从多个傀儡主机同时向攻击目标
发送攻击数据,可以在很短的时间内发送大量的数据包,使攻击目标的系统无法提供正常
的服务。另外,由于采用了多层客户机/服务器模式,减少了由攻击者下达攻击命令时可
能存在的拥塞,也增加了攻击的紧凑性。即使攻击目标探测到攻击,也可能来不及采取有
效措施来应对攻击。其次,分布式拒绝服务攻击更加难以防范。因为分布式拒绝服务的攻
击数据流来自很多个源且攻击工具多使用随机 IP 技术,增加了与合法访问数据流的相似
性,这使得对攻击更加难以判断和防范。 最后,分布式拒绝服务对于攻击者来说更加安
全。由于采用了多层客户机/服务器模式,增大了回溯查找攻击者的难度,从而可以更加
有效地保护攻击者。另外,采用多层客户机/服务器模式,使得下达攻击指令的数据流更
加分散,不容易被监控系统察觉,从而暴露攻击者的位置与意图。3 攻击策略及防范
目前 ,随着多种 DDoS 攻击工具如 TFN、TFN2K、Stacheldraht、Trinoo 等的广泛传播
,所面临 DDoS 攻击的风险更是急剧增长[2]。所以,如何有效的防御 DDoS 攻击成为当前
一个亟待解决的 问题 。下面,本文针对这几种常用的攻击工具给出具体的防范措施。
TFN(Tribe Flood Network)攻击及防范 TFN 是德国著名黑客 Mixter 编写的,与 Trinoo
相似,都是在互联网的大量 UNIX 系统中开发和测试的。它由客户端程序和守护程序组成
,通过绑定到 TCP 端口的 Root Shell 控制,实施 ICMP Flood,SYN Flood,UDP Flood 等
多种拒绝服务的分布式网络攻击。 TFN 客户端、主控端和代理端主机相互间通信时使用
IC-MP Echo 和 Icmp EchoReply 数据包。针对 TFN 攻击的基本特性可采用如下抵御策略:
◆ 发动 TFN 时,攻击者要访问 Master 程序并向它发送一个或多个目标 IP 地址,然后
Master 程序与所有代理程序通信,指示它们发动攻击。Master 程序与代理程序之间的通
信使用 ICMP 回音/应答信息包,实际要执行的指示以二进制形式包含在 16 位 ID 域中。
ICMP 使信息包协议过滤成为可能,通过配置路由器或入侵检测系统,不允许所有的 ICMP
回音或回音/应答信息包进入网络就可以达到挫败 TFN 代理的目的,但是这样会 影响 所有
使用这些功能的 Internet 程序,如 Ping。Master 程序读取一个 IP 地址列表,其中包含代
理程序的位置。这个列表可能使用如“Blowfish”的加密程序进行加密,如果没有加密,就
可以从这个列表方便地识别出代理信息。 ◆ 用于发现系统上 TFN 代理程序的是程序 td
,发现系统上 Master 程序的是程序 TFN。代理并不查看 ICMP 回音/应答信息包来自哪里
,因此使用伪装 ICMP 信息包冲刷掉这些过程是可能的[9]。 TFN2k 攻击及防范
TFN2k 代表 TFN 2000 版,是 Mixter 编写的 TFN 后续版本。这个新的 DDoS 工具已在
原有的基础上大大前进了一步,它也是由两部分组成,即客户端程序和在代理端主机上的
守护进程。客户端向守护进程发送攻击指定的目标主机列表,代理端守护进程据此对目标
进行拒绝服务攻击。由一个客户端程序控制的多个代理端主机,能够在攻击过程中相互协
同,保证攻击的连续性。客户端程序和代理端的网络通信是经过加密的,还可能混杂许多
虚假数据包。整个 TFN2k 网络可能使用不同的 TCP,UDP 或 ICMP 包进行通信,而且客户
端还能伪造其 IP 地址。所有这些特性都使发展防御 TFN2k 攻击的策略和技术非常困难或
效率低下。 TFN2k 非常隐蔽,这些手段使得它很难被检测到。因为没有端口号,所以很
难探测,即使在正常的基础上使用端口扫描程序也无法探测到用户的系统正被用作 TFN2k
服务器[10]。目前仍没有能有效防御 TFN2k 拒绝服务攻击的方法,最有效的策略是防止网
络资源被用作客户端或代理端。 根据 TFN2k 的基本特性,可采用的预防手段有以下几
种: ◆ 只使用应用代理型防火墙,这能够有效地阻止所有的 TFN2k 通信。但只使用应
用代理服务器通常是不切实际的,因此只能尽可能地使用最少的非代理服务。 ◆ 禁止
不必要的 ICMP,TCP 和 UDP 通信,特别是对于 ICMP 数据,可只允许 ICMP 类型
3(Destination Unreachable,目标不可到达)数据包通过。如果不能禁止 ICMP 协议,那就
禁止主动提供或所有的 ICMP EchoReply 包。 ◆ 禁止不在允许端口列表中的所有 UDP
和 TCP 包。 ◆ 配置防火墙过滤所有可能的伪造数据包。 ◆ 对系统进行补丁和安全
配置,以防止攻击者入侵并安装 TFN2k。 Trinoo 攻击及防范 Trinoo 是发布最早的主
流工具,因而功能没有 TFN2k 那么强大。因为 TFN2k 使用 ICMP 所以非常隐蔽,在被攻击
的 计算 机上没有端口可以检测。Trinoo 使用 TCP 和 UDP,因而如果在正常的基础上用扫
描程序检测端口,攻击程序很容易被检测到。 Trinoo 的工作方式是通过一个远程控制程
序和主控(Master)通信,指挥守护进程(服务器程序)发动攻击[8]。对于 Trinoo,守护进程
驻存在实际进行攻击的系统上,而 Master 控制守护进程系统攻击者控制了足够数量的傀
儡机并在
儡机上安装配置好 DDoS 软件,便建立好了 Trinoo 网络 ,随时可以进行攻击。 针对
Trinoo 攻击的基本特性可采用如下抵御策略: ◆ 使用入侵检测软件寻找使用 UDP 的数
据流(类型 17)。 ◆ Master 程序的监听端口是 27655,攻击者一般借助 Telnet 通过
TCP 连接到 Master 程序所在的 计算 机。入侵检测软件能够搜索到使用 TCP(类型 6)并连
接到端口 27655 的数据流。 ◆ 所有从 Master 程序到代理程序的通信都包含字符串
“144”,并且被引导到代理的 UDP 端口 27444。入侵检测软件检查到 UDP 端口 27444 的
连接,如果有包含字符串 144 的信息包被发送过去,那么接受这个信息包的计算机可能
就是 DDoS 代理。 ◆ Master 和代理之间通信受到口令的保护,但是口令没有加密发送
,因此它可以被“嗅探”到并被检测出来。 一旦将 Trinoo 代理识别出来,便可按如下 方
法 拆除 Trinoo 网络:在代理 Daemon 上使用“Strings”命令,将 Master 的 IP 地址暴露出来
,与所有作为 Master 的机器管理者联系,通知它们这一事件。在 Master 计算机上,识别
含有代理 IP 地址列表的文件,得到这些计算机的 IP 地址列表,向代理发送一个伪造
“Trinoo”命令来禁止代理。通过 Crontab 文件(在 UNIX 系统中)的一个条目,代理可以有 规
律 地重新启动。因此,代理计算机需要一遍一遍地被关闭,直到代理系统的管理者修复
了 Crontab 文件为止。检查 Master 程序的活动 TCP 连接,这能显示攻击者与 Master 程序
之间存在的实时连接,如果网络正在遭受 Trinoo 攻击,那么系统就会被 UDP 信息包所淹
没。Trinoo 从同一源地址向目标主机上的任意端口发送信息包。探测 Trinoo 就是要找到多
个 UDP 信息包,它们使用同一来源 IP 地址、同一目的 IP 地址、同一源端口,但是不同的
目的端口[9]。 Stacheldraht 攻击及防范 Stacheldraht 是另一个 DDoS 攻击工具,它
结合了 Trinoo 与 TFN 的特点,并添加了一些补充特征,如加密组件之间的通信和自动更
新守护进程。Stacheldraht 使用 TCP 和 ICMP 通信。对于 Stacheldraht,攻击者与主控端
交互,同时主控端控制代理端。Stacheldraht 在功能上与 Trinoo,TFN 等细节相近。 针
对 Stacheldraht 攻击的基本特征可采取以下防御措施: ◆ 同防御 TFN 攻击类似,不允
许一切 ICMP 回音或回音/应答信息包进入网络,可以挫败 Stacheldraht 代理。同样地,
这样会 影响 所有要使用这些功能的 Internet 程序。 ◆ 代理程序要读取一个包含有效
Master 程序的 IP 地址列表,这个地址列表使用了 Blowfish 加密程序进行加密。代理会试
图与列表上所有的 Master 程序进行联系,如果联系成功,代理程序就会进行一个测试,
以确定它被安装到的系统是否会允许它改变“伪造”信息包的源地址。通过配置入侵检测系
统或使用嗅探器来搜寻它们的签名信息,可以探测出这两个行为。 代理会向每个
Master 发送一个 ICMP 回音/应答信息包,其中有一个 ID 域包含值 666,一个数据域包含
字符串“skillz”。如果 Master 收到了这个信息包,它会以一个包含值 667 的 ID 域和一个包
含字符串“ficken”的数据域应答,代理和 Master 通过交换这些信息包来实现周期性的基本
接触。通过对这些信息包的监控,可以探测出 Stacheldraht。 一旦代理找到了一个有效
的 Master 程序,它会向 Master 发送一个 ICMP 信息包,其中有一个伪造的源地址,这是
在执行一个伪造测试。这个假地址是“3·3·3·3”,如果 Master 收到了这个伪造地址,在它
的应答中,用 ICMP 信息包数据域中的“spoofworks”字符串来确认伪造的源地址是有效的
。通过监控这些值,也可以将 Stacheldraht 检测出来[9]。4 结束语 分布式拒绝服务攻
击严重危害着网络安全,如果能时刻保持警惕心理,采取必要的防范措施,一定能将受到
攻击带来的损失减到最小。除了进行带宽限制、及时给系统安装补丁、运行尽可能少的服
务、封锁敌意 IP、使用防火墙等常见措施外一般实施最少权限原则是保持网络安全的关键
。此外,安装入侵检测系统、使用扫描工具等手段来探测系统是否被侵入或服务器被用来
进行攻击是必要的。 参考 文献 [1] 贾月琴,张宁,宋晓虹.对网络安全技术的讨论 [J].
微计算机信息.2005,3:108-110[2] 张利军.Distributed Reflection Denial of
:// /,2004-02-10[3] 李海生.抗拒绝服务产品.http:
// homepage /products /,2003-08-20[4] 庞大海,
Brian Hatch,James Lee et -H illC ompanies,2001-10-
11[5] 吴虎,云超.对 DDOS 攻击防范策略的 研究 及若干实现[J].计算机 应用 研究,2002
,38(11):24-26[6] 陆余良,张勇,孙乐昌.分布式反弹拒绝服务攻击的 分析 与防范[J] .
计算机安全技术,200(44):117-1 18[7] 徐一丁.分布式拒绝服务攻击(DDoS)原理及防
范.http:// /developerWorks/cn/security/ se-ddos/,
2002[8] [美] StuartMcClure,JoelScambray,GeorgeKurtz.黑客大曝光[M].刘江,扬继张
,钟向群.北京:清华大学出版社,-359[9] 甘冀平.典型 DoS 攻击原理及抵御措
施[EB/OL] . http://. cn/eschool/inforcenter/A20040227289880_2. htm
.2005[10] David Dittrich.分布式拒绝服务(DDoS)攻击工具分析——TFN2k[EB/OL] . http
:// ? id=5336,2002[11] http:
//