华为Anti-DDoS技术漫谈
上QQ阅读APP看书,第一时间看更新

1.2 华为Anti-DDoS方案

前面我们介绍了DDoS攻击的基本概念并分析了DDoS攻击的发展趋势。可能大家会考虑,对于DDoS攻击,我们难道就没有应对之策了吗?

在这种情况下,华为Anti-DDoS方案应运而生,其能够完美地检测和防御DDoS攻击,是当今对抗DDoS攻击的不二之选。

1.2.1 华为Anti-DDoS方案的介绍

华为Anti-DDoS方案包括三大组件:检测中心、清洗中心和管理中心(ATIC)。

① 检测中心主要负责检测流量,发现流量异常后上报管理中心,管理中心下发引流策略至清洗中心,指挥清洗中心进行引流清洗。

② 清洗中心主要根据管理中心下发的策略进行引流、并清洗流量(过滤),并把清洗后的正常流量回注,同时将这些动作记录在日志中上报管理中心。

③ 管理中心负责检测中心和清洗中心的统一管理和调度,即日志记录和报表呈现,以及Anti-DDoS运营方案的提供。

华为Anti-DDoS方案的经典部署如图1-6所示。

图1-6 华为Anti-DDoS方案经典部署

Anti-DDoS方案的工作流程说明如下。

① 检测中心检测分光或者镜像流量。

② 检测中心发现流量异常后,上报受攻击的IP地址到管理中心。

③ 管理中心自动向清洗中心下发引流策略。

④ 清洗中心根据引流策略将去往被攻击IP地址的流量引流到清洗中心中。

⑤ 清洗中心通过先进的多层过滤防御技术清洗流量,丢弃攻击流量。

⑥ 清洗中心将清洗后的正常流量回注到网络中。

⑦ 清洗中心上报攻击日志到管理中心,管理中心负责呈现流量清洗效果。

1.2.2 动态流量基线技术

常见的DDoS攻击主要是大流量的攻击,因此检测中心的主要工作是分类统计流量,然后和预先配置的检测阈值进行比较,如果流量超过检测阈值则认为流量发生异常,需要进行清洗。由此可见,检测是否准确主要取决于检测阈值的配置是否合理,而其合理性完全取决于网络安全工程师的经验。不同网络流量的模型不同,因此,检测阈值的配置没有统一的经验值可循。既然检测阈值这么重要,手工配置又这么艰难,而检测设备又永远在线,是否有一种技术可以自动学习网络的各种流量阈值呢?因此,动态流量基线技术应运而生。

华为Anti-DDoS系统可周期性地统计学习用户网络流量,其将学习到的周期内每种流量模型的最大值作为基本值,然后再结合容忍度(以防止流量瞬时的抖动引起的误判)计算出最终的攻击检测阈值。当用户网络流量模型发生变化时,流量模型学习结果会自动被调整,相应的检测阈值也会自动被调整。

1.2.3 逐流与逐包检测技术

华为Anti-DDoS方案的检测中心有逐流检测和逐包检测两种检测方式。简单来说,逐流检测是抽样检测,而逐包检测是全流量的检测,不同的检测形态可以对应不同的场景。

1.逐流检测

逐流检测是指检测中心收集、分析网络中路由交换设备发出的 Netflow 日志,并根据Netflow日志来检测DDoS攻击。Netflow日志是流量的抽样统计结果,它主要包含报文五元组、长度、TCP Flag、流量统计信息(包速率、带宽)等。由于Netflow日志不包含应用层信息,因此它无法检测应用层攻击。逐流检测适合超大流量攻击检测的场景,例如,城域网或运营商网络。

2.逐包检测

逐包检测是指检测中心会逐一地统计和分析所有报文,实现100%全流量检测。因此逐包检测除了能分析报文的五元组、长度、TCP Flag,流量统计信息外,还能分析报文3~7层的信息,包括TCP会话行为、应用层协议信息(HTTP、HTTPS、DNS、SIP)和访问行为等。逐包检测适合更精细化的检测与防护场景,例如,数据中心边界或Anti-DDoS运营场景。

华为 Anti-DDoS 方案支持丰富的逐包检测功能,可以很好地应对来自应用层的攻击。其具有5种统计维度:qps、pps、bit/s、cps、TCP-Ratio。

① qps:qps(Queries Per Second)指定触发攻击防范的HTTP报文速率的阈值,统计除SYN、SYN-ACK、ACK以外的其他HTTP报文。

② pps:pps(Packets Per Second)是指每秒发送的报文数。

③ bit/s:bit/s(Byte Per Second)是指每秒发送的字节数。

④ cps:cps(Connections Per Second,每秒连接数)即新建速率。

