精准访问控制策略_Web应用防火墙_如何配置精准访问防护规则

Web应用防火墙(Web Application Firewall,WAF),通过对HTTP(S)请求进行检测,识别并阻断SQL注入、跨站脚本攻击、网页木马上传、命令/代码注入、文件包含、敏感文件访问、第三方应用漏洞攻击、CC攻击、恶意爬虫扫描、跨站请求伪造等攻击,保护Web服务安全稳定。

精准访问防护策略可对HTTP首部、Cookie、访问URL、请求参数或者IP进行条件组合,定制化防护策略,为用户的网站带来更精准的防护。

应用场景:精准访问防护支持业务场景定制化的防护策略,可用于盗链防护、网站管理后台保护等场景。

● 本指南引导您快速通过Web应用防火墙服务配置精准访问防护规则。

精准访问防护规则,为您的网站带来更精准的防护

如何配置精准访问防护规则?

精准访问防护策略可对HTTP首部、Cookie、访问URL、请求参数或者客户端IP进行条件组合,定制化防护策略,为您的网站带来更精准的防护。

● 精准访问防护规则允许您设置访问防护规则,对常见的HTTP字段(如IP、路径、Referer、User Agent、Params等)进行条件组合,用来筛选访问请求,并对命中条件的请求设置仅记录、放行或阻断操作。

● 精准访问防护规则可以添加引用表,引用表防护规则对所有防护域名都生效,即所有防护域名都可以使用精准防护规则的引用表。

前提条件

● Web应用防火墙WAF已添加防护网站。

○ 云模式的接入方式参见网站接入WAF(云模式)章节。

○ 独享模式的接入方式参见网站接入WAF(独享模式)章节。

约束条件

● 入门版不支持该功能。

● 标准版不支持“全检测”检测模式。

● 标准版不支持配置Response字段。

● 标准版不支持引用表管理功能。

● 目前以下区域支持配置Response字段:华北-北京一、华北-北京四、华东-上海一、华南-广州、华东-上海二、中国-香港、亚太-曼谷

● 添加或修改防护规则后,规则生效需要等待几分钟。规则生效后,您可以在“防护事件”页面查看防护效果。

● 当精准访问防护规则的“防护动作”设置为“阻断”时,您可以配置攻击惩罚标准。配置攻击惩罚后,如果访问者的IP、Cookie或Params恶意请求被拦截时,WAF将根据攻击惩罚设置的拦截时长来封禁访问者。

操作步骤

1.登录华为云管理控制台

2.单击管理控制台左上角的,选择区域或项目。

3.单击页面左上方,选择“安全与合规 > Web应用防火墙 WAF”

4.在左侧导航树中,选择“网站设置”,进入“网站设置”页面。

5.(旧版)在目标域名所在行的“防护策略”栏中,单击“配置防护策略”,进入“防护策略”页面。

6.(新版)在目标域名所在行的“防护策略”栏中,单击“已开启N项防护”,进入“防护策略”页面。

图1 域名列表

7.在“精准访问防护”配置框中,用户可根据自己的需要更改“状态”,单击“自定义精准访问防护规则”,进入精准访问防护规则配置页面。

8.在“精准访问防护配置”页面,设置“检测模式”,如图3所示。

精准访问防护规则提供了两种检测模式:

短路检测:当用户的请求符合精准防护中的拦截条件时,便立刻终止检测,进行拦截。

全检测:当用户的请求符合精准防护中的拦截条件时,不会立即拦截,它会继续执行其他防护的检测,待其他防护的检测完成后进行拦截。

图3 检测模式

9.在“精准访问防护配置”页面左上角,单击“添加规则”。

10.在弹出的对话框中,根据表1和配置示例-拦截特定的攻击请求添加精准访问防护规则。

以图4的配置为例,其含义为:当用户访问目标域名下包含“/admin”的URL地址时,WAF将阻断该用户访问目标URL地址。

须知:

如果不确定配置的精准访问防护规则是否会使WAF误拦截正常的访问请求,您可以先将精准访问防护规则的“防护动作”设置为“仅记录”,在“防护事件”页面查看防护事件,确认WAF不会误拦截正常的访问请求后,再将该精准访问防护规则的“防护动作”设置为“阻断”。

