DDOS全名是Distribution Denial of service (分布式拒绝服务***),很多DOS***源一起***某台服务器就组成了DDOS***,DDOS 最早可追述到1996年最初,在中国2002年开始频繁出现,2003年已经初具规模.

 
DDoS***概念  DoS的***方式有很多种,最基本的DoS***就是利用合理的服务请求来占用过多的服务资源,从而使服务器无法处理合法用户的指令。
  DDoS***手段是在传统的DoS***基础之上产生的一类***方式。单一的DoS***一般是采用一对一方式的,当被***目标CPU速度低、内存小或者网络带宽小等等各项性能指标不高,它的效果是明显的。随着计算机与网络技术的发展,计算机的处理能力迅速增长,内存大大增加,同时也出现了千兆级别的网络,这使得DoS***的困难程度加大了 - 目标对恶意***包的"消化能力"加强了不少,例如你的***软件每秒钟可以发送3,000个***包,但我的主机与网络带宽每秒钟可以处理10,000个***包,这样一来***就不会产生什么效果。
  这时候分布式的拒绝服务***手段(DDoS)就应运而生了。你理解了DoS***的话,它的原理就很简单。如果说计算机与网络的处理能力加大了10倍,用一台***机来***不再能起作用的话,***者使用10台***机同时***呢?用100台呢?DDoS就是利用更多的傀儡机来发起进攻,以比从前更大的规模来进攻受害者。
  高速广泛连接的网络给大家带来了方便,也为DDoS***创造了
  极为有利的条件。在低速网络时代时,***占领***用的傀儡机时,总是会优先考虑离目标网络距离近的机器,因为经过路由器的跳数少,效果好。而现在电信骨干节点之间的连接都是以G为级别的,大城市之间更可以达到2.5G的连接,这使得***可以从更远的地方或者其他城市发起,***者的傀儡机位置可以在分布在更大的范围,选择起来更灵活了。

 
DDOS的产生  DDOS 最早可追述到1996年最初,在中国2002年开始频繁出现,2003年已经初具规模。近几年由于宽带的普及,很多网站开始盈利,其中很多非法网站利润巨大,造成同行之间互相***,还有一部分人利用网络***来敲诈钱财。同时windows 平台的漏洞大量的被公布, 流氓软件,病毒,***大量充斥着网络,有些技术的人可以很容易非法***控制大量的个人计算机来发起DDOS***从中谋利,***已经成为互联网上的一种最直接,而且收入非常高利益的驱使***已经演变成非常完善的产业链。通过在大流量网站的网页里注入病毒***,***可以通过windows平台的漏洞感染浏览网站的人,一旦中了***,这台计算机就会被后台操作的人控制,这台计算机也就成了所谓的肉鸡,每天都有人专门收集肉鸡然后以几毛到几块的一只的价格出售,因为利益需要***的人就会购买,然后遥控这些肉鸡***服务器。

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

 
***是如何组织一次DDoS***的?  这里用"组织"这个词,是因为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目标主机,在能接到回应的时候就再加大一些流量或是再命令更多的傀儡机来加入***。
  防范DDOS***的工具软件:CC v2.0
  防范DDOS比较出色的防火墙:硬件有Cisco的Guard、Radware的DefensePro,绿盟的黑洞,傲盾软件的傲盾防火墙。软件有冰盾DDOS防火墙、8Signs Firewall等。

 
DDOS的主要几个***  1.SYN变种***
  发送伪造源IP的SYN数据包但是数据包不是64字节而是上千字节这种***会造成一些防火墙处理错误锁死,消耗服务器CPU内存的同时还会堵塞带宽。
  2.TCP混乱数据包***
  发送伪造源IP的 TCP数据包,TCP头的TCP Flags 部分是混乱的可能是syn ,ack ,syn+ack ,syn+rst等等,会造成一些防火墙处理错误锁死,消耗服务器CPU内存的同时还会堵塞带宽。
  3.针对用UDP协议的***
  很多聊天室,视频音频软件,都是通过UDP数据包传输的,***者针对分析要***的网络软件协议,发送和正常数据一样的数据包,这种***非常难防护,一般防护墙通过拦截***数据包的特征码防护,但是这样会造成正常的数据包也会被拦截,
  4.针对WEB Server的多连接***
  通过控制大量肉鸡同时连接访问网站,造成网站无法处理瘫痪,这种***和正常访问网站是一样的,只是瞬间访问量增加几十倍甚至上百倍,有些防火墙可以通过限制每个连接过来的IP连接数来防护,但是这样会造成正常用户稍微多打开几次网站也会被封,
  5.针对WEB Server的变种***
  通过控制大量肉鸡同时连接访问网站,一点连接建立就不断开,一直发送发送一些特殊的GET访问请求造成网站数据库或者某些页面耗费大量的CPU,这样通过限制每个连接过来的IP连接数就失效了,因为每个肉鸡可能只建立一个或者只建立少量的连接。这种***非常难防护,后面给大家介绍防火墙的解决方案
  6. 针对WEB Server的变种***
  通过控制大量肉鸡同时连接网站端口,但是不发送GET请求而是乱七八糟的字符,大部分防火墙分析***数据包前三个字节是GET字符然后来进行http协议的分析,这种***,不发送GET请求就可以绕过防火墙到达服务器,一般服务器都是共享带宽的,带宽不会超过10M 所以大量的肉鸡***数据包就会把这台服务器的共享带宽堵塞造成服务器瘫痪,这种***也非常难防护,因为如果只简单的拦截客户端发送过来没有GET字符的数据包,会错误的封锁很多正常的数据包造成正常用户无法访问,后面给大家介绍防火墙的解决方案
  7.针对游戏服务器的***
  因为游戏服务器非常多,这里介绍最早也是影响最大的传奇游戏,传奇游戏分为登陆注册端口7000,人物选择端口7100,以及游戏运行端口7200,7300,7400等,因为游戏自己的协议设计的非常复杂,所以***的种类也花样倍出,大概有几十种之多,而且还在不断的发现新的***种类,这里介绍目前最普遍的假人***,假人***是通过肉鸡模拟游戏客户端进行自动注册、登陆、建立人物、进入游戏活动从数据协议层面模拟正常的游戏玩家,很难从游戏数据包来分析出哪些是***哪些是正常玩家。
  以上介绍的几种最常见的***也是比较难防护的***。一般基于包过滤的防火墙只能分析每个数据包,或者有限的分析数据连接建立的状态,防护SYN,或者变种的SYN,ACK***效果不错,但是不能从根本上来分析tcp,udp协议,和针对应用层的协议,比如http,游戏协议,软件视频音频协议,现在的新的***越来越多的都是针对应用层协议漏洞,或者分析协议然后发送和正常数据包一样的数据,或者干脆模拟正常的数据流,单从数据包层面,分析每个数据包里面有什么数据,根本没办法很好的防护新型的***。
  SYN***解析
  SYN***属于DOS***的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费CPU和内存资源。TCP协议建立连接的时候需要双方相互确认信息,来防止连接被伪造和精确控制整个数据传输过程数据完整有效。所以TCP协议采用三次握手建立一个连接。
  第一次握手:建立连接时,客户端发送syn包到服务器,并进入SYN_SEND状态,等待服务器确认; 
  第二次握手:服务器收到syn包,必须确认客户的SYN 同时自己也发送一个SYN包 即SYN+ACK包,此时服务器进入SYN_RECV状态;
  第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
  SYN***利用TCP协议三次握手的原理,大量发送伪造源IP的SYN包也就是伪造第一次握手数据包,服务器每接收到一个SYN包就会为这个连接信息分配核心内存并放入半连接队列,如果短时间内接收到的SYN太多,半连接队列就会溢出,操作系统会把这个连接信息丢弃造成不能连接,当***的SYN包超过半连接队列的最大值时,正常的客户发送SYN数据包请求连接就会被服务器丢弃, 每种操作系统半连接队列大小不一样所以低于SYN***的能力也不一样。那么能不能把半连接队列增加到足够大来保证不会溢出呢,答案是不能,每种操作系统都有方法来调整TCP模块的半连接队列最大数,例如Win2000操作系统在注册表 HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters里 TcpMaxHalfOpen,TcpMaxHalfOpenRetried ,Linux操作系统用变量tcp_max_syn_backlog来定义半连接队列的最大数。但是每建立一个半连接资源就会耗费系统的核心内存,操作系统的核心内存是专门提供给系统内核使用的内存不能进行虚拟内存转换是非常紧缺的资源windows2000 系统当物理内存是4g的时候 核心内存只有不到300M,系统所有核心模块都要使用核心内存所以能给半连接队列用的核心内存非常少。Windows 2003 默认安装情况下,WEB SERVER的80端口每秒钟接收5000个SYN数据包一分钟后网站就打不开了。标准SYN数据包64字节 5000个等于 5000*64 *8(换算成bit)/1024=2500K也就是 2.5M带宽 ,如此小的带宽就可以让服务器的端口瘫痪,由于***包的源IP是伪造的很难追查到***源,,所以这种***非常多。
  

