Web应用防火墙(WAF)的账户安全功能为您提供账户风险的识别能力。本文针对如何防护账户风险给出不同攻击场景和业务场景下的防护建议,指导您更好地保护自己业务中与账户关联的接口。

背景信息

WAF支持账户安全检测,在Web攻击防护基础上帮助您识别与账户关联的业务接口(例如注册、登录接口等)上发生的账户安全风险事件,具体包括撞库、暴力破解、垃圾注册、弱口令嗅探和短信验证码接口滥刷。配置WAF账户安全检测后,您可以在WAF安全报表中查看相关检测结果。更多信息,请参见设置账户安全

使用验证码(适用于普通网页或H5)

为普通PC页面或H5页面启用验证码是防护重点接口的最简单和有效的手段。接入验证码服务通常需要您在业务代码中做少许改动,一般一至二个工作日即可完成。

一般的验证码能够有效拦截使用简单工具脚本发起的接口直接调用,但随着黑灰产攻击手段和攻击工具的进化,普通的验证码越来越容易被绕过。当您需要更高强度的攻防对抗时,建议您选择专业的验证码服务。

使用SDK签名(适用于App)

对于不适合使用验证码的原生App,阿里云提供了一套SDK方案。SDK方案通过采集移动端的各种硬件信息、环境信息,并且对请求进行签名和验签,确保只有通过合法的官方App(而不是来自脚本、自动化程序、模拟器等非正常途径)发出来的请求才会被放行回源站。

说明 您必须先开通Web应用防火墙的App防护模块,才能使用SDK方案。更多信息,请参见App防护概述

多维度的频次限制(适用于高频攻击)

对于攻击请求中包含某个高频特征字段(例如IP、session、cookie、参数、header等)的行为,您可以使用多维度的频次限制,将攻击源拉黑。例如,当攻击请求使用大量代理、秒拨IP,但复用同一个登录态的cookie(例如uid)时,您可以基于cookie设置限速,这样就将防护对象由原始的IP转变为跟业务逻辑有关的“账号”维度。

推荐您使用WAF自定义防护策略中的频率设置,以下是频率设置的配置示例。具体操作请参见设置自定义防护策略
说明 只有旗舰版的Web应用防火墙实例支持在频率设置中使用除IP和Session外的自定义统计对象字段,例如自定义cookie、自定义header、自定义参数。
cookie统计

分析异常的请求特征

对于绝大部分攻击,通过细心观察和分析,总会发现攻击请求与正常用户请求在特征上的差异。以下是一些常见的异常请求特征,供您参考。

  • HTTP Header不完整。例如缺失referer、cookie、content-type等字段。
  • User-agent的值异常。例如对于普通Web站点的请求中出现大量Java或是Python的UA特征,或者对于微信小程序应用的请求中出现大量桌面版PC浏览器的UA特征等。
  • Cookie不完整。一般的应用都会有多个具备业务含义的cookie,例如SessionID、userid、deviceid、lastvisit等,而爬虫程序在编写的时候有可能只会提交获取结果所必需的一到二个cookie,而缺少其他具有业务含义的cookie。
  • 参数内容异常。类似cookie异常,有些参数对于爬虫来说意义不大,缺失或者重复提交都不影响获取结果,这也可以作为同一类异常来处理。
  • 业务字段异常。例如邮箱、手机号、账户信息中包含某一些异常或不合理的关键字等。
推荐您使用WAF日志服务进行日志查询,方便您快速地分析请求特征,例如Top IP排序、某一特征在整体流量中的占比等。
说明 您必须先开通Web应用防火墙的日志服务模块,才能使用日志服务。更多信息,请参见开通WAF日志服务

开启撞库、爬虫威胁情报

WAF的Bot管理模块将基于阿里云全网流量监测到的有撞库行为聚集的恶意IP通过算法提取出来,形成撞库IP情报库,并动态更新。您可以使用Bot管理模块的爬虫威胁情报功能,一键开启撞库IP检测(观察模式)或是对命中的IP进行拦截、滑块验证等处置。更多信息,请参见设置爬虫威胁情报规则

说明 您必须先开通Web应用防火墙的Bot管理模块,才能使用爬虫威胁情报功能。
威胁情报