文/赵武
1月21日下午3点10分左右,国内通用顶级域的根服务器忽然出现异常,大量网站域名被劫持到65.49.2.178这个IP地址,导致全国约三分之二的网站DNS服务器解析失败,高达数千万网友无法顺利上网。
这是中国互联网历史上又一次空前的重大安全事故,影响之广和潜在的危险之大足以警醒中国互联网界。
360网站安全负责人赵武全程指挥并组织团队应急处理了整个事故,响应用户反馈、进行技术分析、查找事故原因,然后研究技术解决方案、提醒并帮助所有用户解决问题,还要与相关机构沟通互动,提供技术分析报告、给出后续完善解决方案和建议。
在给最后一批用户发出弹窗提示,并向相关机构发出了一份《关于“1•21全国DNS故障”的技术分析和修复方案》报告后,赵武终于有机会坐下来,讲述了紧张而刺激的过去24小时:
第一时间发现DNS故障
21日下午15:10分,360网站卫士业务服务的一些网站陆续反馈,有多位用户反馈网站打不开,分析后发现我们的业务网站运行正常,而故障发生也是偶发性的,不是全国性的,但很快用户反馈越来越多,我们马上对DNS 进行递归分析,发现问题非常严重,根域名服务器直接反馈了IP地址而不是下一级域名地址,这就违反了技术原理和安全协议规定,而它指向的65.49.2.178这个地址又是不可访问的,我们马上意识到网络被劫持了。
在发现问题后我们马上与各级运营商和国家相关机构沟通汇报,15:47分通过360网站卫士官方微博公布了该问题。
接下来我们团队进行了第二次操作,通过测试工具模拟全国用户对问百度、淘宝、京东等网站进行解析,发现高峰时期超过2/3的网站DNS服务器解析失败,我们判断这是一个大规模事件。
360网站卫士又对twitter.com等多个国外域名进行了测试。结果显示,解析IP地址正常,表明域名未被污染。由此可以推断,本次DNS故障只是国内域名遭到污染,未发现国外域名受影响。初步判定问题出在根域名服务器(root name server)上。根域名服务器是互联网域名解析系统(DNS)中最高级别的域名服务器,全球仅有13台根服务器。其中,主根服务器(A)美国1个,辅根服务器(B至M)美国9个,瑞典、荷兰、日本各1个。我们进一步分析发现,故障发生在辅根服务器C和E上。至此我们就大概定位了问题,并有了初步的解决方案。
在以上过程进行的同时,360网站卫士团队分析发现,此次根域名污染时间大约持续了20分钟(大约在15:40分左右恢复正常),直到1个多小时后,多数网友才逐步发现网站恢复正常访问,同时由于各个地方的DNS递归服务器缓存时间不同,不同地区恢复的时间不同,部分网友在12到24小时内仍无法完全恢复正常,有些地区甚至将持续48小时。
第一时间提出解决方案
在确定问题之后,我们马上形成了一个解决方案,通过建立一个安全的DNS解析服务器(去除了异常的IP),保证解析正确;第二步通知受影响的用户将解析指向干净的DNS服务器,至此可以保证用户和网站不受该故障影响。16:32分,360网站卫士官方微博公布了该解决方案。
不过这个方案需要用户手工修改DNS设置,对于大多数用户操作起来会有难度,而360安全卫士早已提供了DNS修复功能,可以方便用户操作。于是我们也通过官方微博、微信、广播、媒体等渠道,告诉用户只要点击360安全卫士主界面的“电脑救援”,查找DNS关键词,就可一键自动修复。
无论是手动设置DNS,还是使用“电脑救援”自动修复方案,都需要用户主动操作,但无疑有大量网民还不清楚“断网”现象是DNS故障造成的。为此360安全卫士紧急开发了向用户推送自动修复方案的功能,当天晚间陆续向全国用户推送了DNS故障解决方案,进一步提醒不能正常上网用户及时修复网络故障,至22日下午15:30,也就是故障发生24小时内,几乎全体360用户已不受此次事故及当地DNS缓存的影响。
在研究解决方案的同时,我们还对故障原因进行了进一步分析,360网站卫士在对全国各地的域名解析进行追踪后,发现各地域名的解析时间统一为25ms,并且解析时间出奇的一致。由此推测,此次事件有两种可能性:首先不排除根域名服务器被黑客控制,对国内的网站域名解析进行了污染;另外一种可能是在DNS数据传输过程中在某个网络节点被进行了篡改。
事故之后的反思
在解决了用户问题后,作为安全企业,我们还有一项重要的工作要做,对本次事故进行技术总结分析,并向相关部门提供关于“1•21全国DNS故障”的技术分析和修复方案。
其实早在2013年8月的CN域名大事故后,我们团队就曾经给工信部提供了一份建议书,建议中国自己建立一套DNS应急处理机制,以降低类似事故造成的影响和损失,此次不幸言中。
经历了本次DNS事故之后,我们应该更加清醒的认识到:目前根域名服务器完全在国外,如果网络战发生或者境外黑客恶意攻击,我们将面临整个国内互联网瘫痪的威胁,所以有必要设置一套根域名解析镜像系统,做一个干净的DNS维护,以备不时之需。