图4 添加精准访问防护规则

表1 规则参数说明

参数
参数说明
取值样例

防护动作

可选择“阻断”、“放行”或者“仅记录”,默认为“阻断”

“阻断”

攻击惩罚

“防护动作”设置为“阻断”时,您可以设置攻击惩罚标准。设置攻击惩罚后,当访问者的IP、Cookie或Params恶意请求被拦截时,WAF将根据惩罚标准设置的拦截时长来封禁访问者。

长时间IP拦截

生效时间

用户可以选择“立即生效”或者自定义设置生效时间段。

自定义设置的时间只能为将来的某一时间段。

“立即生效”

条件列表

单击“添加”增加新的条件,一个防护规则至少包含一项条件,最多可添加30项条件,多个条件同时满足时,本条规则才生效。

条件设置参数说明如下:

• 字段

• 子字段:当字段选择“IP”、“Params”、“Cookie”、“Response Header”或者“Header”时,请根据实际使用需求配置子字段。

须知:子字段的长度不能超过2048字节,且只能由数字、字母、下划线和中划线组成。

• 逻辑:在“逻辑”下拉列表中选择需要的逻辑关系。

说明:

○ 选择“包含任意一个”、“不包含所有”、“等于任意一个”、“不等于所有”、“前缀为任意一个”、“前缀不为所有”、“后缀为任意一个”或者“后缀不为所有”时,“内容”需要选择引用表名称,创建引用表的详细操作请参见创建引用表

○ “不包含所有”、“不等于所有”、“前缀不为所有”、“后缀不为所有”是指当访问请求中字段不包含、不等于、前/后缀不为引用表中设置的任何一个值时,WAF将进行防护动作(阻断、放行或仅记录)。例如,设置“路径”字段的逻辑为“不包含所有”,选择了“test”引用表,如果“test”引用表中设置的值为test1、test2和test3,则当访问请求的路径不包含test1、test2或test3时,WAF将进行防护动作。

• 内容:输入或者选择条件匹配的内容。

说明:具体的配置请参见表2

• “路径”包含“/admin/”

• “User Agent”前缀不为“mozilla/5.0”

• “IP”等于“192.168.2.3”

• “Cookie[key1]”前缀不为“jsessionid”

优先级

设置该条件规则检测的顺序值。如果您设置了多条规则,则多条规则间有先后匹配顺序,即访问请求将根据您设定的精准访问控制规则优先级依次进行匹配,优先级较小的精准访问控制规则优先匹配。

您可以通过优先级功能对所有精准访问控制规则进行排序,以获得最优的防护效果。

须知:如果多条精准访问控制规则的优先级取值相同,则WAF将根据添加防护规则的先后顺序进行排序匹配。

5

规则描述

可选参数,设置该规则的备注信息。

--

表2 条件列表配置

更多条件,详情请查看配置精准访问防护规则-条件列表配置

字段
子字段
逻辑
内容(举例)

路径:设置的防护路径,不包含域名,仅支持精准匹配(需要防护的路径需要与此处填写的路径完全相等。例如,需要防护的路径为“/admin”,该规则必须填写为“/admin”)

--

在“逻辑”下拉列表框中选择逻辑关系。

/buy/phone/

须知:路径设置为“/”时,表示防护网站所有路径。

User Agent:设置为需要防护的扫描器的用户代理。

--

“逻辑”下拉列表框中选择逻辑关系。

Mozilla/5.0 (Windows NT 6.1)

IP:设置为需要防护的访问者IP地址。

支持IPv4和IPv6两种格式的IP地址。

须知:仅专业版(原企业版)和铂金版(原旗舰版)支持IPv6防护。

• 客户端IP

• X-Forwarded-For

“逻辑”下拉列表框中选择逻辑关系。

• IPv4,例如:192.168.1.1

• IPv6,例如:fe80:0000:0000:0000:0000:0000:0000:0000

Params:设置为需要防护的请求参数。

• 所有字段

• 任意子字段

• 自定义

