序列号攻击是指伪装的DNS Server在真实的DNS Server之前向客户端发送应答数据报文,该报文中含有的序列号ID与客户端向真实的DNS Server发出请求数据包中含有的ID相同,因此客户端会接收该虚假报文,而丢弃晚到的真实报文,这样DNS ID序列号欺骗成功。客户机得到的虚假报文中提供的域名的IP是攻击者设定的IP,这个IP将把客户带到攻击者指定的站点。
2.3 DNS 序列号欺骗攻击原理
DNS 序列号(ID)欺骗以侦测ID和Port为基础。在Switch构建的网络中,攻击方首先向目标实施ARP欺骗。当Client、攻击者和DNS Server同在一个网络时,攻击流程如下:①攻击方向目标反复发送伪造的ARP Request Message,修改目标机的ARP 缓存内容,同时依靠IP续传使Data经过攻击方再流向目的地;攻击方用Sniffer软件侦测DNS请求包,获取ID序列号和Potr;②攻击方一旦获得ID和Potr,即刻向客户机发送虚假的DNS Request Message,Client接收后验证ID和Potr正确,认为接收了合法的DNS应答;而Client得到的IP可能被转向攻击方诱导的非法站点,从而使Client信息安全受到威胁;③Client再接收DNS Server的Request Message,因落后于虚假的DNS响应,故被Client丢弃。当Client访问攻击者指向的虚假IP时,一次DNS ID欺骗随即完成。
三、DNS欺骗检测和防范思路
3.1 检测思路
发生DNS欺骗时,Client最少会接收到两个以上的应答数据报文,报文中都含有相同的ID序列号,一个是合法的,另一个是伪装的。据此特点,有以下两种检测办法:
(1)被动监听检测。即监听、检测所有DNS的请求和应答报文。通常DNS Server对一个请求查询仅仅发送一个应答数据报文(即使一个域名和多个IP有映射关系,此时多个关系在一个报文中回答)。因此在限定的时间段内一个请求如果会收到两个或以上的响应数据报文,则被怀疑遭受了DNS欺骗。
(2)主动试探检测。即主动发送验证包去检查是否有DNS欺骗存在。通常发送验证数据包接收不到应答,然而黑客为了在合法应答包抵达客户机之前就将欺骗信息发送给客户,所以不会对DNS Server的IP合法性校验,继续实施欺骗。若收到应答包,则说明受到了欺骗攻击。
3.2 防范思路
在侦测到网络中可能有DNS欺骗攻击后,防范措施有:①在客户端直接使用IP Address访问重要的站点,从而避免DNS欺骗; ②对DNS Server和Client的数据流进行加密,Server端可以使用SSH加密协议,Client端使用PGP软件实施数据加密。
对于常见的ID序列号欺骗攻击,采用专业软件在网络中进行监听检查,在较短时间内,客户端如果接收到两个以上的应答数据包,则说明可能存在DNS欺骗攻击,将后到的合法包发送到DNS Server并对DNS数据进行修改,这样下次查询申请时就会得到正确结果。
四、DNS防护方案
4.1 进行IP地址和MAC地址的绑定
(1)预防ARP欺骗攻击。因为DNS攻击的欺骗行为要以ARP欺骗作为开端,所以如果能有效防范或避免ARP欺骗,也就使得DNS ID欺骗攻击无从下手。例如可以通过将Gateway Router 的Ip Address和MAC Address静态绑定在一起,就可以防范ARP攻击欺骗。
(2)DNS信息绑定。DNS欺骗攻击是利用变更或者伪装成DNS Server的IP Address,因此也可以使用MAC Address和IP Address静态绑定来防御DNS欺骗的发生。由于每个Network Card的MAC Address具有唯一性质,所以可以把DNS Server的MAC Address与其IP Address绑定,然后此绑定信息存储在客户机网卡的Eprom中。当客户机每次向DNS Server发出查询申请后,就会检测DNS Server响应的应答数据包中的MAC Address是否与Eprom存储器中的MAC Address相同,要是不同,则很有可能该网络中的DNS Server受到DNS欺骗攻击。这种方法有一定的不足,因为如果局域网内部的客户主机也保存了DNS Server的MAC Address,仍然可以利用MAC Address进行伪装欺骗攻击。
4.2 使用Digital Password进行辨别
在不同子网的文件数据传输中,为预防窃取或篡改信息事件的发生,可以使用任务数字签名(TSIG)技术即在主从Domain Name Server中使用相同的Password和数学模型算法,在数据通信过程中进行辨别和确认。因为有Password进行校验的机制,从而使主从Server的身份地位极难伪装,加强了Domain Name信息传递的安全性。
标签: