Web应用防火墙(WAF)的账户安全功能为您提供账户风险的识别能力。本文针对如何防护账户风险给出不同攻击场景和业务场景下的防护建议,指导您更好地保护自己业务中与账户关联的接口。
背景信息
使用验证码(适用于普通网页或H5)
为普通PC页面或H5页面启用验证码是防护重点接口的最简单和有效的手段。接入验证码服务通常需要您在业务代码中做少许改动,一般一至二个工作日即可完成。
一般的验证码能够有效拦截使用简单工具脚本发起的接口直接调用,但随着黑灰产攻击手段和攻击工具的进化,普通的验证码越来越容易被绕过。当您需要更高强度的攻防对抗时,建议您选择专业的验证码服务,例如阿里云验证码服务。
阿里云验证码服务基于阿里巴巴集团多年来对抗黑灰产的经验所形成的一套完整的人机识别和风控体系,提供包括无痕验证在内的多种验证方式,帮助您有效对抗职业黑灰产的攻击,同时避免对正常用户的干扰。
更多信息,请参见人机验证在线体验页面。
使用SDK签名(适用于App)
对于不适合使用验证码的原生App,阿里云提供了一套SDK方案。SDK方案通过采集移动端的各种硬件信息、环境信息,并且对请求进行签名和验签,确保只有通过合法的官方App(而不是来自脚本、自动化程序、模拟器等非正常途径)发出来的请求才会被放行回源站。
多维度的频次限制(适用于高频攻击)
对于攻击请求中包含某个高频特征字段(例如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的Bot管理模块将基于阿里云全网流量监测到的有撞库行为聚集的恶意IP通过算法提取出来,形成撞库IP情报库,并动态更新。您可以使用Bot管理模块的爬虫威胁情报功能,一键开启撞库IP检测(观察模式)或是对命中的IP进行拦截、滑块验证等处置。更多信息,请参见设置爬虫威胁情报规则。
使用安全托管服务
如果上述解决方案都不能满足您的防护需求,或者防护效果不够理想,或是您希望有专业的安全团队直接帮助您解决问题,推荐您使用安全托管服务。阿里云提供专业的攻防技术团队,根据您的具体业务场景和需求来定制防护方案,并提供实时的分析、监控、攻防对抗,最大程度地保证防护效果。
更多信息,请参见安全托管服务。