AWS WAF の Bot Control と不正防止 - ボット対策とアカウント乗っ取り防止の実装
AWS WAF の Bot Control マネージドルール、Account Takeover Prevention、Fraud Control の設定と運用を解説します。
Bot Control の概要
この記事は約 3 分で読めます。 AWS WAF の Bot Control は Web アプリケーションへのボットトラフィックを検出・管理するマネージドルールグループです。Common レベルは一般的なボット (HTTP ライブラリ、スクレイパー、セキュリティスキャナー) を検出し、Targeted レベルは高度なボット (ブラウザを模倣するボット、分散型ボット) を検出します。検出されたリクエストにはラベル (awswaf:managed:aws:bot-control:bot:category:scraping_framework など) が付与され、ラベルに基づいてカスタムアクションを設定できます。検索エンジンのクローラー (Googlebot など) は自動的に許可リストに含まれ、SEO への影響はありません。
この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。
Account Takeover Prevention と Fraud Control
Account Takeover Prevention (ATP) はログインページを監視し、クレデンシャルスタッフィング (漏洩した認証情報リストを使った総当たり攻撃) を検出します。ATP は盗まれた認証情報のデータベースとリクエストを照合し、一致する場合にブロックまたは CAPTCHA を表示します。ログインの成功・失敗パターンも分析し、異常な失敗率のIPアドレスを自動的にレート制限します。Account Creation Fraud Prevention (ACFP) はアカウント作成ページを監視し、偽アカウントの大量作成を検出します。使い捨てメールアドレスの検出、作成パターンの異常検知、JavaScript チャレンジによるブラウザ検証を組み合わせて、不正なアカウント作成を防止します。
チャレンジと CAPTCHA の設計
JavaScript チャレンジはクライアントのブラウザに JavaScript を実行させ、ブラウザの正当性を検証する仕組みです。自動化ツール (Selenium、Puppeteer の一部) はチャレンジに失敗し、リクエストがブロックされます。CAPTCHA はユーザーに視覚的なパズルを提示し、人間であることを確認します。チャレンジと CAPTCHA はユーザー体験に影響するため、適用するページを慎重に選択します。ログインページ、アカウント作成ページ、決済ページなど、不正のリスクが高いページに限定し、一般的なコンテンツページには適用しない設計が推奨されます。チャレンジのイミュニティ時間 (一度検証に成功した後の免除期間) を設定し、正当なユーザーの負担を軽減します。
さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。
まとめ
AWS WAF の Bot Control、ATP、ACFP は Web アプリケーションをボットと不正行為から保護するマネージドルールです。ラベルベースの柔軟なルール評価で検出精度を調整し、チャレンジと CAPTCHA でユーザー体験とセキュリティのバランスを取ります。CloudFront や API Gateway と統合して、アプリケーションの前段で脅威を遮断できます。
AWS の優位点
- Bot Control マネージドルールで一般的なボット (スクレイパー、スキャナー、クローラー) を自動検出し、ブロックまたはレート制限できる
- Account Takeover Prevention (ATP) でログインページへのクレデンシャルスタッフィング攻撃を検出し、盗まれた認証情報の使用を防止できる
- Account Creation Fraud Prevention (ACFP) で不正なアカウント作成を検出し、偽アカウントの大量作成を防止できる
- JavaScript チャレンジと CAPTCHA でブラウザの正当性を検証し、自動化ツールによるアクセスを排除できる
- ラベルベースのルール評価で Bot Control の検出結果に基づくカスタムアクション (カウント、ブロック、CAPTCHA) を柔軟に設定できる