ATP マネージドルールグループをウェブ ACL に追加 - AWS WAF、AWS Firewall Manager、および AWS Shield Advanced

ATP マネージドルールグループをウェブ ACL に追加

このセクションでは、AWSManagedRulesATPRuleSet ルールグループを追加および設定する方法について説明します。

ウェブトラフィックのアカウント乗っ取りアクティビティを認識するように ATP マネージドルールグループを設定するには、アプリケーションにログインリクエストを送信する方法に関する情報をクライアントで指定します。保護された Amazon CloudFront ディストリビューションでは、ログインリクエストに対するアプリケーションの応答方法に関する情報も指定します。この設定は、マネージドルールグループの通常の設定に追加されます。

ルールグループの説明とルールリストについては、「AWS WAF Fraud Control アカウント乗っ取り防止 (ATP) のルールグループ」を参照してください。

注記

盗まれた認証情報の ATP データベースには、E メール形式のユーザー名のみが含まれています。

このガイダンスは、AWS WAF ウェブ ACL、ルール、およびルールグループを作成および管理する方法を一般的に認識しているユーザーを対象としています。これらのトピックは、このガイドの前のセクションでカバーされています。マネージドルールグループをウェブ ACL に追加する方法の基本については、「コンソールを通じたウェブ ACL へのマネージドルールグループの追加」を参照してください。

ベストプラクティスに従う

ATP ルールグループは、「AWS WAF におけるインテリジェントな脅威を軽減するためのベストプラクティス」に記載されているベストプラクティスに従って使用してください。

ウェブ ACL で AWSManagedRulesATPRuleSet ルールグループを使用するには
  1. AWS マネージドルールグループ AWSManagedRulesATPRuleSet をウェブ ACL に追加し、保存する前にルールグループの設定を編集します。

    注記

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

  2. [ルールグループを設定] ペインで、ATP ルールグループがログインリクエストの検査に使用する情報を入力します。

    1. ログインページのパス仕様について正規表現の照合を AWS WAF に実行させる場合は、[パスで正規表現を使用] をオンに切り替えます。

      AWS WAF は、PCRE ライブラリ libpcre で使用されるパターン構文をサポートしますが、いくつかの例外があります。ライブラリは、「PCRE - Perl Compatible Regular Expressions」で文書化されています。AWS WAF でのサポートの詳細については、「AWS WAF でサポートされている正規表現」を参照してください。

    2. [Login path] (ログインパス) で、アプリケーションのログインエンドポイントのパスを指定します。ルールグループは、指定されたログインエンドポイントに対する HTTP POST リクエストのみを検査します。

      注記

      エンドポイントの照会では大文字と小文字が区別されません。 正規表現の仕様には、大文字と小文字を区別しない照合を無効にするフラグ (?-i) を含めてはいけません。文字列の指定はフォワードスラッシュ「/」で始まる必要があります。

      例えば、URL https://example.com/web/login では、文字列パスの指定「/web/login」を指定できます。指定したパスで始まるログインパスは一致と見なされます。例えば、/web/login はログインパス /web/login/web/login//web/loginPage、および /web/login/thisPage に一致しますが、ログインパス /home/web/login または /website/login には一致しません。

    3. [リクエスト検査] で、リクエストのペイロードタイプと、ユーザー名とパスワードが指定されているリクエスト本文内のフィールドの名前を指定して、アプリケーションがログイン試行を受け入れる方法を指定します。これらのフィールド名の指定は、ペイロードタイプによって異なります。

      • JSON ペイロードタイプ – JSON Pointer 構文でフィールド名を指定します。JSON Pointer 構文の詳細については、インターネットエンジニアリングタスクフォース (IETF) ドキュメントの「JavaScript Object Notation (JSON) Pointer」を参照してください。

        例えば、次の JSON ペイロードの例では、ユーザー名フィールドの指定は /login/username で、パスワードフィールドの指定は /login/password です。

        { "login": { "username": "THE_USERNAME", "password": "THE_PASSWORD" } }
      • FORM_ENCODED ペイロードタイプ – HTML 形式の名前を使用します。

        例えば、username1password1 という名前の入力要素を持つ HTML フォームの場合、ユーザー名フィールドの指定は username1 で、パスワードフィールドの指定は password1 です。

    4. Amazon CloudFront ディストリビューションが保護されている場合、[レスポンス検査] で、アプリケーションがログイン試行に対する応答で成功や失敗をどのように示すかを指定します。

      注記

      ATP レスポンス検査は、CloudFront ディストリビューションが保護されているウェブ ACL でのみ使用できます。

      ATP で検査するログインレスポンスのコンポーネントを 1 つ指定します。本文および JSON コンポーネントタイプの場合、AWS WAF はコンポーネントの最初の 65,536 バイト (64 KB) を検査できます。

      インターフェイスに示されているように、コンポーネントタイプの検査基準を指定します。コンポーネント内で検査する成功基準と失敗基準の両方を指定する必要があります。

      例えば、アプリケーションがログイン試行のステータスを応答のステータスコードで示し、成功の場合は「200 OK」、失敗の場合は「401 Unauthorized」または「403 Forbidden」を使用するとします。レスポンス検査の [コンポーネントタイプ][ステータスコード] に設定し、[成功] テキストボックスに「200」と入力し、[失敗] テキストボックスの 1 行目に「401」、2 行目に「403」と入力します。

      ATP ルールグループは、成功または失敗の検査基準に一致する応答のみをカウントします。ルールグループのルールは、カウントされた応答の失敗率が過度に高いクライアントに適用されます。ルールグループのルールが正確に動作するように、ログイン試行の成功と失敗の両方に関する詳細な情報を必ず入力してください。

      ログインレスポンスを検査するルールを確認するには、「AWS WAF Fraud Control アカウント乗っ取り防止 (ATP) のルールグループ」のルールリストで VolumetricIpFailedLoginResponseHighVolumetricSessionFailedLoginResponseHigh を探します。

  3. ルールグループに必要な追加設定を指定します。

    マネージドルールグループステートメントにスコープダウンステートメントを追加することで、ルールグループが検査するリクエストの範囲をさらに限定できます。例えば、特定のクエリ引数または cookie を持つリクエストのみを検査できます。ルールグループは、スコープダウンステートメントの基準に一致する、指定したログインエンドポイントへの HTTP POST リクエストのみを検査します。スコープダウンステートメントの詳細については、「AWS WAF でのスコープダウンステートメントの使用」を参照してください。

  4. ウェブ ACL に対する変更を保存します。

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