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

ACFP のテストとデプロイ

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

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

注記

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

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

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

AWS WAF は、ACFP 設定の検証に使用できるテスト認証情報を提供します。次の手順では、ACFP マネージドルールグループを使用するようにテストウェブ ACL を設定し、ルールグループによって追加されたラベルをキャプチャするルールを設定してから、これらのテスト認証情報を使用してアカウント作成の試みを実行します。アカウント作成の試みに関する Amazon CloudWatch メトリクスを確認して、ウェブ ACL が試行を正しく管理していることを検証します。

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

AWS WAF Fraud Control Account Creation Fraud Prevention (ACFP) の実装を設定およびテストするには

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

  1. AWS WAF Fraud Control Account Creation Fraud Prevention (ACFP) マネージドルールグループをカウントモードで追加する
    注記

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

    AWS マネージドルールのルールグループ AWSManagedRulesACFPRuleSet を新規または既存のウェブ ACL に追加し、現在のウェブ ACL の動作を変更しないように設定します。このルールグループのルールとラベルの詳細については、「AWS WAF Fraud Control Account Creation Fraud Prevention (ACFP) ルールグループ」を参照してください。

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

      • [ルールグループを設定] ペインで、アプリケーションのアカウント登録ページと作成ページの詳細を入力します。ACFP ルールグループは、この情報を使用してサインインアクティビティをモニタリングします。詳細については、「ACFP マネージドルールグループをウェブ ACL に追加」を参照してください。

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

        このオーバーライドにより、ACFP マネージドルールの影響をモニタリングして、例外 (内部のユースケースの例外など) を追加するかどうか判断できます。

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

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

  2. アプリケーション統合 SDK を実装する

    AWS WAF JavaScript SDK をブラウザのアカウント登録パスとアカウント作成パスに統合します。AWS WAF は、iOS および Android デバイスを統合するためのモバイル SDK も提供します。統合 SDK の詳細については、「AWS WAF でクライアントアプリケーションを使用する」を参照してください。このレコメンデーションについては、「ACFP でのアプリケーション統合 SDK の使用」を参照してください。

    注記

    アプリケーション統合 SDK を使用できない場合は、ウェブ ACL で ACFP ルールグループを編集し、AllRequests ルールに設定したオーバーライドを削除することで、その ACFP ルールグループをテストできます。これにより、ルールの Challenge アクションの設定が有効になり、有効なチャレンジトークンが確実にリクエストに含まれるようになります。

    これは最初にテスト環境で実行し、その後に本番環境で細心の注意を払って実行してください。このアプローチは、ユーザーをブロックする可能性があります。例えば、登録ページのパスが GET テキスト/HTML リクエストを受け入れない場合、このルール設定は、登録ページですべてのリクエストを効果的にブロックできます。

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

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

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

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

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

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

  6. ルールグループの認証情報チェック機能をテストする

    テスト用の侵害された認証情報を使用してアカウント作成を試行し、ルールグループが想定どおりに照合することを確認します。

    1. 保護されたリソースのアカウント登録ページにアクセスし、新しいアカウントの追加を試みます。次の AWS WAF テスト認証情報のペアを使用して、任意のテストを入力します。

      • ユーザー: WAF_TEST_CREDENTIAL@wafexample.com

      • パスワード: WAF_TEST_CREDENTIAL_PASSWORD

      これらのテスト認証情報は侵害された認証情報として分類され、ACFP マネージドルールグループはアカウント作成リクエストに awswaf:managed:aws:acfp:signal:credential_compromised ラベル (ログでの確認が可能) を追加します。

    2. ウェブ ACL ログで、テストアカウント作成リクエストのログエントリの labels フィールドで awswaf:managed:aws:acfp:signal:credential_compromised ラベルを探します。ログ作成の詳細については、「AWS WAF のウェブ ACL トラフィックのログ記録」を参照してください。

    侵害された認証情報をルールグループが想定どおりにキャプチャすることを検証したら、保護されたリソースに必要な実装を設定するステップを実行できます。

  7. CloudFront ディストリビューションの場合、アカウントの一括作成の試みについてのルールグループによる管理をテストします。

    ACFP ルールグループに設定したレスポンスの成功基準それぞれに対してこのテストを実行します。テストとテストの間は 30 分以上あけてください。

    1. 成功基準ごとに、レスポンス内のその成功基準で成功するアカウント作成の試みを特定します。その後、単一のクライアントセッションから、30 分未満で少なくとも 5 回のアカウント作成の正常な試みを実行します。通常、ユーザーはサイトでアカウントを 1 つだけ作成します。

      最初のアカウント作成が成功した後、VolumetricSessionSuccessfulResponse ルールは他のアカウント作成レスポンスとの照合を開始し、ルールアクションのオーバーライドに基づいてそれらにラベル付けをしてカウントします。レイテンシーにより、ルールで最初の 1 回または 2 回が見逃される可能性があります。

    2. ウェブ ACL ログで、テストアカウント作成ウェブリクエストのログエントリの labels フィールドで awswaf:managed:aws:acfp:aggregate:volumetric:session:successful_creation_response:high ラベルを探します。ログ作成の詳細については、「AWS WAF のウェブ ACL トラフィックのログ記録」を参照してください。

    これらのテストは、ルールによって集計された成功数がルールのしきい値を超えていることを確認することで、成功基準がレスポンスと一致していることを検証します。しきい値に達した後も同じセッションからアカウント作成リクエストを送信し続けると、成功率がしきい値を下回るまでルールによる一致が継続されます。しきい値を超えている間、ルールはセッションアドレスからの正常なアカウント作成の試みと失敗したアカウント作成の試みの両方に一致させます。

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

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

    例えば、ACFP ラベルを使用して、リクエストを許可またはブロックしたり、リクエスト処理をカスタマイズしたりできます。ACFP マネージドルールグループの後にラベル一致ルールを追加して、適用する処理のためにラベル付きリクエストをフィルタリングできます。テスト後、関連する ACFP ルールをカウントモードで維持し、カスタムルールでリクエストの処理に関する決定を維持します。例については、「ACFP の例: 侵害された認証情報についてのカスタムレスポンス」を参照してください。

  9. テストルールを削除し、ACFP マネージドルールグループ設定を有効にする

    状況によっては、一部の ACFP ルールをカウントモードのままにすると判断していた可能性もあります。ルールグループ内で設定したとおりに実行するルールについては、ウェブ ACL ルールグループ設定でカウントモードを無効にします。テストが終了したら、テストラベル一致ルールを削除することもできます。

  10. モニタリングおよびチューニング

    ウェブリクエストが希望どおりに処理されていることを確認するには、使用することを希望する ACFP 機能を有効にした後、トラフィックを注意深くモニタリングします。ルールグループに対するルールカウントの上書きと独自のルールを使用して、必要に応じて動作を調整します。

ACFP ルールグループの実装のテストが完了したら、ブラウザのアカウント登録ページとアカウント作成ページに AWS WAF JavaScript SDK を統合することを強くお勧めします (まだ統合していない場合)。AWS WAF は、iOS および Android デバイスを統合するためのモバイル SDK も提供します。統合 SDK の詳細については、「AWS WAF でクライアントアプリケーションを使用する」を参照してください。このレコメンデーションについては、「ACFP でのアプリケーション統合 SDK の使用」を参照してください。