⑤ TCP-Ratio:SYN报文与(SYN+ACK)报文的比例。

同时,华为Anti-DDoS还有8种协议族:IP、TCP、UDP、ICMP、HTTP、HTTPS、DNS和SIP。38种协议状态:TCP Flags、TCP connections、TCP window size、HTTP connections、HTTP URI、HTTP Host、SSL Renegotiating、DNS query、DNS domain等。62种流量模型:TCP SYN pps、UDP packet bit/s、DNS pps、SIP pps、ICMP pps、TCP FIN pps、TCP ACK pps等。

1.2.4 多层过滤防御技术

华为Anti-DDoS方案采用精细化多层过滤防御技术,不仅能够有效检测和过滤超出阈值的流量,还能够检测并过滤精巧的小流量攻击(例如,慢速攻击、DNS缓存投毒攻击等)和单包攻击(主要是畸形和控制报文攻击),如图1-7所示。

图1-7 多层过滤防御技术

多层过滤防御技术是华为Anti-DDoS方案的核心技术,下面我们一起来学习每层能够过滤的攻击以及基本实现原理。

1.报文合法性检查

报文合法性检查是基于RFC检查报文合法性的,主要检测或过滤利用协议栈漏洞的畸形报文攻击。这一层类似于空气净化器中的初滤网,主要检测和过滤大部分畸形报文攻击和特殊控制报文攻击。

2.特征过滤

特征过滤是基于报文特征来检测和过滤攻击的,它被用于防御有特征的攻击,包括UDP flood、UDP类反射放大攻击(包括DNS反射放大、NTP反射放大等)。特征也被称作指纹,UDP类攻击流量通常都具有一定的特征。UDP报文的数据段、源IP地址、源端口、目的 IP 地址、目的端口都可能隐藏着攻击报文的特征。例如,UDP 反射放大攻击一般都是基于特定的UDP端口,比如现在比较常见的NTP、DNS、SSDP反射放大攻击,分别对应UDP的123、53、1900端口。

华为Anti-DDoS方案支持静态指纹和动态指纹。

(1)静态指纹

静态指纹是已知的攻击特征,系统已经预先定义好了攻击特征的参数,并将其保存在过滤器模板中。例如,Anti-DDoS系统提供了14种常见的UDP反射放大攻击的过滤器模板。Anti-DDoS系统会检测UDP报文的特征,如果UDP报文的特征与过滤器模板中的攻击特征匹配,系统会丢弃此UDP报文,并将攻击源加入黑名单。

华为安全智能云中心负责Anti-DDoS设备的静态指纹的维护和升级,保证设备能够快速应对各类新型的DDoS攻击威胁。

(2)动态指纹

动态指纹是Anti-DDoS系统自动学习获得的特征。动态指纹学习就是系统对一些有规律的UDP 攻击报文负载进行识别的过程,系统自动提取出相同的内容作为指纹特征,然后把这个提取的特征作为过滤条件,自动应用并进行过滤。例如,一些攻击工具发起的UDP 攻击,攻击报文通常都拥有相同的字段,比如都包含某一个字符串,或整个报文内容一致,这些相同的字段会被系统提取出来作为指纹特征。

华为Anti-DDoS方案的动态指纹学习过程可以有效地学习到新型DDoS攻击的指纹特征,而静态指纹又被预置了流行的僵尸工具的攻击特征,因此华为Anti-DDoS方案可以有效地防护各种新型DDoS攻击,保护业务的可用性。

3.虚假源认证

虚假源认证用于防范虚假源发起的传输层攻击,包括SYN flood、SYN-ACK flood、DNS request/reply flood攻击等。

SYN flood攻击是虚假源攻击的典型代表,此类攻击的最显著的特点是海量变源或变源端口的报文被发送到受害主机,耗尽受害主机资源或网络资源。Anti-DDoS方案对此的应对方法简单而言就是:Anti-DDoS设备会作为“中介”回应源发出的SYN报文,如果源是真实的主机,Anti-DDoS设备则会继续回应RST报文,如果源是攻击者构造的虚假源,Anti-DDoS设备则无法对其响应,如图1-8所示。

图1-8 虚假源认证

DNS request flood和DNS reply flood的防御原理也是类似的,Anti-DDoS系统会向源客户端回应DNS Reply(Request)报文,然后看客户端是否能正常回应。

4.应用层认证

应用层认证用于防范虚假源发起的应用层攻击,包括HTTP get/post flood、HTTPS flood、SIP flood攻击等。

