IP/Cookie/Referer设置限速策略,精准识别有效缓解CC攻击

如何配置CC攻击防护规则?(以新版Console为例)

CC(Challenge Collapsar,以下简称CC)防护对单Web应用访问者IP或者Cookie键值进行访问频率限制,超过限制时通过人机识别或阻断访问,阻断页面可自定义内容和类型,满足业务多样化需要。

Web应用防火墙的CC攻击防护规则支持通过限制单个IP/Cookie/Referer访问者对防护网站上源端的访问频率,同时支持策略限速(同一策略下对应的所有域名请求次数合并限速)、域名限速(每个域名单独统计总请求次数)和URL限速(每个URL请求单独统计请求次数),精准识别CC攻击以及有效缓解CC攻击;当您配置完CC攻击防护规则并开启CC攻击防护后(即“CC攻击防护”配置框的“状态”为),Web应用防火墙WAF才能根据您配置的CC攻击防护规则进行CC攻击防护。

前提条件

● Web应用防火墙WAF已添加防护网站。

○ 云模式的接入方式参见网站接入WAF(云模式)章节。

○ 独享模式的接入方式参见网站接入WAF(独享模式)章节。

● 如果使用独享WAF,确保独享引擎已升级到最新版本,具体的操作请参见升级独享引擎实例版本

约束条件

● 添加或修改防护规则后,规则生效需要等待几分钟。规则生效后,您可以在“防护事件”页面查看防护效果。

● CC攻击防护规则可以添加引用表,引用表防护规则对所有防护域名都生效,即所有防护域名都可以使用CC攻击防护规则的引用表。

● CC攻击防护规则支持“人机验证”“阻断”等防护动作,您可以根据使用需求设置对应的防护动作。例如,通过配置CC攻击防护规则实现以下功能:根据Cookie标识的用户字段(例如name),当WAF识别到同一name值的用户在60秒内访问您域名下的URL(例如,/admin*)页面超过10次时,封禁该用户访问目标网址600秒。

● Web应用防火墙云模式标准版不支持引用表管理功能。

● 如果WAF前使用了高防、CDN(Content Delivery Network,内容分发网络)、云加速等代理,建议“限速模式”选择“源限速 > 用户限速”时,并勾选“全局计数”

操作步骤

1.登录华为云管理控制台

2.单击管理控制台左上角的,选择区域或项目。

3.单击页面左上方的,选择“安全与合规 > Web应用防火墙 WAF”。

4.在左侧导航树中,选择“网站设置”,进入“网站设置”页面。

5.(新版)在目标域名所在行的“防护策略”栏中,单击“已开启N项防护”,进入“防护策略”页面。

图1 域名列表

6. 在“CC攻击防护”配置框中,用户可根据自己的需要更改“状态”,单击“自定义CC攻击防护规则”,进入CC防护规则配置页面。

7.在“CC攻击防护”规则配置页面左上角,单击“添加规则”

8.在弹出的对话框中,根据表1配置CC防护规则。

图3 添加CC防护规则

表1 CC防护规则参数说明

参数

参数说明

取值样例

规则名称

自定义规则名称。

waftest

规则描述

可选参数,设置该规则的备注信息。

--

限速模式

“源限速”:对源端限速,如某IP(或用户)的访问频率超过限速频率,就会对该IP(或用户)的访问限速。

○ “IP限速”:根据IP区分单个Web访问者;

○ “用户限速”:根据Cookie键值或者Header区分单个Web访问者;

○ “其他”:根据Referer(自定义请求访问的来源)字段区分单个Web访问者。

说明:选择“其他”时,“Referer”对应的“内容”填写为包含域名的完整URL链接,仅支持前缀匹配和精准匹配的逻辑,“内容”里不能含有连续的多条斜线的配置,如“///admin”,WAF引擎会将“///”转为“/”。

“目的限速”:选择该参数时,可选择以下限速类型进行配置:

