全部产品
Search
文档中心

Web 应用防火墙:设置数据风控

更新时间:Feb 05, 2024

网站接入Web应用防火墙(Web Application Firewall,简称WAF)后,您可以为其开启数据风控功能。数据风控帮助防御网站关键业务(例如注册、登录、活动、论坛)中可能发生的机器爬虫欺诈行为。本文介绍如何设置数据风控的防护策略。

背景信息

数据风控基于阿里云的大数据能力,通过风险决策引擎,结合人机识别技术,防止各类场景的关键业务欺诈行为。您只需将业务接入WAF即可使用数据风控功能,且无需在服务器或客户端进行任何改造。

数据风控支持防护的场景包括但不限于以下内容:垃圾注册、短信验证码滥刷、撞库、暴力破解、恶意抢购、秒杀、薅羊毛、抢红包、机器人抢票、刷票、恶意投票、垃圾消息。

下图描述了数据风控的工作流程。关于接入数据风控的应用场景示例和实际效果,请参见数据风控应用示例

image

兼容性说明

数据风控仅适用于网页或H5环境。在某些情况下,可能存在页面中插入的用于安全防护的JS插件与原页面不兼容的问题,导致数据风控的滑块验证功能出现异常。目前,常见的存在不兼容问题的页面包括:

  • 访问者可以直接通过URL地址访问的静态页面,例如各种通过HTML直接展示数据的详情页、分享页、网站首页、文档页等,页面跳转方式为直接修改location.href和使用window.open<a>标签的页面。

  • 业务代码重写页面的请求发送方法或自定义请求提交,例如重写表单提交、重写XHR、自定义ajax提交等情况。

  • 业务代码中存在hook相关请求提交的内容。

如果您的业务中可能存在不兼容问题,建议您在接入数据风控功能初期,选用预警模式并结合Web应用防火墙的实时日志分析服务进行兼容性和效果测试。更多信息,请参见日志服务概述

关于原生App业务的防护,建议您使用App增强防护SDK方案。更多信息,请参见设置App防护

前提条件

  • 已开通Web应用防火墙实例,且实例满足以下要求:

    • 实例地域是中国内地

    • 实例开启了Bot管理模块。

  • 已完成网站接入。具体操作,请参见使用教程

重要

WAF已上线防爬场景化配置功能,支持您基于实际业务场景对防爬规则进行定制,从而更有针对性地对业务进行爬虫风险防护。如果您有网站防爬的需求,建议您直接使用防爬场景化配置功能。配置防爬场景化规则后,无需再设置数据风控规则,即可实现网页防爬的效果。此外,数据风控功能已不再维护和更新,为您带来的不便,敬请谅解。

操作步骤

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

  2. 在左侧导航栏,选择防护配置 > 网站防护

  3. 网站防护页面上方,切换到要设置的域名。切换域名

  4. 单击Bot管理页签,定位到数据风控区域,完成以下功能配置并单击前去配置

    参数

    说明

    状态

    开启或关闭数据风控。开启数据风控后,Web应用防火墙默认将在网站所有(或指定的)页面中插入JS插件用于安全防护,页面响应内容将以非GZIP压缩方式进行传输。即使您的网站配置使用非标端口访问,也无需添加额外配置。

    说明
    • 您必须先开启数据风控,才能调整防护模式和设置防护规则。

    • 数据风控开启后,所有网站请求默认都会经过数据风控规则的检测。您可以通过设置Bot管理白名单,让满足条件的请求忽略数据风控规则的检测。更多信息,请参见设置Bot管理白名单

    模式

    数据风控的防护模式。可选值:

    • 强拦截:识别到业务攻击时,网站将被重定向至验证页面进行严格的二次验证。

    • 拦截:识别到业务攻击时,网站将被重定向至验证页面进行二次验证。

    • 告警:识别到业务攻击时,只记录风险日志、不进行拦截,可通过业务风控报表查看详细风险情况。

      说明

      默认使用预警模式,数据风控不会对任何请求进行拦截,但依然会在静态页面中插入JS脚本分析客户端行为。

  5. 添加数据风控防护规则。

    1. 数据风控页面,单击防护请求页签,并单击新增防护请求

    2. 新增防护请求对话框,输入防护请求URL。更多信息,请参见什么是防护请求URL

    3. 单击确定

    防护请求添加成功后,10分钟左右生效。您可以在防护请求列表中查看新增的防护请求,并根据需要编辑或删除防护请求。

  6. 可选:指定JS插入页面。

    由于部分页面前端代码与数据风控的JavaScript脚本可能存在兼容性问题。如果遇到此类问题,建议您通过指定页面插入JS功能仅添加部分页面进行安全防护。

    说明

    仅在部分页面插入JS插件时,数据风控将可能无法获取完整的用户访问行为,并对最终的防护效果产生影响。

    1. 数据风控页面,单击JS插入页面页签。

    2. 选中指定页面插入JS,并单击添加页面

      说明

      最多支持添加20个页面地址。

    3. 添加URL对话框,输入要插入JS的页面的地址(必须以“/”开头),并单击确定

    成功添加URL后,数据风控将仅在您所添加的URL路径下的页面中插入JS插件。

