保护DNS的安全

  由5月19日由于一台域名(DNS)服务器受到了攻击无法正常工作就引发了南方6省大面积断网,这一事件再次提醒我们需要高度重视DNS的安全、预防针对DNS的网络威胁。

  2009年5月19日19点左右开始,江苏、安徽、广西、海南、甘肃、浙江等6省网络用户访问网站速度突然变慢甚至无法访问。5月20日,广东省也出现类似情况。连续两天国内出现大面积断网事件,引起政府部门的高度重视。经查,事故的原因是承担域名解析任务的DNS服务器受到了攻击。这起事件再次提醒我们域名系统的脆弱性。

  6省断网源于DNS

  据媒体报道,5月19日-20日的网络瘫痪起因是网络私服之间的竞争。为了威慑同行,一个私服的拥有者向为不少私服提供域名解析的DNSPod服务器发起了攻击,其目的是让这台服务器瘫痪,从而使得用户将无法找到与之有竞争关系的私服。

  位于常州电信某机房的这台DNS服务器采用的是国内一款免费DNS(域名系统)产品DNSPod,它为同时有电信、网通、教育网服务器的网站提供域名解析,让电信用户访问电信的服务器,网通的用户访问网通的服务器,达到互联互通的效果。暴风影音也是DNSPod服务对象之一。由于域名服务商DNSPod的DNS服务器遭遇恶意攻击最终瘫痪,导致其服务对象暴风影音等网站用户提交的访问无法找到正确服务器,访问申请大量积累导致电信网络无法处理,最终导致网络瘫痪。

  之所以这台DNS服务器受到攻击就会“闹出如此大的动静”,是由DNS在互联网体系中的重要地位所决定的。DNS(Domain Name System,域名系统)是为Internet上的主机分配域名地址(如计世网www.ccw.com.cn)和IP(如119.254.2.*)地址的系统,只要有一定网络规模的组织以及Internet的服务提供商都会部署。它的作用,简单地说,就是当我们在浏览器中输入域名地址,该系统会自动把域名地址转为IP地址。正是由于DNS在Internet网络中的枢纽地位,不法用户或者黑客只要攻击DNS服务器使其无法正常工作,就可让大量用户无法正常使用网络,进而达到自己的其他目的,就如5月份的6省断网事件一样。

  脆弱的系统难抵网络威胁

  DNS最早是由保罗·莫卡派乔斯(Paul Mockapetris)于1983年发明的,由于受当时条件限制,其系统设计存在很多缺陷:

  1.单点故障。DNS采用层次化的树形结构,由树叶走向树根就可以形成—个全域名(Fully Qualified Domain Name,FQDN),DNS服务器作为该FQDN唯一对外的域名数据库和对内部提供递归域名查询的系统,因而其安全和稳定就存在单点故障风险。

  2.无认证机制。DNS没有提供认证机制,查询者在收到应答时无法确认应答信息的真假,黑客可以将一个虚假的IP地址作为应答信息返回给请求者,从而引发DNS欺骗。

  3. DNS本身的漏洞:DNS是域名软件,它在提供高效服务的同时也存在许多的安全性漏洞。现已证明在DNS版本4和8上存在缺陷,攻击者利用这些缺陷能成功地进行DNS欺骗攻击。

  而另一方面,DNS又面临着来自网络的各种威胁,不法用户或者黑客利用DNS协议或者软件设计的漏洞,通过网络向DNS发起的攻击以达到非法目的。主要包括如下几种:

  1.内部攻击。攻击者在非法或合法地控制一台DNS服务器后,可以直接操作域名数据库,修改指定域名所对应的IP为自己所控制的主机IP,当客户发出对指定域名的查询请求后,将得到伪造的IP地址。

  2.序列号攻击。DNS协议格式中定义了用来匹配请求数据包和响应数据报序列ID,欺骗者利用序列号伪装成DNS服务器向客户端发送DNS响应数据包,在DNS服务器发送的真实DNS响应数据报之前到达客户端,从而将客户端带到攻击者所希望的网站,进行DNS欺骗。

  3.信息插入攻击。攻击者可以在DNS应答报文中随意添加某些信息,指示权威域名服务器的域名及IP,那么在被影响的域名服务器上查询该域的请求都会被转向攻击者所指定的域名服务器上去,从而威胁到网络数据的完整性。

  4.缓存中毒。DNS使用超高速缓存,即当一个名字服务器收到有关域名和IP的映射信息时,它会将该信息存放在高速缓存中。这种映射表是动态更新的,但刷新有一个周期,假冒者如果在下次更新之前成功修改了这个映射表,就可以进行DNS欺骗。

  5. 信息泄漏。DNS的缺省设置允许任何人进行区传送(区传送一般用于主服务器和辅服务器之间的数据同步),而区传送可能会造成信息泄漏。

  6.不安全的动态更新。随着动态主机配置协议(DHCP)的出现,客户计算机由DHCP服务器动态分配IP地址,使原来手工更新其A(Address)记录和PTR(反向解析)记录变得很难管理,为此提出了DNS的动态更新,即DNS客户端在IP地址或名称出现更改的任何时候都可利用DNS服务器来注册和动态更新其资源记录。尽管DNS动态更新协议规定只有经过授权的主机才能动态更新,但是黑客还是可以利用IP欺骗伪装成DNS服务器信任的主机对区数据进行添加、删除和替换。

  如何保护好自己的DNS

  为了保护好企业自己的DNS系统,这里提出如下建议:

  1. 配置辅助域名服务器进行冗余备份

  辅助服务器可从主服务器中复制一整套域信息。在辅助域名服务器中有一个所有域信息的完整拷贝,可以回答对该域的查询。

  2. 配置高速缓存服务器缓解DNS访问压力

  高速缓存服务器可运行域名服务器软件,但是没有域名数据库软件。它从某个远程服务器取得每次域名服务器查询的结果,让后将它放在高速缓存中,以后查询相同的信息时就可以直接回答。高速缓存服务器不是权威性服务器,因为它提供的所有信息都是间接信息。

  3. 配置DNS负载均衡

  DNS负载均衡技术是在DNS服务器中为同一个主机名配置多个IP地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,从而将客户端的访问引导到不同的机器上去。这样可以使不同的客户端访问不同的服务器,从而达到负载均衡的目的。

  4. 使用工具进行DNS配置文件检查

  有一些工具可以检查DNS配置文件,如开源软件Dlint,可以检查配置文件是否存在拼写错误;检查配置文件中是否有A(Address)记录的主机名称都有配套的PTR(反向解析)记录等。

  =======链接===

  配置和管理DNS的几个小技巧

  1.限制名字服务器递归查询功能。这样只会回答自己授权域的查询请求,而不会缓存任何外部的数据。

  2.限制区传送。

  3.分离DNS。通过把DNS系统划分为内部和外部两部分,起着负责对外解析工作,后则负责对内解析。

  4.隐藏DNS的版本信息。因为通常软件的漏洞和风险信息是和特定版本相关的。

  5.删除DNS上不必要的服务。

  6.合理配置DNS的查询方式,流量很大的DNS服务器可以禁止客户机使用递归查询以减轻流量。

  7.监控DNS流量。

  8.应用DNSSec技术。DNSSec主要依靠公钥技术对于包含在DNS中的信息创建密码签名,从而为DNS数据提供来源验证。
……
关注读览天下微信, 100万篇深度好文, 等你来看……
阅读完整内容请先登录:
帐户:
密码: