浅析域名劫持与HttpDNS

2017-03-09 09:26尹川铭
网络安全技术与应用 2017年4期

◆尹川铭

(北方民族大学计算机科学与工程学院 宁夏 750021)

浅析域名劫持与HttpDNS

◆尹川铭

(北方民族大学计算机科学与工程学院 宁夏 750021)

互联网安全问题日益严峻的今天,传统的互联网技术面临着前所未有的挑战。本文在详细分析了传统DNS解析原理的基础上,探究了域名劫持的攻击原理以及攻击者常用的攻击方法。对DNSSec进行了简明扼要的探讨,然后对HttpDNS做了深入探究,并与传统的DNS进行了详细对比。

域名劫持;DNS;DNSSec;HttpDNS

0 引言

随着社会信息化进程的不断推进,网络普及率越来越高。人们在享受互联网技术带来便利的同时,对其的依赖性也随之增强,加之用户的安全意识缺乏,在网络交易越来越频繁的今天,互联网安全问题尤为重要。DNS为整个互联网提供地址解析服务,扮演着极其重要的角色,其在设计初期缺少对安全性的考虑,使得针对DNS的攻击层出不穷。DNS的安全问题已经成为整个互联网安全的重中之重。

1 DNS解析原理

DNS(Domain Name System,域名系统)的存在,其目的是让人们不再去记忆复杂难以理解的 IP地址,使用有含义的域名来访问网站[1]。DNS作为全球最大的分布式系统之一,因其在设计之初缺乏安全方面的考虑,使其十分容易受到攻击。DNS旨在响应用户的域名查询请求,返回网络可以识别IP地址。DNS的解析过程大致可分为三种方式:本地缓存解析、LocalDNS解析、迭代解析。

本地缓存解析。主机发起解析请求时,会先查询主机Localhosts文件是否有对应的域名-IP映射。如果查询失败,则查询主机DNS解析Cache。

LocalDNS解析。本地缓存解析失败,则主机向ISP运营商的LocalDNS服务器发起解析请求。LocalDNS服务器会先查询本地解析配置池,如果查询失败,则查询LocalDNS解析Cache。

迭代解析。迭代解析由 LocalDNS服务器发起,LocalDNS服务器根据配置不同可以把解析请求发给上级DNS服务器,或者向13台根逻辑域名服务器(编号分别为“A”至“M”)发起查询请求。根DNS服务器会返回一个授权管理该域的顶级域名服务器IP,LocalDNS服务器收到应答后向该顶级域名DNS服务器发起查询请求。该顶级域名DNS服务器如果无法解析会返回下一级DNS服务器IP,LocalDNS向下一级DNS服务器发起查询请求,如此迭代下去,直到查询结束[2]。

DNS使用UDP53端口进行查询与应答,使用TCP53端口进行数据同步。DNS查询与应答报文设计简单且采用明文传输,仅使用16位标识字段来区分对不同查询的应答。这就使得DNS应答报文极易伪造。

2 域名劫持

通常所说的域名劫持指的是,将主机的域名解析请求解析到错误的IP地址上,使用户无法正常访问目标网站。而错误的IP地址往往指向钓鱼网站、挂马网站等,给用户的隐私与财产带来威胁。

DNS劫持通常发生在一定的网络域内,影响本域内的网络用户,但是带来的后果却十分严重。如2010年1月12日百度境外.comDNS服务器被黑客攻陷,篡改了www.baidu.com的解析映射,造成包含北京、辽宁、江苏、四川、安徽、广东、武汉等多地部分地区百度首页出现无法打开或非法跳转的现象长达 11个小时。

攻击者常用的攻击方式可分为:攻击DNS服务器,伪造DNS服务器,伪造DNS应答报文。

攻击DNS服务器。DNS服务器本身由于管理员配置或者管理不当存在安全隐患、使用了弱口令、没有及时更新漏洞补丁、防火墙存在安全隐患等。极易遭受黑客成功入侵,获取最高权限,修改DNS配置域,在主机进行LocalDNS解析时返回被篡改的IP地址,使用户无法访问目标网站或者跳转到非法网站。

