AWS WAF 的 Bot Control 与欺诈防护 - 机器人对策与账户接管防护的实现

使用 Bot Control 检测爬虫和自动化工具,使用 ATP 防止凭证填充攻击。同时介绍挑战和 CAPTCHA 的用户体验设计。

什么是 AWS WAF Bot Control?

AWS WAF 的 Bot Control 是检测和管理流向 Web 应用程序的机器人流量的托管规则组。Common 级别检测一般机器人(HTTP 库、爬虫、安全扫描器),Targeted 级别检测高级机器人(模拟浏览器的机器人、分布式机器人)。检测到的请求会被附加标签(如 awswaf:managed:aws:bot-control:bot:category:scraping_framework),可以基于标签设置自定义操作。像 Googlebot 这样自我声明且 Bot Control 能够验证的机器人会被附加已验证标签(bot:verified),规则组的默认规则只阻止无法验证的机器人。因此不会影响正常的搜索引擎爬取。

Account Takeover Prevention 与 Fraud Control

Account Takeover Prevention(ATP)监控登录页面,检测凭证填充(使用泄露的认证信息列表进行的暴力攻击)。ATP 将请求与被盗认证信息数据库进行比对,匹配时阻止请求或显示 CAPTCHA。启用响应检查后(可用于 CloudFront 分配),还会跟踪登录的成功和失败响应,并阻止来自失败率高的 IP 地址或客户端会话的后续请求。Account Creation Fraud Prevention(ACFP)监控账户创建页面,检测大量创建虚假账户的行为。ACFP 结合临时邮箱地址的检测、创建模式的异常检测以及基于 JavaScript 挑战的浏览器验证,防止不正当的账户创建。

挑战与 CAPTCHA 的设计

JavaScript 挑战是让客户端浏览器执行 JavaScript、以验证浏览器合法性的机制。自动化工具(部分 Selenium、Puppeteer)会在挑战中失败,请求被阻止。CAPTCHA 向用户展示视觉谜题,确认是人类。挑战和 CAPTCHA 会影响用户体验,因此需要谨慎选择应用的页面。建议采用仅限于登录页面、账户创建页面、支付页面等欺诈风险高的页面,而不应用于一般内容页面的设计。设置挑战的免疫时间(一次验证成功后的豁免期),以减轻正当用户的负担。

WAF Bot Control 的定价

截至 2026 年 8 月,WAF 的基本费用为每个 Web ACL 每月 5.00 美元,每条规则每月 1.00 美元,每 100 万请求 0.60 美元。Bot Control 在每个 Web ACL 每月 10.00 美元的订阅费之外,还按量收取请求分析费。Common 级别每 100 万请求 1.00 美元(每月前 1,000 万请求免费),Targeted 级别每 100 万请求 10.00 美元(每月前 100 万请求免费)。ATP(Account Takeover Prevention)和 ACFP(Account Creation Fraud Prevention)各需每个 Web ACL 每月 10.00 美元的订阅费,另按尝试次数收取阶梯制分析费。阶梯的明细请参阅 AWS WAF 官方定价页面。Bot Control 的 Targeted 级别费用高昂,应通过设计控制成本:仅对登录、支付等欺诈风险高的页面应用该级别,一般内容页面则应用 Common 级别。

基于标签的规则设计

Bot Control 会为检测到的请求附加标签。其特点是可以以这些标签为线索,在后续规则中设计灵活的应对方式。例如,可以实现分阶段的控制:阻止被判定为爬虫的流量,对判定不明确的流量显示挑战。刚引入时不要立即阻止,先用只进行检测的计数模式观察情况,这是稳妥的做法。观察哪些流量被如何分类,确认没有误阻止正当用户后,再切换为正式的阻止。

速率限制与 IP 信誉

机器人对策不只依靠 Bot Control,叠加多种手段会很有效。速率限制规则会限制在一定时间内请求数超过阈值的来源,可抑制暴力破解和过量访问。使用汇总了信誉不佳的 IP 地址的信誉列表,可以在入口处阻止已知的恶意来源。还可以结合按国家或地区的控制,限制来自预计不会有访问的地区的流量。将这些手段与基于标签的规则并用,可以构建从多个角度抑制机器人和非法访问的防御网。

引入步骤与调优

如果贸然以阻止模式投入 WAF 规则,会有连正当用户也被波及的风险。首先以计数模式运行一段时间,观察哪些规则有多少反应。分析日志,确认其中不含误报后,从没有问题的规则开始依次切换为阻止。如果发现被误拦截的正当流量,用例外规则予以放行。挑战和 CAPTCHA 会给用户带来负担,因此应仅限于登录、支付等欺诈风险高的页面。分阶段的调优有助于兼顾安全性与易用性。

与其他防御层的组合

WAF 是防御的一层,与其他服务组合使用可以提高效果。部署在 CloudFront 之后,即可在边缘阻止威胁,防止威胁到达源站。为应对大规模 DDoS,需并用专门的防护服务。在应用程序侧也应强化认证并进行异常检测,以防范绕过 WAF 的威胁。将入口处的阻止、应用程序中的验证和基于监控的检测构成多层,就能形成不依赖单一对策的稳固防护。将 WAF 定位为其中的一环,在整体中进行设计。

总结

AWS WAF 的 Bot Control、ATP、ACFP 是保护 Web 应用程序免受机器人和欺诈行为的托管规则。通过基于标签的灵活规则评估调整检测精度,通过挑战和 CAPTCHA 平衡用户体验与安全性。与 CloudFront 和 API Gateway 集成,在应用程序前端拦截威胁。

参考资料(AWS 官方文档)

本文所涉规格的一次信息来自以下页面:托管规则组的规则与标签列表见 AWS WAF Bot Control rule group,保护级别、仪表板与 scope-down 语句的说明见 AWS WAF Bot Control components,订阅费、按量费用与免费额度公布在 AWS WAF 定价页面。若本文与官方文档的描述不一致,请以官方文档为准。

分享