阿里云DDoS高防功能详解

6/22/2024

DDoS高防是阿里云一项代理防护服务,用于保护业务免受大规模分布式拒绝服务(DDoS)攻击。它通过将业务流量重定向至遍布全球的高防清洗中心,过滤恶意攻击流量,仅将合法的业务流量转发回源站服务器,从而确保业务在攻击下的稳定性和可用性。

# 一、CC攻击检测

在算法上,对用户的URL请求进行访问频率统计,同时计算这些请求中携带的特定cookie、referer、URL等特性,根据不同使用场景,可灵活配置这些条件,共同作为CC攻击的检测策略。在使用配置上,可针对特定的URL(支持正则表达式)进行检测,并且支持URL分组,不同组的URL可采用不同的CC检测策略。

# 二、HTTP Flood攻击及防御技术

攻击者通过代理或僵尸主机向目标服务器发起大量的HTTP报文,请求涉及数据库操作的URI(Universal Resource Identifier)或其它消耗系统资源的URI,造成服务器资源耗尽,无法响应正常请求。例如门户网站经常受到的HTTP Flood攻击,攻击的最大特征就是选择消耗服务器CPU或内存资源的URI,如具有数据库操作的URI。

# 防御技术

HTTP Flood源认证

源认证防御方式是防御HTTP Flood最常用的手段。这种防御方式适用于客户端为浏览器的HTTP服务器场景,因为浏览器支持完整的HTTP协议栈,可以正常回应重定向报文或者是验证码。云防御系统基于目的IP地址对HTTP报文进行统计,当HTTP报文达到设定的告警阈值时,启动源认证防御功能,源认证防御包含以下三种方式:

  • 基本模式(META刷新):该模式可有效阻止来自非浏览器客户端的访问,如果僵尸工具没有实现完整的HTTP协议栈,不支持自动重定向,无法通过认证。而浏览器支持自动重定向,可以通过认证。该模式不会影响用户体验,但防御效果低于增强模式。

当网络中有HTTP代理服务器时,只要有一次源认证通过,云防御系统就会将代理服务器IP地址加入白名单,后续僵尸主机通过使用代理服务器就会绕开源认证,导致防御失效。在这种有代理服务器的网络中,建议开启代理检测功能,检测HTTP请求是否为通过代理发出的请求。如果是,云防御系统会从HTTP报文中获取请求者的实际IP地址,将通过认证的真实IP地址和代理服务器IP地址加入白名单,后续只有此实际源IP地址发送的报文才能直接通过,其他源IP发送报文时,云防御系统会对其进行源认证,达到防御效果。

  • 增强模式(验证码认证):有些僵尸工具实现了重定向功能,或者攻击过程中使用的免费代理支持重定向功能,导致基本模式的防御失效,通过推送验证码的方式可以避免此类防御失效。此时通过让用户输入验证码,可以判断HTTP访问是否由真实的用户发起,而不是僵尸工具发起的访问。因为僵尸网络攻击依靠自动植入PC的僵尸工具发起,无法自动响应随机变化的验证码,故可以有效的防御攻击。为避免防御对正常用户体验的影响,此防御方式仅对超过源访问阈值的异常源实施。

302重定向

基本模式中的重定向功能只能对整个网页进行重定向,不能针对网页中的内嵌资源(比如:图片)进行重定向。当用户请求的页面与页面内嵌资源不在同一个服务器上,内嵌资源所在服务器发生异常时,可以对嵌套资源服务器启动302重定向防御,探测访问源是否为真实浏览器。真实浏览器支持重定向功能,可以自动完成重定向过程,不会影响客户体验。

如果在允许的认证时间周期内,对同一源IP地址的认证次数大于最大值时,则将该源IP地址判定为攻击源,加入动态黑名单。

# HTTP源统计

HTTP源统计是在基于目的IP流量异常的基础上,再启动针对源IP流量进行统计。

云防御系统首先对到达目的IP的流量进行统计,当目的IP流量触发告警阈值时,再启动到达这个目的IP的每个源的流量进行统计,判定具体某个源流量异常,并对源IP的流量进行防御。

HTTP源统计功能可以更准确的定位异常源,并对异常源发出的流量进行防御。

