2013-10-08 09:19 佚名 新浪科技

2013年8月25日凌晨,.CN域名凌晨出现大范围解析故障,经分析.CN的根域授权DNS全线故障,导致大面积.CN域名无法解析。事故造成大量以.cn和.com.cn结尾的域名无法访问。直到当日凌晨4点左右,CN根域名服务器的解析才有部分恢复。

.CN根域名遭受有史以来最大规模DDoS攻击

2013年8月25日凌晨,.CN域名凌晨出现大范围解析故障,经分析.CN的根域授权DNS全线故障,导致大面积.CN域名无法解析。事故造成大量以.cn和.com.cn结尾的域名无法访问。直到当日凌晨4点左右,CN根域名服务器的解析才有部分恢复。此后,经CNNIC确认,国家域名解析节点遭受到有史以来规模最大的拒绝服务攻击,导致访问延迟或中断,部分网站的域名解析受到影响。而距本次事故发生一个月之后,本月24号,CNNIC和工信部终于揪出了本次攻击事件的始作俑者--一名来 自山东青岛的黑客。

据调查发现,该黑客本意是要攻击一个游戏私服网站,使其瘫痪,后来他为了更快达到这个目的,直接对.CN的根域名服 务器进行了DDoS攻击,发出的攻击流量堵塞了.CN根服务器的出口带宽(据工信部数据:攻击时峰值流量较平常激增近1000倍,近15G),致使.CN 根域名服务器的解析故障,使得大规模的.CN域名无法正常访问。

DDoS攻击背后的利益链条

大家可能会有疑问,看似普通的DDoS攻击其背后究竟隐藏着什么?一句话:为了利益。本次事故中攻击者使用的手法(譬如攻击一些“私服”的网站或主机) 并不罕见,且近些年有愈演愈烈的趋势。自国内的互联网事业兴起以来,国内有一些常年进行DDoS攻击的组织或个人,胁迫某些“私服”游戏的运营团队并收取 “保护费”,如果不合作便采取DDoS暴力攻击,使其无法正常运营。而这些“私服”的运营团队本身业务就涉及侵权,所以他们在遇到DDoS威胁时绝不敢报 警或维权,往往是被迫接受。这种恶性循环的结果就是这些网络中的恶意胁迫越来越肆无忌惮,这些从事DDoS攻击商业行为的组织或个人也演变成了各式各样的 “网络黑帮”,各式黑色产业链也层出不穷。由于当今互联网上DDoS攻击的门槛已经越来越低,雇主可以购买DDoS攻击服务,攻击可指定时间、指定流量、 指定攻击效果。总的来说,同行业间的恶意竞争是导致DDoS攻击愈演愈烈的最大原因,同时被攻击后定位攻击者所花费的成本较高也是这类事件层出不穷的重要 原因。

为何选择针对DNS服务器进行DDoS攻击

一直以来作为网络基础设施的DNS系统,给我们提供了访问互联网的便利,用户只需记住域名就可以访问到互联网上的对应主机。当你在浏览器中输入一个域名时,DNS的解析过程就开始了,一般的DNS解析过程如图1、图2所示:

图1:DNS解析的一般过程(有缓存时)

图2:DNS解析的一般过程(无缓存时)

下面来聊一聊现有互联网上运行的DNS系统所可能遭受到的风险。大家应该都了解,根域名服务器是DNS系统中最高级别的域名服务器,全球一共有13台, 多数分布在美国。首先,DNS系统是一个中心化的树形结构,很容易遭受DDoS攻击,且越靠近中心攻击效果越为显著;其次,现有DNS系统的迭代查询方式,对根域和顶级域解析服务器依赖非常严重;再次,现有互联网上存在着大量开放式的DNS域名服务器,这些服务器通常拥有强大的性能和带宽,利用DNS反 射技术的放大效应,可以产生近其带宽百倍的攻击流量。所以这些开放式的DNS服务器极其容易成为黑客们青睐的DDoS攻击“肉鸡“。这对整个互联网的基础 设施都是巨大的安全威胁。

