全部产品
Search
文档中心

Web应用防火墙:开通和配置Bot管理

更新时间:Jan 18, 2023

如果您的业务存在因自动化工具(例如脚本、模拟器等)造成网站数据被爬取、业务作弊或欺诈、撞库或垃圾注册、恶意秒杀或褥羊毛、短信接口滥刷等情况,您可以配置Bot管理基础防护规则、网页防爬场景化规格、App防爬场景化规则,缓解核心数据资产泄露和业务营销活动风险,降低服务器带宽费用和负载。本文介绍如何开通和配置Bot管理防护策略。

背景信息

Bot管理支持基础防护和场景化防护。

区别

基础防护

场景化防护

原理

基于四/七层流量指纹识别Bot流量,一键开启防护。

针对网页防爬场景和App防爬场景集成SDK,自定义防护规则,达到最佳的防护效果。

应用场景

适用于防护对象不明确或希望拦截较低级爬虫的通用防护场景。

适用于针对特定场景的精细化防护。

相关文档

创建基础防护规则

使用限制

通过ALB或MSE接入WAF的防护对象暂不支持该功能。

前提条件

开通Bot管理

  1. 登录Web应用防火墙3.0控制台。在顶部菜单栏,选择WAF实例的资源组和地域(中国内地非中国内地)。

  2. 在左侧导航栏,选择防护配置 > 场景防护 > BOT管理

  3. BOT管理页面,单击立即防护

  4. Web应用防火墙 3.0(包年包月) | 变配页面,开启Bot管理-Web防护Bot管理-APP防护,并完成支付。

    说明
    • 开启Bot管理-Web防护后,您可以配置Bot管理基础防护规则、网页防爬场景化规则。

    • 开启Bot管理-APP防护后,您可以配置Bot管理基础防护规则、App防爬场景化规则。

    • 如果您需要同时配置Bot管理基础防护规则、网页防爬场景化规则、App防爬场景化规则,您可以同时开启Bot管理-Web防护Bot管理-APP防护

创建基础防护规则

Bot管理基础防护不提供默认规则模板。如果您需要启用该功能,必须新建一个规则模板。

说明

基础防护基于四/七层流量指纹识别Bot流量,您无需自定义防护规则,仅需要设置防护动作和生效对象,即可一键开启Bot防护。

  1. 登录Web应用防火墙3.0控制台。在顶部菜单栏,选择WAF实例的资源组和地域(中国内地非中国内地)。

  2. 在左侧导航栏,选择防护配置 > 场景防护 > BOT管理

  3. 基础防护页签,单击新建模板

  4. 新建模板 - Bot管理面板,完成如下配置后,单击确定

    配置项

    说明

    模板信息

    为该模板设置一个名称。

    长度为1~255个字符,支持中文和大小写英文字母,可包含数字、半角句号(.)、下划线(_)和短划线(-)。

    模板介绍

    为该模板填写相关介绍信息。

    规则动作

    为该防护规则配置处置动作为拦截观察

    生效对象

    从已添加的防护对象及对象组中,选择要应用该模板的防护对象和防护对象组。

    一个防护对象或对象组只能关联到当前防护模块下的一个模板。关于添加防护对象和对象组的具体操作,请参见防护对象和防护对象组

    新建的规则模板默认开启。您可以在基础防护页签的规则模板卡片区域执行如下操作:

    • 查看模板包含的规则ID。

      说明

      一个基础防护模板包含三个规则ID,包括两个白名单规则ID、一个ALC和CC防护规则组成的规则ID。您可以通过该规则ID,在安全报表查看防护效果。具体操作,请参见安全报表

    • 编辑删除规则模板。

    • 通过模板开关,开启或关闭模板。

    • 查看模板的规则动作和关联的防护对象/组数量。

创建网页防爬场景化防护规则

