标题：分布式拒绝服务
分布式拒绝服务

分布式拒绝服务攻击概念

1999年7月份左右，微软公司的视窗操作系统的一个bug被人发现和利用，并且进行了多次攻击，这种新的攻击方式被称为“分布式拒绝服务攻击”即为“DDos（Distributed Denial Of Service Attacks）”。这也是一种特殊形式的拒绝服务攻击。它是利用多台已经被攻击者所控制的机器对某一台单机发起攻击，在这样的带宽相比之下被攻击的主机很容易失去反应能力的。现在这种方式被认为是最有效的攻击形式，并且很难于防备。但是利用DDos攻击是用一定难度的，没有高超的技术是很难实现的，因为不但要求攻击者熟悉入侵的技术而且还要有足够的时间和脑袋。而现在却因有黑客编写出了傻瓜式的工具来帮助所以也就使DDos攻击相对变的简单了。比较杰出的此类工具目前网上可找到的有Trin00、TFN等。这些源代码包的安装使用过程比较复杂，因为你首先得找到目标机器的漏洞，然后通过一些的远程溢出漏洞攻击程序，获取系统的控制权，再在这些机器上安装并运行的DDos分布端的攻击守护进程。
DDoS的攻击方式有很多种，最基本的DoS攻击就是利用合理的服务请求来占用过多的服务资源，从而使合法用户无法得到服务的响应。
DDoS攻击手段是在传统的DoS攻击基础之上产生的一类攻击方式。单一的DoS攻击一般是采用一对一方式的，当攻击目标CPU速度低、内存小或者网络带宽小等等各项性能指标不高它的效果是明显的。随着计算机与网络技术的发展，计算机的处理能力迅速增长，内存大大增加，同时也出现了千兆级别的网络，这使得DoS攻击的困难程度加大了 - 目标对恶意攻击包的"消化能力"加强了不少，例如你的攻击软件每秒钟可以发送3,000个攻击包，但我的主机与网络带宽每秒钟可以处理10,000个攻击包，这样一来攻击就不会产生什么效果。
这时候分布式的拒绝服务攻击手段（DDoS）就应运而生了。你理解了DoS攻击的话，它的原理就很简单。如果说计算机与网络的处理能力加大了10倍，用一台攻击机来攻击不再能起作用的话，攻击者使用10台攻击机同时攻击呢？用100台呢？DDoS就是利用更多的傀儡机来发起进攻，以比从前更大的规模来进攻受害者。
高速广泛连接的网络给大家带来了方便，也为DDoS攻击创造了极为有利的条件。在低速网络时代时，黑客占领攻击用的傀儡机时，总是会优先考虑离目标网络距离近的机器，因为经过路由器的跳数少，效果好。而现在电信骨干节点之间的连接都是以G为级别的，大城市之间更可以达到2.5G的连接，这使得攻击可以从更远的地方或者其他城市发起，攻击者的傀儡机位置可以在分布在更大的范围，选择起来更灵活了。
被分布式拒绝服务攻击时的现象

被攻击主机上有大量等待的TCP连接
网络中充斥着大量的无用的数据包，源地址为假
制造高流量无用数据，造成网络拥塞，使受害主机无法正常和外界通讯
利用受害主机提供的服务或传输协议上的缺陷，反复高速的发出特定的服务请求，使受害主机无法及时处理所有正常请求
严重时会造成系统死机
攻击运行原理

如图，一个比较完善的DDoS攻击体系分成四大部分，先来看一下最重要的第2和第3部分：它们分别用做控制和实际发起攻击。请注意控制机与攻击机的区别，对第4部分的受害者来说，DDoS的实际攻击包是从第3部分攻击傀儡机上发出的，第2部分的控制机只发布命令而不参与实际的攻击。对第2和第3部分计算机，黑客有控制权或者是部分的控制权，并把相应的DDoS程序上传到这些平台上，这些程序与正常的程序一样运行并等待来自黑客的指令，通常它还会利用各种手段隐藏自己不被别人发现。在平时，这些傀儡机器并没有什么异常，只是一旦黑客连接到它们进行控制，并发出指令的时候，攻击傀儡机就成为害人者去发起攻击了。
有的朋友也许会问道："为什么黑客不直接去控制攻击傀儡机，而要从控制傀儡机上转一下呢？"。这就是导致DDoS攻击难以追查的原因之一了。做为攻击者的角度来说，肯定不愿意被捉到，而攻击者使用的傀儡机越多，他实际上提供给受害者的分析依据就越多。在占领一台机器后，高水平的攻击者会首先做两件事：1. 考虑如何留好后门！2. 如何清理日志。这就是擦掉脚印，不让自己做的事被别人查觉到。比较不敬业的黑客会不管三七二十一把日志全都删掉，但这样的话网管员发现日志都没了就会知道有人干了坏事了，顶多无法再从日志发现是谁干的而已。相反，真正的好手会挑有关自己的日志项目删掉，让人看不到异常的情况。这样可以长时间地利用傀儡机。
但是在第3部分攻击傀儡机上清理日志实在是一项庞大的工程，即使在有很好的日志清理工具的帮助下，黑客也是对这个任务很头痛的。这就导致了有些攻击机弄得不是很干净，通过它上面的线索找到了控制它的上一级计算机，这上级的计算机如果是黑客自己的机器，那么他就会被揪出来了。但如果这是控制用的傀儡机的话，黑客自身还是安全的。控制傀儡机的数目相对很少，一般一台就可以控制几十台攻击机，清理一台计算机的日志对黑客来讲就轻松多了，这样从控制机再找到黑客的可能性也大大降低。
黑客是如何组织一次分布式拒绝服务攻击的？

