DNS欺骗攻击技术分析及防范
DNS欺骗是一种非常复杂的攻击手段。但是它使用起来比IP欺骗要简单一些,所以也比较常见。最近一个利用DNS欺骗进行攻击的案列,是全球著名网络安全销售商RSA Security的网站所遭到的攻击。其实RSA Security网站的主机并没有被入侵,而是RSA的域名被黑客劫持,当用户连上RSA Security时,
发现主页被改成了其他的内容。
DNS是怎样工作
DNS是全称是Domain Name Server,既域名服务器。当一台主机发送一个请求要求解析某个域名时,他会首先把解析请求发到自己的DNS服务器上。
假设现在有一台主机heike.angel.com,他的DNS是cn.angel.com机器,现在它拿到了某个域www.xaecong.com,但不知道其IP地址,这时它就要通过DNS查询来获得这个域名的IP地址。现在我们看看域名解析的整个过程把!
首先,heike.angel.com会将解析请求发往它的DNS服务器,
heike.angel.com__________________________________________cn.angel.com
这个名字请求是从heike.angel.com的某个随机选择的端口发送cn.angel.com的53端口,这是DNS服务器的绑定端口。
cn.angel.com收到这个解析请求后,就开始解析工作了。这时如www.xaecong.com的IP地址cn.angel.com的缓存之中,那么询问别的DNS服务器。
它首先询cn.angel.com会把查询的结果返回cn.angel.com
请问com的权威服务器
cn.angel.com_______________________________________________cn.internic.com
com域名权威服务器IP是22.1.2.3
cn.angel.com_______________________________________________cn.internic.com
这cn.internic.com回答cn.angel.com,COM域的权威DNS是IP22.1.2.3,然cn.angel.com就会向22.1.2.3查询xaecong.com子域的DNS服务器的地址。 请问xaecong.com子域的DNS
cn.angel.com_______________________________________________cn.internic.com
xaecong.com子域的DNS是200.1.1.1
cn.angel.com_______________________________________________cn.inrernic.com
现在cn,angel.com知道了xaecong.com子域的权威服务器的IP地址了。这时它就可以询www.xaecong.com的IP地址了。
请www.xaecong.com的IP地址 cn.angel.com_______________________________________________200.1.1.1
www.xaecong.com的IP地址是200.1.1.1
cn.angel.com_______________________________________________200.1.1.1
现cn.angel.com就得到www.xaecong.com的IP地址了,它再将这个IP地址反还给请求解析的heike.angel.com
www.xaecong.com的IP地址是200.1.1.1
heike.angel.com_____________________________________________cn.angel.com
heike.angel.com知道www.xaecong.com的IP地址后就可以和它进行连接了,整个域名解析过程就这么结束了!
DNS欺骗的原理
看到了上面的域名解析过程,我们就会想,如果cn.angel.com向xaecong.com的子域DNS服务器200.1.1.1询www.xaecong.com的IP地址时,我们冒充200.1.1.1给www.xaecong.com的IP地址,这个IP地址是一个虚拟的地址,列如202.109.2.2,这cn.angel.com就会把202.109.2.2当www.xaecong.com的地址返还给heike.angel.com了。当heike.angel.com连www.xaecong.com时,就会转向我们提供的那个虚假的IP地址了,这样对www.xaecong.com来说,就算是给黑掉了。因为别人根本连接不上他的域名。
这就是DNS欺骗的基本原理,但正如同IP欺骗一样。DNS欺骗在技术上实现上仍然有一些困难,为了理解这些困难我们要看一下DNS查询包的结构。在DNS查询包中有一个重要的域叫做做标识ID。用来鉴别每个DNS数据包的印记,从客户端设置。由服务器返回,它可以让客户匹配请求与响应。看看下面一个列子也许你会明白些
请www.xaecong.com的IP地址
cn.angel.com______________________________________________200.1.1.1
这时黑客只需要用假的200.1.1.1进行欺骗,并且在真正的200.1.1.1返回cn.angel.com信息之前,先于它给出所查询的IP地址。
cn.angel.com_____________ ← _______200.1.1.1
↓ www.xaecong.com的IP地址是1.1.1.1