您目前的位置: 首页» 智慧源» 网络基础知识篇起十三:域名系统(DNS)三

网络基础知识篇起十三:域名系统(DNS)三

4. DNS 的安全性问题

由于几乎所有的网络应用程序设计都具有时代的烙印,而在早期的网络安全并不是一个非常重要的课题,因此,在设计 DNS 时自然也未将安全问题考虑进去。于是,现在便有一些黑客利用特殊程序进入 DNS的资料库,找寻他们感兴趣的东西。

现在每一个 domain zone(域名区)的 DNS server(域名服务器)几乎都有两个,其中一个通常是该 zone(区域)的 primary  DNS server(主域名服务器),其他的大多为 secondary DNS server(从域名服务器)。一个 secondary DNS server 通常通过 UDP 包、利用端口 53 来向 primary DNS server 更新该区域的资料,这个过程称为"zone  transfer(区域传送)"。在 zone  transfer 中,TCP 的连接是由 primary  DNS server 负责建立的,有些黑客便利用这种 zone transfer 的方式,从 SoAStart of Authority)取得各种机密资料。因此,一些比较机灵的管理员会将 zone transfer 设定在 secondary DNS server 上,这样外来者就不容易取得 primary DNS server 的资料了。

保护主机的另一个方法,就是将你的主机名以不规则名称命名或是用乱数命名。例如你可以将你的  HPUNIX server 命名为 th25231,这样即使黑客取得了 zone 资料,也不知道哪一个主机才是值得攻击的。但是管理员必须要有一本账来记住哪一个主机用哪一个主机名,大多数企业都不愿意这样做——因为这种做法会增加管理的困难,假如有一天网络管理员离职了,新任管理员必然对这些主机感到非常头痛。

现在一些比较新版的应用程序可以杜绝黑客利用 zone  transfer 来读取区域主机的资料,例如 BIND  8.1.2for UNIX)就可以对一些 zone 的列表存取设下限制。不过如果你有防火墙的话,就可以利用防火墙对 DNS做更多补充措施,例如保护内部网络比较重要的主机不随便被外界存取,甚至不允许外界直接存取,并把一些比较重要的内部网络地址隐藏起来。但是要这样做之前,你必须要先确认一下该防火墙是否支持  NATNetwork Address Translation)的功能。如果你的防火墙是包过滤且不支援 NAT 的话,那这种防火墙将无法保护你的 DNS 信息——因为它采取 TCP 的连接方式,所以当你和 Internet 上任一部其他主机连线时,你的DNS 信息就可以被任一个系统读取。

并不是每一个防火墙供应商都能好好地处理有关 DNS 方面的问题,甚至有些防火墙还未把 DNS 的安全问题考虑进去,因此在选购防火墙时要特别注意这一点。一般说来,53 端口是给 DNS 使用的,但如果你的系统不用作 DNS service,那你可以将此端口转给其他服务器使调用,这就成为了黑客攻击的途径——对那些没有考虑 DNS 安全的防火墙来说,53 端口就相当于防火墙的后门。某些防火墙就允许各种包自由通过此端口。而要预防  53  端口成为黑客进入的通道有两个简单的方法:其一是阻断此端口,改由其他受保护的端口进行服务,二是设下存取 DNS 的条件。有一种被称为"port scanner(端口扫描)"的黑客入侵方式,就是利用未被保护的端口来进行攻击。

一些早期的 DNS 服务器对一些 DNS 的回应是来者不拒。它们将这些信息存放在缓存(cache)中,换句话说,如果黑客传送的  DNS  回应是假的,那么这些服务器依旧会将这些信息存到缓存中,而当有客户对这类假信息提出某些要求时,黑客就可以知道该  DNS  服务器缓存中的一些资料了。比较早期的  Windows  NT系统、UNIX 或是 Linux 系统都发生过这种情况。因此,要保护 DNS 的方法最基本的还得从认证与存取授权方面着手,并对 DNS 用来通讯的 53 端口进行监督或是限制存取,这样才能确保你的网络主机资料不会外泄。