如何防止和减少DDOS***的危害


  

  一、拒绝服务***的发展
  从拒绝服务***诞生到现在已经有了很多的发展,从最初的简单Dos到现在的DdoS。那么什么是Dos和DdoS呢?DoS是一种利用单台计算机的***方式。而DdoS(Distributed Denial of Service,分布式拒绝服务)是一种基于DoS的特殊形式的拒绝服务***,是一种分布、协作的大规模***方式,主要瞄准比较大的站点,比如一些商业公司、搜索引擎和政府部门的站点。DdoS***是利用一批受控制的机器向一台机器发起***,这样来势迅猛的***令人难以防备,因此具有较大的破坏性。如果说以前网络管理员对抗Dos可以采取过滤IP地址方法的话,那么面对当前DdoS众多伪造出来的地址则显得没有办法。所以说防范DdoS***变得更加困难,如何采取措施有效的应对呢?下面我们从两个方面进行介绍。
  二、预防为主保证安全
  DdoS***是***最常用的***手段,下面列出了对付它的一些常规方法。
  (1)定期扫描
  要定期扫描现有的网络主节点,清查可能存在的安全漏洞,对新出现的漏洞及时进行清理。骨干节点的计算机因为具有较高的带宽,是***利用的最佳位置,因此对这些主机本身加强主机安全是非常重要的。而且连接到网络主节点的都是服务器级别的计算机,所以定期扫描漏洞就变得更加重要了。
  (2)在骨干节点配置防火墙
  防火墙本身能抵御DdoS***和其他一些***。在发现受到***的时候,可以将***导向一些牺牲主机,这样可以保护真正的主机不被***。当然导向的这些牺牲主机可以选择不重要的,或者是linux以及unix等漏洞少和天生防范***优秀的系统。
  (3)用足够的机器承受******
  这是一种较为理想的应对策略。如果用户拥有足够的容量和足够的资源给******,在它不断访问用户、夺取用户资源之时,自己的能量也在逐渐耗失,或许未等用户被攻死,***已无力支招儿了。不过此方法需要投入的资金比较多,平时大多数设备处于空闲状态,和目前中小企业网络实际运行情况不相符。
  (4)充分利用网络设备保护网络资源
  所谓网络设备是指路由器、防火墙等负载均衡设备,它们可将网络有效地保护起来。当网络被***时最先死掉的是路由器,但其他机器没有死。死掉的路由器经重启后会恢复正常,而且启动起来还很快,没有什么损失。若其他服务器死掉,其中的数据会丢失,而且重启服务器又是一个漫长的过程。特别是一个公司使用了负载均衡设备,这样当一台路由器被***死机时,另一台将马上工作。从而最大程度的削减了DdoS的***。
  (5)过滤不必要的服务和端口
  过滤不必要的服务和端口,即在路由器上过滤假IP……只开放服务端口成为目前很多服务器的流行做法,例如WWW服务器那么只开放80而将其他所有端口关闭或在防火墙上做阻止策略。
  (6)检查访问者的来源
  使用Unicast Reverse Path Forwarding等通过反向路由器查询的方法检查访问者的IP地址是否是真,如果是假的,它将予以屏蔽。许多******常采用假IP地址方式迷惑用户,很难查出它来自何处。因此,利用Unicast Reverse Path Forwarding可减少假IP地址的出现,有助于提高网络安全性。
  (7)过滤所有RFC1918 IP地址
  RFC1918 IP地址是内部网的IP地址,像10.0.0.0、192.168.0.0 和172.16.0.0,它们不是某个网段的固定的IP地址,而是Internet内部保留的区域性IP地址,应该把它们过滤掉。此方法并不是过滤内部员工的访问,而是将***时伪造的大量虚假内部IP过滤,这样也可以减轻DdoS的***。
  (8)限制SYN/ICMP流量
  用户应在路由器上配置SYN/ICMP的最大流量来限制SYN/ICMP封包所能占有的最高频宽,这样,当出现大量的超过所限定的SYN/ICMP流量时,说明不是正常的网络访问,而是有******。早期通过限制SYN/ICMP流量是最好的防范DOS的方法,虽然目前该方法对于DdoS效果不太明显了,不过仍然能够起到一定的作用。
  三、寻找机会应对***
  如果用户正在遭受***,他所能做的抵御工作将是非常有限的。因为在原本没有准备好的情况下有大流量的灾难性***冲向用户,很可能在用户还没回过神之际,网络已经瘫痪。但是,用户还是可以抓住机会寻求一线希望的。
  (1)检查***来源,通常***会通过很多假IP地址发起***,此时,用户若能够分辨出哪些是真IP哪些是假IP地址,然后了解这些IP来自哪些网段,再找网网管理员将这些机器关闭,从而在第一时间消除***。如果发现这些IP地址是来自外面的而不是公司内部的IP的话,可以采取临时过滤的方法,将这些IP地址在服务器或路由器上过滤掉。
  (2)找出***者所经过的路由,把***屏蔽掉。若***从某些端口发动***,用户可把这些端口屏蔽掉,以阻止***。不过此方法对于公司网络出口只有一个,而又遭受到来自外部的DdoS***时不太奏效,毕竟将出口端口封闭后所有计算机都无法访问internet了。
  (3)最后还有一种比较折中的方法是在路由器上滤掉ICMP。虽然在***时他无法完全消除***,但是过滤掉ICMP后可以有效的防止***规模的升级,也可以在一定程度上降低***的级别