配置Web基础防护规则防御常见Web攻击
网站接入WAF后,WAF默认开启Web基础防护中的常规检测(规则集为默认规则集【中等】,防护动作为仅记录),可防范SQL注入、XSS跨站脚本、远程溢出攻击、文件包含、Bash漏洞攻击、远程命令执行、目录遍历、敏感文件访问、命令注入、代码注入等常见Web攻击。您还可以根据实际业务情况,开启针对各种绕过尝试的深度检测、header全检测、Shiro解密检测,针对通过上传接口植入的网页木马的Webshell检测。
前提条件
- 已将网站成功接入WAF。
- 已新增防护策略,并添加策略适用的防护域名。
- 如果使用独享WAF,确保独享引擎已升级到最新版本,具体的操作请参见升级独享引擎实例。
约束条件
- 目前华东-青岛、亚太-马尼拉区域不支持Shiro解密检测功能。
- HTTP2报文不支持“Webshell检测”。
开启Web基础防护规则
- 登录Web应用防火墙控制台。
- 在控制台左上角,单击
图标,选择区域或项目。
- (可选) 如果您已开通企业项目,在左侧导航栏上方,单击“按企业项目筛选”下拉框,选择您所在的企业项目。完成后,页面将为您展示该企业项目下的相关数据。
- 在左侧导航栏,单击“防护策略”。
- 单击目标策略名称,进入目标策略的防护规则配置页面。
在配置防护规则前,请确认目标防护策略已绑定防护域名,即绑定策略生效目标。一条防护策略可以适用于多个防护域名,但一个防护域名只能绑定一个防护策略。
- 单击“Web基础防护”配置框,确认已开启Web基础防护规则。
:开启状态。
- 配置Web基础防护规则。
图2 配置防护规则
表1 Web基础防护参数说明 参数
说明
取值样例
常规检测
功能开关
默认开启,支持防护SQL注入、XSS跨站脚本、文件包含、Bash漏洞攻击、远程命令执行、目录遍历、敏感文件访问、命令/代码注入等攻击。其中,SQL注入攻击主要基于语义进行检测。
防护等级
根据实际业务,选择Web基础防护的防护等级,支持:
- 默认规则集【宽松】:防护粒度较粗,只拦截攻击特征比较明显的请求。
当误报情况较多的场景下,建议选择“宽松”模式。
- 默认规则集【中等】(默认):满足大多数场景下的Web防护需求。
开启Web基础防护后,防护等级默认为“中等”模式。
- 默认规则集【严格】:防护粒度最精细,可以拦截具有复杂的绕过特征的攻击请求,例如jolokia网络攻击、探测CGI漏洞、探测Druid SQL注入攻击。
建议您等待业务运行一段时间后,根据防护效果配置全局白名单规则,再开启“严格”模式,使WAF能有效防护更多攻击。
单击“查看规则集详情”,可查看以上三种防护等级的规则集包含的所有规则详情。具体防护规则说明如表2所示。- 通过设置开始日期、结束日期,筛选指定时间段上线的防护规则。
- 通过输入CVE编号、规则ID、规则描述关键字,筛选指定防护规则。
- 单击“CVE编号”、“危险等级”、“应用类型”或“防护类型”后的
,筛选指定规则。
默认规则集【中等】
检测范围
开启或关闭Web基础防护的检测范围,支持:- 深度检测(默认关闭):开启后,支持同形字符混淆、通配符变形的命令注入、UTF7、Data URI Schema等的防护。
- header全检测(默认关闭):开启后,支持对请求里header中所有字段进行攻击检测。
- Shiro解密检测(默认关闭):开启后,支持对Cookie中的rememberMe内容做AES,Base64解密后再检测,覆盖几百种已知泄露密钥。
说明:
如果您的网站使用的是Shiro 1.2.4及之前的版本,或者升级到了Shiro 1.2.5及以上版本但是未配置AES密钥,强烈建议您开启“Shiro解密检测”,以防攻击者利用已泄露的密钥构造攻击。
- 深度检测:
- header全检测:
- Shiro解密检测:
Webshell检测
开启或关闭Webshell检测开关。开启后,可防护通过上传接口植入的网页木马。
说明:HTTP2报文不支持Webshell检测。
防护动作
选择触发Web基础防护规则后,要执行的处置动作:- 仅记录(默认):请求触发规则后,WAF只记录不拦截。
- 拦截:请求触发规则后,WAF记录并拦截该请求。
将防护规则修改为拦截模式前,请先查看历史日志记录,确认没有正常请求触发防护规则时,再进行拦截。
“防护动作”配置为“拦截”时,可配置攻击惩罚。配置并选择攻击惩罚后,如果访问者的IP、Cookie或Params恶意请求被拦截时,WAF将根据攻击惩罚设置的拦截时长来封禁访问者。
仅记录
表2 防护规则说明 参数
说明
规则ID
防护规则的ID,由系统自动生成。
规则描述
防护规则对应的攻击详细描述。
CVE编号
防护规则对应的CVE(Common Vulnerabilities & Exposures,通用漏洞披露)编号。对于非CVE漏洞,显示为--。
危险等级
防护规则防护漏洞的危险等级,包括:高危、中危、低危。
应用类型
防护规则对应的应用类型,WAF覆盖的应用类型见WAF覆盖的应用类型。
防护类型
防护规则的类型,WAF覆盖的防护类型:SQL注入、命令注入、跨站脚本、XXE注入、表达式注入攻击、SSRF、本地文件包含、远程文件包含、网站木马、恶意爬虫、会话固定漏洞攻击、反序列化漏洞、远程命令执行、信息泄露、拒绝服务、源码/数据泄露。
完成以上配置后,您可以模拟SQL注入攻击,验证防护效果。具体操作可参考配置示例-拦截SQL注入攻击的4。
- 默认规则集【宽松】:防护粒度较粗,只拦截攻击特征比较明显的请求。
配置示例-拦截SQL注入攻击
假如防护域名“www.example.com”已接入WAF,您可以参照以下操作步骤拦截SQL注入攻击。
- 单击“Web基础防护”配置框,确认已开启Web基础防护规则。
:开启状态。
- 开启Web基础防护的“常规检测”,并将防护模式设置为“拦截”。
图3 开启“常规检测”
- 开启Web基础防护。
图4 开启Web基础防护
- 清理浏览器缓存,在浏览器中输入模拟SQL注入攻击(例如,http://www.example.com?id=' or 1=1)。
WAF将拦截该访问请求,拦截页面示例如图5所示。
- 返回Web应用防火墙管理控制台,在左侧导航树中,单击“防护事件”,进入“防护事件”页面,您可以查看该防护事件。