文档首页/ Web应用防火墙 WAF/ 用户指南/ 配置防护策略/ 配置Web基础防护规则防御常见Web攻击
更新时间:2024-11-19 GMT+08:00

配置Web基础防护规则防御常见Web攻击

Web基础防护开启后,默认防范SQL注入、XSS跨站脚本、远程溢出攻击、文件包含、Bash漏洞攻击、远程命令执行、目录遍历、敏感文件访问、命令/代码注入等常规的Web攻击。您还可以根据实际使用需求,开启Webshell检测、深度反逃逸检测和header全检测等Web基础防护。

如果您已开通企业项目,您需要在“企业项目”下拉列表中选择您所在的企业项目并确保已开通操作权限,才能为该企业项目下域名配置防护策略。

前提条件

约束条件

  • Web基础防护支持“拦截”“仅记录”模式。
  • 当Web基础防护设置为“拦截”模式时,您可以配置攻击惩罚标准。配置攻击惩罚后,如果访问者的IP、Cookie或Params恶意请求被拦截时,WAF将根据攻击惩罚设置的拦截时长来封禁访问者。
  • 目前华北-北京一、华北-北京四、华东-上海一、华东-上海二、华南-广州、华南-深圳、西南-贵阳一、中国-香港和亚太-曼谷区域支持深度检测和header全检测功能。
  • 目前华北-北京四、中国-香港区域支持Shiro解密检测功能。

开启Web基础防护规则

  1. 登录管理控制台
  2. 单击管理控制台左上角的,选择区域或项目。
  3. 单击页面左上方的,选择安全与合规 > Web应用防火墙 WAF
  4. 在左侧导航树中,选择“防护策略”,进入“防护策略”页面。
  5. 单击目标策略名称,进入目标策略的防护配置页面。
  6. 选择“Web基础防护”配置框,用户可根据自己的需要开启或关闭Web基础防护策略。

    • :开启状态。
    • :关闭状态。

  7. 配置Web基础防护规则,如图1所示。

    图1 配置防护规则
    1. 默认开启“常规检测”,防护SQL注入、XSS跨站脚本、文件包含、Bash漏洞攻击、远程命令执行、目录遍历、敏感文件访问、命令/代码注入等攻击。其中,SQL注入攻击主要基于语义进行检测。
    2. 选择“防护等级”

      Web基础防护设置了三种防护等级:“默认规则集【宽松】”“默认规则集【中等】”“默认规则集【严格】”,默认情况下,选择“默认规则集【中等】”

      表1 防护等级说

      防护等级

      说明

      默认规则集【宽松】

      防护粒度较粗,只拦截攻击特征比较明显的请求。

      当误报情况较多的场景下,建议选择“宽松”模式。

      默认规则集【中等】

      默认为“中等”防护模式,满足大多数场景下的Web防护需求。

      默认规则集【严格】

      防护粒度最精细,可以拦截具有复杂的绕过特征的攻击请求,例如jolokia网络攻击、探测CGI漏洞、探测 Druid SQL注入攻击。

      建议您等待业务运行一段时间后,根据防护效果配置全局白名单规则,再开启“严格”模式,使WAF能有效防护更多攻击。

      单击“查看规则集详情”,可查看Web基础防护规则中“防护等级”“宽松”“中等”“严格”的所有规则的详细信息。

      单击,您可以根据“CVE编号”“危险等级”“应用类型”“防护类型”,搜索指定规则。

      表2 防护规则说明

      参数

      说明

      规则ID

      防护规则的ID,由系统自动生成。

      规则描述

      防护规则对应的攻击详细描述。

      CVE编号

      防护规则对应的CVE(Common Vulnerabilities & Exposures,通用漏洞披露)编号。对于非CVE漏洞,显示为--。

      危险等级

      防护规则防护漏洞的危险等级,包括:

      • 高危
      • 中危
      • 低危

      应用类型

      防护规则对应的应用类型,WAF覆盖的应用类型见WAF覆盖的应用类型

      防护类型

      防护规则的类型,WAF覆盖的防护类型:SQL注入、命令注入、跨站脚本、XXE注入、表达式注入攻击、SSRF、本地文件包含、远程文件包含、网站木马、恶意爬虫、会话固定漏洞攻击、反序列化漏洞、远程命令执行、信息泄露、拒绝服务、源码/数据泄露。

    3. 根据实际业务情况,开启“检测范围”中的检测项。
      表3 检测项说明

      检测项

      说明

      深度检测

      防护同形字符混淆、通配符变形的命令注入、UTF7、Data URI Scheme等深度反逃逸。

      说明:

      开启“深度检测”后,WAF将对深度反逃逸进行检测防护。

      header全检测

      默认关闭。关闭状态下WAF会检测常规存在注入点的header字段,包含User-Agent、Content-type、Accept-Language和Cookie。

      说明:

      开启“header全检测”后,WAF将对请求里header中所有字段进行攻击检测。

      Shiro解密检测

      默认关闭。开启后,WAF会对Cookie中的rememberMe内容做AES,Base64解密后再检测。Web应用防火墙检测机制覆盖了几百种已知泄露密钥。

      说明:

      如果您的网站使用的是Shiro 1.2.4及之前的版本,或者升级到了Shiro 1.2.5及以上版本但是未配置AES密钥,强烈建议您开启“Shiro解密检测”,以防攻击者利用已泄露的密钥构造攻击。

    4. 配置“Webshell检测”

      开启“Webshell检测”后,WAF将对通过上传接口植入的网页木马进行检测。

  8. 配置防护措施,选择“防护动作”

    • 拦截:发现攻击后立即阻断并记录。

      设置为“拦截”时,您可以根据需要选择已配置的攻击惩罚。有关配置攻击惩罚的详细操作,请参见配置攻击惩罚标准封禁访问者指定时长

    • 仅记录:发现攻击后只记录不阻断。