如果您的实际业务通过浏览器访问网页或H5页面(包括App中使用的H5页面)等,您可以创建网页防爬场景化防护模板,自定义防护规则,防御网页爬虫。

  1. 登录Web应用防火墙3.0控制台。在顶部菜单栏,选择WAF实例的资源组和地域(中国内地非中国内地)。

  2. 在左侧导航栏,选择防护配置 > 场景防护 > BOT管理

  3. 场景化防护页签,单击新建模板

  4. 防护场景定义配置向导页面,完成如下配置后,单击下一步

    配置项

    说明

    模板名称

    为该模板设置一个名称。

    长度为1~255个字符,支持中文和大小写英文字母,可包含数字、半角句号(.)、下划线(_)和短划线(-)。

    模板介绍

    为该模板填写相关介绍信息。

    防护目标类型

    选择网页/浏览器,表示防护通过浏览器访问的网页或H5页面(包括App中使用的H5页面)等。

    Web SDK集成

    自动集成(推荐)

    采用基于JavaScript的Web SDK,提升Web浏览器场景下的防护效果,避免部分不兼容问题。

    开启该功能后,WAF将自动在防护对象的HTML页面中引用SDK。采集相关的浏览器信息、特定攻防探针、操作行为等(不涉及个人敏感信息)后,WAF将根据获取的信息请求风险识别和拦截。

    如果您从另一个域名发起对当前防护目标的访问请求,则需在防护目标有来自其它防护对象的跨域调用的下拉列表中选择跨域访问的来源域名。例如,您通过域名B下某页面调用当前域名A的登录接口,则需在防护目标有来自其它防护对象的跨域调用选择跨域访问的B域名。

    手动集成

    若当前环境不适用自动集成,您可以采用手动集成。您可以单击获取SDK链接,获取script节点,并将其置于页面上所有其他script节点之前以保证最先加载。

    重要

    通过ALB或MSE接入WAF的防护对象暂不支持自动集成Web SDK,需要手动集成。具体操作,请参见部署方式

    更多信息,请参见Web应用集成SDK

    防护目标特征

    添加目标流量的HTTP请求字段及其规则,即访问该防护目标时,HTTP请求报文中生成的有关该防护业务场景的字段内容。最多可以添加5个条件特征,且各条件之间为与关系。有关字段的详细内容,请参见匹配条件说明

  5. 防护规则推荐向导页面,完成如下配置后,单击下一步

    配置项

    说明

    合法Bot管理

    勾选搜索引擎蜘蛛白名单后,选择合法搜索引擎白名单。

    启用规则后,来自相关搜索引擎的合法爬虫IP将被直接放行,不经过Bot管理模块的防护检测。

    Bot特征识别

    简单脚本过滤(JavaScript挑战)

    开启此开关后,对访问防爬防护目标的客户端进行JS校验,过滤不支持JS校验的来自非浏览器类工具的流量,阻断简单脚本类攻击。

    高级Bot防御(动态令牌挑战)

    开启此开关后,对每一次请求数据进行签名验证,不能通过验签的请求将被拦截。可选项:

    • 签名验证异常(必选):指未携带签名或者签名非法时,请求将被拦截。

    • 签名时间戳异常:指签名时间戳异常时,请求将被拦截。

    • WebDriver攻击:指遭遇WebDriver攻击时,请求将被拦截。

    Bot行为识别

    AI智能防护

    勾选AI智能防护后,需要设置识别的Bot行为为观察滑块校验

    开启此开关后,防爬规则会通过AI智能防护引擎对访问流量进行分析和自动学习,生成有针对性的防护规则或黑名单。

    自定义限速

    开启此开关后,可自定义访问频率限制条件,有针对性地对访问频率过高的爬虫请求进行过滤,有效缓解CC攻击。

    • IP限速(默认)

      统计时长内,来自同一IP地址的访问次数超过指定阈值时,在限速时间内,对来自该IP的访问请求执行滑块拦截观察限速动作。最多可以设置3个条件,且条件之间为或关系。

    • 自定义会话限速

      选择会话类型后,设置在统计时长内,来自同一会话的访问次数超过指定阈值时,在限速时间内,对该会话执行滑块拦截观察限速动作。最多可以设置3个条件,且条件之间为或关系。

    Bot威胁情报

    爬虫威胁情报库

    收录一段时间内在阿里云上对多个用户有多次恶意爬取行为的攻击源IP,并对其执行观察滑块校验处置。

    IDC黑名单封禁

    开启此开关后,如果攻击源IP来自选中IP库,则对其执行观察滑块校验拦截处置。

    如果您使用公有云或IDC机房的源IP来访问,请注意加白已知的合法调用,如支付宝或微信的支付回调、监控程序等。

    伪造蜘蛛拦截

    开启此开关后,将拦截合法Bot管理中所有搜索引擎的User-Agent,已开启白名单的搜索引擎对应的合法客户端IP将被放行。

  6. 生效范围向导页面,完成如下配置后,单击下一步

    配置项

    说明

    生效对象

    选中需要应用的防护对象或防护对象组,单击移入图标,将该防护对象或防护对象组移入已选择对象区域内。

    生效时间

    您需要为已选择的防护规则设置生效时间,支持单个修改或批量修改。可选项:

    永久生效(默认)

    防护模板开启时,规则永久生效。

    按时间段生效

    您可以将具体某一时区的一段时间设置为防护规则的生效时间。

    按周期生效

    您可以将具体某一时区的每一天的一段时间设置为防护规则的生效时间。

  7. 防护动作验证向导页面,测试防爬防护规则。

    建议您先完成防护动作验证,再发布策略,避免出现因规则配置错误、兼容性等问题引发误拦截。如果您确认规则配置无误,也可以单击左下角跳过,直接创建

    验证步骤如下:

    一:填写公网测试IP

    填写您测试设备(PC或手机)的公网IP。防爬规则验证测试仅针对该公网IP生效,不会对您的业务产生影响。

    重要

    请不要填写通过ipconfig查询的IP地址(即内网IP地址)。如果不确定您设备的公网IP,可以通过在线IP查询工具查询。

    二:选择动作进行测试

    防护规则推荐中已配置规则所涉及到的防护动作(可选JS校验防护效果验证动态令牌验证滑块验证拦截验证)生成一条只针对您测试IP生效的测试规则,验证防护动作的执行结果。

    在测试动作模块上单击去测试后,WAF会将防护策略即刻下发到测试设备,同时为您展示测试效果演示图和说明,建议您仔细阅读。

    完成测试后,单击已完成测试进入下一步;如果测试结果异常,可单击返回去再准备一下,对照防爬策略测试常见问题,优化防爬规则后重新测试。

    新建的规则模板默认开启。您可以在场景化防护页签的规则模板卡片区域执行如下操作:

    • 单击规则模板卡片,查看该模板包含的规则信息。

    • 编辑删除规则模板。

    • 通过模板开关,开启或关闭模板。

    • 查看模板的规则动作和关联的防护对象/组数量。

