DDoS防御发展史
DDoS(Distributed Denial of Service,分布式拒绝服务)主要通过大量合法的请求占用大量网络资源,从而使合法用户无法得到服务的响应,是目前最强大、最难防御的网络攻击之一。
DDoS作为一种古老的攻击方式,其防御方式也经历了多个发展阶段:
1. 内核优化时代
在早期时代,没有专业的防护清洗设备来进行DDoS防御,当时互联网的带宽也比较小,很多人都是在用56K的modem拨号上网,攻击者可以利用的带宽也相对比较小,对于防御者来说,一般通过内核参数优化、iptables就能基本解决攻击,有内核开发能力的人还可以通过写内核防护模块来提升防护能力。
在这个时期,利用Linux本身提供的功能就可以基本防御DDoS攻击。比如针对SYN FLOOD攻击,调整net.ipv4.tcp_max_syn_backlog参数控制半连接队列上限,避免连接被打满,调整net.ipv4.tcp_tw_recycle,net.ipv4.tcp_fin_timeout来控制tcp状态保持在TIME-WAIT,FIN-WAIT-2的连接个数;针对ICMP FLOOD攻击,控制IPTABLES来关闭和限制ping报文的速率,也可以过滤掉不符合RFC协议规范的畸形报文。但是这种方式只是在优化单台服务器,随着攻击资源和力度的逐渐增强,这种防护方式就显得力不从心了。
2. 专业anti-DDoS硬件防火墙
专业anti-DDoS硬件防火墙对功耗、转发芯片、操作系统等各个部分都进行了优化,用来满足DDoS流量清洗的诉求。 一般IDC服务提供商会购买anti-DDoS硬件防火墙,部署在机房入口处为整个机房提供清洗服务,这些清洗盒子的性能从单台百兆的性能,逐步发展到1Gbps、10Gbps、20Gbps、100Gbps或者更高,所提供的清洗功能也基本涵盖了3-7层的各种攻击(SYN-FLOOD、UDP-FLOOD、ICMP-FLOOD、ACK-FLOOD、TCP连接型FLOOD、CC攻击、DNS-FLOOD、反射攻击等)。
这种方式对IDC服务商来讲有相当高的成本,每个机房入口都需要有清洗设备覆盖,要有专业的运维人员来维护,而且并不是每个IDC机房都可以有同等的清洗防护能力,有的小机房上联可能只有20G带宽,且不具备复用这些清洗设备的能力。
3. 云时代的DDoS高防IP防护方案
在云时代,服务部署在各种云上,或者传统的IDC机房里面,他们提供的DDoS基础清洗服务标准并不一致,在遭受到超大流量DDoS攻击情况下,托管所在的机房并不能提供对应的防护能力,不得已,为了保护他们的服务不受影响,就会有“黑洞”的概念产生。黑洞是指服务器受攻击流量超过IDC机房黑洞阈值时,IDC机房会屏蔽服务器的外网访问,避免攻击持续,影响整体机房的稳定性。
在这种情况下,DDoS高防IP是通过建立各种大带宽的机房,提供整套的DDoS解决方案,将流量转到DDoS高防IP上进行防护,然后再把清洗后的干净流量转发回用户真正的源站。这种方式会复用机房资源,专业机房做专业的事情。简化DDoS防护的复杂度,以SaaS化的方式提供DDoS清洗服务。
硬件防火墙
大规模集群服务器
由此可以看出,云时代的DDoS高防IP不仅可以满足对大宽带的刚性需求,而且对用户来说具有隐藏源站、可以灵活更换清洗服务商的优势。
DDoS高防IP系统关键组成
1. 带宽&网络
带宽&网络是DDoS防护的第一诉求,首先要做的就是拥有一个高带宽的机房。目前国内主流机房主要为电信单线机房、联通单线机房、移动单线机房和BGP多线机房。
单线机房和BGP多线机房的特点以及差别是什么呢?
另外一个维度就是带宽上限,目前对于国内DDoS高防IP来说,300Gbps的防护能力都是入门级别的,1Tbps的防护能力乃至无限抗的解决方案越来越多的出现用户的选择中。
2. 大流量清洗集群
这是另外一个关键技术。DDoS清洗的核心部分是将攻击流量拦截下来。一般攻击种类和对抗体系有以下几种:
(1) 攻击防护:在带宽资源足够的条件下,如何对DDoS攻击流量清洗是下一步需要考虑的,一般来说,专业的DDoS清洗防护设备的主要防护方法包括几类:畸形包、特定协议丢弃;源反弹认证体系;统计限速&行为识别。攻击类型一般有SYN-FLOOD、UDP-FLOOD、ICMP-FLOOD、ACK-FLOOD、TCP连接型FLOOD、CC攻击、DNS-FLOOD、反射攻击等等。
畸形包、特定协议丢弃很简单,即对于不符合RFC协议规范的报文、反射类攻击都可以用指定特征的方式进行防护。
源反弹认证是针对syn flood的防护方法,一般采用反向验证的防护方法,如syn cookie,即清洗设备替服务端校验访问源的真实性,方法是在TCP三次握手中,在回复synack报文的时候,使用一种特殊的算法生成Sequence Number,这种算法考虑到了对方的IP、端口、己方IP、端口的固定信息等多种信息,并在ack报文的时候确认。如果是真实访问者,放行流量。同理,复杂的CC攻击可以用反弹一个图片验证码的方式校验攻击者是否为真实客户。
统计限速&行为识别这里就会综合各种黑白名单,用户访问速率、行为,进行一个速率控制的防护。
(2) 集群架构:在目前的DDoS防护趋势下,防护必须有弹性扩容的能力,才可以跟进攻防对抗的趋势。另外这里还会提到100G口的普及。一般来说流量的负载均衡是根据五元组里面的特征进行负载均衡hash的,如果单口的带宽比较小(10G or 40G),那么一旦攻击流量的五元组的hash不均匀,他们有更大的几率会拥塞,流量根本就不会送到清洗设备引擎上去。这个也是大集群清洗体系比较重要的一点。
(3) 运营体系:DDoS对抗运营也是非常关键的一环,需要多年实时对抗的经验积累,在面对一些新型攻击及突发情况时,快速的分析和决策是解决问题的一个关键部分。
3. 负载均衡设备&安全组件
负载均衡技术是代理高防的关键技术,这里面包括4层负载均衡和7层负载均衡。
4层负载均衡技术,为每一个客户业务提供一个独享的IP,本身的转发能力要高性能、高可用性,同时还要具备安全防护能力,能够对抗连接型攻击。
7层负载均衡技术,针对网站类业务的代理和防护,对HTTP/HTTPS协议的支持,各种CC攻击的防护,都会集成在7层负载均衡的系统里面。
- 独享IP。优点就是一个业务IP被DDoS攻击,不会影响其他的业务,资源隔离。
- 高可用,可扩展。根据应用负载进行弹性扩容,在流量波动情况下不中断对外服务。可以根据业务的需要,随时增加或减少后端服务器的数量,扩展应用的服务能力。
- 安全能力。具备in/out双向流量信息,可以提供精细化、域名级别、session级别的应用级别DDoS防护。
对4层和7层进行深度开发安全功能,上下游配合,各取所长,配合大流量清洗集群才能将防护做到极致。
4. 数据实时分析系统
(1) 流量分析
首先是数据源,数据源机制有很多种,比较熟知的是利用NetFlow进行采样分析攻击检测,也可以通过1:1分光分流的方式获取全部流量统计检测,很明显1:1分光的方式需要更高的资源和更高效的数据分析系统,需要研发能力和技术支撑的,也会取得更佳的效果。
(2) 应用识别
拿到原始报文和数据后,需要做的就是区分应用了。应用的区分可以是IP级别,可以是IP+端口级别,也可以是域名级别等。不同业务的防御方法是有差别的,需要做到根据业务特性来制定专业的防御方案。
(3) 攻击分析
目前DDoS的攻击分析已经摆脱了以前基于统计的分析算法,引入了行为识别、机器学习的理论和实践,而这些算法都帮助我们能更好对攻击进行防护,我们还应该关注如何将这些算法有效的实时应用到用户的防御对抗中。
综上来看,DDoS攻击防护存在木桶短板原理,任何一个攻击防护点的效果都会影响到整体的防御效果。未来的DDoS高防IP应该具备弹性带宽、高冗余、高可用、访问质量优、业务接入简单的特点。同时通过DDoS防护能力的OPENAPI化,和用户自动化运维体系的打通,实现安全和业务结合,以更好的助力业务发展。