AWS WAF Bot Control のテストとデプロイ - AWS WAF、AWS Firewall Manager、および AWS Shield Advanced

AWS WAF Bot Control のテストとデプロイ

このセクションでは、サイトのために、AWS WAF Bot Control 実装を設定およびテストするための一般的なガイダンスを提供します。実行する具体的なステップは、ニーズ、リソース、受け取るウェブリクエストによって異なります。

この情報は、AWS WAF 保護のテストとチューニング で提供されているテストおよび調整に関する一般情報とは別です。

注記

AWS マネージドルールは、一般的なウェブの脅威からユーザーを保護するように設計されています。ドキュメントに従って使用した場合、AWS マネージドルールのルールグループはアプリケーションに別のセキュリティレイヤーを追加します。ただし、AWS マネージドルールのルールグループは、選択した AWS リソースに伴うセキュリティ責任に代わるものではありません。AWS のリソースが適切に保護されるようにするには、「責任共有モデル」を参照してください。

本番稼働トラフィックのリスク

本番稼働トラフィックに Bot Control 実装をデプロイする前に、トラフィックへの潜在的な影響に慣れるまで、ステージング環境またはテスト環境でテストおよびチューニングします。その後、ルールを有効にする前に、本番稼働用トラフィックでカウントモードでルールをテストしてチューニングします。

このガイダンスは、AWS WAF ウェブ ACL、ルール、およびルールグループを作成および管理する方法を一般的に認識しているユーザーを対象としています。これらのトピックは、このガイドの前のセクションでカバーされています。

Bot Control の実装を設定およびテストするには