○ “策略限速” :当多个域名共用一个策略时,该策略下对应的所有域名请求次数合并限速(不区分访问IP);泛域名防护场景时,该泛域名对应的所有子域名的请求次数合并限速(不区分访问IP);

○ “域名限速”:每个域名单独统计总请求次数,超过设定值则触发防护动作(不区分访问IP);

○ “URL限速”:每个URL请求单独统计请求次数,超过设定值则触发防护动作(不区分访问IP)。

--

用户标识

“限速模式”选择“源限速 > 用户限速”时,需要配置此参数:

● 选择Cookie时,设置Cookie字段名,即需要根据网站实际情况配置唯一可识别Web访问者的Cookie中的某属性变量名。须知标识的Cookie,不支持正则,必须完全匹配

例如:如果网站使用Cookie中的某个字段name唯一标识用户,那么可以选取name字段来区分Web访问者。

● 选择Header时,设置需要防护的自定义HTTP首部,即用户需要根据网站实际情况配置可识别Web访问者的HTTP首部。

name

域名聚合统计

“限速模式”选择“目的限速 > 策略限速”时,不需要配置此参数。

默认关闭,开启后,泛域名对应的所有子域名的请求次数合并限速(不区分访问IP)。例如,配置的泛域名为“*.a.com”,会将所有子域名(b.a.com,c.a.com等)的请求一起聚合统计。

--

限速条件

单击“添加”增加新的条件,至少配置一项条件,最多可添加30项条件,多个条件同时满足时,本条规则才生效

● 字段:路径、IP、Cookie、Header、Params、返回码(HTTP Code)。

● 子字段:当“字段”选择“Cookie”、“Header”、“Params”时,请根据实际需求配置子字段。

(须知:子字段的长度不能超过2048字节,且只能由数字、字母、下划线和中划线组成。)

● 逻辑:在“逻辑”下拉列表中选择需要的逻辑关系。

说明:当“逻辑”关系选择“包含任意一个”、“不包含所有”、“等于任意一个”、“不等于所有”、“前缀为任意一个”、“前缀不为所有”、“后缀为任意一个”或者“后缀不为所有”时,需要选择引用表,创建引用表的详细操作请参见创建引用表。

● 内容:输入或者选择条件匹配的内容。

“路径”包含“/admin/”

限速频率

单个Web访问者在限速周期内可以正常访问的次数,如果超过该访问次数,Web应用防火墙服务将根据配置的“防护动作”来处理。

“全局计数”:根据不同的限速模式,将已经标识的请求在一个或多个WAF节点上的计数聚合。默认为每WAF节点单独计数,开启后本区域所有节点合并计数。“IP限速”不能满足针对某个用户进行限速,需要选择“用户限速”或“其他”的Referer限速,此时标识的请求可能会访问到不同的WAF节点,开启全局计数后,将请求访问的一个或多个WAF节点访问量聚合,达到全局统计的目的。

10次/60秒

防护动作

当访问的请求频率超过“限速频率”时,可设置以下防护动作:

● 人机验证:表示超过“限速频率”后弹出验证码,进行人机验证,完成验证后,请求将不受访问限制。人机验证目前支持英文。

● 阻断:表示超过“限速频率”将直接阻断。

● 动态阻断:上一个限速周期内,请求频率超过“限速频率”将被阻断,那么在下一个限速周期内,请求频率超过“放行频率”将被阻断。

● 仅记录:表示超过“限速频率”将只记录不阻断。可下载防护事件数据查看域名的防护日志。

阻断

放行频率

当“防护动作”选择“动态阻断”时,可配置放行频率。

如果在一个限速周期内,访问超过“限速频率”触发了拦截,那么,在下一个限速周期内,拦截阈值动态调整为“放行频率”

“放行频率”小于等于“限速频率”。

说明:当“放行频率”设置为0时,表示如果上一个限速周期发生过拦截后,下一个限速周期所有的请求都不放行。

