本文介绍了常见的CC攻击场景,并结合阿里云Web应用防火墙(Web Application Firewall,简称WAF)的相关功能给出具体的防护策略和配置,帮助您有针对性地防御CC攻击。
概述
大流量高频CC攻击
在大规模CC攻击中,单台傀儡机发包的速率往往远超过正常用户的请求频率。针对这种场景,直接对请求源设置限速规则是最有效的办法。推荐您使用WAF自定义防护策略功能的频率设置,配置限速策略,具体操作,请参见设置自定义防护策略。
/login.php
),并设置60秒内超过20次请求则进行封禁。- 处置动作中的滑块和严格滑块验证用于校验请求是否来自于真实浏览器(而非自动化工具脚本),适用范围仅限于网页或H5,不适用于原生App、API等环境。针对原生App、API等环境,请将处置动作设置为阻断。
- 针对有可能被CC攻击防护策略误伤的接口或IP,您可以通过访问控制/限流白名单功能将其统一加白。具体操作,请参见设置访问控制/限流白名单。
- 请勿对App、API环境开启CC安全防护的防护-紧急模式。
uid=12345
)进行统计,并使用滑块作为处置动作,避免误拦截。攻击源来自海外或公有云
CC攻击中经常出现很大比例的攻击来源于海外IP、公有云IP、IDC机房IP的情形。
请求特征畸形或不合理
- user-agent异常或畸形:例如,包含Python等自动化工具特征、明显格式错乱的UA(例如
Mozilla///
)、明显不合理的UA(例如www.example.com
)。如果存在以上请求特征,可以直接封禁请求。 - user-agent不合理:例如,对于微信推广的H5页面,正常用户都应该通过微信发起访问,如果UA来自于Windows桌面浏览器(例如MSIE 6.0),则明显是不合理的。如果存在以上请求特征,可以直接封禁请求。
- referer异常:例如,不带referer或referer固定且来自于非法站点,则可以封禁这种请求(访问网站首页或第一次访问页面的情形除外)。针对只能通过某个站内地址跳转访问的URL,您可以从referer角度分析行为异常,决定是否封禁。
- cookie异常:正常用户往往会在请求中带上属于网站本身业务集的一些cookie(第一次访问页面的情形除外)。很多情况下,CC攻击的报文不会携带任何cookie。您可以从这个角度出发,封禁不带cookie的访问请求。
- 缺少某些HTTP header:例如,针对一些业务中需要的认证头等,正常用户的请求会携带,而攻击报文则不会。
- 不正确的请求方法:例如,本来只有POST请求的接口被大量GET请求攻击,则可以直接封禁GET请求。
对于上述异常的请求特征,您都可以在特征分析的基础上,使用WAF自定义防护策略的ACL访问控制规则设置对应的封禁策略。具体操作,请参见设置自定义防护策略。
- 拦截不带cookie的请求。
- 拦截不带authorization头的请求。
滥刷接口(登录、注册、短信、投票等)
对于网页环境(包括H5)中的一些关键接口,例如登录、注册、投票、短信验证码等,推荐您使用数据风控功能进行防护。
数据风控在关键接口页面中插入JS代码,采集用户在页面上的操作行为和环境信息,综合判断发送至关键接口的请求是否来自于真实的用户(而不是自动化工具脚本)。数据风控判定的依据主要来自于人机识别的结果,跟发送请求的频率、来源IP没有关系,针对一些低频、分散的攻击请求有很好的效果。
具体操作,请参见设置数据风控。
恶意扫描
- 高频Web攻击封禁:自动封禁连续触发Web防护规则的客户端IP。
- 目录遍历防护:自动封禁在短时间内进行多次目录遍历攻击的客户端IP。
- 扫描工具封禁:自动封禁来自常见扫描工具或阿里云恶意扫描攻击IP库中IP的访问请求。
- 协同防御:自动阻断阿里云全球恶意扫描攻击IP库中IP的访问请求。
具体操作,请参见设置扫描防护。
App攻击
针对App攻击,除上述频率设置、地域级IP黑名单、ACL访问控制等手段,您也可以接入云盾SDK进行防护。
SDK方案通过将SDK集成到App中,对请求进行安全签名和校验,并结合各种硬件信息,综合识别请求是否来自于合法的App。只要不是来自于官方App的合法请求,一概拦截。这是一种“白名单”思路,只放行合法的请求,而不用去分析非法请求的特征。
SDK防护需要开启App防护模块后才可以使用。具体操作,请参见设置App防护。
恶意爬取
对于很多资讯类网站(例如征信、租房、机票、小说等),大量的爬虫往往会造成带宽增大、负载飙升等异常,以及数据泄露等问题。针对爬虫问题,如果上述手段不能起到很好的防御效果,推荐您开启并使用Bot管理模块,更有针对性地防御爬虫。具体操作,请参见设置Bot管理白名单。