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

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

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。还分析登录成功/失败模式,自动对异常失败率的 IP 地址进行速率限制。Account Creation Fraud Prevention(ACFP)监控账户创建页面,检测大量创建虚假账户。检测一次性邮箱地址、异常创建模式和已知欺诈指标。

挑战与 CAPTCHA 的设计

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

WAF Bot Control 的定价

WAF 的基本费用为每个 Web ACL 月额约 5.00 美元,每条规则月额约 1.00 美元,每 100 万请求约 0.60 美元。Bot Control 的 Common 级别每 100 万请求额外约 1.00 美元,Targeted 级别约 10.00 美元。ATP(Account Takeover Prevention)每 1,000 次登录尝试约 1.00 美元,ACFP 每 1,000 次账户创建尝试约 2.00 美元。Bot Control 的 Targeted 级别费用较高,建议仅对登录页面和 API 端点等高风险页面应用。

总结

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