DNS服务器能遭受到的DDNS攻击类型

     每个网站都有可能会遭受到攻击,现在的互联网服务器遭受的最多的是DDOS攻击,本文总结了一些DNS服务器会遇到的DDOS攻击类型,以及相应的预防措施。

     [1]的作者将DDOS的攻击分为三种类型:

  • 大数据洪水攻击(Volume Based Attacks):这种攻击的目标是通过使网络服务器所在的网路的带宽超负载,使你的服务器对外服务能力下降,甚至无法对外服务。这种攻击常见的有UDP floods, ICMP floods,欺骗性报文攻击等。这种攻击一般用Gbps来衡量。
  • 协议攻击(Protocol Attacks):这种攻击的目标是通过消耗网络服务器、路由器、交换机、防火墙、负载均衡等设备的资源,使你的服务器对外服务能力下降,甚至无法对外服务。这种攻击常见的有SYN floods,IP碎片攻击,Ping of Death,Smurf DDOS攻击等。这种攻击一般用pps(packet per second)来衡量。
  • 应用层攻击(Application Layer Attacks):这种攻击的目标是使服务器的软件产生运行错误而停止对外服务。

下面会扁平地一一介绍各种攻击,不会根据分类来介绍。

- UDP floods

  UDP是一种无连接(connectionless)无状态(sessionless)的传输协议,攻击者会向目标服务器的任意端口(port)发送大量的UDP报文,目标服务器收到这些UDP报文后,会查看有没有相应的服务监听这个请求端口,如果没有服务监听这个请求端口,则向请求者发送ICMP Destination Unreachable报文。目标服务器在发送大量的ICMP报文上会消耗过多的服务器资源,从而使得目标服务器对外服务过慢,甚至停止服务。

  UDP floods攻击防御的常用办法是过滤与所提供服务的包大小差别太大的请求包,或者限速,某一个请求IP所请求的UDP包的类型每秒不能超过一定的阈值,超过则丢弃。

- DNS 放大DDOS攻击

  这种攻击依然是利用了UDP协议的无连接无状态的特点,用户伪造一个IP地址向DNS服务器发起请求,DNS服务器处理后会将结果返回到伪造的IP所在的网络。如果这个DNS请求请求的是某个zone下面的所有资源记录(dig ANY www.xxx.com ),DNS服务器返回的数据包就可能特别大,大量的大包发向伪造IP所在的网络,就有可能阻塞那边的网络,或者消耗大量的服务器资源。因为DNS服务器返回的是一个合法的DNS消息,所以对于网络人员来说,对这种攻击的防御

  目前很多的DNS服务器只负责解析一个domain中的域名,关闭递归查询可以使你的DNS服务器不会成为DNS放大攻击中的傀儡,BIND9中的option{recursion no;};可以关闭递归;如果你的服务器还想提供递归功能的话,可以只对特定IP段的查询提供递归功能,BIND9中可以像下面这样设置:

options {
  allow-query { any; };
  allow-recursion { corpnets; };
};

 

可喜的是,BIND9.8及以上的版本为用户提供了限速的功能:

rate-limit {
    responses-per-second 5;
    window 5;
};

 

- DNS Cache 污染

    这个可能不属于DDOS攻击,但是也把它放在这里。

    Cache污染是指权威域名服务器返回给递归域名服务器的资源记录被黑客劫持,换成了他们的资源记录,这个资源记录会在递归域名服务器中存在TTL时间,在这个时间内,用户的DNS请求得到的就是虚假的合法信息。通过这种方法,黑客可以把一个网站的访问引流到另一个网站。

  这篇文章详细介绍了DNS cache污染是如何工作的。

  上面文章的作者提出的预防的解决办法是亡羊补牢,当发现这种攻击时,用TCP发起DNS请求。。。。汗。还有中方法是发现Cache污染的时候刷新(flush)一遍cahce,  

 

实际上,DNS整套协议在流转的过程中的每个环节都有可能遭受攻击,DNS协议的几种操作和可能存在的安全威胁见这里(第四节)。

 

下图是Internet网络上面遭受的攻击种类,这些攻击涉及到了四层到七层的所有常用的协议。

 

防患未然才是最有效的预防方法,时刻对安全保持一颗敬畏的心才会做好事情。

 

Enjoy~

posted @ 2013-10-22 21:14  CobbLiu  阅读(3789)  评论(2编辑  收藏  举报