2.5.1 DNS存在的问题
1.DNS设计中存在的问题
在系统设计方面,DNS的设计受到当时条件限制,因而存在许多设计缺陷问题。
(1)单点故障。DNS采用层次化的树形结构,由树叶走向树根就可以形成一个完整域名(Fully Qualified Domain Name,FQDN),DNS服务器作为该FQDN唯一对外的域名数据库和对内部提供递归域名查询的系统,因而其安全和稳定就存在单点故障风险。
(2)无认证机制。DNS没有提供认证机制,查询者在收到应答时无法确认应答信息的真假,就容易导致DNS欺骗。假设当提交给某个域名服务器的域名解析请求的数据包被黑客截获,然后黑客将一个虚假的IP地址作为应答信息返回给请求者,那么原始请求者就会把这个虚假的IP地址作为它所要请求的域名而进行连接,显然它被欺骗到了别处而连接不上原本想要连接的那个域名,这样就导致了DNS欺骗。如图2-3所示。
图2-3 DNS欺骗原理示意
(3)访问量和维护量巨大以及远距离集中式数据库。单个名字服务器不得不处理所有DNS查询消息,并保存所有因特网主机的记录,数据库会相当巨大,需要为每台新增的主机频繁更新,而且单台名字服务器主机不可能在所有请求查询的客户主机附近,就可能导致相当大的延迟。
(4)BIND的漏洞。BIND是域名软件,它在提供高效服务的同时也存在许多的安全性漏洞。现已证明在BIND版本4和版本8上存在缺陷,攻击者利用这些缺陷能成功地进行DNS欺骗攻击,这些漏洞可以被利用取得系统最高权限。构成严重威胁的漏洞主要有两种:一种是缓冲区溢出漏洞,严重的可以使攻击者在DNS服务器上执行任意指令。另一种是DOS漏洞,受攻击后DNS服务器不能提供正常服务,而且其所辖的子网无法正常工作。
2.DNS面临的网络威胁
(1)内部攻击:攻击者在非法或合法地控制一台DNS服务器后,可以直接操作域名数据库,修改指定域名所对应的IP为自己所控制的主机IP,当客户发出对指定域名的查询请求后,将得到伪造的IP地址。
(2)序列号攻击:DNS协议格式中定义了用来匹配请求数据包和响应数据报序列ID,欺骗者利用序列号伪装成DNS服务器向客户端发送DNS响应数据包,在DNS服务器发送的真实DNS响应数据报之前到达客户端,从而将客户端带到攻击者所希望的网站,进行DNS欺骗。
(3)信息插入攻击:攻击者可以在DNS应答报文中随意添加某些信息,指示权威域名服务器的域名及IP,那么在被影响的域名服务器上查询该域的请求都会被转向攻击者所指定的域名服务器上去,从而威胁到网络数据的完整性。
(4)缓存(Cache)中毒:DNS使用超高速缓存,即当一个名字服务器收到有关域名和IP的映射信息时,它会将该信息存放在高速缓存中。当再次遇到相同的映射请求,能直接使用缓存中的结果,这种映射表是动态更新的,刷新也是有时限的,这样假冒者如果在下次更新之前成功地修改了DNS服务器上的映射缓存,就可以进行DNS欺骗或者DoS拒绝服务攻击了。
(5)信息泄漏:BIND的默认设置允许任何人进行区传送,区传送可能会造成信息泄露,区传送一般用于主服务器和辅服务器之间的数据同步,辅服务器可以从主服务器获取最新区数据文件的副本,也就可以获得整个授权区域内的所有主机信息。一旦这些信息泄露,攻击者就可以根据它轻松地推测主服务器的网络结构,并从这些信息中判断其功能或发现那些防范措施较弱的机器。
(6)不安全的动态更新:随着动态主机配置协议(DHCP)的出现,客户计算机由DHCP服务器动态分配IP地址,使原来手工更新其A记录和PTR记录变得很难管理。因此在RFC2136中提出了DNS动态更新,使得DNS客户端在IP地址或名称出现更改的任何时候都可利用DNS服务器来注册和动态更新其资源记录。尽管DNS动态更新协议规定只有经过授权的主机才能动态更新服务器的zone file,但是攻击者还是可以利用IP欺骗伪装成DNS服务器信任的主机对区数据进行添加、删除和替换。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。