这里用"组织"这个词，是因为DDoS并不象入侵一台主机那样简单。一般来说，黑客进行DDoS攻击时会经过这样的步骤：
1. 搜集了解目标的情况 
下列情况是黑客非常关心的情报： 
被攻击目标主机数目、地址情况
目标主机的配置、性能
目标的带宽
对于DDoS攻击者来说，攻击互联网上的某个站点，如http://www.mytarget.com，有一个重点就是确定到底有多少台主机在支持这个站点，一个大的网站可能有很多台主机利用负载均衡技术提供同一个网站的www服务。以yahoo为例，一般会有下列地址都是提供http://www.yahoo.com 服务的： 
66.218.71.87 
66.218.71.88 
66.218.71.89 
66.218.71.80 
66.218.71.81 
66.218.71.83 
66.218.71.84 
66.218.71.86 
如果要进行DDoS攻击的话，应该攻击哪一个地址呢？使66.218.71.87这台机器瘫掉，但其他的主机还是能向外提供www服务，所以想让别人访问不到http://www.yahoo.com 的话，要所有这些IP地址的机器都瘫掉才行。在实际的应用中，一个IP地址往往还代表着数台机器：网站维护者使用了四层或七层交换机来做负载均衡，把对一个IP地址的访问以特定的算法分配到下属的每个主机上去。这时对于DDoS攻击者来说情况就更复杂了，他面对的任务可能是让几十台主机的服务都不正常。
所以说事先搜集情报对DDoS攻击者来说是非常重要的，这关系到使用多少台傀儡机才能达到效果的问题。简单地考虑一下，在相同的条件下，攻击同一站点的2台主机需要2台傀儡机的话，攻击5台主机可能就需要5台以上的傀儡机。有人说做攻击的傀儡机越多越好，不管你有多少台主机我都用尽量多的傀儡机来攻就是了，反正傀儡机超过了时候效果更好。
但在实际过程中，有很多黑客并不进行情报的搜集而直接进行DDoS的攻击，这时候攻击的盲目性就很大了，效果如何也要靠运气。其实做黑客也象网管员一样，是不能偷懒的。一件事做得好与坏，态度最重要，水平还在其次。
2. 占领傀儡机 
黑客最感兴趣的是有下列情况的主机： 
链路状态好的主机
性能好的主机
安全管理水平差的主机
这一部分实际上是使用了另一大类的攻击手段：利用形攻击。这是和DDoS并列的攻击方式。简单地说，就是占领和控制被攻击的主机。取得最高的管理权限，或者至少得到一个有权限完成DDoS攻击任务的帐号。对于一个DDoS攻击者来说，准备好一定数量的傀儡机是一个必要的条件，下面说一下他是如何攻击并占领它们的。
首先，黑客做的工作一般是扫描，随机地或者是有针对性地利用扫描器去发现互联网上那些有漏洞的机器，象程序的溢出漏洞、cgi、Unicode、ftp、数据库漏洞…(简直举不胜举啊)，都是黑客希望看到的扫描结果。随后就是尝试入侵了，具体的手段就不在这里多说了，感兴趣的话网上有很多关于这些内容的文章。
总之黑客现在占领了一台傀儡机了！然后他做什么呢？除了上面说过留后门擦脚印这些基本工作之外，他会把DDoS攻击用的程序上载过去，一般是利用ftp。在攻击机上，会有一个DDoS的发包程序，黑客就是利用它来向受害目标发送恶意攻击包的。
3. 实际攻击 
经过前2个阶段的精心准备之后，黑客就开始瞄准目标准备发射了。前面的准备做得好的话，实际攻击过程反而是比较简单的。就象图示里的那样，黑客登录到做为控制台的傀儡机，向所有的攻击机发出命令："预备~ ，瞄准~，开火!"。这时候埋伏在攻击机中的DDoS攻击程序就会响应控制台的命令，一起向受害主机以高速度发送大量的数据包，导致它死机或是无法响应正常的请求。黑客一般会以远远超出受害方处理能力的速度进行攻击，他们不会"怜香惜玉"。 
老到的攻击者一边攻击，还会用各种手段来监视攻击的效果，在需要的时候进行一些调整。简单些就是开个窗口不断地ping目标主机，在能接到回应的时候就再加大一些流量或是再命令更多的傀儡机来加入攻击。