ZDNS专家深度解析:从10.21美国网络瘫痪事件看DNS的安全性

ZDNS总工程师 王伟博士 2016-10-26 17:35 干货 来源:思达派 查看原文

美国时间10月21日,美国域名服务供应商DYN发表声明,该公司在当地时间周五早上遭遇了DDoS(分布式拒绝服务)攻击,从而导致用户无法正常访问包括Twitter、Spotify、Netflix、Airbnb、Github、Reddit以及纽约时报等主要网站。关于整个事件的发展,ZDNS此前在官方微信(微信号:zdnscloud)发布的 

粗一看,这就是一个DNS版本的CDN(内容分发网络 Content Delivery Network),实现了源站和服务站的分离,理论上,在这种模型架构下,来自终端(PC、手机、物联网设备)的访问流量不应到达权威服务器,DDoS攻击流量也应该在本地电信运营商的递归服务层面被消解掉,无法造成全网影响。

但在细节设计上,DNS相较CDN有几点差异,使得这种看上去很完美的可能性无法达成:

1) 不屏蔽权威源站地址:CDN服务提供屏蔽源站地址功能,终端用户无法得知源站的真实IP地址,也就无从发起针对源站IP地址的攻击,攻击流量只能分布式地到达各CDN节点,由CDN的处理能力以及流量清洗等抗攻击手段应对。但DNS权威服务系统的IP地址对全网公开,除递归服务器外,所有互联网用户都可以公开获知此IP地址,因此也就无法将DNS访问流量限制在递归服务器层面。

2) 公开单向的数据同步通道:CDN站点和源站的数据同步是双向的,即,CDN站点可以pull数据,源站也可以push数据,这进一步加强了源站的私密性,源站可以关闭入向端口而只是向给定目标发起主动同步连接。而DNS权威和递归之间的数据同步,是单向的,全球任意递归服务器都可以来pull数据,权威服务系统时刻处在对全网的开放状态。

3) 过期数据的处理机制:CDN服务模型中,如某个网页或图片过期后没有及时从源站取得更新数据,旧的数据会仍然得以保留并提供给用户,也就是“可用性”>“精确性”。但在DNS协议中,如果某条缓存数据到达定期更新时间,但此时递归服务系统无法访问权威服务系统(包括DDoS攻击状态下的拥塞原因)获取该数据的最新状态,旧数据依然会被删除,用户请求失败。这个机制放大了权威服务遭受攻击时对递归服务器的负面影响,因为很多所谓“旧数据”与“新数据”并无内容差别,并不影响用户的访问体验。

 上述种种技术缺陷,破坏了DNS原有“集成数据管理、分散访问流量”的设计初衷,使得权威域名服务系统犹如黑夜中为黑客指路的明灯,不断吸引各类非法数据请求和攻击流量。要彻底改变这种状况,则有必要加强对现有DNS协议及工程架构的研究,加快对权威、递归及权威递归间数据同步机制的优化和改进。

具体建议如下:

1) 域名全行业需要提高对DNS基础性和重要性的认识,包括根运行机构、顶级域名注册管理机构、顶级域名后台托管机构、权威域名云服务机构、递归域名服务机构、电信运营商等在内的各环节需要加深沟通和协作,发挥行业整体协调力量。

2) 考虑到DNS牵一发动全身的全局重要作用,有必要将顶级域名服务系统、重要权威域名服务系统、主要递归服务系统纳入我国现有的互联网应急协调处理机制中去。

3) 有必要在重要权威服务系统和主要递归服务系统之间建设独立的通信通道,保障大多数合法域名访问业务的顺畅和攻击应急状况下的应急通道畅通。事实上,在前几年就有国内研究人员提出过借鉴电信信令网思路,建设“关键信息基础设施虚拟专网”的建议。

4) 发挥电信运营商、小区宽带等在最后一公里为用户提供递归服务的机构作用,在递归服务层面建立数据备份和应急缓存替换机制。无论权威是否遭受攻击,终端用户的合法访问实际是由递归来进行响应的。

5) 高性能的专有域名服务设备也将有利于提升域名服务的处理能力和应急调度能力。近年来我国已出现了一批有别于LInux服务器+开源DNS软件的专业域名设备品牌(也许你还想了解