扫描防护模块通过识别扫描行为和扫描器特征,阻止攻击者或扫描器对网站的大规模扫描行为,帮助Web业务降低被入侵的风险并减少扫描带来的垃圾流量。扫描防护模块默认未开启。本文介绍了如何启用并配置扫描防护模块。
背景信息
扫描防护规则分为以下类型:
- 高频扫描封禁:将短时间内多次触发当前防护对象下基础防护规则的攻击源,自动拉入黑名单,在一段时间内对该攻击源的所有请求执行拦截、观察处置。
- 目录遍历封禁:将短时间内访问当前防护对象下大量无效目录(不包含图片等静态文件)的攻击源,自动拉入黑名单,在一段时间内对该攻击源的所有请求执行拦截、观察处置。
- 扫描工具封禁:对来自常见扫描工具(例如,Sqlmap、AWVS、Nessus、Appscan、Webinspect、Netsparker、Nikto、Rsas等)的请求,执行拦截、观察处置。
默认规则模板
扫描防护模块默认未开启(不提供默认规则模板)。
如需启用扫描防护模块,您必须新建一个扫描防护规则模板,并配置相关规则。具体操作,请参见新建模板 - 扫描防护。
新建模板 - 扫描防护
首次配置扫描防护模块时,您必须新建一个扫描防护规则模板。
参照以下步骤,新建扫描防护规则模板:
规则配置说明
新建或编辑扫描防护规则模板时,您可以配置以下扫描防护规则:
- 高频扫描封禁规则释义:如果某个攻击源(通过统计和封禁对象参数设置攻击源类型)在短时间(通过检测时间范围设置)内,频繁触发当前防护对象下的基础防护规则(攻击次数大于基础防护规则触发参数指定的次数,并且触发的不同规则的数量大于触发规则数大于参数指定的次数),则将该攻击源拉入到黑名单,在一段时间(通过封禁时间设置)内拦截、观察其所有请求。
规则配置参数如下表所示。
配置项 说明 统计和封禁对象 选择要统计的攻击源的类型。可选项: - IP:表示统计同一个客户端IP发起攻击的频率。
- 会话:表示统计同一个客户端会话发起攻击的频率。
说明 WAF会尝试在请求响应中,通过
setcookie
方法插入以acw_tc
开头的Cookie,来标记不同的客户端会话。 - 自定义:表示统计具有同样请求特征的对象发起攻击的频率。
您可以通过以下方式指定请求特征:
- 自定义Header:表示统计包含指定Header的攻击请求的频率。
- 自定义参数:表示统计包含指定参数的攻击请求的频率。
- 自定义Cookie:表示统计包含指定Cookie的攻击请求的频率。
检测时间范围 设置检测HTTP请求的时间范围。单位:秒。 基础防护规则触发 设置在检测时间范围内,允许单个统计对象触发当前防护对象下基础防护规则的最大次数。 触发规则数大于 设置在检测时间范围内,允许单个统计对象触发当前防护对象下不同基础防护规则的数量。 封禁时间 对命中当前规则的对象,设置封禁其请求的时长。单位:秒。 - 目录遍历封禁规则释义:如果某个攻击源(通过统计和封禁对象参数设置攻击源类型)在短时间(通过检测时间范围参数设置)内,针对单个域名的请求次数超过阈值(通过针对单域名请求次数超过参数设置)、请求的不存在的目录的数量超过阈值(通过不存在的目录数量超过参数设置),并且请求响应中404响应码占比超过阈值(通过且404响应码比例超过参数设置),则将该攻击源拉入到黑名单,在一段时间(通过封禁时间参数设置)内拦截、观察其所有请求。
规则配置参数如下表所示。
配置项 说明 统计和封禁对象 选择要统计的攻击源的类型。可选项: - IP:表示统计同一个客户端IP发起攻击的频率。
- 会话:表示统计同一个客户端会话发起攻击的频率。
说明 WAF会尝试在请求响应中,通过
setcookie
方法插入以acw_tc
开头的Cookie,来标记不同的客户端会话。 - 自定义:表示统计具有同样请求特征的对象发起攻击的频率。
您可以通过以下方式指定请求特征:
- 自定义Header:表示统计包含指定Header的攻击请求的频率。
- 自定义参数:表示统计包含指定参数的攻击请求的频率。
- 自定义Cookie:表示统计包含指定Cookie的攻击请求的频率。
检测时间范围 设置检测时间范围。单位:秒。 针对单域名请求次数超过 设置允许单个统计对象在检测时间范围内,对单个域名发起请求次数的最大值。 且404响应码比例超过 设置404响应码占比的最大值。 封禁时间 对命中当前规则的对象,设置封禁其请求的时长。单位:秒。 不存在的目录数量超过 设置允许单个统计对象在检测时间范围内,访问的不存在的目录(不包含图片等静态文件)的最大数量。 - 扫描工具封禁:该规则通过匹配User-Agent特征来识别常见扫描工具(例如,Sqlmap、AWVS、Nessus、Appscan、Webinspect、Netsparker、Nikto、Rsas等)的请求,无参数需要配置。