到底什么是DDOS?你被DDOS了吗?
  DDOS是英文Distributed Denial of Service的缩写,意即“分布式拒绝服务”,那么什么又是拒绝服务(Denial of Service)呢?可以这么理解,凡是能导致合法用户不能够访问正常网络服务的行为都算是拒绝服务***。也就是说拒绝服务***的目的非常明确,就是要阻止合法用户对正常网络资源的访问,从而达成***者不可告人的目的。
  虽然同样是拒绝服务***,但是DDOS和DOS还是有所不同,DDOS的***策略侧重于通过很多“僵尸主机”(被***者***过或可间接利用的主机)向受害主机发送大量看似合法的网络包,从而造成网络阻塞或服务器资源耗尽而导致拒绝服务,分布式拒绝服务***一旦被实施,***网络包就会犹如洪水般涌向受害主机,从而把合法用户的网络包淹没,导致合法用户无法正常访问服务器的网络资源,因此,拒绝服务***又被称之为“洪水式***”,常见的DDOS***手段有SYN Flood、ACK Flood、UDP Flood、ICMP Flood、TCP Flood、Connections Flood、Script Flood、Proxy Flood等;而DOS则侧重于通过对主机特定漏洞的利用***导致网络栈失效、系统崩溃、主机死机而无法提供正常的网络服务功能,从而造成拒绝服务,常见的DOS***手段有TearDrop、Land、Jolt、IGMP Nuker、Boink、Smurf、Bonk、OOB等。
  就这两种拒绝服务***而言,危害较大的主要是DDOS***,原因是很难防范,至于DOS***,通过给主机服务器打补丁或安装防火墙软件就可以很好地防范,后文会详细介绍怎么对付DDOS***。
  DDOS的表现形式
  DDOS的表现形式主要有两种,一种为流量***,主要是针对网络带宽的***,即大量***包导致网络带宽被阻塞,合法网络包被虚假的***包淹没而无法到达主机;另一种为资源耗尽***,主要是针对服务器主机的***,即通过大量***包导致主机的内存被耗尽或CPU被内核及应用程序占完而造成无法提供网络服务。
  如何判断网站是否遭受了流量***呢?可通过Ping命令来测试,若发现Ping超时或丢包严重(假定平时是正常的),则可能遭受了流量***,此时若发现和你的主机接在同一交换机上的服务器也访问不了了,基本可以确定是遭受了流量***。当然,这样测试的前提是你到服务器主机之间的ICMP协议没有被路由器和防火墙等设备屏蔽,否则可采取Telnet主机服务器的网络服务端口来测试,效果是一样的。不过有一
  点可以肯定,假如平时Ping你的主机服务器和接在同一交换机上的主机服务器都是正常的,突然都Ping不通了或者是严重丢包,那么假如可以排除网络故障因素的话则肯定是遭受了流量***,再一个流量***的典型现象是,一旦遭受流量***,会发现用远程终端连接网站服务器会失败。
  相对于流量***而言,资源耗尽***要容易判断一些,假如平时Ping网站主机和访问网站都是正常的,发现突然网站访问非常缓慢或无法访问了,而Ping还可以Ping通,则很可能遭受了资源耗尽***,此时若在服务器上用Netstat -na命令观察到有大量的SYN_RECEIVED、TIME_WAIT、FIN_WAIT_1等状态存在,而ESTABLISHED很少,则可判定肯定是遭受了资源耗尽***。还有一种属于资源耗尽***的现象是,Ping自己的网站主机Ping不通或者是丢包严重,而Ping与自己的主机在同一交换机上的服务器则正常,造成这种原因是网站主机遭受***后导致系统内核或某些应用程序CPU利用率达到100%无法回应Ping命令,其实带宽还是有的,否则就Ping不通接在同一交换机上的主机了。
          当前主要有三种流行的DDOS***:

  1、SYN/ACK Flood***:这种***方法是经典最有效的DDOS方法,可通杀各种系统的网络服务,主要是通过向受害主机发送大量伪造源IP和源端口的SYN或ACK包,导致主机的缓存资源被耗尽或忙于发送回应包而造成拒绝服务,由于源都是伪造的故追踪起来比较困难,缺点是实施起来有一定难度,需要高带宽的僵尸主机支持。少量的这种***会导致主机服务器无法访问,但却可以Ping的通,在服务器上用Netstat -na
  命令会观察到存在大量的SYN_RECEIVED状态,大量的这种***会导致Ping失败、TCP/IP栈失效,并会出现系统凝固现象,即不响应键盘和鼠标。普通防火墙大多无法抵御此种***。如何防御DDOS***