在对现有DNS协议的风险评估上,DNS协议是很脆弱且不安全的。为什么说DNS协议很脆弱呢?一方面DNS 协议是明文协议,协议里带的信息可以很容易的被篡改、伪造,使得DNS协议易成为暴露用户行为的工具;另一方面,若在现有协议传输上采用加密手段,现有 DNS体系无法承受加密带来的开销和技术升级的成本。

正因为DNS系统的脆弱性和其协议设计上的缺陷,所以历史上针对DNS的攻击事件也比较多,影响比较大有2013年针对Spamhaus的攻击事件、2009年5.19断网、2008年DNS缓存投毒,以及2002年全球根域名服务器被攻击等等。

深入剖析本次.CN被攻击事件

从本次.CN根服务器被DDoS攻击的手法上来看,有两种可能性,一种可能是黑客使用DDoS方法攻击某个.CN域名,而较大的攻击流量或海量的查询请 求却把该.CN域名上一级根服务器打挂;第二种可能是黑客直接把DDoS攻击矛头指向了.CN的根域名服务器。针对DNS系统,常见的DDoS攻击手法 是:

1)传统DDoS攻击: 流量型(以堵塞网络带宽为主要攻击目的),包括UDP洪水攻击;TCP流量攻击;资源消耗型(以消耗目标机器可用资源为攻击目的),包括SYN洪水攻击,ACK洪水攻击,ACK反射攻击,慢速消耗攻击等;

2)DNS特有DDoS攻击:DNS反射攻击(放大效应)、DNS查询攻击(僵尸主机发起的海量请求)、变域名攻击:构造随机域名(或畸形域名)的查询请求,利用僵尸网络对目标域名或主机进行攻击(如图3所示)。

图3:DNS QUERY洪水攻击原理

为了最大限度的降低命中DNS缓存的可能,一般攻击者在构造攻击包时都会随机伪造查询源IP地址、伪造随机源端口,伪造随机查询ID以及待解析的域名。 从笔者获取到本次.CN攻击的数据包来看(见下图4),攻击者就是把经过特殊构造的海量的随机域名的查询请求直接发给了.CN的根服务器,也就是上文中提 到的变域名攻击方式。不过,笔者认为其中可能还混合有其他一些诸如UDP洪水、DNS放大和DNS僵尸查询等DDoS攻击,最终的目的就是让被攻击网络的 链路带宽超出服务的带宽,让目标机或集群处理能力超出极限,从而达到DNS解析不能提供正常服务的状态。

图4:.CN的攻击数据包(部分)

后续:DNS攻击的新趋势

在笔者看来,本次针对.CN根服务器的攻击为我们再一次敲响了互联网基础设施安全性的警钟,建议主管部门加强对基础设施的保障力度,以避免此类事故重演。

从笔者的日常工作中也能够发现不同针对DNS基础系统的攻击手法,譬如今年3月份针对国际公司Spamhaus的300G超大流量的DDoS攻击,攻击者主要采取的手法就是DNS反射攻击,这种攻击技术的特点就是利用互联网上开放的DNS递归服务器作为攻击源,利用“反弹”手法攻击目标机器。攻击原理如 图5所示:

图5:DNS反射攻击的原理

在DNS反射攻击手法中,假设DNS请求报文的数据部分长度约为40字节,而响应报文数据部分的长度可能会达到4000字节,这意味着利用此手法能够产 生约100倍的放大效应。因此,对于.CN遇袭事件,攻击者只需要控制一个能够产生150M流量的僵尸网络就能够进行如上规模(15G)的DDoS攻击。 据不完全统计,国内外总计有超过250W台开放DNS服务器可以充当这种“肉鸡”,开放的DNS服务器简直是互联网上无处不在的定时炸弹。

我们如何应对这种DDoS攻击?

我们DNS系统的运维人员在日常部署时要尽量做到DNS应用的负载均衡,提升DNS服务器的处理性能,尽量将解析节点分散,能够做到按不同的IDC或城 市实现冗余和容灾机制,通过这些手段可以有效的减轻大流量DDoS攻击发生时所带来的危害。但是如上文所言,针对于如此不堪一击的DNS系统,我们未来还 能够从哪些方面出发去应对一般规模或是超大规模的DDoS攻击呢?笔者认为有如下一些解决方案可以值得尝试。