使用建议

  • 如果您对自己的业务流量特征还不完全清楚,建议先切换到“仅记录”模式进行观察。一般情况下,建议您观察一至两周,然后分析仅记录模式下的攻击日志。
    • 如果没有发现任何正常业务流量被拦截的记录,则可以切换到“拦截”模式启用拦截防护。
    • 如果发现攻击日志中存在正常业务流量,建议调整防护等级或者设置全局白名单来避免正常业务的误拦截。
  • 业务操作方面应注意以下问题:
    • 正常业务的HTTP请求中尽量不要直接传递原始的SQL语句、JavaScript代码。
    • 正常业务的URL尽量不要使用一些特殊的关键字(UPDATE、SET等)作为路径,例如:“https://www.example.com/abc/update/mod.php?set=1”
    • 如果业务中需要上传文件,不建议直接通过Web方式上传超过50M的文件,建议使用对象存储服务或者其他方式上传。

防护效果

假如已添加域名“www.example.com”,且已开启了Web基础防护的“常规检测”,防护模式为“拦截”。您可以参照以下步骤验证WAF防护效果:

  1. 清理浏览器缓存,在浏览器中输入防护域名,测试网站域名是否能正常访问。

    • 不能正常访问,参照网站设置章节重新完成域名接入。
    • 能正常访问,执行2

  2. 清理浏览器缓存,在浏览器中输入“http://www.example.com?id=1%27%20or%201=1”模拟SQL注入攻击。
  3. 返回Web应用防火墙控制界面,在左侧导航树中,单击“防护事件”,进入“防护事件”页面,查看防护域名拦截日志。

配置示例-拦截SQL注入攻击

假如防护域名“www.example.com”已接入WAF,您可以参照以下操作步骤验证WAF拦截SQL注入攻击。

  1. 开启Web基础防护的“常规检测”,并将防护模式设置为“拦截”

    图2 开启“常规检测”

  2. 开启Web基础防护。

    图3 Web基础防护配置框

  3. 清理浏览器缓存,在浏览器中输入模拟SQL注入攻击(例如,http://www.example.com?id=' or 1=1)。

    WAF将拦截该访问请求,拦截页面示例如图4所示。

    图4 WAF拦截攻击请求

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