
# 配置Web基础防护规则防御常见Web攻击
WAF预先内置了用于检测常见的Web应用攻击的安全规则，并按照防护粒度，将所有规则划分到三个不同的等级中："默认规则集【宽松】"、"默认规则集【中等】"、"默认规则集【严格】"。
网站接入WAF后，WAF默认开启Web基础防护中的**常规检测** （规则集为**默认规则集【中等】** ，防护动作为**仅记录**），可防范SQL注入、XSS跨站脚本、远程溢出攻击、文件包含、Bash漏洞攻击、远程命令执行、目录遍历、敏感文件访问、命令注入、代码注入等常见Web攻击。
您还可以根据实际业务情况，开启针对各种绕过尝试的深度检测、header全检测、Shiro解密检测，针对通过上传接口植入的网页木马的Webshell检测。
#### Web常见攻击与安全防护
常见Web攻击包括SQL注入、XSS跨站脚本、远程溢出攻击、文件包含、Bash漏洞攻击、远程命令执行、目录遍历、敏感文件访问、命令注入、代码注入、跨站请求伪造攻击、服务端请求伪造、网站后门等攻击行为。
Web基础防护内置针对OWASP TOP10常见威胁的规则集，并集成应对各种绕过尝试的防逃逸专利技术，支持常规检测、深度检测、header全检测、Shiro解密检测、Base64解码、Webshell检测，形成Web常见攻击检测层，可防御各类常见Web攻击。
详细功能说明如下：
- **常规检测** ：用于防护SQL注入、XSS跨站脚本、文件包含、Bash漏洞攻击、远程命令执行、目录遍历、敏感文件访问、命令/代码注入等攻击。
  - 为适应不同防护需求，WAF将内置规则集划分为三个**防护等级** ：
    - **默认规则集【宽松】**：防护粒度较粗，只拦截攻击特征比较明显的请求。该场景下，业务的误报率降低，但漏报率可能会增高。
    
    - **默认规则集【中等】**（默认）：开启Web基础防护后，防护等级默认为"中等"模式，可满足大多数场景下的Web防护需求。
    
    - **默认规则集【严格】**：防护粒度最精细，可以拦截具有复杂的绕过特征的攻击请求，例如jolokia网络攻击、探测CGI漏洞、探测Druid SQL注入攻击。该场景下，业务的误报率可能会增高，但漏报率降低。
     
  
  - 支持灵活开启针对各种绕过尝试的**检测** ：
    - **深度检测** （默认关闭）：支持同形字符混淆、通配符变形的命令注入、UTF7、Data URI Schema等的防护。
      关闭状态下，不支持该类防护。
      
    
    - **header全检测** （默认关闭）：对请求里Header中所有字段进行攻击检测。
      关闭状态下，WAF会检测常规存在注入点的Header字段，包含User-Agent、Content-type、Accept-Language和Cookie。
      
    
    - **Shiro解密检测** （默认关闭）：对Cookie中的rememberMe内容做AES，Base64解密后再检测，覆盖几百种已知泄露密钥。
      关闭状态下，不支持该类防护。
      ![](https://support.huaweicloud.com/usermanual-waf/public_sys-resources/note_3.0-zh-cn.png)
      如果您的网站使用的是Shiro 1.2.4及之前的版本，或者升级到了Shiro 1.2.5及以上版本但是未配置AES密钥，强烈建议您开启"Shiro解密检测"，以防攻击者利用已泄露的密钥构造攻击。
      
     
   
- **Webshell检测**：防护通过上传接口植入网页木马。HTTP2报文不支持Webshell检测。
 
#### 使用建议
- 如果您对自己的业务流量特征还不完全清楚，建议先切换到**仅记录** 模式进行观察。一般情况下，建议您观察一至两周，然后分析仅记录模式下的攻击日志。
  - 如果没有发现任何正常业务流量被拦截的记录，则可以切换到**拦截**模式启用拦截防护。
  
  - 如果发现攻击日志中存在正常业务流量，建议调整防护等级或者设置全局白名单来避免正常业务的误拦截。
   
- 如果您需要将**防护等级** 调整为**默认规则集【严格】** ，可能会出现误报，影响正常业务。在切换前，建议您执行以下操作：
  - 将"防护动作"切换为"仅记录"后，将"防护等级"切换为"默认规则集【严格】"，观察是否出现误报事件。如有，处理误报后，再将"防护动作"切换为"拦截"。
  
  - 如果您担心执行[方案1]，将"防护动作"切换为"仅记录"后，存在安全风险，也可直接将"防护等级"切换为"默认规则集【严格】"。但需要观察防护事件，并及时处理误报，以免影响正常业务。
  
  - 除了上述方案外，如果您的**云模式版本为企业版** 、**独享引擎规格为WI-500**，也可以新建自定义规则集，并将"默认规则集【严格】"的"防护动作"配置为"仅记录"。切换为自定义规则集后，观察是否存在误报请求，如有，及时处理误报。确认无问题后，将"防护动作"切换为"拦截"。
   
- 业务操作方面应注意以下问题：
  - 正常业务的HTTP请求中尽量不要直接传递原始的SQL语句、JavaScript代码。
  
  - 正常业务的URL尽量不要使用一些特殊的关键字（UPDATE、SET等）作为路径，例如："https://www.example.com/abc/update/mod.php?set=1"。
  
  - 如果业务中需要上传文件，不建议直接通过Web方式上传超过50M的文件，建议使用对象存储服务或者其他方式上传。
   
 
#### 约束条件
| 类别                | 约束说明                                                                                                                 |
|:---|:---|
| **Shiro解密检测**地域限制 | **华东-青岛** 、**亚太-马尼拉**区域不支持该功能。                                                                                       |
| **Webshell检测**    | HTTP2报文不支持该功能。                                                                                                       |
| 规则生效时间            | 添加或修改防护规则后，规则生效需要等待几分钟。规则生效后，您可以在"防护事件"页面，[查看防护效果](https://support.huaweicloud.com/usermanual-waf/waf_01_0156.html)。 |
   
#### 前提条件
- 已[将网站成功接入WAF](https://support.huaweicloud.com/usermanual-waf/waf_01_1108.html)。
- 如果使用独享WAF，确保独享引擎已升级到最新版本，具体的操作请参见[升级独享引擎实例](https://support.huaweicloud.com/usermanual-waf/waf_01_0253_4.html)。
 
#### 开启Web基础防护规则
1. [登录Web应用防火墙控制台](https://console.huaweicloud.com/waf/?locale=zh-cn)。
2. 在控制台左上角，单击![](https://support.huaweicloud.com/usermanual-waf/zh-cn_image_0000002304713360.png)图标，选择区域或项目。
3. (可选) 如果您已开通企业项目，在左侧导航栏上方单击"按企业项目筛选"下拉框，选择您所在的企业项目。完成后，页面将为您展示该企业项目下的相关数据。
4. 在左侧导航栏，选择"防护策略 \> WAF核心防护"。
5. 在防护策略列表，单击目标策略名称，进入目标策略的防护规则配置页面。 
   您也可以在"资产管理 \> 防护对象"页面，单击目标域名"防护策略"列的"已开启防护项"后的数字，进入网站绑定的防护策略的规则配置页面。
   
   
6. 单击"Web基础防护"配置框，确认已开启Web基础防护规则。 
   ![](https://support.huaweicloud.com/usermanual-waf/zh-cn_image_0000001761737873.png)：开启状态。
   
   
7. 配置Web基础防护规则。 
   表1Web基础防护参数说明 
   | 参数                  || 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | 取值样例                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   |:---|---|:---|:---|
   | **常规检测** | **功能开关**  | 默认开启，支持防护SQL注入、XSS跨站脚本、文件包含、Bash漏洞攻击、远程命令执行、目录遍历、敏感文件访问、命令/代码注入等攻击。其中，SQL注入攻击主要基于语义进行检测。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | ![](https://support.huaweicloud.com/usermanual-waf/zh-cn_image_0000002383423964.png "点击放大")                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   | **常规检测** | **选择规则集** | 根据实际业务，选择Web基础防护的防护等级，支持： - **默认规则集【宽松】** ：防护粒度较粗，只拦截攻击特征比较明显的请求。 当误报情况较多的场景下，建议选择"宽松"模式。   - **默认规则集【中等】** （默认）：满足大多数场景下的Web防护需求。 开启Web基础防护后，防护等级默认为"中等"模式。   - **默认规则集【严格】** ：防护粒度最精细，可以拦截具有复杂的绕过特征的攻击请求，例如jolokia网络攻击、探测CGI漏洞、探测Druid SQL注入攻击。 建议您等待业务运行一段时间后，根据防护效果配置全局白名单规则，再开启"严格"模式，使WAF能有效防护更多攻击。    单击"查看规则集详情"，可查看以上三种防护等级的规则集包含的所有规则详情。具体防护规则说明如[表2]所示。 - 通过设置开始日期、结束日期，筛选指定时间段上线的防护规则。  - 通过输入**CVE编号** 、**规则ID** 、**规则描述**关键字，筛选指定防护规则。  - 单击"CVE编号"、"危险等级"、"应用类型"或"防护类型"后的![](https://support.huaweicloud.com/usermanual-waf/zh-cn_image_0000002417023221.png)，筛选指定规则。   | **默认规则集【中等】**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   | **常规检测** | **检测范围**  | 开启或关闭Web基础防护的其他检测项，支持： - **深度检测**（默认关闭）：开启后，支持同形字符混淆、通配符变形的命令注入、UTF7、Data URI Schema等的防护。  - **header全检测**（默认关闭）：开启后，支持对请求里Header中所有字段进行攻击检测。  - **Shiro解密检测** （默认关闭）：开启后，支持对Cookie中的rememberMe内容做AES，Base64解密后再检测，覆盖几百种已知泄露密钥。 说明： 如果您的网站使用的是Shiro 1.2.4及之前的版本，或者升级到了Shiro 1.2.5及以上版本但是未配置AES密钥，强烈建议您开启"Shiro解密检测"，以防攻击者利用已泄露的密钥构造攻击。                                                                                                                                                                                                                                                                                                      | - **深度检测** ：![](https://support.huaweicloud.com/usermanual-waf/zh-cn_image_0000002416903369.png "点击放大")  - **header全检测** ：![](https://support.huaweicloud.com/usermanual-waf/zh-cn_image_0000002383423968.png "点击放大")  - **Shiro解密检测** ：![](https://support.huaweicloud.com/usermanual-waf/zh-cn_image_0000002383264056.png "点击放大")   |
   | **Webshell检测**      || 开启或关闭Webshell检测开关。开启后，可防护通过上传接口植入的网页木马。**HTTP2报文不支持Webshell检测。**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | ![](https://support.huaweicloud.com/usermanual-waf/zh-cn_image_0000002417023225.png "点击放大")                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   | **防护动作**            || 选择触发Web基础防护规则后，要执行的处置动作： - **仅记录**（默认）：请求触发规则后，WAF只记录不拦截。  - **拦截** ：请求触发规则后，WAF记录并拦截该请求。 将防护规则修改为拦截模式前，请先查看历史日志记录，确认没有正常请求触发防护规则时，再进行拦截。 "防护动作"配置为"拦截"时，可[配置攻击惩罚](https://support.huaweicloud.com/usermanual-waf/waf_01_0271.html)。配置并选择攻击惩罚后，如果访问者的IP、Cookie、Params、Header恶意请求被拦截时，WAF将根据攻击惩罚设置的拦截时长来封禁访问者。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | **仅记录**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
      
    表2防护规则说明 
   | 参数    | 说明                                                                                                                      |
   |:---|:---|
   | 规则ID  | 防护规则的ID，由系统自动生成。                                                                                                        |
   | 规则描述  | 防护规则对应的攻击详细描述。                                                                                                          |
   | CVE编号 | 防护规则对应的CVE（Common Vulnerabilities \& Exposures，通用漏洞披露）编号。对于非CVE漏洞，显示为--。                                                |
   | 危险等级  | 防护规则防护漏洞的危险等级，包括：高危、中危、低危。                                                                                              |
   | 应用类型  | 防护规则对应的应用类型，WAF覆盖的应用类型见[WAF覆盖的应用类型](https://support.huaweicloud.com/usermanual-waf/waf_01_3279.html)。                   |
   | 防护类型  | 防护规则的类型，WAF覆盖的防护类型：SQL注入、命令注入、跨站脚本、XXE注入、表达式注入攻击、SSRF、本地文件包含、远程文件包含、网站木马、恶意爬虫、会话固定漏洞攻击、反序列化漏洞、远程命令执行、信息泄露、拒绝服务、源码/数据泄露。 |
      
   如果要生效该防护规则，需确认防护规则所属防护策略已[绑定防护域名](https://support.huaweicloud.com/usermanual-waf/waf_01_0074.html)，即绑定策略生效目标。一条防护策略可以适用于多个防护域名，但一个防护域名只能绑定一个防护策略。
   完成以上配置后，您可以模拟SQL注入攻击，验证防护效果。具体操作可参考[配置示例-拦截SQL注入攻击]的[4]。
   
   
 
 #### 配置示例-拦截SQL注入攻击
假如防护域名"www.example.com"已接入WAF，您可以参照以下操作步骤拦截SQL注入攻击。
1. 单击"Web基础防护"配置框，确认已开启Web基础防护规则。 
   ![](https://support.huaweicloud.com/usermanual-waf/zh-cn_image_0000001761737873.png)：开启状态。
   
   
2. 开启Web基础防护的"常规检测"，并将防护模式设置为"拦截"。
3. 在本机hosts文件中增加**WAF引擎IP www.example.com**，配置映射关系。
4. 清理浏览器缓存，在浏览器中输入模拟SQL注入攻击（例如，http://www.example.com?id=' or 1=1）。
   
   WAF将拦截该访问请求，拦截页面示例如[图1]所示。
   图1WAF拦截攻击请求   
   ![](https://support.huaweicloud.com/usermanual-waf/zh-cn_image_0000001179033432.png "点击放大")
   
   
5. 返回Web应用防火墙管理控制台，在左侧导航树中，单击"防护事件"，进入"防护事件"页面，您可以查看该防护事件。
 