第一,在你的主机遭受DDoS攻击时,最简单的是在本机做策略,譬如iptables等,或是事先将主机kernel加固以应对随时可能出现的风险,但是这种方法不能解决DDoS的根本问题,且非常不灵活。

第二,若通过对流量和攻击报文分析已知DDoS攻击类型,那么也可以通过配置一些策略来减轻攻击带来的危害。譬如对DNS反射攻击的防护,首先若被攻击 的服务器并未提供DNS业务,那么可以通过设置访问控制策略直接阻断所有的DNS请求/回应;如果被攻击的服务器是DNS相关服务器,那么最有效的方法是 配置DNS服务器,只响应合法区域的查询。不过这种方法需要一定的专业知识,需要运维人员介入,同样是不灵活的。

第三,提供充足的带宽 和性能很强的DNS服务器,也就是俗称的“堆机器,拼资源”,不过这种方法也如同饮鸩止渴,期望“魔高一尺,道高一丈”是不太现实的。不过建议管理人员还 是需要对DNS服务器的上联链路的负载情况及时做好监控,避免因链路拥塞导致丢包的情况出现,同时还是需要在物理带宽上投入一定的资源以防止上联链路拥 塞。

第四,在互联网的核心路由入口侧部署专业的DDoS流量检测设备和DDos流量清洗设备,通过DDoS检测设备与清洗设备之间进行 的策略联动,及时对恶意的攻击行为进行发现、清洗、阻断,这也是当下较为为业界所认可的防护方案。通过DNS协议的自身特点,依托Intel、 Tilera和Cavium等高效的硬件平台,开发专门针对DDoS流量清洗的系统。这里可以构建专用的DNS防护算法,如DNS QUERY FLOOD防护算法、DNS反射攻击防护等,用于从根本上过滤掉攻击流量。

但对于大量的中小网站、企业而言,花费重金购买防护资源是不现实的,不过现在随着互联网云技术的发展,很多大型互联网公司都提供了云主机服务,如腾讯云,阿里云等,并且免费提供专业的DDoS检测、清洗防护功能, 如果广大业务运营者担心自己的业务或主机会遭受到DDoS攻击,选择现有的云服务也不失为一种有效的解决方案。

除了上述提到的几种解决 方案,还有一些业界比较成熟的方案值得我们借鉴。比如CloudFlare公司采用的Anycast技术,该技术基于IP路由原理实现了自动流量负载均衡,在发生DDoS攻击时,这种技术能够有效的将攻击流量分流到不同区域的防护节点,进行流量清洗。该方案已经成功的在用户环境中部署。

最后,随着网络上DDoS攻击规模的不断扩大,DDoS工具的自动化,资源充足和带宽充裕,黑客发起DDoS攻击成本越来越低,而针对DDoS的攻防对抗,又是一个博弈对抗的过程。在非技术层面上,事先需要制定好应急预案和应对措施,如业务的自身调整、与运营商的沟通和应急措施同步。当DDoS攻击发生时,需要多个部门间快速的响应,实施应急方案和及时同步处理结果。同时,建议从立法上,对这类攻击进行严惩,提升攻击违法的成本。