これらのステップを最初にテスト環境で実行し、次に本番環境で実行します。

  1. Bot Control マネージドルールグループを追加する
    注記

    このマネージドルールグループを使用する場合、追加料金が請求されます。詳細については、AWS WAF 料金を参照してください。

    マネージド AWS ルールのルールグループ AWSManagedRulesBotControlRuleSet を新規または既存のウェブ ACL に追加し、現在のウェブ ACL の動作を変更しないように設定します。

    • マネージドルールグループを追加する際には、それを編集し、次の手順を実行します。

      • [Inspection level] (検査レベル) ペインで、使用する検査レベルを選択します。

        • 共通 – ウェブスクレイピングフレームワーク、検索エンジン、自動ブラウザなど、さまざまな自己識別ボットを検出します。このレベルの Bot Control 保護は、静的リクエストデータ分析など、従来のボット検出技術を使用して一般的なボットを識別します。ルールはこれらのボットからのトラフィックにラベルを付け、検証できないものはブロックします。

        • ターゲットを絞った – 一般的な保護機能に加え、自己識別を行わない高度なボットに対するターゲットを絞った検出機能も追加されています。ターゲットを絞った保護は、レート制限と CAPTCHA およびバックグラウンドブラウザのチャレンジの組み合わせを使用してボットアクティビティを軽減します。

          • TGT_ – ターゲットを絞った保護を提供するルールには、TGT_ で始まる名前が付いています。すべてのターゲットを絞った保護では、ブラウザ調査、フィンガープリント、行動ヒューリスティックなどの検出技術を使用して不正なボットトラフィックを識別します。

          • TGT_ML_ – 機械学習を使用するターゲットを絞った保護のルールには、TGT_ML_ で始まる名前が付いています。これらのルールは、ウェブサイトのトラフィック統計を機械学習で自動的に分析し、分散または協調ボットのアクティビティを示す異常な動作を検出します。AWS WAF は、タイムスタンプ、ブラウザの特性、以前にアクセスした URL など、ウェブサイトのトラフィックに関する統計を分析し、Bot Control の機械学習モデルを改善します。機械学習機能はデフォルトで有効になっていますが、ルールグループ設定で無効にすることができます。機械学習が無効になっている場合、AWS WAF はこれらのルールを評価しません。

        この選択の詳細については、「AWS WAF Bot Control ルールグループ」を参照してください。

      • [Rules] (ルール) ペインで、[Override all rule actions] (すべてのルールアクションをオーバーライド) ドロップダウンを開いて、[Count] を選択します。この設定では、AWS WAF は、ルールグループ内のすべてのルールに対してリクエストを評価し、その結果の一致のみをカウントしつつ、引き続きリクエストにラベルを追加します。詳細については、「ルールグループ内のルールアクションのオーバーライド」を参照してください。

        このオーバーライドにより、Bot Control ルールがトラフィックに与える潜在的な影響をモニタリングでき、内部のユースケースや目的のボットなどの例外を追加するかどうか判断します。

    • ウェブ ACL で最後に評価されるように、ルールグループを配置します。優先順位の設定の数値は、既に使用している他のルールまたはルールグループよりも高くなります。詳細については、「ウェブ ACL でのルール優先度の設定」を参照してください。

      これにより、現在のトラフィックの処理が中断されることはありません。たとえば、SQL インジェクションやクロスサイトスクリプティングなどの悪意のあるトラフィックを検出するルールがある場合、そのようなリクエストを継続的に検出してログ記録します。または、既知の悪意のないトラフィックを許可するルールがある場合、Bot Control マネージドルールグループによってブロックされるようにすることなく、そのトラフィックを許可し続けることができます。テストおよび調整アクティビティ中に処理順序を調整することができますが、開始する方法としてお勧めします。

  2. ウェブ ACL のサンプリング、ログ記録、およびメトリクスの有効化

    必要に応じて、ウェブ ACL のログ記録、Amazon Security Lake データ収集、リクエストサンプリング、Amazon CloudWatch メトリクスを設定します。これらの可視化ツールを使用して Bot Control マネージドルールグループとトラフィックとのインタラクションをモニタリングできます。

  3. ウェブ ACL をリソースに関連付ける

    ウェブ ACL がリソースに関連付けられていない場合は、関連付けます。詳細については、「ウェブ ACL と AWS リソースの関連付けまたは関連付けの解除」を参照してください。

  4. トラフィックと Bot Control ルールの一致をモニタリングする

    トラフィックがフローしていることと、Bot Control マネージドルールグループのルールが一致するウェブリクエストにラベルを追加していることを確認します。ログにラベルが表示され、Amazon CloudWatch メトリクスでボットとラベルのメトリクスを確認できます。ログでは、ルールグループでカウントするようにオーバーライドしたルールが、カウントに設定された action と、オーバーライドした設定済のルールアクションを示す overriddenAction とともに、ruleGroupList に表示されます。

    注記

    Bot Control マネージドルールグループは、AWS WAF からの IP アドレスを使用してボットを検証します。Bot Control を使用し、プロキシまたはロードバランサーを介してルーティングするボットを検証した場合は、カスタムルールを使用して明示的に許可する必要がある場合があります。カスタムルールの作成方法については、「AWS WAF で転送された IP アドレスの使用」を参照してください。ルールを使用して Bot Control ウェブリクエストの処理をカスタマイズする方法については、次のステップを参照してください。

    ウェブリクエスト処理を詳細にレビューして、カスタム処理で軽減する必要のある誤検出があるかどうかを確認してください。誤検知の例については、「AWS WAF Bot Control による誤検出のシナリオ例」を参照してください。

  5. Bot Control ウェブリクエストの処理をカスタマイズする

    必要に応じて、リクエストを明示的に許可またはブロックする独自のルールを追加して、Bot Control ルールがそのリクエストを処理する方法を変更します。

    これをどのように実行するかはユースケースによって異なりますが、一般的な解決策は次のとおりです。

    • Bot Control マネージドルールグループの前に追加したルールを含むリクエストを明示的に許可します。これにより、許可されたリクエストが評価のためにルールグループに到達することはありません。これは、Bot Control マネージドルールグループの使用コストを抑えるのに役立ちます。

    • Bot Control マネージドルールグループのステートメント内のスコープダウンステートメントを追加し、Bot Control 評価からのリクエストを除外します。これは、前述のオプションと同じように機能します。スコープダウンステートメントと一致しないリクエストがルールグループの評価に到達することはないため、Bot Control マネージドルールグループの使用コストを抑えるのに役立ちます。スコープダウンステートメントの詳細については、「AWS WAF でのスコープダウンステートメントの使用」を参照してください。

      例については、以下を参照してください。

    • リクエスト処理に Bot Control ラベルを使用して、リクエストを許可またはブロックします。Bot Control マネージドルールグループの後にラベル一致ルールを追加して、ブロックするリクエストから、許可するラベル付きリクエストをブロックするリクエストを除外します。

      テスト後、関連する Bot Control ルールをカウントモードで維持し、カスタムルールでリクエストの処理に関する決定を維持します。ラベル一致ステートメントの詳細については、「ラベル一致ルールステートメント」を参照してください。

      この種類のカスタマイズの例については、以下を参照してください。

    その他の例については、「AWS WAF Bot Control の例」を参照してください。

  6. 必要に応じて、Bot Control マネージドルールグループ設定を有効にします

    状況によっては、一部の Bot Control ルールをカウントモードの状態で維持する、あるいは異なるアクションのオーバーライドに適用すると判断する場合があります。ルールグループ内で設定されているときに実行するルールについては、通常のルール設定を有効にします。これを行うには、ウェブ ACL のルールグループステートメントを編集し、[Rules] (ルール) ペインで変更を行います。