# URI监测

URI监测是HTTP源认证防御的补充功能,当通过HTTP源认证的流量还是超过阈值时,可以启用URI监测。云防御系统对HTTP源认证过程中加入白名单的源IP也会进行URI监测。

当指定时间内,某个URI的访问流量超过一定阈值时,云防御系统启动针对源IP的URI行为监测。当这个源IP地址对某个URI的访问数与总访问数的比例超过阈值时,则将该源IP地址作为攻击源并加入动态黑名单。在配置URI监测时,可将消耗内存或计算资源多、容易受攻击的URI加入监测列表中,提高URI监测防御的准确性。

# 动态指纹学习

在HTTP Flood攻击的效果,攻击者一般都事先探测,找到容易消耗系统资源的URI作为攻击目标,然后一个攻击源的一个会话上会有多个针对该URI的请求,最终呈现为该源对选定的URI发送大量的请求报文。动态指纹学习正是基于这个原理,云防御系统对源访问的URI进行指纹学习,找到攻击目标URI指纹,如果对该URI指纹的命中次数高于设置的阈值就将该源加入黑名单。

# HTTP慢速攻击与防御技术

HTTP慢速攻击是利用HTTP现有合法机制,在建立了与HTTP服务器的连接后,尽量长时间保持该连接,不释放,达到对HTTP服务器的攻击。常见的攻击有两种:

Slow POST: 攻击者发送Post报文向服务器请求提交数据,将总报文长度设置为一个很大的数值,但是在随后的数据发送中,每次只发送很小的报文,这样导致服务器端一直等待攻击者发送数据。

Slow headers: 攻击者通过GET或者POST向服务器建立连接,但是HTTP头字段不发送结束符,之后发送其他字段进行保活。服务器会一直等待头信息中结束符而导致连接始终被占用。

防御技术

针对HTTP慢速攻击的特点,云防御系统对每秒钟HTTP并发连接数进行检查,当每秒钟HTTP并发连接数超过设定值时,会触发HTTP报文检查,检查出以下任意一种情况,都认定受到HTTP慢速连接攻击,则将该源IP地址判定为攻击源,加入动态黑名单,同时断开此IP地址与HTTP服务器的连接。

  • 连续多个HTTP POST报文的总长度都很大,但是其HTTP载荷长度都很小。
  • 连续多个HTTP GET/POST报文的报文头都没有结束标识。

# 三、HTTPS Flood攻击与防御

攻击者通过代理、僵尸网络或者直接向目标服务器发起大量的HTTPS连接,造成服务器资源耗尽,无法响应正常的请求。

防御技术

通过源认证对HTTPS业务端口的连接耗尽进行防御,云防御系统基于目的地址对HTTPS请求报文速率进行统计,当HTTPS请求速率超过阈值时,启动源认证防御。

# 四、SSL-DoS/DDoS攻击与防御技术

SSL握手的过程中,在协商加密算法时服务器CPU的开销是客户端开销的15倍左右。攻击者利用这一特点,在一个TCP连接中不停地快速重新协商(这种行为是被SSL所允许的),从而耗尽服务器CPU资源,这种攻击叫做SSL-DoS。如果多个僵尸主机向服务器发起SSL-DoS,则叫做SSL-DDoS攻击。

防御技术

云防御系统基于目的地址对HTTPS请求报文速率进行统计,当HTTPS请求速率超过阈值时,启动源认证防御和SSL防御。

SSL防御:在检查周期内,如果某个源IP地址到目的IP地址的某个会话上的协商次数超过阈值,则将此会话标记为异常会话,在异常会话检查周期内,如果异常会话数超过阈值时,判定该源IP地址异常,将该源IP地址加入黑名单。

# 五、QPS能力及限流

阿里云提供海量的DNS容量:提供上千万QPS的查询量,抵御暴力DNS攻击。

同时,阿里云还提供QPS限流,主要是对被保护的Web server所能承受的最大压力而做强制的QPS流控,防止Web server因超载而宕机。在使用配置上,可针对特定的URL(支持正则表达式)进行保护,并且流控的阈值也可灵活调整,同时,对于超出阈值的访问,也提供两种策略进行响应:等待(等待时间可配)或拒绝。