2、TCP全连接***:这种***是为了绕过常规防火墙的检查而设计的,一般情况下,常规防火墙大多具备过滤TearDrop、Land等DOS***的能力,但对于正常的TCP连接是放过的,殊不知很多网络服务程序(如:IIS、Apache等Web服务器)能接受的TCP连接数是有限的,一旦有大量的TCP连接,即便是正常的,也会导致网站访问非常缓慢甚至无法访问,TCP全连接***就是通过许多僵尸主机不断地与受害服务器建立大量
  的TCP连接,直到服务器的内存等资源被耗尽而被拖跨,从而造成拒绝服务,这种***的特点是可绕过一般防火墙的防护而达到***目的,缺点是需要找很多僵尸主机,并且由于僵尸主机的IP是暴露的,因此容易被追踪。
  3、刷Script脚本***:这种***主要是针对存在ASP、JSP、PHP、CGI等脚本程序,并调用MSSQLServer、MySQLServer、Oracle等数据库的网站系统而设计的,特征是和服务器建立正常的TCP连接,并不断的向脚本程序提交查询、列表等大量耗费数据库资源的调用,典型的以小博大的***方法。一般来说,提交一个GET或POST指令对客户端的耗费和带宽的占用是几乎可以忽略的,而服务器为处理此请求却可能要从上万条记录中去查出某个记录,这种处理过程对资源的耗费是很大的,常见的数据库服务器很少能支持数百个查询指令同时执行,而这对于客户端来说却是轻而易举的,因此***者只需通过Proxy代理向主机服务器大量递交查询指令,只需数分钟就会把服务器资源消耗掉而导致拒绝服务,常见的现象就是网站慢如蜗牛、ASP程序失效、PHP连接数据库失败、数据库主程序占用CPU偏高。这种***的特点是可以完全绕过普通的防火墙防护,轻松找一些Proxy代理就可实施***,缺点是对付只有静态页面的网站效果会大打折扣,并且有些Proxy会暴露***者的IP地址。
 
  不知道身为网络管理员的你是否遇到过服务器因为拒绝服务***都瘫痪的情况呢?就网络安全而言目前最让人担心和害怕的******就要算是拒绝服务***了。他和传统的***不同,采取的是仿真多个客户端来连接服务器,造成服务器无法完成如此多的客户端连接,从而无法提供服务。
  一、拒绝服务***的发展
  从拒绝服务***诞生到现在已经有了很多的发展,从最初的简单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)过滤不必要的服务和端口
  可以使用Inexpress、Express、Forwarding等工具来过滤不必要的服务和端口,即在路由器上过滤假IP。比如Cisco公司的CEF(Cisco Express Forwarding)可以针对封包Source IP和Routing Table做比较,并加以过滤。只开放服务端口成为目前很多服务器的流行做法,例如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后可以有效的防止***规模的升级,也可以在一定程度上降低***的级别。
  总结:
  目前网络安全界对于DdoS的防范还是没有什么好办法的,主要靠平时维护和扫描来对抗。简单的通过软件防范的效果非常不明显,即便是使用了硬件安防设施也仅仅能起到降低***级别的效果,Ddos***只能被减弱,无法被彻底消除。不过如果我们按照本文的方法和思路去防范DdoS的话,收到的效果还是非常显著的,可以将***带来的损失降低到最小。