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 等)被分类为已验证的机器人,默认允许通过。

Account Takeover Prevention 与 Fraud Control

Account Takeover Prevention(ATP)监控登录页面,检测凭证填充(使用泄露的认证信息列表进行暴力攻击)。ATP 将请求与被盗认证信息数据库进行比对,匹配时阻止或显示 CAPTCHA。启用响应检查后(适用于 CloudFront 分配),还会跟踪登录的成功/失败响应,并阻止来自登录失败率过高的 IP 地址或客户端会话的后续请求。Account Creation Fraud Prevention(ACFP)监控账户创建页面,检测大量创建虚假账户。检测一次性邮箱地址、异常创建模式和已知欺诈指标。

挑战与 CAPTCHA 的设计

JavaScript 挑战让客户端浏览器执行 JavaScript,验证浏览器的合法性。自动化工具(部分 Selenium、Puppeteer)会在挑战中失败,请求被阻止。CAPTCHA 向用户展示视觉谜题,确认是人类。挑战和 CAPTCHA 会影响用户体验,因此需要谨慎选择应用的页面。建议仅限于登录页面、账户创建页面、支付页面等欺诈风险高的页面,不应用于一般内容页面。挑战的免疫时间(token 有效期)设置过短会频繁要求验证影响体验,过长则降低安全性。

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 级别费用较高,建议仅对登录页面和 API 端点等高风险页面应用。

总结

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

参考资料(AWS 官方文档)

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