伪造DNS服务器。攻击者搭建非法DNS服务器,配置解析域,修改对特定目标域名的IP映射。如将www.ccb.cn(中国建设银行)的IP(202.106.80.106)映射成192.168.1.11(攻击者搭建的钓鱼网站),用户在难以察觉的情况下,泄露了自己的银行信息,给自己的财产安全带来严重的安全隐患。

伪造DNS应答报文。DNS解析所使用的UDP报文使用明文传输,这就为伪造应答报文提供了可能性。攻击者往往事先对攻击域内发起ARP欺骗攻击,将用户主机网关IP-MAC映射成攻击者主机的MAC地址,对攻击域内DNS解析请求报文进行监听。针对敏感域名的DNS解析请求,伪造DNS应答报文。由于攻击者主机跟用户主机在同一网络域内,攻击者伪造的DNS应答报文会先于LocalDNS服务器的应答报文到达用户主机。用户主机对相同16位标识字段的DNS应答报文,优先相应先到达者。用户主机完成域名解析之后,就会丢弃之后所有相同 16位标识字段的DNS应答报文,即使用户主机收到了正确的DNS解析包也不会相应,最终用户被跳转到了非法IP所指向的网站[3]。

3 HttpDNS解析服务

针对DNS存在的诸多安全隐患,新的DNS解析协议DNSSec被提了出来。DNSSec(Domain Name System Security Extensions)DNS安全扩展,在现有DNS协议的基础上通过增加几条新的资源记录来进行安全扩展[4]。但是DNSSec依然使用UDP进行明文传输,只是相应的增加了安全签名机制。DNSSec需要对现有的DNS服务器更新升级,工作量巨大,并且国内的大部分DNS服务器不支持DNSSec的迭代查询,这就导致了DNSSec没有普及。

即保证与国内现有的DNS解析服务器良好的兼容,又能很好的保证解析的安全性与质量,HttpDNS解析协议应运而生。HttpDNS解析协议使用HTTP协议向DNS服务器的TCP80端口发送解析请求,替代现有的UDP53端口。这一小小的改动能有效的避免域名劫持与跨网访问问题。目前国内支持 HttpDNS解析的公共DNS服务器有:阿里、腾讯、CloudXNS等。HttpDNS相比传统的DNS解析服务,有以下优点:

(1)解析请求不再经过 LocalDNS服务器,用户主机直接使用HTTP协议向公共DNS服务器直接发起查询请求,即使链路存在域名劫持攻击,攻击者也无法伪造解析结果。可以有效避免因链路监听与LocalDNS安全隐患所引起的域名劫持问题。

(2)普通的DNS解析机制,可能因ISP的DNS服务器设置问题,导致对在多个ISP部署节点的域名查询时,最终的查询结果指向其他 ISP内的主机,这就导致用户跨网访问问题。HttpDNS解析服务可以直接获取用户IP地址,根据用户IP所在的ISP提供最优解析,也就有效的避免了跨网访问问题。

(3)ISP利用其自身LocalDNS之便,常常向用户投放广告弹窗,并对特定的域名进行屏蔽。HttpDNS绕过ISP的LocalDNS服务器,可有效地避免广告弹窗,并且绝大部分解析一次请求即可完成解析。

(4)实现成本低廉,用户只需要稍作修改既可以完成对现有APP的DNS部署。

(5)目前国内HttpDNS服务商大部分实现了BGP Anycast,在多个ISP布置节点,能有效将用户流量路由到最佳节点。不仅保证了解析低时延,更能实现机房容灾,有效的抵御DDos攻击,保证用户解析质量。

4 结语

传统的互联网技术,在面对当今攻击者多样化的攻击方法下已经捉襟见肘。不断更新与完善现有互联网技术,加强互联网安全建设,普及互联网安全知识,优化互联网生态环境,是行之有效的解决方法。

[1]李杰. DNS欺骗和缓存中毒攻击的检测[D].电子科技大学,2015.

[2]陆柯羽. DNS递归服务器推荐系统设计与实现[D].哈尔滨工业大学,2015.

[3]陈琳. DNS攻击检测与防御技术研究[D].北京邮电大学,2011.

[4]彭阳.基于 DNSSEC的增强型信任体系结构研究[A].中国计算机学会计算机安全专业委员会.第27次全国计算机安全学术交流会论文集[C].中国计算机学会计算机安全专业委员会,2012.