1.概述
众所周知,DDoS(分布式拒绝服务攻击)攻击是当前互联网上最常见,却最难以防范的一种攻击,其基本原理是黑客通过发动成千上万的肉鸡,在短时间内对被攻击目标发起海量访问,大量占用被攻击目标的服务资源,使得正常的业务访问无法进行,具有危害大、成本低、防范难等特点。阿里云公网产品的一大特点就是有默认DDoS安全防护,包括弹性IP、负载均衡SLB、NAT网关等均有覆盖,今天就以SLB产品为例聊一聊阿里云提供的DDoS防护功能。
如上图所示所有来自Internet的流量都要先经过云盾再到达负载均衡SLB,云盾会针对常见的攻击进行清洗过滤,包括: SYN Flood 、ACK Flood、UDP Flood、ICMP Flood、连接攻击及畸形报文过滤和流量攻击等。
下文我们就来详述一下云盾是如何防范流量攻击的,这里有二个概念和三个阈值和一些其他的相背景知识需要读者了解:
2.背景知识
两个概念
清洗:当来自Internet的攻击流量较大或符合某些特定攻击流量模型特征时,云盾将会针攻击流量启动清洗操作,清洗包括攻击报文过滤、流量限速、包限速等
黑洞:当来自Internet的攻击流量非常大时,为保护整个集群的安全,流量将会被黑洞处理,可以理解为所有入流量全部被丢弃,参考阅读阿里云黑洞策略
三个阈值
BPS清洗阈值:入方向流量超过了BPS清洗阈值时,触发清洗
PPS清洗阈值:入方向数据包数超过了PPS清洗阈值时,触发清洗
黑洞阈值:入方向流量超过黑洞阈值时将触发黑洞
安全信誉分
安全信誉分是阿里云对用户的安全信誉做出的评级,历史攻击、会员等级、活跃度、安全等级、使用预期等指标综合给出的一个信用评级,用户的安全信誉等级越高,用户则可以拥有更大的免费黑洞阈值,和更短的黑洞时长(被黑洞后多久可以解除黑洞状态)
安全信誉解读
- 历史攻击
由攻击时长、攻击峰值、被黑洞次数、黑洞解除时间等因子组成,您所遭受的攻击时间越短、攻击峰值越小、被黑洞次数越少、黑洞解除总时长越短,历史攻击的信誉就会越高。 - 会员等级
根据您的历史累计现金消费(元)来计算会员等级,消费越多会员等级分越高。 - 活跃度
活跃度指的是您在阿里云开展业务活跃的情况,持续活跃的时长越长,计算得出的活跃度越高对应的安全信誉值越高。 - 安全等级
根据用户的安全等级,进行信誉评估。
从安全层面,可通过开通DDoS高防IP(网络安全)、Web应用防火墙(web安全)、安骑士(主机安全)、先知计划(白帽子众测)等安全服务来提升安全等级。
- 使用预期
评估您的阿里云产品使用预期,主要根据账户的余额、代金券类维度信息,进行评估未来在阿里云持续开展业务的预期。
怎么查看看安全信誉分
用户可以在DDoS高防IP控制台的基础防护子菜单下启动并查看自己的安全信誉分。注意安全信誉值是分地域的,目前国内5大Region和亚太东南1都开通了安全信誉
3.详解
了解以上概念后,用户可能会有如下疑问:
1.正常业务流量会不会被清?
2.清洗和黑洞的阈值又分别是多少呢?
3.用户如何知道某个实例当前的阈值是多少呢?
首先回答下第一个问题: 答案是会!看起来很恐怖对不对,我们看看为什么会这样。
流量清洗的触发条件有两类,一类是流量模型的特征,当特征符合攻击流量特征时,会触发清洗;另一类则由流量的大小而决定,因为DDoS攻击一般流量都非常大,通常都是以G为单位,因此当入流量达到一定阈值时,不论是否正常业务流量,都会启动清洗,毕竟有些DDoS攻击就是通过发起海量的正常业务请求来实现拒绝服务攻击的,因此一但出现了超预期的大流量来袭时,便会启动清洗。从另外一方面来讲,云盾不仅用来防攻击,也用来保证后端系统的稳定。如果正常流量超出了用户购买的产品规格,那么云盾会帮助产品限流避免后端系统出现问题。
清洗阈值的计算方式(以SLB为例说明)
遵循如下两个原则:
1.根据SLB实例所购买的带宽来决定阈值的高低,即SLB的出方向带宽,当实例的带宽较高时,各类阈值较高,同理,当实例的带宽较低时,各类阈值相应的会变低。
2.根据用户的安全信誉分来决定黑洞阈值的高低(注意安全信誉分仅影响黑洞阈值,不影响清洗阈值)
计算过程分为两个步骤:
Step.1.SLB后台会根据用户购买的带宽给出能够满足实例正常工作的阈值建议值
Step.2.云盾根据SLB给出的建议值,结合用户安全信誉分和各地域的资源情况,计算出最终的阈值
计算方式详解
前方高能预警:接下来的内容可能略显烧脑,非GEEK谨慎阅读。
Step.1.SLB参考阈值的计算方法
1.SLB带宽与bps清洗阈值之间的关系
当SLB带宽<100Mbps时,清洗bps默认阈值 = 120Mbps
当SLB带宽>100Mbps时,清洗bps默认阈值 = 带宽值*1.2
2.SLB带宽与pps清洗阈值之间的关系
清洗pps阈值 = (SLB带宽值/500)*150000 (带宽值Mbps)
3.SLB带宽与黑洞bps阈值之间的关系
当SLB带宽<1Gbps时,黑洞bps默认阈值 = 2Gbps
当SLB带宽>1Gbps时,黑洞bps默认阈值 = MAX(SLB带宽值*1.5,2G)
可以看到SLB给出的建议值是结合SLB的购买带宽(出方向带宽)来决定的,当带宽比较小时,采用某一个恒定的阈值,当带宽超出一定范围后,SLB给出的建议阈值时与SLB的带宽成正比的。
注意:上面提到的SLB的带宽都是指出方向带宽,即用户购买的带宽,那么如果用户购买的是按流量计费的实例,出带宽是多少呢?答案是:实例所在地域所支持的带宽峰值上限,目前国内地域都带宽上限都是峰值5G,详见附录部分的各地域SLB带宽上限和黑洞资源情况。
Step.2.云盾结合安全信誉分、地域资源情况和参考值计算最终阈值
云盾评估bps和pps阈值的规则:
1、bps最小1000M,pps最小30万
2、当SLB传入的参考阈值小于上述值时,取上述最小值
3、当SLB传入的参考值高于上述指标时,取SLB传入的参考阈值
云盾评估黑洞阈值的规则:
黑洞阈值根据不同情况有不同的取值逻辑:
1、等于信誉值:有信誉分&&传入值<=信誉值
2、等于传入值:有信誉分&&传入值>信誉值&&传入值<=区域最大值
3、等于信誉值:有信誉分&&传入值>信誉值&&信誉值>=区域最大值
4、等于区域最大值:有信誉分&&传入值>区域最大值&&信誉分<区域最大值
5、等于区域默认值:无信誉分&&传入值<=区域默认值
6、等于传入值:无信誉分&&传入值>区域默认值&&传入值<=区域最大值
7、等于区域最大值:无信誉分&&传入值>区域最大值
8、等于区域默认值:其他情况
4.实操
查看SLB实例的云盾阈值
同样在DDoS高防IP控制台的基础防护子菜单下用户可以查看到每个实例相关的阈值
设置SLB实例的云盾阈值
注意上图中展示的清洗阈值都是实例的最大阈值,用户可以相应的调小(黑洞阈值不可调),点击上图中的查看详情,再点击下图中DDoS防护高级设置,即可以将对应的阈值调整小,适应各种业务的安全需求
选择手动设置,就可以调低相应的阈值了。
附:各地域SLB带宽上限和黑洞资源
| 地域 |SLB可售卖最大带宽/按流量实例带宽 |默认黑洞值|默认最大黑洞值
| ------------- |:-------------:| :-------------:|-------------:|
|青岛|5G|5G|10G|
|杭州|5G|5G|10G|
|北京|5G|2G|10G|
|上海|5G|2G|10G|
|深圳|5G|2G|10G|
|张北|5G|2G|10G|
|香港|2G|500M|5G|
|美东|1G|500M|2G|
|美西|2G|2G|5G|
|日本|1G|500M|1G|
|新加坡|2G|500M|5G|
|悉尼|1G|1G|2G|
|迪拜|500M|500M|800M|
|法兰克福|1G|500M|2G|
注意:用户的安全信誉如果较高,安全信誉黑洞阈值是可以突破上表中的默认最大黑洞值的