DDos 攻击自打出现以后,就成为最难防御的攻击方式。仅仅在过去的一年里,DDoS 的数次爆发就让人大开眼界:
2016年4月,黑客组织对暴雪娱乐发动了 DDoS 攻击,魔兽世界、守望先锋多款游戏出现宕机的情况。 2016年5月,黑客组织针对全球银行机构发动 DDoS 攻击,导致约旦、韩国、摩纳哥等国的央行系统陷入瘫痪。 2016年9月,法国主机商 OVH 受到 DDoS 攻击,峰值达到1Tbps 2016年10月,DynDNS 受到 DDoS 攻击,北美众多网站无法访问,受影响的网站均排前列。
在你不经意之间,DDoS 可能已经在互联网上横行无忌了。
在谈攻防史之前,我们先来看看 DDoS 的攻击原理,知己知彼,百战不殆。
那么什么是 DDos 攻击呢?
DDoS 攻击是分布式拒绝服务攻击(Distributed Denial of Service)的缩写,核心是拒绝服务攻击,通过使目标电脑的网络或系统资源耗尽,使服务暂时中断或停止,导致其正常用户无法访问。而攻击的形式,又分为带宽消耗型和资源消耗型。带宽消耗型通过 UDP 洪水攻击、ICMP 洪水攻击以及其他攻击类型;资源消耗型包含 CC攻击、SYN 洪水攻击、僵尸网络攻击等。不同的攻击类型,我们的应对措施有所不同。不过在我们的日常工作中,我们所使用的 DDoS 攻击普遍是带宽消耗型攻击,也就是说,黑客会针对你的服务器发送海量 UDP 包、SYN 包,让你的服务器的带宽被攻击流量占满,无法对外提供服务。举个例子:用户通过网络来访问你的服务器就如同客人过桥来找你,但是由于你的钱只够建立一个双向四车道的桥,但是攻击者派了 100 辆大卡车,堵在你的桥门口,导致没有正常客人能够过桥来找你。
在这种情况下,你如果想要让你的客人能够继续访问,那就需要升级你的大桥,来让有空余的车道给你的客人来通过。但是,在中国的带宽由三大运营商移动联通电信提供接入,互联网带宽的成本是非常高的,而攻击者使用肉鸡攻击,攻击的成本要低很多,所以我们无法去无限制的升级我们的带宽。
在互联网的初期,人们如何抵抗 DDoS 攻击?
DDoS 并不是现在才出现的,在过去,黑洞没有出现的时候,人们如何抵抗 DDoS 攻击呢? 在互联网初期,IDC 并没有提供防护的能力,也没有黑洞,所以攻击流量对服务器和交换机造成很大的压力,导致网内拥塞,回环,甚至是服务器无法正常工作,很多IDC往往采用拔网线之类简单粗暴的办法来应对。后来,一些 IDC 在入口加入了清洗的程序,能够对攻击流量进行简单的过滤,这样就大大的减轻了服务器和内网交换机的压力。但是机房的承载能力也是有上限的,如果攻击总量超出了机房的承载能力,那么会导致整个机房的入口被堵死,结果就是机房的所有服务器都因为网络堵塞而无法对外提供服务。
后来,黑洞出现了,但是那时候的黑洞也是在机房的入口配置,只是减轻了服务器的压力,如果攻击的总量超出了机房的承载能力,最终还是因入口被堵塞而导致整个机房的服务器无法对外提供服务。在这种情况下,宣告了攻击者的得手,没有必要再尽心攻击,但是如果攻击者并没有因为目标无法访问而停手,那么机房入口仍有拥塞的风险。
后来,黑洞进一步升级,在机房黑洞之上采用了运营商联动黑洞。在遇到大流量攻击时,DDoS防御系统调用运营商黑洞,在运营商侧丢弃流量,可以大大缓解DDoS攻击对机房带宽的压力。
云计算平台也广泛采用了此类黑洞技术隔离被攻击用户,保证机房和未受攻击用户不受DDoS攻击影响。 不仅如此,云计算平台的优势在于提供了灵活可扩展的计算资源和网络资源,通过整合这些资源,用户可以有效缓解DDoS带来的影响。
黑洞是如何抵挡 DDoS 攻击的
目前最常用的黑洞防御手段的流程图如上图所示。攻击时,黑客会从全球汇集攻击流量,攻击流量汇集进入运营商的骨干网络,再由骨干网络进入下一级运营商,通过运营商的线路进入云计算机房,直到抵达云主机。 而我们的防御策略刚好是逆向的,云服务商与运营商签订协议,运营商支持云服务厂商发布的黑洞路由,并将黑洞路由扩散到全网,就近丢弃指定IP的流量。当云服务商监测到被攻击,且超出了免费防御的限度后,为了防止攻击流量到达机房的阈值,云计算系统会向上级运营商发送特殊的路由,丢弃这个 IP 的流量,使得流量被就近丢弃在运营商的黑洞中。
为什么托管服务商不会替你无限制承担攻击?
一般来说,服务商会帮你承担少量的攻击,因为很多时候可能是探测流量等,并非真实的攻击,如果每次都丢入黑洞,用户体验极差。 DDoS攻击是我们共同的敌人,大多数云计算平台已经尽力为客户免费防御了大多数的DDoS,也和客户共同承担DDoS的风险。当你受到了大规模 DDoS 攻击后,你不是唯一一个受害者,整个机房、集群都会受到严重的影响,所有的服务的稳定性都无法保障。 除此之外,在上面我们说到,目前 DDoS 都是带宽消耗型攻击,带宽消耗攻击型想要解决就需要提升带宽,但是,机房本身最大的成本便是带宽费用。而带宽是机房向电信、联通、移动等通信运营商购买的,运营商的计费是按照带宽进行计费的,而运营商在计费时,是不会将 DDoS 的攻击流量清洗掉的,而是也算入计费中,就导致机房需要承担高昂的费用。如果你不承担相应的费用,机房的无奈之下的选择自然便是将你的服务器丢入黑洞。
当你的主机被攻击后,服务商如何处理?
目前随着大家都在普遍的上云,我们在这里整理了市场上的几家云计算服务提供商的黑洞策略,来供你选择。
AWS
AWS 的 AWS Sheild 服务为用户提供了 DDoS 防御服务。该服务分为免费的标准版和收费的高级班,免费的标准版不承诺防护效果,存在屏蔽公网 IP 的可能。付费版只需要每月交 3000 美元,则可以享受防护服务。
Azure
Azure 为用户提供了免费的抗 DDoS 攻击的服务,但是不承诺防护的效果。如果攻击的强度过大,影响到了云平台本身,则存在屏蔽公网 IP 的可能。
阿里云
阿里云的云盾服务为用户提供 DDoS 攻击的防护能力,在控制成本的情况下,会为用户免费抵御 DDoS 攻击,当攻击超出阈值后,阿里云就会对被攻击 IP 实行屏蔽操作。 阿里云免费为用户提供最高 5Gbps 的恶意流量的攻击防护,你可以在各个产品(ECS、SLB、EIP等)的产品售卖页面看到相关的说明和条款。在其帮助文档也说明了相关的服务的限制。
腾讯云
腾讯云也为用户提供了免费的 DDoS 攻击防护服务,其免费提供的防御服务的标准如下:外网 IP 被攻击峰值超过 2Gbps 会执行 IP 封堵操作(丢入黑洞),一般黑洞的时长为2小时,大流量攻击时,封堵的时长从24小时到72小时不等。
普通 IDC
普通的 IDC 大多不提供防御能力,如果受到攻击,会存在被拔网线的可能。
如何合理的借助云计算的能力来抵抗 DDoS 攻击
合理的借助云计算的能力,可以让我们尽可能的减少被攻击时的损失:
1.充分利用云平台的弹性可扩展资源。设计可以横向扩展的系统架构,避免IP资源或者CPU资源耗尽,不仅可以有效缓解DDoS攻击的影响,而且可以提升系统可靠性。
2.缩小攻击半径。在设计系统时分离应用层和数据层,分离网络访问层和系统服务层,充分利用云服务提供商提供的云数据库、云存储、负载均衡、云网络等产品,可以有效缓解DDoS攻击的危害。
3.考虑选择合适的DDoS防护方案,主动抵御可能出现的DDoS攻击。
4.准备应对DDoS预案,第一时间响应并实施应对方案。