创建App防爬场景化防护规则

如果您的实际业务是基于iOS或Android原生开发的App(不包括App中使用的H5页面)等,您可以创建App防爬场景化防护模板,自定义防护规则,防御App爬虫。

  1. 登录Web应用防火墙3.0控制台。在顶部菜单栏,选择WAF实例的资源组和地域(中国内地非中国内地)。

  2. 在左侧导航栏,选择防护配置 > 场景防护 > BOT管理

  3. 场景化防护页签,单击新建模板

  4. 防护场景定义配置向导页面,完成如下配置后,单击下一步

    配置项

    说明

    模板名称

    为该模板设置一个名称。

    长度为1~255个字符,支持中文和大小写英文字母,可包含数字、半角句号(.)、下划线(_)和短划线(-)。

    模板介绍

    为该模板填写相关介绍信息。

    防护目标类型

    选择网页/浏览器,表示对使用基于iOS或Android原生开发的App(不包括App中使用的H5页面)进行防护。

    App SDK集成

    WAF提供基于Native App(Android/iOS)的SDK用以提升该场景下的防护效果。SDK集成后将会采集客户端的风险特征并生成安全签名附带在请求中,WAF会根据签名特征进行请求风险的识别和拦截。

    您可以通过如下方式,集成App SDK:

    1. 获取iOS应用对应的SDK:请加入钉群(钉群号:34657699),联系产品技术专家进行咨询。

    2. 单击获取并复制appkey,用于发起SDK初始化请求。

    3. 集成App SDK。具体操作,请参见iOS应用集成SDK

    防护目标特征

    添加目标流量的HTTP请求字段及其规则,即访问该防护目标时,HTTP请求报文中生成的有关该防护业务场景的字段内容。最多可以添加5个条件特征,且各条件之间为与关系。有关字段的详细内容,请参见匹配条件说明

  5. 防护规则推荐向导页面,完成如下配置后,单击下一步

    配置项

    说明

    Bot特征识别

    • 识别规则

      APP签名异常

      默认勾选且不可关闭。WAF将检测App集成SDK后未携带签名或签名非法的请求。

      自定义加签字段

      开启此开关后,需要设置字段名,在cookie参数header中自定义加签字段。如果签名对象存在body超长、为空或特殊编码等情况,WAF可将签名内容用hash等方式处理后放在自定义的加签字段中,并按该内容验签。

      设备特征异常

      启用此项后,WAF会对具有异常特征的设备发起的请求进行检测和管控。

    • 防护动作

      您可根据需要为配置的Bot特征识别规则,设置处置动作为观察拦截严格滑块

    • 高级防护

      单击高级防护,进行如下设置:

      二次打包检测

      • 规则设置

        启用此项后,如果有不在合法包名和包签名白名单中的App请求,将被视为二次打包请求。您可以设置合法版本信息:

          指定合法包名:指定合法的App包名称。例如example.aliyundoc.com。

          包签名:指定需要验证对应的App包签名。如果需要验证,请加入钉群(钉群号:34657699),联系产品技术专家进行咨询。。如果无需验证对应的App包签名,则包签名项为空即可,WAF将只验证所设定的合法App包名称。

          重要

          包签名不是App证书签名。

        新增合法版本最多可添加5条,且包名称不允许重复,条件之间为或关系。

      • 防护动作

        您可根据需要为配置的二次打包检测规则,设置处置动作为观察拦截滑块严格滑块

      自定义特征策略

      当上述默认设备特征难以满足防护效果时,您可以单击自定义特征策略下的新增规则,完成如下配置:

      • 匹配条件最多支持5条,且配置多个匹配条件时,需要同时命中规则才会生效。自定义特征策略支持如下匹配字段:

        • eeid_is_root:表示是否为ROOT权限。

        • eeid_is_proxy:表示是否为代理。

        • eeid_is_simulator:表示是否为模拟器。

        • eeid_is_debugged:表示是否为调试。

        • eeid_is_hook:表示是否被hook。

        • eeid_is_virtual:表示是否为多开。

        • eeid_is_new:表示是否为新设备。

        • eeid_is_wiped:表示是否为疑似刷机。

        • eeid_short_uptime:表示是否开机时间过短。

        • eeid_abnormal_time:表示是否本机时间异常。

        • eeid_running_frame_xposed:表示是否为xposed。

        • eeid_running_frame_frida:表示是否为frida。

        • eeid_running_frame_cydia:表示是否为cydia。

        • eeid_running_frame_fishhook:表示是否为fishhook。

        • eeid_running_frame_va:表示是否为va框架。

        • eeid_running_frame_magisk:表示是否为magisk。

        • eeid_running_frame_edxposed:表示是否为edxposed框架。

        • eeid_umid:表示是否为设备umid值。

        • appname:表示应用名称。

        • packagename:表示包名。

        • appversion:表示应用版本号。

        • version:表示WAF SDK版本号。

        • brand:表示手机品牌。

        • model:表示手机型号。

        • product:表示产品代号。

        • manufacture:表示手机厂商。

        • hardware:表示硬件名称。

      • 规则动作:支持观察拦截滑块严格滑块

      最多添加10个条件,且条件之间为或关系。

    Bot行为识别

    勾选AI智能防护后,需要为被识别的Bot行为配置规则动作为观察滑块严格滑块

    开启此开关后,防爬规则会通过AI智能防护引擎对访问流量进行分析和自动学习,生成有针对性的防护规则或黑名单。

    Bot限速

    开启此开关后,可自定义访问频率限制条件,有针对性地对访问频率过高的爬虫请求进行过滤,有效缓解CC攻击。

    IP限速(默认)

    统计时长内,如果来自同一IP地址的访问次数超过指定阈值时,对来自该IP的访问请求执行拦截观察滑块严格滑块限速动作,处置时长为限速时间。最多可以设置3个条件,且条件之间为或关系。

    设备限速

    统计时长内,如果来自同一设备的访问次数超过指定阈值时,对来自该设备的访问请求执行拦截观察滑块严格滑块限速动作,处置时长为限速时间。最多可以设置3个条件,且条件之间为或关系。

    自定义会话限速

    设置会话类型后,在统计时长内,如果来自同一会话的访问次数超过指定阈值时,对来自该会话的访问请求执行拦截观察滑块严格滑块限速动作,处置时长为限速时间。最多可以设置3个条件,且条件之间为或关系。

    Bot威胁情报

    爬虫威胁情报库

    收录一段时间内在阿里云上对多个用户有多次恶意爬取行为的攻击源IP,并对其执行观察滑块严格滑块

    IDC黑名单封禁

    开启此开关后,如果攻击源IP来自选中IP库,则对其执行观察拦截滑块严格滑块

    如果您使用公有云或IDC机房的源IP来访问,请注意加白已知的合法调用,如支付宝或微信的支付回调、监控程序等。

  6. 生效范围向导页面,完成如下配置后,单击下一步

    配置项

    说明

    生效对象

    选中需要应用的防护对象或防护对象组,单击移入图标,将该防护对象或防护对象组移入已选择对象区域内。

    生效时间

    您需要为已选择的防护规则设置生效时间,支持单个修改或批量修改。可选项:

    永久生效(默认)

    防护模板开启时,规则永久生效。

    按时间段生效

    您可以将具体某一时区的一段时间设置为防护规则的生效时间。

    按周期生效

    您可以将具体某一时区的每一天的一段时间设置为防护规则的生效时间。

  7. 防护动作验证向导页面,测试防爬防护规则。

    建议您先完成防护动作验证,再发布策略,避免出现因规则配置错误、兼容性等问题引发误拦截。如果您确认规则配置无误,也可以单击左下角跳过,直接创建

    验证步骤如下:

    一:填写公网测试IP

    填写您测试设备(PC或手机)的公网IP。防爬规则验证测试仅针对该公网IP生效,不会对您的业务产生影响。

    重要

    请不要填写通过ipconfig查询的IP地址(即内网IP地址)。如果不确定您设备的公网IP,可以通过在线IP查询工具查询。

    二:选择动作进行测试

    防护规则推荐中已配置规则所涉及到的防护动作(可选拦截验证SDK签名验证)生成一条只针对您测试IP生效的测试规则,验证防护动作的执行结果。

    在测试动作模块上单击去测试后,WAF会将防护策略即刻下发到测试设备,同时为您展示测试效果演示图和说明,建议您仔细阅读。

    完成测试后,单击已完成测试进入下一步;如果测试结果异常,可单击返回去再准备一下,对照防爬策略测试常见问题,优化防爬规则后重新测试。

    新建的规则模板默认开启。您可以在场景化防护页签的规则模板卡片区域执行如下操作:

    新建的规则模板默认开启。您可以在场景化防护页签的规则模板卡片区域执行如下操作:

    • 单击规则模板卡片,查看该模板包含的规则信息。

    • 编辑删除规则模板。

    • 通过模板开关,开启或关闭模板。

    • 查看模板的规则动作和关联的防护对象/组数量。

  8. 防爬策略测试常见问题

    若在防护动作验证时出现异常情况,可参考表格解决对应问题。

    报错

    原因

    解决方法

    未查询到任何有效测试请求,您可以查看帮助文档或咨询我们以分析可能的原因。

    实际测试请求没有发送成功,或者没有发送到WAF。

    确认测试请求已经成功发送到WAF解析的地址。

    实际测试请求的字段内容与防爬规则中定义的防护目标特征不一致。

    在防爬策略中修改防护目标特征的内容。

    实际测试请求的源IP与配置策略中填写的公网测试IP不一致。

    请确保您使用的是正确的公网IP,建议直接使用诊断工具查询您的公网IP地址。

    请求未通过校验,您可以查看帮助文档或咨询我们以分析可能的原因。

    没有模拟真实用户访问,例如使用了调试模式、自动化工具等。

    测试时使用客户端真实模拟用户访问。

    防护场景选择错误,例如实际需要配置App防爬场景规则,但错选为网页/浏览器

    在防爬场景化规则中修改防护场景类型。

    访问请求存在跨域的情况,但在防爬场景化规则中未正确配置。

    修改防爬场景化规则,选中防护目标有来自其它域名的跨域调用并从下拉列表中选择跨域访问的来源域名。

    前端兼容性问题。

    请加入钉群(钉群号:34657699),联系产品技术专家进行咨询。

    请求未触发校验,您可以查看帮助文档或咨询我们以分析可能的原因。

    测试规则没有下发完毕。

    建议您多测试几次,等待防爬测试规则下发完成。

    未拦截且查询到任何有效测试请求,您可以查看帮助文档或咨询我们以分析可能的原因。

    实际测试请求没有发送成功,或者没有发送到WAF。

    确认测试请求已经成功发送到WAF解析的地址。

    实际测试请求的字段内容与防爬规则中定义的防护目标特征不一致。

    在防爬策略中修改防护目标特征的内容。

    实际测试请求的源IP与配置策略中填写的公网测试IP不一致。

    请确保您使用的是正确的公网IP,建议直接使用诊断工具查询您的公网IP地址。

    后续步骤

    您可以在安全报表页面,查询防护规则的执行记录。更多信息,请参见安全报表