本文介绍了常见的CC攻击场景,并结合阿里云WAF的相关功能给出具体的防护策略和配置,帮助您有针对性地防御CC攻击。

大流量高频CC攻击

在大规模CC攻击中,单台傀儡机发包的速率往往远超过正常用户的请求频率。这种情况下,直接针对请求源限速拉黑是最有效的办法。

您可以使用WAF的自定义CC规则,配置相关的限速策略。示例如下:

将URI配置为前缀匹配“/”,表示防护本域名下所有路径。这条规则的策略为:当一个IP在30秒内访问本域名下任意路径超过1,000次,则封禁该IP的请求10个小时。该规则可以作为一般中小型站点的预防性配置。

在实际场景中,您可以根据自身业务需求调整防护路径和触发防护的阈值,并选择合适的阻断类型,以达到更有针对性、更精细化的防护效果。例如,为了预防登录接口被恶意高频撞库,您可以配置登录接口的地址(如前缀匹配“/login.php”),60秒内超过20次请求则进行封禁。

在使用CC防护时,请注意以下事项。
  • 人机识别阻断类型)的目的是校验请求是否来自于真实浏览器(而非自动化工具脚本),适用范围仅限于网页/H5,不适用于原生APP、API等环境。针对原生APP、API等环境,请将阻断类型设置为封禁
  • 针对有可能被CC策略误伤的接口或IP,您可以通过精准访问控制功能将其统一加白。
  • 不要对APP/API环境开启CC紧急模式。

此外,推荐您使用爬虫风险管理,应用更细粒度、更多维度的限速功能和处置手段。

例如,由于针对IP的封禁会影响NAT出口,您可以使用cookie或者业务中自带的用户级别参数作为统计对象;也可以对有嫌疑的请求设置弹出滑块验证页面的处置动作,避免误拦截。下图配置针对业务中标记用户的cookie(假设cookie格式为uid=12345)进行统计,并使用滑块作为处置动作。

攻击源来自海外/公有云

CC攻击中经常看到很大比例的攻击来源于海外、公有云、IDC机房的IP。对于面向国内用户的站点,在遭受攻击时可以通过封禁海外访问来缓解攻击压力。

您可以使用WAF的封禁地区功能,完成以下配置。

如果需要封禁公有云(如阿里云、腾讯云等)、IDC机房的IP段,您可以通过钉钉联系阿里云售后团队进行处理。

请求特征畸形/不合理

由于很多CC攻击请求是攻击者随意构造的,在仔细观察日志后,往往会发现这些请求有很多与正常请求不相符的畸形报文特征。常见的特征包括以下情形:
  • user-agent异常或畸形:例如,包含Python等自动化工具特征,明显格式错乱的UA(如"Mozilla///"),或者明显不合理的UA(如www.baidu.com)。若发现以上请求特征,可以直接封禁。
  • user-agent不合理:例如,对于微信推广的H5页面,正常用户都应该通过微信发起访问,如果UA来自于Windows桌面浏览器(如MSIE 6.0),则明显是不合理的。若发现以上请求特征,可以直接封禁。
  • referer异常:例如,不带referer或referer固定且来自于非法站点,可以考虑封禁这种行为(也要考虑网站首页、第一次访问的情况)。针对只能通过某个站内地址跳转访问的URL,您可以从referer角度分析行为异常,决定是否封禁。
  • cookie异常:类似于referer,正常用户往往会在请求中带上属于网站本身业务集的一些cookie(第一次访问除外)。很多情况下,CC攻击的报文不会携带任何cookie。
  • 缺少某些HTTP header:例如,针对一些业务中需要的认证头等,正常用户请求会携带,而攻击报文不会。
  • 不正确的请求方法:例如,本来只有POST请求的接口被大量GET请求攻击,则可以直接封禁GET请求。
上述包含恶意特征的请求,都可以在特征分析的基础上,通过WAF的精准访问控制规则进行封禁。
图 1. 配置示例1:拦截不带cookie的请求


图 2. 配置示例2:拦截不带authorization头的请求


滥刷接口(登录/注册/短信/投票等)

对于网页环境(包括H5)中的一些关键接口,如登录、注册、投票、短信验证码等,推荐您使用数据风控进行防护。

数据风控在关键接口页面中插入JS代码,采集用户在页面上的操作行为和环境信息,综合判断发送至关键接口的请求是否来自于真实的用户(而不是自动化工具脚本)。数据风控判定的依据主要来自于人机识别的结果,跟发送请求的频率、来源IP并没有关系,针对一些低频、分散的攻击请求有很好的效果。

说明 数据风控的判定依赖于开启防护后在正常请求中附带的验证参数,该功能不适用于不能执行JS的环境(如API、Native APP等)。为避免误拦截,建议您启用前先在测试环境进行测试,或是先开启观察模式并跟云盾工程师确认后,再开启防护模式。

关于数据风控的原理和操作演示,请参考数据风控视频介绍

恶意扫描

大规模扫描行为会给服务器带来很大压力,除了基于频率来限制以外,您还可以通过高频Web攻击IP自动封禁目录遍历防护扫描威胁情报等功能来加强防护效果。

一般情况下,包含恶意特征的扫描请求会被WAF的默认规则拦截,而高频Web攻击IP自动封禁则会对连续触发Web防护规则的IP进行直接封禁。

目录遍历防护可以自动封禁在短时间内进行多次目录遍历攻击的客户端IP。

扫描威胁情报可以自动封禁来自常见扫描工具或阿里云恶意扫描攻击IP库中IP的访问请求。

App攻击

针对App攻击,除上述自定义CC防护、封禁地区、精确访问控制等手段外,您也可以接入云盾SDK进行防护。

SDK方案通过将SDK集成到App中,对请求进行安全签名和校验,并结合各种硬件信息,综合识别请求是否来自于合法的App。只要不是来自于官方App的合法请求,一概拦截。这是一种“白名单”思路,只放行合法的请求,而不用去分析非法请求有什么特征。

SDK防护需要使用云盾爬虫风险管理产品,具体请参考SDK使用说明

恶意爬取

对于很多资讯类网站(如征信、租房、机票、小说等),大量的爬虫往往会造成带宽增大、负载飙升等异常,以及数据泄露等问题。针对爬虫问题,如果上述手段不能够很好的防御,推荐您使用爬虫风险管理,更有针对性的防御爬虫。