扫描防护模块通过识别扫描行为和扫描器特征,阻止攻击者或扫描器对网站的大规模扫描行为,帮助Web业务降低被入侵的风险并减少扫描带来的垃圾流量。扫描防护模块默认未开启。本文介绍了如何启用并配置扫描防护模块。

前提条件

  • 已开通Web应用防火墙(WAF)3.0服务。

    相关操作,请参见开通WAF 3.0

  • 已将Web业务添加为WAF 3.0的防护对象。

    相关操作,请参见管理防护对象

背景信息

扫描防护规则分为以下类型:
  • 高频扫描封禁:将短时间内多次触发当前防护对象下基础防护规则的攻击源,自动拉入黑名单,在一段时间内对该攻击源的所有请求执行拦截、观察处置。
  • 目录遍历封禁:将短时间内访问当前防护对象下大量无效目录(不包含图片等静态文件)的攻击源,自动拉入黑名单,在一段时间内对该攻击源的所有请求执行拦截、观察处置。
  • 扫描工具封禁:对来自常见扫描工具(例如,Sqlmap、AWVS、Nessus、Appscan、Webinspect、Netsparker、Nikto、Rsas等)的请求,执行拦截、观察处置。

默认规则模板

扫描防护模块默认未开启(不提供默认规则模板)。

如需启用扫描防护模块,您必须新建一个扫描防护规则模板,并配置相关规则。具体操作,请参见新建模板 - 扫描防护

新建模板 - 扫描防护

首次配置扫描防护模块时,您必须新建一个扫描防护规则模板。

参照以下步骤,新建扫描防护规则模板:

  1. 登录Web应用防火墙3.0控制台
  2. 在顶部菜单栏,选择Web应用防火墙实例的资源组和地域(中国内地非中国内地)。
  3. 在左侧导航栏,选择防护配置 > 防护规则
  4. 扫描防护区域,单击新建模板
  5. 新建模板 - 扫描防护面板,完成以下模板配置。
    新建模板-扫描防护
    配置项 说明
    模板名称 为该模板设置一个名称。

    支持使用中文字符、英文字符(大小写)、数字(0~9)及下划线(_)。

    是否设置为默认模板 选择是否将该模板设置为当前防护模块的默认模板。

    一个防护模块只允许设置一个默认模板。默认模板无需设置生效对象,默认应用于所有未关联特定模板的防护对象和对象组(包括后续您新增的、从特定模板中移除的防护对象和对象组)。

    规则配置 设置扫描防护规则。扫描防护规则模板只有一套规则,规则分为以下三个部分:
    • 高频扫描封禁

      默认参数:如果某个攻击源(IP、会话等)在60秒内,触发当前防护对象下基础防护规则的次数大于20次,并且触发的不同防护规则的数量大于2个,则将该攻击源拉入到黑名单(在30分钟内拦截、观察该攻击源的所有请求)。

      您可以通过规则开关,开启或关闭高频扫描封禁;也可以单击高级设置,自定义规则参数,具体参数配置,请参见规则配置说明

    • 目录遍历封禁

      默认参数:如果某个攻击源(IP、会话等)在10秒内,针对当前防护对象的请求次数超过50次、请求的不存在的目录数量超过50个,并且请求响应中404响应码占比超过70%,则将该攻击源拉入到黑名单(在30分钟内拦截、观察该攻击源的所有请求)。

      您可以通过规则开关,开启或关闭目录遍历封禁;也可以单击高级设置,自定义规则参数,具体规则配置,请参见规则配置说明

    • 扫描工具封禁

      对来自常见扫描工具(例如,Sqlmap、AWVS、Nessus、Appscan、Webinspect、Netsparker、Nikto、Rsas等)的请求,执行拦截、观察处置。

      您可以通过规则开关,开启或关闭扫描工具封禁

    创建规则模板后,您可以通过编辑模板,修改扫描防护规则。

    规则动作 选择当请求命中该规则时,要执行的防护动作。可选项:
    • 拦截:表示拦截命中规则的请求,并向发起请求的客户端返回拦截响应页面。
      说明 WAF默认使用统一的拦截响应页面,您可以通过自定义响应功能,自定义拦截响应页面。更多信息,请参见设置自定义响应
    • 观察:表示不拦截命中规则的请求,只通过日志记录请求命中了规则。您可以通过WAF日志,查询命中当前规则的请求,分析规则的防护效果(例如,是否有误拦截等)。
      注意 只有开通日志服务,您才可以使用日志查询功能。更多信息,请参见开启WAF日志服务

      观察模式方便您试运行首次配置的规则,待确认规则没有产生误拦截后,再将规则设置为拦截模式。

    说明 您可以通过安全报表,查询拦截类、观察类防护规则的命中详情。更多信息,请参见安全报表
    生效对象 从已添加的防护对象及对象组中,选择要应用该模板的防护对象防护对象组

    一个防护对象或对象组只能关联到当前防护模块下的一个模板。

    关于添加防护对象和对象组的具体操作,请参见管理防护对象管理防护对象组

  6. 单击确定
    成功创建规则模板后,您可以在扫描防护区域,查看新建的规则模板及应用该模板的防护对象/组的数量。

    新建的规则模板默认开启。您可以通过模板开关,开启或关闭模板;或对规则模板执行编辑删除操作。单击左侧的展开图标 图标,可以展开模板包含的规则列表。

    扫描防护规则模板

规则配置说明

新建或编辑扫描防护规则模板时,您可以配置以下扫描防护规则:
  • 高频扫描封禁
    规则释义:如果某个攻击源(通过统计和封禁对象参数设置攻击源类型)在短时间(通过检测时间范围设置)内,频繁触发当前防护对象下的基础防护规则(攻击次数大于基础防护规则触发参数指定的次数,并且触发的不同规则的数量大于触发规则数大于参数指定的次数),则将该攻击源拉入到黑名单,在一段时间(通过封禁时间设置)内拦截、观察其所有请求。高频攻击封禁

    规则配置参数如下表所示。

    配置项 说明
    统计和封禁对象 选择要统计的攻击源的类型。可选项:
    • 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等)的请求,无参数需要配置。