域名服务作为互联网的基础设施,它的重要性不言而喻。目前全球的十三个根域名服务器和成千上万的授权域名服务器承担着超过万亿次的DNS查询,默默为全世界的网民做域名解析服务。
这样重要的基础设施,必然是全世界黑客的目标。
2002年10月21日,全球的十三台根域名服务遭受了持续将近一个小时的攻击,这些攻击形式多样,主要集中为:ICMP攻击、TCP SYN攻击、fragmented TCP攻击和UDP攻击。这次攻击导致了一些跟域名服务器瘫痪。
之后全世界的科学家们痛则思痛,对当时的根域名服务做了大量的防护工作。
2007年2月6日,黑客们又对根域名服务器发起了几次疯狂的攻击,此时的ROOT DNS SERVERS已经很健壮了,对正常服务没有造成什么影响。
根域名服务器采取了一些什么样的措施,使得DDoS攻击不会造成根域名服务器的全线瘫痪呢?
原因一:积极的反应
今天在公司内网看到公司的清洗软件前段时间抗住了对一个网页高达6Gbps(每秒6Gbit)的攻击,最后攻击者看到没有效果,只能灰溜溜夹尾巴收工,而我们的这个页面呢?用户访问感觉不到任何异常(顺便赞一下我们优秀的工程师同学们)。
俗话说:“道高一尺,魔高一丈”,如果黑客真的优秀,就不会做黑客了。优秀的大型网站不缺少优秀的工程师,所以也不缺少优秀的防攻击预案。当攻击来的时候,检测软件会检测到网络异常,并采取相应的清洗策略,把异常的攻击流量阻挡在正常服务器之外。这样普通的用户可能只会感觉到一小段时间的访问缓慢,当清洗开始后,就跟正常访问无异了。
清洗的办法,常用有:1)通过某种统计标准发现异常流量,限制某个IP的查询次数,或者直接拒绝为该IP服务;2)攻击流量会有一定的规律,比如包大小是特定的(比如768字节),则将该大小的包blocked(当然要确保该包大小跟正常请求的包大小不一样才可以用这种策略)。
原因二:十三台根域名服务器的多样性
十三台根域名服务器都可以解析根域名(.com, .net等),而且这些根域名服务器由不同的组织管理。它们唯一相同的是解析根域名的功能,其它的,比如说硬件环境;使用的域名服务器软件;安全策略等等都不一样,因为攻击都是有针对性的攻击,所以这样又无形中增加了攻击者的攻击难度。
原因三:Anycast
Anycast可以使一组提供DNS解析服务的主机通过一个对外的IP地址标识,这些主机可以位于不同的地址。这样当对某一个域名服务器的流量增加的时候,通过Anycast我们可以将攻击流量分发到各主机上。现在的根域名服务器都采用了Anycast技术,比如f-root,它后面就有四五十台主机在服务。
原因四:fat pipes
根域名服务器都位于全球的骨干网上,而不是在边缘网络中(你们家的宽带位于边缘网络中,你们小区的用户都在双十一购物狂欢节的时候一起抢东西,就会觉得巨慢无比:-) ),所以想通过打大流量堵塞根域名服务器的网络的黑客,你还是早点洗洗睡吧。
原因五:gTLD(generic Top-Level DNS Server) 域名服务器 和 缓存
根域名服务器只服务根域名,根域名服务器下面还有gTLD服务器,比如为所有.com后缀做域名解析的服务器。而且Local DNS会有缓存,在TTL期内不会对相同域名做重复请求。所以用发起DNS请求的方式攻击根域名服务器的话,基本上是不可能的,因为层层的缓存足以使到达根域名服务器的流量微乎其微。
参考资料:
1,http://en.wikipedia.org/wiki/Distributed_denial_of_service_attacks_on_root_nameservers