8次/60秒

阻断时长

当“防护动作”选择“阻断”时,可设置阻断后恢复正常访问页面的时间。

600秒

阻断页面

当“防护动作”选择“阻断”时,需要设置,即当访问超过限速频率时,返回的错误页面。

● 当选择“默认设置”时,返回的错误页面为系统默认的阻断页面。

● 当选择“自定义”,返回错误信息由用户自定义。

自定义

页面类型

“阻断页面”选择“自定义”时,可选择阻断页面的类型“application/json”、“text/html”或者“text/xml”。

text/html

页面内容

“阻断页面”选择“自定义”时,可设置自定义返回的内容。

不同页面类型对应的页面内容样式:

● text/html:<html><body>Forbidden</body></html>

● application/json:{"msg": "Forbidden"}

● text/xml:<?xml version="1.0" encoding="utf-8"?><error> <msg>Forbidden</msg></error>

规则名称

参数说明

自定义规则名称。

取值样例

waftest

规则描述

参数说明

可选参数,设置该规则的备注信息。

取值样例

--

限速模式

参数说明

“源限速”:对源端限速,如某IP(或用户)的访问频率超过限速频率,就会对该IP(或用户)的访问限速。

○ “IP限速”:根据IP区分单个Web访问者;

○ “用户限速”:根据Cookie键值或者Header区分单个Web访问者;

○ “其他”:根据Referer(自定义请求访问的来源)字段区分单个Web访问者。

说明:选择“其他”时,“Referer”对应的“内容”填写为包含域名的完整URL链接,仅支持前缀匹配和精准匹配的逻辑,“内容”里不能含有连续的多条斜线的配置,如“///admin”,WAF引擎会将“///”转为“/”。

“目的限速”:选择该参数时,可选择以下限速类型进行配置:

○ “策略限速” :当多个域名共用一个策略时,该策略下对应的所有域名请求次数合并限速(不区分访问IP);泛域名防护场景时,该泛域名对应的所有子域名的请求次数合并限速(不区分访问IP);

○ “域名限速”:每个域名单独统计总请求次数,超过设定值则触发防护动作(不区分访问IP);

○ “URL限速”:每个URL请求单独统计请求次数,超过设定值则触发防护动作(不区分访问IP)。

取值样例

--

用户标识

参数说明

“限速模式”选择“源限速 > 用户限速”时,需要配置此参数:

● 选择Cookie时,设置Cookie字段名,即需要根据网站实际情况配置唯一可识别Web访问者的Cookie中的某属性变量名。须知标识的Cookie,不支持正则,必须完全匹配

例如:如果网站使用Cookie中的某个字段name唯一标识用户,那么可以选取name字段来区分Web访问者。

● 选择Header时,设置需要防护的自定义HTTP首部,即用户需要根据网站实际情况配置可识别Web访问者的HTTP首部。

取值样例

name

域名聚合统计

参数说明

“限速模式”选择“目的限速 > 策略限速”时,不需要配置此参数。

默认关闭,开启后,泛域名对应的所有子域名的请求次数合并限速(不区分访问IP)。例如,配置的泛域名为“*.a.com”,会将所有子域名(b.a.com,c.a.com等)的请求一起聚合统计。

取值样例

--

限速条件

参数说明

单击“添加”增加新的条件,至少配置一项条件,最多可添加30项条件,多个条件同时满足时,本条规则才生效

● 字段:路径、IP、Cookie、Header、Params、返回码(HTTP Code)。

● 子字段:当“字段”选择“Cookie”、“Header”、“Params”时,请根据实际需求配置子字段。

(须知:子字段的长度不能超过2048字节,且只能由数字、字母、下划线和中划线组成。)

● 逻辑:在“逻辑”下拉列表中选择需要的逻辑关系。

