User-Agent を偽装する Bot からのリクエストを制限する方法について教えてください。
困っていた内容
AWS WAF の Bot Control を導入し、Bot からのリクエスト制御を行っていますが、
User-Agent を偽装する Bot にかいくぐられ、Web サーバーのリソースが逼迫するなどの影響を受けています。
User-Agent を偽装する Bot からのリクエストを制限する方法について教えてください。
具体的な解決策
マネージドルールの BotControl には、ブラウザ以外の User-Agent をブロックするルールがあります。
AWS WAF Bot Control ルールグループ - Bot Control のルールリスト
SignalNonBrowserUserAgent
検証済みのボットからではないリクエストを検査し、
ウェブブラウザからではないと考えられるユーザーエージェント文字列を検査します。> SignalNonBrowserUserAgent検証済みのボットからではないリクエストを検査し、
ウェブブラウザからではないと考えられるユーザーエージェント文字列を検査します。
こちらのルールによって、User-Agent を偽装する Bot を制限することが可能です。
一方で、上記のルールでも防ぐことができない場合、
リクエストの特性に依存するため必ずしも対策を保証できるものではありませんが、下記のような案が挙げられます。
1. CAPTCHA または Challenge アクションの独自ルールを追加
一般的に、ブラウザによるアクセスか Bot かを区別する方法として、
CAPTCHA または Challenge アクションの独自ルールを追加する方法があります。
Challenge であれば、利用するユーザーにパズル等を試行いただくことなく、ブラウザかどうかを判定することが可能です。
ただし、最近はこのような Challenge にも対応した Bot も出現しているため、
必ずしも排除できるといった保証はありません。
2. 匿名 IP リストマネージドルールグループを利用
もし対象の Bot リクエストが VPN を経由している場合は、
匿名 IP リストマネージドルールグループを利用することで、
VPN 経由等と判定された接続元 IP アドレスをブロックできる場合があります。
ただし、この方法は Bot の特性にも依存するため、
間接的な対策案として検討ください。
なお、いずれの方法についても、まずはリクエストの調査・検証を行ったうえで、
適切な方法を選択することを推奨いたします。
参考資料
-
AWS WAF Bot Control ルールグループ - Bot Control のルールリスト
https://docs.aws.amazon.com/ja_jp/waf/latest/developerguide/aws-managed-rule-groups-bot.html#aws-managed-rule-groups-bot-rules -
AWS WAF でのルールアクションの使用
https://docs.aws.amazon.com/ja_jp/waf/latest/developerguide/waf-rule-action.html -
CAPTCHA および Challenge アクション動作
https://docs.aws.amazon.com/ja_jp/waf/latest/developerguide/waf-captcha-and-challenge-actions.html -
IP 評価ルールグループ - 匿名 IP リストマネージドルールグループ
https://docs.aws.amazon.com/ja_jp/waf/latest/developerguide/aws-managed-rule-groups-ip-rep.html#aws-managed-rule-groups-ip-rep-anonymous