开启数据风控后,您可以使用Web应用防火墙的日志服务功能查看防护结果。相关操作,请参见查看防护结果

什么是防护请求URL

防护请求URL是执行业务动作的接口地址,而不是页面本身的URL地址。例如,注册页面本身的URL地址为www.aliyundoc.com/new_user,获取验证码按钮对应的业务接口地址是www.aliyundoc.com/getsmscode,注册按钮对应的业务接口地址是www.aliyundoc.com/register.do

这种情况下,您应该为获取验证码按钮的接口地址www.aliyundoc.com/getsmscode和注册按钮对应的接口地址www.aliyundoc.com/register.do分别添加防护请求,并设置为防护请求URL,防止验证码的短信接口被刷和垃圾注册风险。如果将注册页面地址www.aliyundoc.com/new_user设置为防护请求URL,当正常用户访问该页面时也将收到滑块验证提示,影响用户体验。

设置防护请求URL时,请注意以下信息:

  • 防护请求URL必须精确到实际请求URL,不支持模糊匹配。

    例如,将www.aliyundoc.com/test设置为防护请求URL,则数据风控只匹配test路径的访问请求,不会匹配test路径下所有页面的访问请求。

  • 数据风控支持对网页目录进行防护。

    例如,您将防护请求URL设置为www.aliyundoc.com/book/*,即可对www.aliyundoc.com/book路径下所有页面的请求实现数据风控防护。但是,不建议您为全站配置防护。假如设置www.aliyundoc.com/*为防护请求URL,将导致用户访问网站首页时也需要通过滑块验证,影响用户体验。

  • 直接请求数据风控已防护的URL一定会触发滑块验证。因此,请确保所配置的防护请求URL在正常情况下不会被用户直接请求,即正常用户通常需要经过一系列的前置访问后才会请求该URL地址。

  • 直接调用API接口的场景不适合使用数据风控进行防护。由于API调用是直接发起的机器行为,无法通过数据风控的人机识别验证。但是,对于正常用户单击页面中的某按钮调用API接口的情况,可以通过数据风控功能进行防护。

查看防护结果

您可以使用Web应用防火墙的日志服务功能来排查数据风控的监控和拦截情况。

为域名开启日志采集后,您可以在日志查询页签,通过高级搜索功能下的数据风控筛选项,快速查询数据风控的监控和拦截情况。具体操作,请参见查询和分析日志

数据风控应用示例

阿里云用户小丁在互联网上搭建网站业务,网站域名是www.aliyundoc.com,普通用户可以通过www.aliyundoc.com/register.html注册成为网站会员。近来,小丁发现存在黑客通过一些恶意脚本频繁提交注册请求,并注册大量垃圾账户来参与网站的抽奖活动。所提交的请求与正常用户请求相似度很高,且请求频率不高,传统的CC攻击防护功能难以分辨出这些恶意请求。

配置示例

小丁将网站业务接入Web应用防火墙并为www.aliyundoc.com域名开启数据风控功能。小丁当前最关心的注册业务的请求URL是www.aliyundoc.com/register.html,因此将该URL设置为防护请求URL。

防护效果

防护配置生效后,数据风控通过在所有页面中插入的JS插件,观察并分析每一个访问www.aliyundoc.com网站域名(包括首页及其子路径)的用户的各种行为,判断是否存在异常。同时,结合阿里云的大数据信誉库判断访问源IP是否存在风险。

当用户向www.aliyundoc.com/register.html地址提交注册请求时,Web应用防火墙将基于该用户自开始访问该网站,到提交注册请求间的所有行为和环境征来判断用户是否可疑。例如,如果用户没有任何前置操作直接提交注册请求,则可基本判断该请求为可疑请求。具体说明如下:

  • 如果基于之前的行为,数据风控判断该请求来自正常用户,则该用户在注册过程中将无任何感知。

  • 当数据风控判断该请求为可疑请求,或者该访问源IP曾有不良记录,将通过滑块验证的方式验证用户身份。只有通过验证的用户,才能继续进行注册。

    如果通过滑块验证方式可疑(例如,使用脚本模仿真人滑动过程等),数据风控将继续通过其他方式再次进行验证,直到验证通过且通过方式可信。如果无法通过验证,数据风控将阻断该请求。

整个过程中,由于数据风控是针对整个网站域名(www.aliyundoc.com)开启的,数据风控需要对该域名下的所有页面插入JS插件来判断用户行为是否可信。而真正的防护和验证,仅针对www.aliyundoc.com/register.html注册接口URL生效,只有在提交注册请求时数据风控才会对请求进行干涉。