“逻辑”下拉列表框中选择逻辑关系。

201901150929

Referer:设置为需要防护的自定义请求访问的来源。

例如:防护路径设置为“/admin/xxx”,若用户不希望访问者从“www.test.com”访问该页面,则“Referer”对应的“内容”设置为“http://www.test.com”。

--

“逻辑”下拉列表框中选择逻辑关系。

http://www.test.com

Cookie:根据Cookie区分的Web访问者。

• 所有字段

• 任意子字段

• 自定义

在“逻辑”下拉列表框中选择逻辑关系。

jsessionid

Header:设置为需要防护的自定义HTTP首部。

• 所有字段

• 任意子字段

• 自定义

“逻辑”下拉列表框中选择逻辑关系。

text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8

Method:需要防护的自定义请求的方法。

--

“逻辑”下拉列表框中选择逻辑关系。

GET、POST、PUT、DELETE、PATCH

Request Line:需要防护的自定义请求行的长度。

--

“逻辑”下拉列表框中选择逻辑关系。

50

Request:需要防护的自定义请求的长度。包含请求头、请求行、请求体。

--

“逻辑”下拉列表框中选择逻辑关系。

--

Protocol:需要防护的请求的协议。

--

“逻辑”下拉列表框中选择逻辑关系。

http

Response Code:请求返回的状态代码。

--

• 等于

• 不等于

• 等于任意一个

• 不等于所有

404

11.单击“确认添加”,添加的精准访问防护规则展示在精准访问防护规则列表中。

规则添加成功后,默认的“规则状态”为“已开启”,若您暂时不想使该规则生效,可在目标规则所在行的“操作”列,单击“关闭”。

若需要修改添加的精准访问防护规则时,可单击待修改的精准访问防护规则所在行的“修改”,修改精准访问防护规则。

若需要删除添加的精准访问防护规则时,可单击待删除的精准访问防护规则所在行的“删除”,删除精准访问防护规则。

配置示例1-拦截特定的攻击请求

通过分析某类特定的WordPress反弹攻击,发现其特征是User-Agent字段都包含WordPress,如图6所示。

图6 WordPress反弹攻击

因此,可以设置精准访问控制规则,拦截该类WordPress反弹攻击请求。

配置示例2-拦截特定的URL请求

如果您遇到有大量IP在访问某个特定且不存在的URL,您可以通过配置以下精准访问防护规则直接阻断所有该类请求,降低源站服务器的资源消耗,如图8所示。

配置示例3-单独放行指定IP的访问

配置两条精准访问防护规则,一条拦截所有的请求,一条单独放行指定IP的访问。

防护效果

假如已添加域名“www.example.com”,且配置了如图4所示的精准访问防护规则。可参照以下步骤验证防护效果:

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

● 不能正常访问,参照步骤四:域名接入配置章节重新完成域名接入。

● 能正常访问,执行2

2.清理浏览器缓存,在浏览器中访问“http://www.example.com/admin”页面或者包含/admin的任意页面,正常情况下,WAF会阻断满足条件的访问请求,返回拦截页面。

3.返回Web应用防火墙控制界面,在左侧导航树中,单击“防护事件”,进入“防护事件”页面,查看防护域名拦截日志,您也可以下载防护事件数据

精准访问防护常见问题

精准访问防护常见问题

  • 精准访问防护规则可以设置在指定的时间段生效吗?

    Web应用防火墙WAF不支持精准防护访问规则在指定的时间段生效。

    您可以通过设置精准访问防护规则,对常见的HTTP字段(如IP、路径、Referer、User Agent、Params等)进行条件组合,筛选访问请求,并对命中条件的请求设置放行或阻断操作。

    有关配置精准访问防护规则的详细操作,请参见配置精准访问防护规则

  • 哪些情况会造成WAF配置的防护规则不生效?

    域名成功接入WAF后,正常情况下,域名的所有访问请求流量都会经过WAF检测并转发到服务器。但是,如果网站在WAF前使用了CDN,对于静态缓存资源的请求,由于CDN直接返回给客户端,请求没有到WAF,所以这些请求的安全策略不会生效。