说明:当“逻辑”关系选择“包含任意一个”、“不包含所有”、“等于任意一个”、“不等于所有”、“前缀为任意一个”、“前缀不为所有”、“后缀为任意一个”或者“后缀不为所有”时,需要选择引用表,创建引用表的详细操作请参见创建引用表。

● 内容:输入或者选择条件匹配的内容。

取值样例

“路径”包含“/admin/”

限速频率

参数说明

单个Web访问者在限速周期内可以正常访问的次数,如果超过该访问次数,Web应用防火墙服务将根据配置的“防护动作”来处理。

“全局计数”:根据不同的限速模式,将已经标识的请求在一个或多个WAF节点上的计数聚合。默认为每WAF节点单独计数,开启后本区域所有节点合并计数。“IP限速”不能满足针对某个用户进行限速,需要选择“用户限速”或“其他”的Referer限速,此时标识的请求可能会访问到不同的WAF节点,开启全局计数后,将请求访问的一个或多个WAF节点访问量聚合,达到全局统计的目的。

取值样例

10次/60秒

防护动作

参数说明

当访问的请求频率超过“限速频率”时,可设置以下防护动作:

● 人机验证:表示超过“限速频率”后弹出验证码,进行人机验证,完成验证后,请求将不受访问限制。人机验证目前支持英文。

● 阻断:表示超过“限速频率”将直接阻断。

● 动态阻断:上一个限速周期内,请求频率超过“限速频率”将被阻断,那么在下一个限速周期内,请求频率超过“放行频率”将被阻断。

● 仅记录:表示超过“限速频率”将只记录不阻断。可下载防护事件数据查看域名的防护日志。

取值样例

阻断

放行频率

参数说明

当“防护动作”选择“动态阻断”时,可配置放行频率。

如果在一个限速周期内,访问超过“限速频率”触发了拦截,那么,在下一个限速周期内,拦截阈值动态调整为“放行频率”

“放行频率”小于等于“限速频率”。

说明:当“放行频率”设置为0时,表示如果上一个限速周期发生过拦截后,下一个限速周期所有的请求都不放行。

取值样例

8次/60秒

阻断时长

参数说明

当“防护动作”选择“阻断”时,可设置阻断后恢复正常访问页面的时间。

取值样例

600秒

阻断页面

参数说明

当“防护动作”选择“阻断”时,需要设置,即当访问超过限速频率时,返回的错误页面。

● 当选择“默认设置”时,返回的错误页面为系统默认的阻断页面。

● 当选择“自定义”,返回错误信息由用户自定义。

取值样例

自定义

页面类型

参数说明

“阻断页面”选择“自定义”时,可选择阻断页面的类型“application/json”、“text/html”或者“text/xml”。

取值样例

text/html

页面内容

参数说明

“阻断页面”选择“自定义”时,可设置自定义返回的内容。

取值样例

不同页面类型对应的页面内容样式:

● text/html:<html><body>Forbidden</body></html>

● application/json:{"msg": "Forbidden"}

● text/xml:<?xml version="1.0" encoding="utf-8"?><error> <msg>Forbidden</msg></error>

9.单击“确认”,添加的CC攻击防护规则展示在CC规则列表中。

● 规则添加成功后,默认的“规则状态”为“已开启”,若您暂时不想使该规则生效,可在目标规则所在行的“操作”列,单击“关闭”。

● 若需要修改添加的CC攻击防护规则时,可单击待修改的CC攻击防护规则所在行的“修改”,修改CC攻击防护规则。

● 若需要删除用户自行添加的CC攻击防护规则时,可单击待删除的CC攻击防护规则所在行的“删除”,删除CC攻击防护规则。

配置示例-CC攻击防护-人机验证

假如网站业务的防护域名“www.example.com”已接入Web应用防火墙WAF,您可以参照以下操作步骤验证人机验证防护效果。

1.Web应用防火墙管理控制台防护策略-自定义CC攻击防护规则,添加“防护动作”“人机验证”的CC防护规则。