应用层源认证的防御原理与传输层的防御原理有相似之处。应用层源认证也是Anti-DDoS系统作为“中介”回应源客户端的请求,并要求源客户端重定向到新的URL (例如子域名)或者输入验证码,以此来验证客户端的真实性。真实客户端的浏览器可以自动完成重定向过程或由用户输入验证码,通过认证;而虚假源或者一般的攻击工具没有完整的 HTTP 协议栈,不支持自动重定向功能,更无法输入随机的验证码,因此无法通过认证,如图1-9所示。

图1-9 验证码认证

5.会话分析

会话分析基于会话检查并防范会话类攻击,如ACK flood、FIN/RST flood、DNS缓存投毒攻击等。

ACK、FIN、RST等报文都是TCP交互过程中的后续报文,因此Anti-DDoS系统在防御这类报文的泛洪攻击时,可以效仿防火墙对这些报文进行会话匹配检查。真实客户端发出的正常ACK、FIN、RST报文一定能够匹配Anti-DDoS系统上的会话,因为之前Anti-DDoS系统已经为他们的首包SYN报文建立了会话,如图1-10所示。

图1-10 真实客户端会话分析结果

如果是攻击者发起的ACK、FIN、RST flood攻击,这些报文将因无法匹配Anti-DDoS系统上的会话而被丢弃,如图1-11所示。

DNS缓存投毒攻击会篡改DNS缓存服务器中的域名与IP地址的对应关系,导致用户访问钓鱼或恶意网站。Anti-DDoS系统的防御原理是为最初的DNS请求报文建立会话,然后检查后续的回应报文是否能够匹配会话。

图1-11 虚假客户端会话分析结果

6.行为分析

僵尸网络发起的攻击流量和用户访问业务流量行为不同,用户访问流量具有突发性、访问资源分散的特点;而僵尸网络攻击流量的最大特征是访问频率恒定、访问资源固定、访问行为模式固定。因此,我们可以基于行为分析来防御各种慢速攻击。

例如,HTTP慢速攻击的行为是攻击者在建立了与HTTP服务器的连接后,长时间保持连接不释放。系统可以识别分析出这种长期占用HTTP连接的行为,从而对其进行阻断,如图1-12所示。

图1-12 行为分析

7.智能限速

智能限速采用各类协议精细化限速使得流量都处于安全的带宽范围。流量整形的目的是保证大于阈值的流量都会被检测出来且被调整到合理的数值,即使这些流量在前面的检测中没有出现任何问题。

1.2.5 大数据信誉体系

华为Anti-DDoS方案还支持大数据信誉体系,可以使得系统的检测和处理更高效。信誉体系包括全球僵尸网络IP信誉库和本地业务访问IP信誉库。例如,检测中心发现流量来自僵尸网络的IP,那么他将直接上报异常给管理中心;而清洗中心在引流后,会快速过滤掉此僵尸IP发送的报文,并将其加入黑名单。

① 全球僵尸网络 IP 信誉库是由华为安全智能云中心收集和更新的,目前它已拥有500万个僵尸IP,并且每日动态更新其内容。

② 本地业务访问IP信誉库是Anti-DDoS系统在防护网络没有遭到攻击时,记忆并学习到的合法流量源的IP地址。检测中心将不会检测本地业务访问IP信誉库中的地址发出的流量,这充分保证了Anti-DDoS系统不会影响网络中常用的正常业务访问,提升了用户体验。

1.2.6 Anti-DDoS方案运营

随着云数据中心的发展,针对云数据中心和来自云数据中心内部的DDoS攻击越来越多。因此Anti-DDoS方案必须具备一定的运营能力,它能够提供精细化的防护并提供DDoS防护的出租能力。

华为Anti-DDoS方案支持多种精细化的防护策略,客户可以为不同的防护对象设置不同的防护策略,从而实现对防护对象的精细化防护。例如,客户可以为DNS服务器配置针对DNS业务的防护策略,为HTTP服务器配置针对HTTP业务的防护策略。防护对象是一组被防护的目标IP地址,可以是多个IP/掩码定义的IP地址段。防护策略和防护对象都是在ATIC上被配置的。

精细化的防护策略和海量的防护对象为Anti-DDoS系统的运营提供了基础。客户进行Anti-DDoS运营、将Anti-DDoS服务进行出租时,可以为不同的租户设定防护对象和配置防护策略。Anti-DDoS方案还具有租户自助功能,租户可以通过Portal服务器自己完成防护对象和防护策略的配置。

Anti-DDoS系统还提供了丰富的报表功能,既方便管理员阅读分析,又适用于方案的运营。

报表功能支持防护对象、系统两级管理概念的业务数据查询和报表呈现;支持报表手工生成,手工生成报表时,可手工指定数据的时间段;支持以excel、pdf格式导出报表;报表粒度包括日报、周报、月报、年报。