腾讯云周斌:锤子发布会被DDos攻击,我们是这样抗住的

欢迎关注“高效运维”公众号,以免费参加「运维讲坛」每月一次的线下交流活动;并抢先赏阅干货满满的各种原创文章(详见文末)。

作者介绍

周斌

2005年加入腾讯,一直在腾讯负责后台开发和安全相关项目。现为腾讯云安全负责人。

引子

9月18日,针对目前备受关注的互联网云安全问题,“腾讯云会客厅∙技术专家面对面”首次活动在京举办。腾讯云安全总监周斌携技术专家团队,与到场朋友一起共话云时代的安全问题。

如下为周斌先生本次技术分享的部分精彩内容。请您欣赏。

这是一个最好的时代、也是一个糟糕的时代

当下是一个什么样的时代?这个是我们看到的数据,这是一个最好的时代,中国的网民数和互联网普及率一直在上升。根据这个数据,2010年到2015年整个全球云市场也是在飞速的成长过程当中。

当下也是一个糟糕的时代,DDoS肆虐、黑产横行、阻碍互联网的发展。在2014年12月,某国外知名厂商遭受到了DDoS攻击,服务中断12个小时。今年上半年,国内发生流量超过100G以上的攻击次数有33起。

2015年7月,腾讯云防护的最大一次攻击的流量已经接近300G。这个流量是指“到达流量”,即从机房看到的实际收到的流量带宽。了解互联网黑产的同学,都知道一个名词,叫“打出流量”:

打出流量 VS 到达流量

这两个本身是有一个距离的。运营商骨干网在中间做了大量的清洗工作。在流量经过所在城市的城域网,上到骨干网,再到对端城市的城域网时,流量会丢失掉绝大部分。中间运营商的路由器和防护设备会把大部分的恶意流量都丢弃。

换句话说,你在互联网上买1个G的打出流量,实际上到达受攻击方的时候,可能就是100兆。也就是说90%都会在途中丢失。

所以,我们在2015年7月防护的这次攻击,攻击流量(到达流量)是297G,按照这种比例来算,攻击方打出的流量是一个非常非常恐怖的数字。所以说,从DDoS和黑产角度来看,这真的是个很糟糕的时代。

锤子科技抵御DDos攻击的全过程

锤子官网的原始访问架构很简单:用户通过浏览器直接访问到IDC机房的服务器上,但这也是标准的情况。锤子官网服务器所在的IDC,具备一定的DDoS 防护能力,约几个G的级别。当天发布会,访问官网的流量很快冲到上限。在这里需要说明的是:

除非是海量服务的网站,正常情况下,一个普通网站业务的流量不太可能有几个G(大量图片和视频资源除外)。特别是对于官网而言,更加不可能。

这种情况出现以后,整个IDC机房的入口就被堵塞了,锤子科技官网已经无法正常服务了。锤子科技于是派人来对接大禹。

对接的过程很简单:在锤子官网域名的DNS配置里面加一条CNAME,将相应域名解析到大禹即可。

这是”大禹”令人欣赏之处:不管用户的实际机房是否在腾讯云,只需要把它的域名解析到大禹系统,就可以为他提供防护,能很方便地为非腾讯云的客户提供服务。

这个过程中使用到了DNS 协议的CNAME功能。它会把用户流量的请求先路由到大禹的加速点,然后由大禹的加速点清洗、过滤,再吐回到原站。也就是说只要在域名解析的时候,把域名指向大禹系统即可,不需要将用户的服务器从自己机房搬迁到腾讯云机房。

这样设置后,客户端发送过来的数据(流量),不管是攻击请求,还是正常请求,流量会先走到大禹系统的防护节点(这个节点内部叫做OC点)上做流量清洗。清洗完以后,把剩余流量回注到用户的IDC(本例中是锤子服务器)。

这种情况下,可能攻击过来的是10个G(打到了大禹所在机房),但在经过清洗后,用户IDC 仅接收到了500M的正常访问流量。

这样处理完后,用户IDC就可以正常提供服务。同时,对于大禹而言,每一个OC点上分担了只是10个G的几十分之一。

危情13分钟

当时的情况是,锤子科技的技术人员在发现了被DDoS 攻击后,立刻把DNS解析到“大禹”系统。