图4 添加“人机验证”防护规则

2.Web应用防火墙管理控制台防护策略-防护配置选项中,开启CC攻击防护。图5 CC防护规则配置框

3.清理浏览器缓存,在浏览器中访问“http://www.example.com/admin/”页面。

当您在60秒内访问页面10次,在第11次访问该页面时,页面弹出验证码。此时,您需要输入验证码才能继续访问。

4.返回Web应用防火墙管理控制台,在左侧导航树中,单击“防护事件”,进入“防护事件”页面,您可以查看该防护事件。

图6 查看防护事件-人机验证

CC攻击防护常见问题

CC攻击防护常见问题

  • CC攻击的防护峰值是多少?

    Web应用防火墙各版本对应的CC攻击防护峰值如表1 CC攻击的防护峰值所示。

  • 如何配置CC防护规则?

    当业务接口被HTTP Flood攻击时,可以通过Web应用防火墙Console界面设置CC防护规则,从而缓解业务压力。

    用户可根据业务类型,配置CC防护规则,可配置以下内容:

    • 每个Web访问者在规定时间内允许访问的次数。

    • 根据IP、Cookie或者Referer字段区分Web访问者。

    • 当访问超过限制时,对其访问进行阻断或者发送验证码验证。

    具体的配置规则请参见配置CC攻击防护规则

  • 在什么情况下使用Cookie区分用户?

    在配置CC防护规则时,当IP无法精确区分用户,例如多个用户共享一个出口IP时,用户可以使用Cookie区分用户。

    用户使用Cookie区分用户时,如果Cookie中带有用户相关的“session”等“key”值,直接设置该“key”值作为区分用户的依据。

    须知:如果CC防护策略中配置的URL请求是被其他服务调用的API接口,可能不支持Cookie方式。

  • CC规则里“限速频率”和“放行频率”的区别?

    “限速频率”是单个Web访问者在限速周期内可以正常访问的次数,如果超过该访问次数,Web应用防火墙将根据配置的CC攻击防护规则“防护动作”来处理。例如,“限速频率”设置为“10次/60秒”,“防护动作”设置为“阻断”,则表示60秒只能有10次访问请求,一旦在60秒内访问请求超过10次,WAF就直接阻断该Web访问者访问目标URL。

    配置CC防护规则时,如果选择了“高级”工作模式,且“防护动作”配置为“动态阻断”,则除了需要配置“限速频率”外,还需要配置“放行频率”

    如果在一个限速周期内,访问的请求频率超过“限速频率”触发了拦截,那么,在下一个限速周期内,拦截阈值将动态调整为“放行频率”。且“放行频率”为0时,表示上个周期发生拦截后,下一个周期所有满足规则条件的请求都会被拦截。

    区别

    • “放行频率”和“限速频率”的限速周期一致。

    • “放行频率”小于等于“限速频率”,且“放行频率”可为0

    有关配置CC攻击防护规则的详细介绍,请参见配置CC攻击防护规则

  • 配置“人机验证”CC防护规则后,验证码不能刷新,验证一直不通过,如何处理?

    可能原因:域名同时接入Web应用防火墙和CDN(Content Delivery Network,内容分发网络),CC攻击防护规则的“路径”中包含静态页面,静态页面被CDN缓存,导致验证码不能刷新,验证不能通过。处理建议参考本小节介绍

相关产品推荐

  • 企业主机安全 HSS

    多云主机资产管理,病毒查杀,漏洞修复等

    多云主机资产管理,病毒查杀,漏洞修复等

  • DDoS高防 AAD

    抗DDoS攻击类防护服务,抵御各类DDoS攻击

    抗DDoS攻击类防护服务,抵御各类DDoS攻击

  • 云证书管理 CCM

    云上证书颁发与管理,包含私有证书

    云上证书颁发与管理,包含私有证书

1对1咨询华为云专属顾问,快速了解Web应用防火墙

免费咨询