Revision History – “DDoS 那些事”

2018-01-08 11:30:00 作者:佚名 出处 : 比特网

  编者序:

  20世纪以来,依托于互联网信息技术的高速蓬勃发展,大数据物联网网络支付、共享经济、云计算等概念喷涌而出, 信息技术的发展、移动终端的普及不仅改变着我们的商业模式,推动着相关技术的发展,还逐渐改变着我们的日常生活。随着人们对互联网越来越多的接触与深入了解,信息诈骗,账户失窃,网络攻击,用户信息泄露等案例层出不穷,网络安全也逐渐成为了大家不得不重视的话题;在纵横交错的互联网上,不仅存在着海量的用户信息和商业数据,也混杂着大量的非法信息,垃圾数据和攻击数据等,DDoS便是其中重要的一类。随着互联网带宽的扩容,各服务器及用户端设备的性能提升,DDoS攻击也逐渐呈现愈演愈烈的趋势。

  本文本着让大家由浅入深了解DDoS,理性对待网络攻击和防御的目的进行撰写,希望大家阅读后能有所领悟,在处理和应对DDoS攻击时能有所借鉴。

  第一章 了解DDoS

  1.1 什么是DoS & DDoS?

  DoS (Disk Operating System) 磁盘操作系统?No,今天我们讲的是Denial of Service,拒绝服务攻击。这是怎么样的一个场景?平常我们的生活中碰到过吗?计算机系统中又怎么体现?

  第一种场景是,早上去买早点,今天没什么人,到服务台挑选好自己想要的豆浆油条包子小咸菜,很愉快的完成了选择,也很快的拿到了自己想要的食物,坐下来愉快的吃起来;

  另一种场景,去了某知名小吃早餐店,买早餐,买的人很多,卖早餐的售货员忙得不可开交,于是你就需要排队,售货员不能及时的给你提供服务,只有轮到你了,你才能挑选自己想要的早餐。于此同时后面排队的人们还在用着焦灼的眼神眼巴巴的看着你,希望你快一些选完;

  (本图片来源于网络,版权归原作者所有)

  再来一个场景,一个生意很好的饭馆,开了很多年,生意好的让人羡慕,于是在他旁边同样开饭店却生意惨淡的老板眼红的不行,于是恨由心生,生意惨淡的老板雇人一直拥挤在生意很好的饭馆里,赖着不走,真正的消费者无法进入;或者总是和服务员东拉西扯,服务员不能正常的给其他人点菜或者别的服务;又或者每天都给生意红火的饭馆打很多电话,订很多位置,订很多外卖,最后却都是爽约,使得生意好的饭店忙忙碌碌却发现空忙一场,损失惨重。

  (本图片来源于网络,版权归原作者所有)

  以上三个场景,便是一个服务正常的场景,一个服务忙碌的场景,还有一个拒绝服务的场景。我们在计算机系统中碰到的拒绝服务也很类似,所谓的拒绝服务,就是让你的计算机系统忙到顾不上提供服务给真正需要服务的对象,蒙圈儿了。

  在信息安全中,我们通常讲安全三要素,“保密性”,“完整性”,“可用性”。DoS, 即拒绝服务攻击,针对的正是“可用性”这个要点。在互联网上,攻击方一对一的利用目标系统的服务功能缺陷或者直接耗尽系统资源的方式,达到使得目标系统无法正常提供服务的目的。

  单一的DoS攻击一般是采用一对一方式的,当攻击目标CPU速度低、内存小或者网络带宽小等等各项指标不高的时候,它的效果是明显的。随着计算机与网络技术的发展,计算机的处理能力迅速增长,内存大大增加,同时也出现了千兆级别的网络,这使得DoS攻击的困难程度加大了-目标对恶意攻击包的"消化能力"加强了不少。这时候分布式的拒绝服务攻击手段 (DDoS, Distributed Denial of Service) 就应运而生了。

  DDoS 是怎么回事呢?大家了解完了DoS,那么DDoS,顾名思义,在DoS的基础上加上Distributed分布式这个属性,即利用了网络,利用了不同地理位置或逻辑位置的资源,对目标进行团伙性作案。虽然攻击目标的消化能力加强了,但是通过利用大量的互联网资源,攻击者依然可以达到拒绝服务的攻击目的, 所以分布式攻击往往都是‘群殴’和‘暴力’的代名词。

  DDoS事件回顾:

  说到DDoS攻击,就让人不由得想起8年前那场触目惊心的“519暴风断网”事件。这场灾难仿佛一阵飓风,瞬间席卷了中国互联网。暴风事件带来的巨大破坏性,不仅仅是在短短两个小时内让天津、北京、上海、河北、山西、内蒙古、辽宁、吉林、江苏、黑龙江、浙江、安徽、湖北、广西、广东等地区的DNS服务陆续瘫痪,导致用户不能正常上网,更为重要的是,众多黑客灵光一闪,开启了一种新的攻击模式。那次互联网灾难之后,DDoS攻击的编年史中出现了两个时代:一个是前暴风时代,一个是后暴风时代。今天就和大家一起回顾一下“519暴风断网”事件。

  失了一颗铁钉,亡了一个国家;一个馒头,引发一场血案。很多很多大事件,都是从微不足道的小事开始的。这一次,小人物再次改变了历史。“暴风”这件事儿的起因是两个游私服互相竞争,来回发动DDoS攻击。在达不到预期效果的情况下,干脆直接向对方的域名服务器下手了。

  Ÿ 5月18日开始,DNS服务提供商DNSPod的6台服务器开始受到攻击。

  Ÿ 18日晚20点33分,在史无前例的大流量攻击下,DNSPod的6台服务器开始陆续失效,大量网站开始间歇性无法访问。第一波攻击的流量在21点30分左右达到高峰,流量超过了10Gbps。要知道那可是2009年,奥运会才开过一年,北京的房价还是可以接受的,一个电信核心机房的带宽最多也只有几十G。

  Ÿ 18日当晚,由于DNSPod耗尽了整个机房近乎三分之一的带宽资源,为了不影响机房其他用户,DNSPod服务器被运营商下线。

  Ÿ 如果事情到此为止,其实也不会造成多大的影响。可是发动攻击的黑客忘了,运营商的管理员也忘了,DNSPod并不仅仅为这个被攻击的网游私服提供域名解析服务,还支持数十万其他的网站,这其中就包括大名鼎鼎的暴风影音。普通用户遇到上网失败,试几次就放弃了;暴风影音软件的设计,使它在请求失败后持续不断地重新发起请求。再考虑到暴风影音巨大的装机量,悲剧发生了。

  Ÿ 19日晚,由于DNSPod网络服务被中断,致使其无法为包括baofeng.com在内的域名提供域名解析服务,诸多采用DNSPod服务的网站无法访问,DNS请求涌向了本地DNS缓存服务器,DNS缓存服务终于顶不住了,发生了大面积的堵塞。

  Ÿ 19日晚21点左右,浙江电信DNS缓存服务开始瘫痪,之后的两个小时内天津、北京、上海、河北、山西、内蒙古、辽宁、吉林、江苏、黑龙江、浙江、安徽、湖北、广西、广东等地区的DNS缓存服务器也陆续瘫痪。全国各省市出现大面积断网。

  图1-1-1 DNS攻击示意图

  (本图片来源于网络,版权归原作者所有)

  由两个游戏私服的竞争而起,牵扯了国内最大免费DNS解析服务商,进而大规模影响了多省市的网络服务。是有意为之,又或是无心之失?症结在于软件的特殊进程,亦或是特色运营模式带来的弊端? 原因当然有多种。既有偶然巧合,也有必然利害,揪其根因, DDoS便是这起网络事件的罪魁祸首, 而其背后却是一条规模庞大的产业链。

  1.2 DDoS产业链

  说过前面的攻击案例,我们来分析一下,攻击者究竟为何要发起这场DDoS攻击? 显而易见,当然是利益驱使。有人的地方就有江湖,有江湖的地方就有利益,有利益的地方就有纷争,不然互联网上也不会有充斥着如此之多的DDoS,而且目前DDoS攻击的方式也越来越简单粗暴,动辄达到上G或几十G甚至上百G之巨。

  (本图片来源于网络,版权归原作者所有)

  前端: DDoS攻击者获利

  DDoS发起者最常见的目的就是进行网络勒索和恶性竞争等两类主要行为(当然,很多黑客或者初学者本着学习实验目的进行攻击的DDOS攻击由于其不具有持续性,我们这里便不做分析)。

  常见的场景是,很多中小型网站或企业在业务刚上线不久后,便开始受到DDoS攻击,本就不宽裕的公网出口带宽瞬间被打满,业务瘫痪,攻击者也适时适度的向各企业及网站拥有者曝光信息,‘好心’提醒以收取好处。很多企业为了息事宁人和快速恢复业务,便纷纷缴纳保护费以期息事宁人。而很多诸如游戏私服,涉黄涉赌等业务更是遭受DDoS攻击的重灾区。这其中有一些是独立黑客或工作室的勒索行为,还有就是一些利益同盟壁垒或竞争对手发起的恶意攻击,而且其中也不并乏一些混水摸鱼者。

  巨大的潜在利益驱使攻击者们铤而走险,不惜违反法律,发动一次又一次攻击,成为各互联网企业挥之不去的噩梦。

  后端: 攻击流量及傀儡机售卖

  既然是分布式攻击,那么必然需要多个攻击源。通常一次较大的DDOS攻击背后都有成百上千个攻击发起者,而这些攻击发起者通常都是被黑客入侵控制的终端,既然是被操控的机器而听命于攻击发起者,我们称这些被控制用以发起攻击的终端为傀儡机或叫做肉机 (bot machine),黑客们通常就是利用这些肉鸡发动攻击以达到分布式和伪装自己的目的。然而这些肉鸡资源不可能平白无故的获取。那么这些肉鸡是哪里来的呢?

  肉鸡嘛,要不就是养的,要不就是买的,要不就是抓来的,肉鸡品种很多,除了服务鸡,还有桌面鸡,手鸡,物联鸡,工控鸡,车载鸡等等等等,不同的肉鸡适应不同的顾客口味。 那么多免费软件,不会真的就免费吧?偶尔几个养鸡专业户,你也能理解吧?哪天养鸡场有困难了,借你的网络带宽用用也算合情合理吧,毕竟养鸡千日,用机一时啊!拿这些鸡赚些钱就更是理所当然的了。

  每次看到某些安全厂商发布新的0Day漏洞的时候,全世界的网络流量都要上升几十个百分点,干嘛呢?漫山遍野跑的都是抓鸡专业户哦啊, 有没有一种“鸡少人多不够分”的感觉?

  肉鸡只是拿来DDoS吗?这只是最简单粗暴的烹调方法,当然是烹鸡法千种,跑密码,挖矿,传播全家桶、刷应用商店排行,进行网络带宽分布式测试,甚至进行分布式计算,真是肉鸡全身都是宝,当然有人就是偏爱DDoS这一口。

  图1-2-1 利用肉机攻击示意图

  后端: 出售攻击工具

  以上两种攻击方法风险相对较高,因为一旦攻击者或者肉鸡控制者被发现,轻则罚款,重则入刑。而另一种方法则相对安全的多,即攻击工具售卖。目前网络充斥着各种各样的免费黑客工具,包括DDoS攻击工具。而任何一个质量稍好的或者需要自定义需求的攻击工具,通常是需要收费的。软件作者通常会根据一些攻击团队的需求实现一些相关功能,并收取相关费用。这些工具有时包含抓鸡工具,漏洞检查扫描工具,有时也包括直接发起攻击工具。

  DDoS 攻击这种互联网臭名昭著的攻击形式,大约在上个世纪90年代出现,至今活跃已经近20年了,而且20年来DDoS的攻击手段层出不穷,据不充分调查,目前已知的攻击种类大概在400种以上,而且可获取的各种DDoS工具更是达到4000多种,DDoS攻击给互联网的发展带来承重的负担。DDOS攻击危害互联网的同时,很多安全专家也在不断地研究DDoS的防御方法,国内最早于2000年以后才出现正式的DDoS防御产品,此后攻防双方一直此消彼长,进行着无休无止的对抗。那么攻击和防御是怎么进行的呢?让我们来进入下一章节进一步了解一下DDoS攻击的专业知识。

  第二章 走近DDoS - 攻击的类型、原理及特点

  通过上面的文字描述,相信大家对DDoS的危害有了一定的认识,由于进行DDoS攻击需要前后各个环节的相辅相成,过于复杂,也不是本章的关注重点,本章的关注重点是在获取傀儡机后进行的DDoS攻击的相关技术原理。

  2.1 DDoS的简单分类

  其实对DDoS攻击技术的分类可以有很多种,比如基于OSI模型所处的位置分类,或者作用类型分类等。今天我们按照DDoS的作用方式来分类,大体可以分为两种:资源消耗型和带宽消耗型。当然,我们的分类并不能囊括所有的攻击类型,并且随着DDoS技术的发展,DDoS攻击变成一个综合性的攻击,并不完全属于某一种类型。关于我们的分类,可以用一组漫画来形象的表达下:

  Ÿ 资源消耗型是消耗的受攻击者的Server的性能或协议资源,即利用TCP或HTTP等协议定义的行为,来不断消耗Server的计算资源以阻止Server处理正常的业务或请求。

  图2-1-1 资源消耗型DDoS攻击示意

  Ÿ 带宽消耗型是消耗的受攻击者的Server的接入带宽资源,带宽消耗攻击可以分为两个不同的层次:泛洪攻击和放大攻击。

  1) 泛洪攻击的特点是发送大量表面合法的TCP、UDP或HTTP数据请求到被攻击者的系统,目的是造成接入带宽耗尽,并且为了增大防御难度,还不断变化源IP地址。

  2) 放大攻击是通过伪造源IP地址,向某些存在漏洞的Server发送请求,并且该Server会对该伪造请求发送大量的数据应答,从而攻击伪造的源IP,该种攻击的特点是可以通过少量的数据请求来撬动大量的数据回复来攻击第三者,达到放大效果。

  图2-1-2 带宽消耗型DDoS攻击示意

  2.2数据中心受到的DDoS的攻击类型的简单配图介绍

  我们在写该文章之前,简单统计了下国内某云服务提供商在一个月内遭受到的DDoS的类型及数量统计。如下图所示:

  图2-2-1 入向型 (Incoming)DDoS

  图2-2-2 出向型 (Outgoing)DDoS

  该统计很详实的展现了两点:

  Ÿ 数据中心,特别是云数据中心,是DDoS攻击的重灾区,需要服务提供商加强DDoS的防护。

  Ÿ 目前DDoS攻击方式中TCP SYN Flood、UDP Flood、DNS Flood等占据了绝大多数。当然这些统计仅仅代表一方面,我们会在下一节中简单介绍以上图中提到及未提到的各种DDoS的攻击方式。

  2.3 DDoS攻击的典型类型详解

  资源消耗型主要是利用TCP或HTTP等协议定义的行为来不断消耗Server的计算或其他资源来阻止Server处理正常的业务或请求。比如常见的资源消耗型的DDoS攻击有:TCP SYN Flood攻击、TCP Flood攻击、LAND攻击、DNS攻击、慢速攻击、IP Fragment攻击。

  带宽消耗型的DDoS攻击常见的有:ICMP Flood攻击、UDP Flood攻击、反射&放大攻击(DNS\NTP\SNMP)等。下面我们对以上列举的攻击进行简单的介绍。

  1

  1

  00002.3

  2.3.1 TCP SYN Flood攻击:

  在介绍TCP SYN Flood攻击之前,我们先聊聊TCP三次握手。TCP协议是面向连接的传输协议,在传输数据之前,无论哪方面来传输数据,必须要在双方之间建立一条连接。

  Ÿ 第一次握手:客户端发送带SYN的数据包给服务端。

  Ÿ 第二次握手:服务端在收到SYN的数据包后,回复SYN+ACK的数据包给客户端。

  Ÿ 第三次握手:客户端在收到服务端的SYN+ACK的数据包后,回复ACK进行确认。

  三次握手结束后,客户端和服务端就可以相互发送数据了。

  图2-3-1 TCP三次握手(图2.3-1)

  TCP的三次握手用Wireshark抓包显示如下:

  图2-3-2 TCP三次握手Wireshark抓包

  介绍完TCP的三次握手后,我们再聊聊TCP SYN Flood攻击的原理。

  当第二次握手结束,客户端收到服务端的SYN+ACK数据包后,不回复ACK数据包,或者在建立第一次握手时,客户端伪造了一个不可达的源IP地址,则伪造的源IP无法回复ACK数据包,此时服务端会一直保持该“半开连接”直到超时。

  在服务端,当服务器对外提供TCP的服务,则需要在TCP层对相应的接口保持为“LISTENING”,简单说,服务端的操作系统会为每个“LISTENING”的TCP端口分配一个backlog。当服务端没有收到客户端的ACK数据包后,会重试发送SYN+ACK数据包多次,并保持“半开连接”直到超时,此时会消耗backlog。

  当攻击者发送大量的并且持续的SYN数据包给服务端,再服务端回复SYN+ACK数据包后,不回复或者无法正常回复ACK的数据包,则服务端的backlog就会消耗殆尽,此时当正常的客户访问请求到达时,服务端也无法正常提供服务。

  TCP SYN Flood示意图如下:

  图2-3-3 TCP SYN Flood

  那么TCP SYN Flood的攻击如何防护呢?其实要防护TCP SYN Flood攻击,谈何容易,自从1994年被理论提出,在1996年第一次的攻击出现,发展了这么多年,目前仍是DDoS的主力军,可见并不是那么容易进行防护的。我仅仅对防护TCP SYN Flood做简单的介绍:

  1) 对外提供的服务,最好在前端网络设备上建立白名单,只有合法的源IP可以访问到Server的相关TCP端口。不过如果是对外提供的公共服务,此方法不适用。

  2) 如上文所说,TCP SYN Flood的攻击是耗尽backlog,增大backlog后,可以提高Server抗击SYN Flood的能力。不过随着DDoS的数据量的指数增加,该方法的适用范围也不太大。

  3) 服务端在未接收到ACK的数据包时,会保持“半开连接”直到超时,此时可以减少此TCP超时时间或者减少服务端重试发送SYN+ACK的次数来加快backlog的资源回收。

  4) 启用SYN Cookies功能。在未开启SYN Cookies之前,服务端在收到SYN数据包后,即分配backlog资源,此时当未收到客户端的ACK数据包后,则持续消耗backlog资源。在开启SYN Cookies功能后,收到SYN数据包并不会立即分配backlog资源,而是根据该SYN数据包,计算一个cookie值,然后根据随机时间来生成SYN号,然后回复SYN+ACK数据包,在确认收到客户端的ACK数据包后,通过计算cookie值确认其合法,此时再分配backlog资源。

  5) 在服务端前端配置proxy或其他服务,来承担初始的SYN数据包,当确认收到客户端的ACK数据包并确认合法后,才跟后端真实服务端建立TCP三次握手,从而节省后端服务器的资源。

  以上方法可以配合使用,来达到最佳效果。如果想详细了解TCP SYN Flood的攻击信息,可以参考RFC4987。

  000021.3.1

  2.3.2 TCP Flood攻击:

  上面介绍了TCP SYN Flood的攻击原理,下面我们再来说说TCP Flood的原理。有的朋友可能会说,以上两个是不是一样的原理?答案肯定是否定的。

  TCP SYN Flood是在TCP三次握手的第三次回复ACK数据包时,不回复或者无法回复数据包,造成TCP无法正常建立,从而形成半开连接,但被攻击者需要资源来维护该半开连接,海量的半开连接将耗尽被攻击者的资源从而实现DDoS的攻击。

  TCP Flood时攻击者其实是和被攻击者正常建立TCP三次握手的,三次握手建立后,攻击者或者客户端不发送任何数据,直到TCP连接超时。通过海量的源IP地址与被攻击者建立完成TCP三次握手,消耗被攻击者的资源,从而实现DDoS的攻击效果。

  TCP Flood与SYN Flood的不同之处除了是否建立三次握手,更重要的是TCP SYN Flood可以通过伪造源IP地址,这样可以相对的保护攻击者。并且由于要建立TCP的三次握手,对攻击者而言也需要消耗比较多的资源来进行连接。这也是TCP Flood攻击在目前的网络环境中使用较少的原因。

  2.3.3 LAND攻击:

  下面我们来聊聊LAND攻击,LAND全称Local Area Network Denial,其工作原理与TCP Flood攻击类似,也是需要建立完成TCP的三次握手,但特殊之处在于进行LAND攻击时,攻击者发送攻击数据包的源目的IP地址都是被攻击者的IP地址。服务器接收到自己发给自己的SYN包后,会给自己发送SYN+ACK数据包,然后再次回复ACK数据包,这样就正常建立TCP连接。由于没有任何数据传输,最终只能等待TCP超时断开,从而达到消耗被攻击者服务器的资源。

  该攻击在1997年被首次提及,目前大部分的操作系统都已经修复了相关漏洞。不过对于类似的攻击,广大网络管理员应该做的首先是在自己的网络出口路由器上添加策略,阻止自己网络的IP地址作为源从外部来访问自己的网络资源。

  2.3.4 DNS Flood攻击:

  在聊DNS攻击之前,我们先简单了解下DNS解析的相关工作原理。在DNS解析中,存在两种查询方式,递归查询和迭代查询。如下图所示:

  图2-3-4 DNS解析的两种查询方式

  (本图片来源于网络,版权归原作者所有)

  先说说递归查询,工作在递归查询模式下的DNS服务器,当收到客户端的DNS解析请求时,必须回复一个准确的查询结果给客户端。

  比如客户端想访问www.163.com,把域名解析的请求提交给自己的本地DNS服务器,本地DNS服务器查询本地的A记录或者缓存,如果有则直接回复客户端;如果没有,则需要通过其他方式获得相应的解析记录(此处的其他方式就是迭代查询),然后回复给客户端,这就是DNS的递归查询的工作原理。

  然后再说说迭代查询,工作在该模式下的DNS服务器会向客户端提供能够解析客户端请求的DNS服务器的IP地址。客户端需要根据提供的DNS服务器的IP地址继续查询,知道得到域名的权威服务器的解析应答。

  以本次解析www.163.com为例,域名可以分成如下图所示的几部分:

  图2-3-5 www.163.com DNS解析

  首先,本地DNS服务器先查找根DNS服务器(称为root或. ,全球共13个根DNS服务器),根DNS服务器回复本地DNS服务器 .com的DNS服务器的IP地址;本地DNS服务器向 .com的DNS服务器的IP地址发送域名查询请求, .com的DNS服务器收到DNS请求后,回复本地DNS服务器,163.com的DNS服务器的IP地址;本地DNS服务器收到后,继续向163.com的DNS服务器的IP地址发送域名查询请求,163.com的DNS服务器收到DNS解析请求后,回复正确的IP地址作为解析结果给本地DNS服务器。此时本地DNS服务器完成对域名www.163.com的迭代查询。

  我们可以使用dig命令来查看迭代查询的过程。如下:

  图2-3-6 迭代查询过程

  上面的DIG的过程我们看的很清楚,可以充分了解DNS服务器的两种查询方式。那么DNS Flood的DDoS攻击是如何实现的呢?简单的说,客户端发送一个DNS服务器的查询请求,只有37字节,对客户端的消耗很小,但是DNS服务器收到DNS查询请求后,首先查看自己的A记录或者缓存目录等各种信息,在没有相关记录或缓存的情况下,会进行递归查询或者迭代查询,此时会大量消耗该DNS的相关服务资源。如果攻击者控制了大量的僵尸机器,同时向同一台DNS服务器发送海量的DNS查询请求(注:此海量的DNS请求尽量不重复,从而实现更好的攻击效果),此种攻击会消耗该DNS服务器大量的资源,严重影响其他正常客户从此DNS服务器获取服务的质量甚至中断服务,从而达到DDoS的攻击效果。

  图2-3-7 DNS查询抓包示意图

  2.3.5 慢速攻击:

  其实关于DDoS的攻击,大家的总体认识是海量的、快速的数据包的访问攻击,其实不然,虽然绝大部分的攻击确实如此,但是还存在着另外几种攻击,其中就包括我们本单元要介绍到的慢速攻击。

  一说起慢速攻击,就要谈谈它的成名历史了。HTTP Post慢速DoS攻击第一次在技术社区被正式披露是2012年的OWASP大会上,由Wong Onn Chee 和 Tom Brennan共同演示了使用这一技术攻击的威力。

  随着技术的发展,到目前为止慢速攻击可以大致分为三种:

  Ÿ Slow headers

  Ÿ Slow body

  Ÿ Slow read

  下面我们分别对以上三种慢速攻击做一个简单的介绍。

  1) Slow headers: 在TCP三次握手建立完成后,Web的客户端需要向Web服务器端发送HTTP的请求,这样Web服务器收到完整的请求后,才会进入后台进行处理,以便返回正确的结果给客户端。如下面的wireshark截图所示,在正常的Web请求时,connection后面会携带\r\n 以及请求结尾的\r\n, 即连续的\r\n\r\n (16进制为0d0a0d0a),表示Web请求的结束,Web服务器收到连续的\r\n\r\n的结束标志后,开始处理客户端的请求,从而回复客户端正确的信息。

  图2-3-8 slow headers慢速攻击抓包示意图1

  那么攻击是如何实现的呢?其实很简单,就是攻击端不发送连续的\r\n\r\n的结束标志,这样服务器端以为客户端没有发送完完整的Web请求,继续等待客户端的继续发送;而攻击的客户端利用这一点,间隔一段时间发送一点Web请求的头部,从而持续的保持TCP连接,进而持续消耗服务器端的计算及内存资源。当大量的攻击端发送大量的Slow headers的攻击时,从而达到DDoS的攻击效果。Slow headers的攻击的Wireshark抓包如下截图,间隔10秒发送一点Web请求的无效头部:

  图2-3-9 slow headers慢速攻击抓包示意图2

  2) Slow body: 在正常的Web访问中,有一种访问方式即POST方式,在POST方式中,客户端需要给服务器端发送一定量的数据body,服务器在接收完所有的POST body数据后才进行处理。那么服务器端如何确定接收了所有的body数据呢?如下图所示,在发送POST数据时,会携带一个参数:Content-Length,该参数代表客户端需要给服务器端发送的body的全部数据的大小,当服务器端从客户端接收到相应的数据后,及表示客户端已经发送完完整的body数据,从而服务器端进行处理。(注:此处仅考虑存在有效的Content-Length参数的情况,Chunked编码等方式请移步其他论坛了解)。

  图2-3-9 slow body慢速攻击抓包示意图

  那么攻击是如何实现的呢?发送攻击的客户端的POST数据包携带较大的Content-Length参数,但是间隔较长的时间随机发送数据,从而严重消耗服务器端的计算和内存资源,当大量的攻击客户端同时发送大量的Slow body攻击时,使服务器端达到受到DDoS攻击的效果。

  3) Slow read: 正常情况下,客户端与服务器端建立连接后,向服务器端发送GET请求,然后等待服务器端发送数据给客户端,如果服务器端需要发送大量的数据给客户端,默认情况下,为了防止发送或者接受方发生拥塞或者丢包,TCP使用滑动窗口机制来保证数据的正常传输(滑动窗口的概念请移步相关论坛进行了解)。

  那么攻击客户端是如何实现DDoS的攻击效果的呢?当攻击客户端发送完GET请求后,服务器端开始回复客户端相关信息,在发送第一片数据包后,收到客户端的ACK确认,并且携带接收端的接收缓冲区为1或0,即无法再次接收相关数据,则此时服务器端只能保持住相关TCP连接,并按照特定的时间间隔发送TCP的 ZeroWindowsProbe数据包进行探测,如果收到的TCP ZeroWindowsProbeAck显示的接收缓冲区继续为0,则进行重复以上探测部分,如下图所示:

  图2-3-10 slow read慢速攻击抓包示意图

  由于接收端的滑动窗口的接收缓存区为0,服务器端只能一直保持着TCP连接,从而消耗服务器端的计算和内存等相关资源;当有大量的攻击客户端发送Slow read攻击时,会逐渐耗尽服务器端资源,从而实现DDoS的攻击效果。

  2.3.6 IP Fragment攻击:

  这一小节,我们需要来了解下IP Fragment攻击。首先我们需要聊聊IP Fragment以及MTU。先看看IPv4的数据包包头,如下所示:

  图2-3-11 IPv4的数据包包头

  在IP数据包包头中,我们需要了解几个概念:

  Ÿ Total Length:占2个字节的长度,代表IP数据包(包括IP Header长度)总长度为2^16=65536,(0 --65535)。

  Ÿ Identification:用来识别一个数据包,该ID即使分片也不会改变。

  Ÿ Flags:占3个bit。

  Ÿ 第1个bit:保留,必须为0;

  Ÿ 第2个bit:0=可以分片; 1=不可以分片;

  Ÿ 第3个bit:0=最后的分片; 1=后续还有分片数据包;

  Ÿ Fragment Offset:分片数据包的偏移量,占13个bit。

  既然提到了分片,就不能不提一个概念,MTU(Maximum Transmission Unit),默认情况下以及在ISP的网络中,MTU设置为1500,注意,此1500的MTU是包含IP Header在内的,即IP层负载1480+IP Header20=1500。

  正常的数据传输时,当数据包的长度超过1500字节时,即需要进行分片,此时会用到上述的ID、Flags及Fragment Offset。其中ID是一个IP数据包的唯一标识,无论分片多少次,该ID值都会在所有分片后的数据包中做copy,用次ID在后续重组中标识来自于同一个数据包;Flags和Fragment Offset的作用前面文章也叙述了,此处不再重复叙述。

  那么什么是IP Fragment攻击呢?其实IP Fragment攻击是一个总称,包含各种不一样的攻击方法,我们以下来一一道来:

  1) IP Fragment Overlapped:正常情况下,在分片数据包中,Fragment Offset表示该数据包的Data字段位于原数据包的位置,这样在终端,根据ID,Flags及Fragment Offset就可以把分片的数据包重组为原来的完整的数据包。IP Fragment Overlapped攻击就是利用了这一点,在伪造的分片数据包时,两个分片关于Fragment Offset字段有重叠,此时在终端重组分片时,某些操作系统无法处理重叠字段从而发生异常,导致不能为正常数据请求进行响应,从而实现DDoS攻击,典型的攻击就是Teardrop。

  当然,此种攻击也常常用来通过IDS或者包过滤的防火墙设备,因为某些IDS或者包过滤的防火墙设备在检查数据包时,只检查首个包,认为安全后即同行,后续数据包不进行检查,而所有分片数据包在到达终端后,重组时由于分片重叠(rewrite)而形成攻击数据包对终端进行攻击。

  2) IP Fragmentation Buffer Full:通常情况下,终端设备或者安全设备收到一个分片数据包时,会存放在Fragment Buffer中,等待所有的分片都到齐后,重组进行处理或进行安全检查。当攻击者伪造海量的分片数据包,并且是无法重组的,这样会严重消耗终端设备或安全设备的buffer资源,从而导致无法提供或对正常请求缓慢响应,实现DDoS攻击。

  3) IP Fragment Overrun:在上文中提及,在IPv4 Header中,Total Length字段表示IP报文的长度,占2个字节,即表示IP报文的长度为0-65535。而Overrun攻击就是对终端在收到攻击者发来的分片数据包后进行重组,重组后的数据包长度远远超过65535,一些系统在收到此类数据包后会引起崩溃,从而实现DDoS攻击,典型的攻击就是Ping of Death。

  4) IP Fragment too many datagrams:正常情况下,拿cisco路由器为例,接口下会有两个MTU可以配置,第一个MTU即在接口下MTU ***,表示接口的传输MTU;还有一个可以配置的参数为IP MTU ***,表示接口封装IP数据包的MTU,默认情况下两个MTU的值都为1500(两个MTU的不同之处是,IP MTU是主动封装的IP数据包的大小,接口MTU是被动分片成的IP数据包的大小)。也就是说一般情况下数据包都会被封装为1500大小,就算应用层数据大造成分片,也不会对同一个数据包产生过多的分片。如果安全设备在你的网络中发现了针对同一个数据包(用ID来区分)有大量的分片,则有可能遭遇了DDoS攻击。

  5) IP fragment incomplete datagram:当攻击者在发送分片数据包时,终端收到后一般是无法重组为一个正常的数据包的。如果在你的网络中,安全设备发现了大量无法重组的分片数据包,则有可能遭遇了DDoS攻击。

  6) IP Fragment Too Small:上文4中所说,默认情况下IP MTU的大小为1500,为了增大传输速度,一般数据包都会被封装为1500大小。如果安全设备在你的网络中发现了大量的DATA很小的分片数据包,则有可能遭遇了DDoS攻击。

  上面6种都是我们常见的资源消耗型的DDoS攻击方法,下面我们再来简单聊聊带宽消耗型的DDoS攻击方法。

  2.3.7 ICMP Flood攻击:

  ICMP默认情况下是用来进行网络传输可达性测试的,一般客户端发送ICMP Request数据包给对端,对端收到后默认是回复ICMP Reply的数据包进行回复,当客户端收到ICMP Reply数据包后,则认为可以到达对端IP。

  那么ICMP Flood攻击的方法是什么呢?其实就是大量的发送ICMP Request数据包给被攻击者,而不关心被攻击者是否可以回复ICMP Reply数据包。

  一般情况下,攻击者集齐海量的僵尸机器,同时对被攻击者发送ICMP Request数据包,以期打满被攻击者的带宽,默认情况下,ICMP Request数据包的长度很短,所以为了增加攻击效果,会发送长度很大的数据包,以此来达到被攻击者的接入带宽被完全耗尽而无法正常对外提供服务,达到DDoS的攻击效果。

  2.3.8 UDP Flood攻击:

  UDP Flood攻击,顾名思义,与ICMP Flood类似,攻击者发送大量的UDP数据包以期耗尽被攻击者的接入带宽,从而实现DDoS的攻击效果。

  提到UDP,自然而然想到TCP,为什么UDP可以实现消耗带宽的DDoS的攻击呢?因为UDP是尽力而为的协议,不需要接收端回复确认数据包。

  2.3.9 反射&放大攻击:

  放大攻击,顾名思义,就是你发出来的数据包比如大小10字节,到被攻击者的数据包肯定比10字节大,这样形成了放大攻击。

  那么放大攻击是怎么实现的呢?简单的说首先需要找到一种协议,需要实现被攻击者收到的数据包要远远大于攻击者发送的数据包,如此才可以实现放大攻击,一般能够实现这种方式的有DNS、NTP、SNMP等三种协议。那么他们是如何实现的DDoS的放大攻击呢。

  其实放大攻击不是攻击者直接去攻击被攻击者,而是攻击者发送数据包给互联网上的公共服务器(比如提供DNS,NTP或者SNMP的服务器),但是发送的数据包的源IP地址不使用本机的IP,而是伪造成要攻击者的IP地址,这样互联网上的公共服务器收到数据包后,回复数据到被攻击者的IP上,从而实现了对被攻击者的DDoS的攻击,而由于服务器回复的数据包要远远大于攻击者发送的数据包,从而实现了DDoS的放大攻击。

  下面我们来分别介绍下DNS\NTP\SNMP三种协议的放大攻击的实现方式:

  DNS放大攻击:

  借用网上的图片来简单说下DNS放大攻击的原理,正常DNS的迭代查询的示意图如下:

  图2-3-12 正常DNS的迭代查询的示意图

  (本图片来源于网络,版权归原作者所有)

  图2-3-13 DNS放大攻击的示意图

  (本图片来源于网络,版权归原作者所有)

  NTP放大攻击:

  本节我们来聊聊NTP放大攻击的原理。标准的NTP服务中提供了一个monlist的查询功能。该功能主要是用来监控NTP服务的工作状态的。当客户端向NTP服务器发送monlist查询报文时,NTP服务器会想客户端发送与NTP服务器同步过的最近600个客户端的IP地址。由于NTP使用UDP 123端口进行通信,因此可以伪造数据源,攻击者调集海量的僵尸机将被攻击者的IP地址作为源,想公网的NTP服务器发送monlist报文,NTP服务器收到后,将600个IP地址的数据包回复给被攻击者,由于海量的请求,造成了海量的数据包回复,从而耗尽被攻击者的接入带宽,从而实现NTP放大的DDoS攻击。

  SNMP放大攻击:

  下面我们再来聊聊SNMP放大攻击的原理。网络上跑的各种设备,为了便于管理和维护,通常都会使能SNMP(Simple Network Management Protocol),该协议确实为运维工作带来了很好的便利,但是由于某些默认设备会默认使能该协议,并且会有默认的SNMP Community配置,比如最最常用的public和private,这样就为DDoS的利用带来了隐患。

  在SNMP V2中,存在一个功能,即Getbulk,如果设备使能了SNMP协议,并且使用一些默认的community,则攻击者就会利用该漏洞,使用海量的僵尸机,伪装成被攻击者的源IP,想公网上的一些开放了SNMP协议的设备发送Getbulk消息,则SNMP设备会回复响应的数据报文给被攻击者,从而大量的消耗被攻击者的带宽资源,实现DDoS的攻击效果。

  第三章 防护DDoS

  在介绍以下所有防护方案前,让我们首先明确一点, 即大多数的DDoS攻击都无法被完全的防御和避免。而典型的情况是,攻击流量通常混杂在正常流量中,难以被区分。所以在DDoS防御体系中,我们通常谈论的是如何有效的缓解针对企业和服务自身的DDOS攻击,而不是讨论彻底防御住所有类型的DDoS攻击. 因为单就大流量类型的链路耗尽式DDoS攻击而言,防御者也只能根据实际流量的大小来调整自己的链路带宽,而无法通过单一的设备或者防御结构做到万全,而企业的网络构建成本和实际取得的防御效果通常是不成正比的。因此在这一方面,具有一定规模的云计算服务提供商和传统的互联网服务提供商相对于中小规模的企业是具有相当的资源优势的,因为他们在设计和构建基础网络设施时,对于一般性的DDoS和安全要素就纳入了考虑范围并能够调动相应的资源构建综合性防御体系,我们稍后对此部分会有一定的篇幅进行介绍和展开。

  就目前常见的DDoS攻击防御方法,大多数企业及网络服务商主要采用清洗、过滤和调度三种策略(图3-1-1)。 而就DDoS攻击流量的检测机制和策略应用方法,DDoS防御主要分为静态防和动态防御两种类型。随着DDoS攻击手段和门槛的降低,DDoS攻击已经在互联网上呈现常态化趋势,市面上也相应推出了大量不同类型的DDoS清洗设备,价格从数十万到百万元不等,如何确定针对企业自身情况选择直接有效的清洗方案和设备就成为了我们努力的方向,以下我们就针对较为常见的分布式核心网络和不同类型的防御方法进行一一比较分析,了解各类方法的优劣势。

  图3-1-1 DDoS攻击防御方法示意图

  3.1防护清洗点比较:

  图3-1-2 DDoS防护清洗点示意图

  3.1.1 业务主机侧

  相对于其他清洗点,主机侧清洗最贴近于实际业务,流量负载相对较小,在数据分析工作量上相对最少,因此在流量分析辨识颗粒度上能够更加细致,能够更好地做到基于业务流量的分析和过滤,对于正常流量的误杀率也会降到较小的程度。然而,对于规模庞大,业务分布相对分散的系统来说,由于清洗行为过于贴近业务测,攻击数据流在网络上游无法得到及时清洗,因此会造成网络上游主干链路的带宽资源浪费,清洗效率相对较低。当网络出口带宽资源有限或者接入侧带宽有限时, 便会形成上游链路的拥塞, 并影响下游所有相关业务。但对于此种方法所提供的数据分析结果,可以有效的提取攻击数据流与业务间的特征关系,并对攻击流量形成针对性过滤和预知性防御。基于资源考虑,我们在考虑和实现此种方法时,建议采用软件或软硬件防火墙实现。值得注意的是,当业务侧主机数量较多时,对应的各防护端的维护更新难度会形成指数型上涨, 因此采用分布式控制系统的方式能够有效降低对应维护工作量和难度。

  3.1.2 业务接入侧

  对于传统的垂直部署网络模型, 我们通常会在主机上层进行二层流量汇聚或终结,与主机侧不同,在二层汇聚/终结的流量分析和清洗,通常会采用专门的设备进行。这样会提升一定的硬件成本,但是由于流量已经进行了部分汇总,防护点的数量已经大大减少,而且不同的业务划分依然相对清晰可辨识,因此在流量汇聚侧的流量分析清洗依然相对准确和高效。但是对于大型网络,特别是对于扁平化的大规模计算网络来说,这对清洗设备的数量和端口的要求非常之多。但是对于小规模网络来说,采用此种方法成本也会比软件实现相对要高。

  3.1.3 汇聚核心侧清洗过滤

  作为网络边界,对于IDC网络汇聚核心侧来说,其所处位置最靠近运营商,出入向流量聚合度较高,是较为常见的DOS攻击监测和流量清洗节点。相对于主机侧不同,汇聚核心侧业务流量集中,对于清洗策略管理来说相对较难复杂,而且对于DDOS防护设备的流量监控和清洗性能要求较高,通常都采用专门的商用清洗设备进行防护。然而对于不区分业务的通用策略来说,在汇聚核心节点进行部署能够起到事半功倍的效果,而且由于其所处位置在于拓扑顶端,所以在此位置的流量清洗可以对内网的带宽资源可以起到很好的保护作用。反之亦然,汇聚核心节点也是本地网络最后一道关口,将攻击流量扼制在网内,维护公网环境,也是每个企业或者互联网服务提供商的共同责任。当然这也是近源清洗能够带来的意义,离攻击节点越近,对于互联网带宽资源的浪费就越少,当然从运营商接入侧发起的攻击流量清洗才是真正意义上的近源清洗。

  3.1.4 运营商侧清洗过滤

  对于各企业或服务提供商来说,DDOS攻击最可怕的是造成公网出口的链路拥塞,这种情况下,内网防护无论采取何种措施或者流量服务保障策略,自身业务也已经受到一定程度的影响,因此带宽消耗攻击是一种令人头疼的暴力攻击方法。这种方法的唯一应对方法不仅仅是以暴制暴,采用运营商的清洗服务和区分业务的服务也成为越来越多企业的选择。当然,对于运营商清洗来说,真正的近源清洗也是对其自身网络资源的一种释放。对于一些大型企业和IDC企业来说,与运营商合作构建DDOS清洗中心,也逐渐成为保障自身安全的一种选择。

  从以上清洗点的比较不难看出,运营商清洗是最有效率及防护等级最高的手段和措施。它能够使攻击流量在到达业务网之前就能够被过滤掉。然而运营商网络规模庞大,随着目前互联网业务的飞速增长,用户数据也呈爆炸性增长,其流量的清洗能力资源也非常有限,所以目前运营商清洗服务的价格也是很多企业难以承受的。当我们对运营商清洗能力提出要求时,如何建设我们内网DDoS攻击清洗能力也是构建生态互联网的关键因素之一。以下我们就各防护节点如何实现防护措施做些更进一步的介绍。

  3.2防护手段

  以下多种防护手段是基于上节防护清洗点分析所进行的更细化的防护方法说明,现有实际应用中,我们通常会根据实际资源和情况采用多种方法综合应用,可能包括但不限于以下方法.

  3.2.1 主机/近目的侧的清洗过滤

  1) 有限开放端口

  减少开放闲置端口和只开放必要的应用访问端口可以大大减少主机被扫描和攻击的风险,这种方法看起来死板和繁复,因为其本质是需要用户将正常端口外的其他所有端口都关掉,然而此种方法对减少主机成为被攻击对象的作用却简单有效,而且通常情况下,进行有限的端口开放还大大减少了主机被病毒木马入侵的可能性。配合防毒和防火墙软件的共同使用,主机的安全性会大大提升。所以,在业务确定的情况下,尽可能的做到有限的端口开放是一种良好的习惯和减少自身风险的举措。

  2) 软/硬件防DDoS

  对于主机防DDOS的方法我们可以通过DDoS硬件或软件防火墙的方式来实现,通常情况下DDoS硬件防火墙的性能都要远优于软件防火墙,具有资源占用率低,性能可靠等优点,但相对成本会较软件防火墙要高。而软件防火墙通常会占用较多的CPU资源和内存,在应对大规模攻击及业务流量高峰时,容易达到系统瓶颈,因此对于软件防D的系统可以采用应用网关方式以分散系统负荷。以上两种抗D防火墙通常都能够应对较常见的DDoS攻击类型,对于小型网络或业务较少的情况可以考虑应用,当业务类型较多,服务端分散时,会带来较明显的管理问题。

  图3-2-1 防火墙防御DDoS示意图

  3.2.2 网关侧清洗过滤(易守/资源浪费/难管理)

  1) 访问控制策略

  在网关侧的访问控制策略相对主机侧访问控制策略可以更加集中, 而且可以根据业务类型进行适当的区分, 管理相对方便,. 但是在业务类型相对较多的情况下,也有可能造成流量的误清洗。通常从节省资源的角度考虑,部分访问控制策略可以上升到汇聚核心测进行流量的清洗过滤,以便减少带宽资源浪费。

  2) WAF防火墙入侵防护(抗攻击载荷和性能)

  对于网关侧的防DDoS防护我们可以考虑应用专门的应用级防火墙,对于上层网络访问控制策略比较细致或者部署有包过滤防火墙系统来说可以起到良好的补充作用,而且对于大客户和主要业务也可以就应用层攻击进行针对性防护。

  图3-2-2 某厂商抗D防火墙解决方案示意图

  3.2.3 汇聚核心侧清洗过滤(难守/资源利用高/易管理)

  1) 访问控制策略

  由于汇聚核心设备通常处于网络边界,对于汇聚后的向内和向外访问流量能够做到良好的控制因此,我们在定义汇聚核心侧的访问控制策略时都需要进行准确的业务区分,过滤掉常见的可被攻击的端口或源地址,良好的边界访问控制策略不仅可以大大减少业务风险,也能够在受到攻击时采用定义临时策略的方法,对攻击流量进行对应的抑制与过滤。

  2) 防火墙与入侵检测防护

  对于汇聚核心侧旁挂防火墙或入侵检测的方法可以对一定量的DDoS攻击起到防御作用,但是由于本身对数据的处理机制,通常情况下其对应的DDoS防护性能和处理效率较低,在遭受大规模攻击时会被DDoS耗尽资源,成为系统瓶颈,因此他们只能成为专用DDoS清洗设备的补充,而不建议 单独采用。

  3) 三层清洗设备(流量牵引回注特点)

  对于汇聚核心侧的清洗,常见的清洗部署方式是将清洗或检测设备旁挂在汇聚或者IDC核心设备上,利用专用的检测设备对用户业务流量进行分析,当用户遭受到DDoS攻击时,检测设备上报给专用的业务管理平台生成清洗任务,流量清洗中心对牵引过来的用户流量进行清洗,并可以通过二层回传/策略路由/MPLS VPN等多种方式将清洗后的用户合法流量回注到对应设备,此种方法在数据中心DDoS防护时较为常见,目前市面上多数抗D设备都可以支持此种部署方式。当然串接模式也可以采用,不过考虑到减少DDoS设备失效风险,提高网络抗D的容错性,此种方法在实际部署中较为少见。

  图3-2-3 流量清洗回注示意图

  3.2.4 运营商侧清洗过滤(易守/资源利用高/难管理/昂贵)

  上述三种清洗防护如果能够针对性的选取一至两种,通常能够有效的抑制进入业务网区域内的DDoS攻击流量。但目前常见的DDoS攻击方式中,有一种最令人头疼的攻击,即大流量DDoS攻击,也可称作带宽资源耗尽式DDoS攻击。顾名思义,此种攻击就是对于网内一至多个目标进行多源的(或伪造单一源)分布式的流量攻击,造成业务网公网出口的带宽被消耗殆尽,并引起业务失效。此种方法虽然可以采用扩大带宽的方式进行缓解,但出于带宽成本和实际正常业务量的考虑,我们并不推荐此种方法,这时我们通常就需要考虑运营商DDoS协助清洗方案来应对此种攻击。

  1) 近源清洗

  由运营商进行近源清洗是一种非常高效的防攻击手段,但是由于日益增长的对于清洗资源的需求和面对海量的用户数据,在清洗资源极其有限的情况下,其清洗服务价格相对来说也较高。但相信随着时间的推移,未来各运营商对DDoS清洗业务支撑的能力也一定会越来越强。目前市场上较为知名的是电信提供的云堤检测清洗方案,其突出的优势便是能够利用覆盖全网的Netflow数据,实现攻击流量的真正近源清洗,特别是对于DDoS放大攻击,能够起到良好的防御效果。由于此方案在对抗超大流量攻击上的能力以及全网监控,BGP牵引,近源清洗等技术特点,短期内是其他电信服务提供商难以企及的。

  图3-2-4 近源清洗示意图

  (本图片来源于网络,版权归原作者所有)

  2) 清洗中心方案

  清洗中心方案也是流量清洗牵引方案的一种思考,当考虑到运营商清洗的高成本时,通过自建清洗中心可以由对大规模攻击流量进行牵引,清洗后再回吐的方式实现流量的清洗过滤。此种方法需要在业务网遭受DDoS攻击时由清洗中心对攻击目标地址段发布明细路由以便实现流量的吸引,当攻击流量小于清洗中心能力时,清洗完毕后能够流量正常实现回注。而当攻击流量大于清洗中心能力时,由于攻击及正常流量已经被牵引走,因此只会牺牲对应地址段的部分业务,从而避免全网拥塞带来的更大的业务影响。此种方法相对于运营商清洗,成本相对较低,控制相对灵活,但可能产生的部分业务影响,而无法对攻击流量做到完全清洗,但关键时刻也能起到对重要业务的保护总用,因而是一种相对性价比较高的方法。

  图3-2-5 清洗中心方案示意图

  3) 路由黑洞

  在遭受DDoS攻击时,减少和缓解带宽拥塞产生的严重影响的方法还有路由黑洞的方法。其工作原理与清洗中心类似,但对于牵引流量带来的影响有所区别,路由黑洞即将目的地址为攻击者的攻击目标IP的所有流量引导到一个不存在的地址,从而直接丢弃。当开启基于目的地址的路由黑洞以后,无论是正常业务或攻击流量均无法到达目标地址,简单说就是牺牲部分目标地址的业务访问能力以保全减免带宽拥塞带来的全网业务影响,是一种典型的丢卒保车的方法。此种方法可以通过分布式数据中心或运营商的方式实现,相对成本较低

  图3-2-6路由黑洞方案示意图

  3.2.5 其他防御手段

  1) Redundancy and DRP

  冗余站点和异地灾备通常不是为DDoS攻击防护而设计, 但其带来的冗余和弹性能力可作为临时业务恢复手段进行应用,特别是可以将部分业务迁移到DRP设备上以减少现有带宽及系统负荷。

  2) 流量牵引

  这里的流量牵引并不完全等同于清洗中心方式的流量牵引,当服务提供商某条或多条链路被资源耗尽式DDoS攻击占满时,而其他多个公网链路及出口仍有闲置资源时,可考虑进行部分业务流量的牵引。此种方法主要是从现有带宽资源的均衡利用上进行考虑,当公网出口链路存在冗余或者其他数据中心存在相同业务节点可分担流量负载时,可以通过调整路由的方式进行备份数据中心间或ISP链路间业务负载调度、以便缓解部分链路拥塞带来的影响。此种方案对现有资源的利用率较高,但在实际调整时可能会引起部分业务的开销增长或引发其他公网路由问题,需要提前建立业务模型及切换方案,以免引入进一步的业务影响

  3) CDN攻击稀释

  其实CDN并不是为抗DDoS而产生的一种解决方案,但是对于网页服务而言,CDN确实有防DDoS的能力,以访问量非常大的电商行业来说,很多指标上来说都不亚于DDoS攻击和CC攻击,在CDN层面上用验证码过滤了大部分的请求,到达数据库的只有很小一部分,对于攻击很多一部分的量不会直接到达源网站,高防CDN会通过自身的带宽硬抗,抗不了的或者穿透了CDN的动态请求会直接到达源网站,源服务器的带宽和抗DDoS能力有限,就会被彻底DDoS攻击掉。因此应用CDN业务确实会将一部分攻击流量转移给CDN服务,从而可以减小对于源网站的影响

  4) 业务组件去耦合/容错

  在业务设计时,良好的业务功能分布及去耦合能够对于缓解DDoS攻击起到很好的效果。

  当部分模块或业务受攻击时,我们可以基于去耦合的方法,通过手动方式对这些模块进行去使能或启用其他同类模块,达到恢复业务及减少业务关联带来的更进一步影响. 当各业务模块可以做到灵活迁移,结合流量迁移方案,可以在多个数据中心内或其他服务器之间实现快速的业务恢复

  5) QOS业务区分

  对于QOS来说,这里并不能说是一种DDoS的防护方法,而可以说是在某种程度上对耗尽式DDoS攻击产生的影响进行缓解。当流量发生拥塞时,预先定义的QOS可以对部分重要业务流量进行区分,保障业务的基本可用性,但此方法通常需要互联网服务提供商的协助部署。

  6) 云防护

  就目前的互联网而言, 越来越多的服务提供商开始选择公有云、私有云或者混合云的方案来代替传统的IDC部署模式, 这不仅仅是因为云服务的弹性优势和成本因素. 还有云服务提供商技术背景/合作伙伴/运营经验等带来的附加价值. 特别是在DDoS防护方面,由于在各云服务提供商带宽出口相对较大的情况下,一般中小型规模的DDoS攻击基本无法取得效果,因此在带宽及防护能力方面,云服务提供商相对于传统IDC具有天然优势。对于Microsoft Azure、阿里云、AWS,这样的云平台来说, 也纷纷与运营商展开合作,以期提供全方位的DDOS清洗服务和能力打造。

  3.3防护方案选择

  对于DDoS防御方案的制定以及防护产品的选择不仅仅是一道技术难题,而且还需要考虑成本、投入产出比、运营维护、法律法规等综合因素。市面上常见的抗DDoS产品不仅包括软件防火墙、硬件防火墙、DDoS清洗设备,还包括以云堤为代表的运营商清洗方案, 高抗DDoS数据中心,云清洗中心等等产品。随着互联网技术爆炸式的增长,未来的带宽需求也不断增长,对于清洗能力来说,也会不断提出挑战和不断进行投入。

  如果我们需要自建清洗能力选取防护设备时,需要根据自身网络实际情况出发,考虑自身业务特点、网络结构以及外来DDoS威胁类型,切勿一味根据性能指标盲目进行防御设备选取。对付DDOS是一个比较复杂而庞大的系统工程,想仅仅依靠某种系统或产品防住DDOS是不现实的。例如当遭遇带宽耗尽式DDoS攻击时,单纯的下游清洗设备也已经无法有效的进行业务保障;还有防火墙等设备,在DDoS攻击过大时本身也可能成为受害目标。可以肯定的是,完全杜绝DDOS目前是不可能的,但通过适当的措施抵御90%的DDOS攻击是可以做到的。为了避免误导大家,我们便不在此处详述具体产品的类型选择。

  对于一般的中小型网络或服务提供商而言,建设一套完整的DDoS防御系统的成本会远远大于其实际收益。而将业务部署于公有云或者通过混合云接入公有云的方式,依托于云平台和多运营商的支撑,其本身就是对DDoS防护资源的有效利用。作为首个取得可信云认证的公有云平台,Microsoft Azure通过建设入侵检测 渗透测试 DDoS攻击防御能力,并积极与中国电信,世纪互联等IDC企业开展合作,通过强有力的蓝云运营团队7x24小时支撑,调动资源,端点结合,层层覆盖,为客户业务远离DDoS及网络威胁提供了有力的保障。

  术语词汇表

  DDoS: Distributed Denial of Service, 分布式拒绝服务

  DNS: Domain Name Service,域名服务

  TCP: Transmission Control Protocol,传输控制协议

  UDP: User Datagram Protocol,用户数据报协议

  Bot: 此文中Bot即为傀儡机,也被称为肉鸡,通常指被人为控制用以发动网络攻击的终端

  参 考 文 献:

  [1] Imran Sohail/Sikandar Hayat, Network Security and DDoS, LAP Lambert Academic Publishing AG & Co KG, ISBN-13:9783838370095

  [2] B. B. Gupta, An Introduction to DDoS Attacks and Defense, LAP Lambert Academic Publishing AG & Co KG,ISBN-13:9783846595695

  [3] 鲍旭华 洪海 曹志华,破坏之王 DDoS攻击与防范深度剖析,机械工业出版社,ISBN:9787111462835

  [4] 中国国家标准化管理委员会,RB/T 205-2014抗拒绝服务系统安全评价规范,中国质检出版社,ISBN:155066227574

  [5] 彭文波 彭圣魁 万建邦,网络安全进阶笔记,清华大学出版社,ISBN:9787302245285

  [6] 卿昱, 云计算安全技术, 国防工业出版社, ISBN: 9787118084849

  [7] 李德全,拒绝服务攻击,电子工业出版社,ISBN:9787121036446

  编著

  本文由世纪互联蓝云网络部架构工程师赵思洵、张法军、王安歌编著,感谢本文的审阅编辑张涛,蔡俊峰,薛楠,刘威、曲东妍以及微软Azure网络团队同仁的大力支持