.CN根域名被攻击至瘫痪,谁之过?的更多相关文章

  1. .CN根域名被攻击至瘫痪,谁之过?【转】

    2013年8月25日凌晨,.CN域名凌晨出现大范围解析故障,经分析.CN的根域授权DNS全线故障,导致大面积.CN域名无法解析.事故造成大量以.cn和.com.cn结尾的域名无法访问.直到当日凌晨4点 ...

  2. CN今日凌晨出现全部瘫痪的故障,持续近6个小时

    今日凌晨1点左右,所有cn后缀的网站出现无法访问的情况,原因来自于所有的cn域名均无法解析.据国内知名DNS解析商DNSLA称,故障源自CN所使用的根域名授权服务器瘫痪所致,故障一直持续到今天早上7点 ...

  3. 使用PHP获取根域名的方法!

    /** * 取得根域名 * @param type $domain 域名 * @return string 返回根域名 */ function GetUrlToDomain($domain) { $r ...

  4. 安装SSL证书 and 根域名跳转www域名

    1.安装自签证书 自签证书也就是不被公网认可的证书,可在局域网内进行签名认证,其12306也是自签证书,通过证书+nginx代理web服务器 可以实现https连接  一.使用OpenSSL创建证书 ...

  5. .cn根服务器被攻击之后

    如果是互联网行业的人员应该知道,8月25日凌晨,大批的“.cn”域名的网站都无法访问,当然包括weibo.cn等大型网站.个人比较奇怪的一件事情是,微博PC网页版是:www.weibo.com,而mo ...

  6. TP6.0多应用模式隐藏路由中的应用名

    本文默认采用的是多应用模式 PHP技术群: 159789818 ThinkPHP技术群: 828567087 1. 多应用模式中隐藏路由中的应用名的三种方式 域名绑定应用 增加应用入口 入口文件绑定应 ...

  7. 2019春招面试高频题(Java版),持续更新(答案来自互联网)

    第一模块--并发与多线程 Java多线程方法: 实现Runnable接口, 继承thread类, 使用线程池 操作系统层面的进程与线程(对JAVA多线程和高并发有了解吗?) 计算机资源=存储资源+计算 ...

  8. java面试知识迷你版

    java基础JUC.AQSJVM类加载过程mybatisSpringspringboot设计模式数据库redis网络问题认证授权Nginxlinux其他lombok消息队列ES缓存分库分表设计高并发系 ...

  9. 女朋友突然问我DNS是个啥....

    女朋友突然问我DNS是个啥.... 今天晚上我正在床上躺着刷手机,然后我女朋友突然说她的电脑坏了.说连着WIFi上不了网,让我给她看一下.(这就是有个程序员男朋友的好处) 然后我拿到电脑看了一下发现访 ...

随机推荐

  1. 使用idea建立gradle+SSM项目

    目录: 一.创建一个gradle项目   二 .在gradle中创建SSM项目 一 .创建一个gradle项目 第一步: 第二步:选择gradle,并选中web,然后点击Next进入下一步 第三步:此 ...

  2. UIAlertController高级之嵌入其他控件 分类: ios技术 2015-02-02 11:58 96人阅读 评论(0) 收藏

    在编码过程中,我们经常遇到需要这样一个效果,就是弹出框的嵌套; 举个最简单的例子,比如你要选择时间,必然需要一个时间选择器DatePicker.但是这个选择器又是在你点击某按钮时弹出,弹出方式最常见的 ...

  3. LRU Cache 题解

    题意 Design and implement a data structure for Least Recently Used (LRU) cache. It should support the ...

  4. github的SSH配置如下

    Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git则需要SSH的配置. github的SSH配置如下: 一 . 设置Git的user name和email: $ git ...

  5. java基础面试

    1. String类为什么是final的. 安全性:如果字符串是可变的,那么会引起很严重的安全问题.譬如,数据库的用户名.密码都是以字符串的形式传入来获得数据库的连接,或者在socket编程中,主机名 ...

  6. 刪除預裝在windows 10 的app

    刪除預裝在windows 10 的app 步驟: 方法一.(易於解除安裝的app) 1. →按"開始標誌" →"所有應用程式" →在想解除的程式圖示上" ...

  7. bzoj 2286 [Sdoi2011]消耗战 虚树+dp

    题目大意:多次给出关键点,求切断边使所有关键点与1断开的最小费用 分析:每次造出虚树,dp[i]表示将i和i子树与父亲断开费用 对于父亲x,儿子y ①y为关键点:\(dp[x]\)+=\(dismn( ...

  8. thinkPHP 模板中的语法

    一.导入CSS和JS文件   1.css link       js  scr        <link rel='stylesheet' type='text/css' href='__PUB ...

  9. mysql数据库锁定机制

    前言 为了保证数据的一致完整性,任何一个数据库都存在锁定机制.锁定机制的优劣直接应想到一个数据库系统的并发处理能力和性能,所以锁定机制的实现也就 成为了各种数据库的核心技术之一.本章将对MySQL中两 ...

  10. 基于ASIO的协程库orchid简介

    什么是orchid? orchid是一个构建于boost库基础上的C++库,类似于python下的gevent/eventlet,为用户提供基于协程的并发模型. 什么是协程: 协程,即协作式程序,其思 ...