而DNS的配置从配完到生效,需要一段时间,虽然从理论上来讲,可以修改到一秒、两秒,但实际上今天的中国环境做不到,最快的话,也是在分钟的级别:

  • 因为DNS有一个root(一般在美国),下面还有一个Local DNS,所有的用户生效要依赖于Local DNS都刷新生效。中国很多运营商在Local DNS缓存时间设置的不一样,所以如果要看到所有DNS全部更新,大概是在分钟的级别。
  • 虽然单一的、个别地方也许有秒级。但是,国内如果所有的用户全部刷新,大概要几分钟才能完成。所以整个过程耗时13分钟,中间有一部分时间是花在Local DNS生效。这个是所有的厂商都无法控制的,因为Local DNS生效时间只有运营商才可以控制。

解读 DDoS 防护

DDoS 在行业内有一个不成文的说法,所谓流量型攻击的防护,就是拼带宽。理论上来讲,防护带宽越大,就越能够为用户提供更强的防护能力。

腾讯之所以能够提供几个T的防护能力,是因为目前已经在全国各地部署了400多个防护节点,平均每个点可以提供10个G的防护能力,400个点,就能够提供4个T的防护能力,未来会更多。

而且这个架构有一个好处,他本身是一个平行扩展,这意味着今天投入了400个点,如果说真的攻击流量上来的话,可以很容易再投入进去100个点,变成5个T。

带宽就是成本,如果空闲带宽只是为DDoS服务,这会是一个巨大的成本。但是,因为腾讯有这么大的体量,已经布局了非常多的机房,因此有条件联合起来把空闲带宽做防护。

普通IDC能用作流量清洗的OC点么?

假设普通IDC有10G带宽,但肯定抗不了10G的攻击流量,为什么?

因为很多情况下,服务的可用性会被海量连接数给击溃,在机器网卡还没到峰值时,机器的CPU可能已经扛不住了。这时甚至可能只能扛到1个G(虽然带宽还有9个G),这个点就已经宕掉。

但是大禹所有的OC点部署了一个流量检测的防御系统,外面都有三个防护中心,会检测攻击流量,做流量清洗。换句话说,在10个G的带宽之内,不会断掉,还可以提供服务,直到整个点流量被打满。

三个防护中心包括有:管理中心、攻击的清洗中心和攻击检测中心。通过三个中心之间的数据交换,来防护DDoS和CC攻击。

CC攻击

攻击者借助代理服务器生成指向受害主机的合法请求,实现DDOS和伪装就叫:CC,Challenge Collapsar,HTTP里针对应用型攻击的方式。

传统的DDoS攻击,主要是通过大流量发起的攻击,比如说你的带宽只有1个G,那拿100个G把你的机房带宽塞满。这样的话,你的网络就瘫痪了。

其实现在很多时候,黑产一般会采用CC来对付一个网站,怎么做?

去耗尽你的CPU资源,把你机器网卡的连接数全部挂满,这样即使你的带宽仍然有很多很多,只需要20兆的流量就可以把你打趴下。

这个是在DDoS之后的另外一个很大的威胁点。大禹现在这套系统对CC也是有一个很好的防御机制。

整个防御机制,从攻击检测到管理中心,然后再到整个攻击的清洗完成,可以在5秒钟之内完成。当一个海量的流量冲过来,会在5秒钟之内完成清洗。

为什么可以5秒钟完成流量清洗?

其实,很多时候攻击有两种情况:

  • 一种是像洪峰一样,一浪一浪的方式,会以一个波浪型逐步上升的趋势。
    这个比较好解决,设一个延迟反应时间就行了,是一分钟还是十分钟。
  • 第二种是上来直接就是洪峰谷底的方式,这种方式如果防御系统反应太慢,很多云机房都响应不了了,很多IDC其实就是因为这种瞬时损失的峰值,把整个IDC的带宽全部撑满。
    但是,因为在腾讯云上部署了这样DDoS的统一防护系统,所以可以在很短的时间之内响应秒级的事件时间,响应这种防护需求,从而保证服务正常。

我的分享就是这些,谢谢阅读。

如何一起愉快地发展

“高效运维”公众号(如下二维码)值得您的关注,作为高效运维系列微信群的唯一官方公众号,每周发表多篇干货满满的原创好文:来自于系列群的讨论精华、运维讲坛线上精彩分享及群友原创。“高效运维”也是互联网专栏《高效运维最佳实践》及运维2.0官方公众号。

目前高效运维新群已经建立,欢迎加入。您可添加萧田国个人微信号xiaotianguo8 为好友(或扫描如下二维码),进行申请,请备注“申请入群”。

标签

发表评论