最近更新
科普

科普图集
从《中国互联网+指数报告(2018)》看数字经济

从《中国互联网+指数报告(2018)》看数字经济>>详情

“互联网+”的这些新变化,你知道吗?

“互联网+”的这些新变化,你知道吗?>>详情

邮件订阅

软件信息化周刊
比特软件信息化周刊提供以数据库、操作系统和管理软件为重点的全面软件信息化产业热点、应用方案推荐、实用技巧分享等。以最新的软件资讯,最新的软件技巧,最新的软件与服务业内动态来为IT用户找到软捷径。
商务办公周刊
比特商务周刊是一个及行业资讯、深度分析、企业导购等为一体的综合性周刊。其中,与中国计量科学研究院合力打造的比特实验室可以为商业用户提供最权威的采购指南。是企业用户不可缺少的智选周刊!
网络周刊
比特网络周刊向企业网管员以及网络技术和产品使用者提供关于网络产业动态、技术热点、组网、建网、网络管理、网络运维等最新技术和实用技巧,帮助网管答疑解惑,成为网管好帮手。
服务器周刊
比特服务器周刊作为比特网的重点频道之一,主要关注x86服务器,RISC架构服务器以及高性能计算机行业的产品及发展动态。通过最独到的编辑观点和业界动态分析,让您第一时间了解服务器行业的趋势。
存储周刊
比特存储周刊长期以来,为读者提供企业存储领域高质量的原创内容,及时、全面的资讯、技术、方案以及案例文章,力求成为业界领先的存储媒体。比特存储周刊始终致力于用户的企业信息化建设、存储业务、数据保护与容灾构建以及数据管理部署等方面服务。
安全周刊
比特安全周刊通过专业的信息安全内容建设,为企业级用户打造最具商业价值的信息沟通平台,并为安全厂商提供多层面、多维度的媒体宣传手段。与其他同类网站信息安全内容相比,比特安全周刊运作模式更加独立,对信息安全界的动态新闻更新更快。
新闻中心热点推荐
新闻中心以独特视角精选一周内最具影响力的行业重大事件或圈内精彩故事,为企业级用户打造重点突出,可读性强,商业价值高的信息共享平台;同时为互联网、IT业界及通信厂商提供一条精准快捷,渗透力强,覆盖面广的媒体传播途径。
云计算周刊
比特云计算周刊关注云计算产业热点技术应用与趋势发展,全方位报道云计算领域最新动态。为用户与企业架设起沟通交流平台。包括IaaS、PaaS、SaaS各种不同的服务类型以及相关的安全与管理内容介绍。
CIO俱乐部周刊
比特CIO俱乐部周刊以大量高端CIO沙龙或专题研讨会以及对明星CIO的深入采访为依托,汇聚中国500强CIO的集体智慧。旨为中国杰出的CIO提供一个良好的互融互通 、促进交流的平台,并持续提供丰富的资讯和服务,探讨信息化建设,推动中国信息化发展引领CIO未来职业发展。
IT专家网
IT专家新闻邮件长期以来,以定向、分众、整合的商业模式,为企业IT专业人士以及IT系统采购决策者提供高质量的原创内容,包括IT新闻、评论、专家答疑、技巧和白皮书。此外,IT专家网还为读者提供包括咨询、社区、论坛、线下会议、读者沙龙等多种服务。
X周刊
X周刊是一份IT人的技术娱乐周刊,给用户实时传递I最新T资讯、IT段子、技术技巧、畅销书籍,同时用户还能参与我们推荐的互动游戏,给广大的IT技术人士忙碌工作之余带来轻松休闲一刻。