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

背景信息

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

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

为普通PC页面或H5页面启用验证码是防护重点接口最简单和有效的防护手段。通常来说,接入验证码服务需要您在业务代码中做少许改动,一般一至二个工作日即可完成。一般的验证码能够有效拦截使用简单工具脚本发起的接口直接调用;但随着黑灰产攻击手段和攻击工具的进化,普通的验证码越来越容易被绕过。当您需要更高强度的攻防对抗时,建议您选择专业的验证码服务,例如阿里云验证码服务。

阿里云验证码服务基于阿里巴巴集团多年来对抗黑灰产的经验所形成的一套完整的人机识别和风控体系,提供包括无痕验证在内的多种验证方式,帮助您有效对抗职业黑灰产的攻击,同时避免对正常用户的干扰。推荐您前往人机验证在线体验页面,直观感知产品功能。

使用SDK签名(适用于APP)

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

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

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

爬虫风险管理服务提供频次限制功能,以下是频次限制规则的配置示例。更多信息,请参见爬虫风险管理

频次限制

分析异常的请求特征

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

  • HTTP Header不完整。例如缺失referer、cookie、content-type等字段。
  • User-agent的值异常。例如对于普通Web站点的请求中出现大量Java或是Python的UA特征;或者对于微信小程序应用的请求中出现大量桌面版PC浏览器的UA特征等。
  • Cookie不完整。一般的应用都会有多个具备业务含义的cookie,例如SessionID、userid、deviceid、lastvisit等,而爬虫程序在编写的时候有可能只会提交获取结果所必需的一到二个cookie,而忽略其他看似“没用”的cookie。
  • 参数内容异常。类似cookie异常,有些参数对于爬虫来说意义不大,缺失或者重复提交都不影响获取结果,这也可以作为同一类异常来处理。
  • 业务字段异常。例如邮箱、手机号、账户信息中包含某一些异常或不合理的关键字等。

WAF和爬虫风险管理中内置SLS日志服务,帮助您方便快速地分析请求特征,例如Top IP排序、某一特征在整体流量中的占比等。更多信息,请参见常用日志查询分析语句

开启撞库/爬虫威胁情报

爬虫风险管理将基于阿里云全网流量监测到的有撞库行为聚集的恶意IP通过算法提取出来,形成撞库IP情报库,并动态更新。您可以在爬虫风险管理 > 威胁情报中,一键开启撞库IP检测(观察模式)或是对命中的IP进行拦截、人机识别等处置。更多信息,请参见爬虫情报

威胁情报

使用安全托管服务

如果上述解决方案都不能满足您的防护需求,或者防护效果不够理想,或是您希望有专业的安全团队直接帮助您解决问题,推荐您使用安全托管服务。阿里云提供专业的攻防技术团队,根据您的具体业务场景和需求来定制防护方案,并提供实时的分析、监控、攻防对抗,最大程度地保证防护效果。