百度域名何以被劫持?(一)
2010-11-09邹福泰章思宇
文/邹福泰 章思宇
百度域名何以被劫持?(一)
文/邹福泰 章思宇
百度域名劫持再次引起DNS安全领域的震动。近些年来DNS不断受到各种安全问题的困扰,并对网络安全造成了较大的实际危害。因此,是否能够对DNS潜在安全进行比较透彻的分析,从而深入了解已出现的及未来潜在安全风险成为人们关心的话题。本文从DNS域名解析体系的完整环节展开剖析,针对域名解析的5个危险区域及整体体系安全风险进行论述,下期将探讨DNS域名解析体系如何进行安全风险状况评估。
2010年1月12日发生了百度域名被劫持事件。当天,中国内地最大中文搜索引擎公司百度被自称是伊朗网军(Iranian Cyber Army)的黑客组织入侵,导致网民无法正常登录百度网站达8小时。此次是百度成立以来最严重的服务器故障事件。事件造成百度直接损失超过700万人民币。此次危机再次凸显出DNS域名解析体系的安全风险问题。
百度域名劫持事件始末
1.技术分析
从技术上可以分析是百度域名注册商register.com受到黑客攻击,并将baidu.com注册域名的ns记录修改到非法服务器上,黑客操纵百度域名的解析,导致百度相关域名均受到影响。
在1月12日早上九点dig www.baidu.com可发现:
正常的百度注册有4个授权DNS:这4个授权都被黑客修改到另外4个非法服务器地址:yns1.
yahoo.com. yns1.yahoo.com. ns8.san.yahoo.com. ns9.san.yahoo.com.
而此四个都位于美国:
这明显说明了baidu.com的ns记录被修改。要修改ns记录需通过域名注册商。可查询whois记录:
从上可知baidu.com是register.com注册,因此原因应是register.com受到Web攻击或存在数据库漏洞时,记录被修改,导致递归解析不到baidu.com原先的4个DNS Server。从而所有域名被劫持,域名解析记录可被黑客任意修改。
2.解决方案
协商register.com修补漏洞,并将ns记录作正确指向。最多经过域名TTL时间后,百度域名解析得到正常化。
3.应急方案
由于事发突然,彻底解决好百度域名正确解析这个问题需要一定的时间。这时,对于百度自身是启用备用域名访问。对于各ISP及各架构DNS缓存服务器的组织机构,可以采用如下应急方案:
将受攻击的域名转到正确的授权服务器上处理,对于百度域名即将zone "baidu.com" forward 到4个正常的dns server之一或者多个即可。具体处理根据DNS域名解析服务器软件的指令不同有差别,如在Bind上可设置区配置:
图1 DNS域名解析体系示意图
DNS域名解析体系如何工作?
如图1,按解析的箭头示意顺序,以www.example.com域名解析为示例,DNS域名解析流程如下:
1.终端用户在浏览器中输入域名www.example.com。首先计算机询问它的本地DNS服务器,图中即为DNS缓存服务器,以确定www.example.com的IP地址。
2.DNS缓存服务器首先在它的本地缓存中进行查找“www.example.com”,如果找到那么将其返回给用户,如果没有发现,那么D N S缓存服务器发送一个查询给根服务器,来查询“w w w.example.com”的IP地址。根服务器收到信息后会回应“www.example.com”顶级域(TLD)服务器的地址。然后由DNS缓存服务器联系顶级域名(TLD)服务器来确定“www.example.com”的IP地址。
3.顶级域(TLD)服务器回应针对www.example.com的DNS授权服务器地址给缓存服务器。
4.DNS缓存服务器联系得到的“www.example.com”的授权服务器来确定它的I P地址。
5.DNS授权服务器将域名的解析地址返回给DNS缓存服务器。
6.DNS缓存服务器发送域名解析地址给最初的用户。
7.终端用户根据此解析地址访问域名对应的服务器网站。
域名解析中的风险
针对图1,我们来讨论DNS域名解析体系中的安全风险。
首先,我们根据标识的A/B/C/D/E区块,按区块来分析所存在的安全风险:
A区风险:A区为终端用户区。终端用户最易受到的是被木马或流氓软件感染后可能会出现部分域名的访问异常,如访问挂马或者钓鱼站点、无法访问等情况,本机劫持有hosts文件篡改、本机DNS劫持、SPI 链注入、BHO插件等方式,虽然并非都通过DNS环节完成,但都会造成无法按照用户意愿获得正确的地址或者内容的后果。此外,病毒也可导致本机DNS Server被篡改为非法的DNS Server,导致域名请求被重定向。
B区风险:B区为DNS缓存服务器区。DNS缓存服务器的情况最主要的风险是缓存中毒。缓存中毒的问题由来已久,近几年来更是频频发生。另外,缓存服务器的信任安全也需要关注,一些缓存服务器不遵循DNS解析规范,修改域名解析内容,如对某些域名返回非法解析地址,对一些不存在的域名返回一个解析地址等。
C区风险:C区为全球DNS网络区。全球DNS网络区里面主要的风险有两个:根服务器安全风险和whois数据库风险。根服务器风险主要是针对全球的13个根域服务器进行DDoS攻击;whois数据库风险主要是针对注册域名商的攻击,篡改数据库记录,如此次的百度域名劫持。
D区风险:D区为DNS授权服务器区。DNS授权服务器风险主要是权威记录可能被篡改、增加、减少。另外,授权服务器服务故障问题也需要得到重视。通常为了提供可靠服务,采用n个授权服务器。但是其中某一个故障停止服务时,由于DNS域名解析通常采用的Robin Round技术,将导致有1/n概率解析失败。由于国内的授权服务器普遍缺乏监管,授权服务器故障不能够及时发现和解决,这也使得这种安全风险潜在。
E区风险:E区指DNS流量区,也即图1中的解析路径1-2-3-4-5-6。DNS解析所经过的网络路径都可能受到响应包篡改攻击。特别是在路径3中,可能做DNS污染,使得DNS缓存服务器得到错误的解析地址;而在路径6中,可能做DNS欺骗。这些基本原理就是侦听DNS流量包,并修改返回包的内容。因为DNS解析基本上是基于UDP协议的,对等端的握手特别相关于Transaction ID,而通过侦听DNS流量是很容易得到这个Transaction ID,因而假设当提交给某个域名服务器的域名解析请求的数据包被截获,然后按截获者的意图将一个虚假的IP地址作为应答信息返回给请求者。这时,原始请求者就会把这个虚假的IP地址作为它所要请求的域名而进行连接,显然它被欺骗到了别处而根本连接不上自己想要连接的那个域名。
其次,我们讨论一下DNS域名解析体系整体所处的安全风险:
1. DNS服务器软件漏洞攻击风险
任何软件都不可能完美无缺。这对于B/C/D区内的各域名解析服务器都是需要特别注意的风险。
2. DDoS攻击风险
DDoS攻击对于DNS域名解析服务具有重大的杀伤力。DNS根服务器就曾经不断受到DDoS攻击,造成全球网络大面积瘫痪。
(作者单位为上海交通大学信息安全工程学院)