AWS WAF Fraud Control アカウント乗っ取り防止 (ATP) のルールグループ - AWS WAF、AWS Firewall Manager、および AWS Shield Advanced

AWS WAF Fraud Control アカウント乗っ取り防止 (ATP) のルールグループ

このセクションでは、AWS WAF Fraud Control Account Takeover Prevention (ATP) マネージドルールグループの機能について説明します。

VendorName: AWS、名前: AWSManagedRulesATPRuleSet、WCU: 50

AWS WAF Fraud Control アカウント乗っ取り防止 (ATP) マネージドルールグループは、悪意のあるアカウント乗っ取りの試みの一部である可能性があるリクエストにラベルを付けて管理します。ルールグループは、クライアントでアプリケーションのログインエンドポイントに送信するログイン試行を検査することでこれを行います。

  • リクエスト検査 – ATP を使用すると、異常なログイン試行や盗まれた認証情報を使用するログイン試行を可視化して制御できるため、不正行為につながる可能性のあるアカウントの乗っ取りを防ぐことができます。ATP は、盗まれた認証情報のデータベースに照らして E メールとパスワードの組み合わせをチェックします。このデータベースは、漏洩された認証情報がダークウェブ上で新しく見つかると定期的に更新されます。ATP は、IP アドレスやクライアントセッションごとにデータを集約し、不審なリクエストを大量に送信するクライアントを検出してブロックします。

  • レスポンス検査 – CloudFront ディストリビューションの場合、ATP ルールグループは、受信したログインリクエストを検査するだけでなく、ログイン試行に対するアプリケーションの応答も検査して、成功率と失敗率を追跡します。この情報を使用して、ATP はログイン失敗の回数が過度に多いクライアントセッションまたは IP アドレスを一時的にブロックできます。AWS WAF は、レスポンス検査を非同期で実行するため、ウェブトラフィックのレイテンシーが大きくなることはありません。

このルールグループの使用に関する考慮事項

このルールグループには特定の設定が必要です。このルールグループを設定および実装するには、「Fraud Control Account Takeover Prevention (ATP) AWS WAF によるアカウント乗っ取りを防止する」のガイダンスを参照してください。

このルールグループは、AWS WAF でのインテリジェントな脅威の軽減保護の一部です。詳細については、AWS WAF におけるインテリジェントな脅威緩和の実施 を参照してください。

注記

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

コストを抑え、ウェブトラフィックを希望どおりに管理していることを確実にするには、AWS WAF におけるインテリジェントな脅威を軽減するためのベストプラクティス のガイダンスに従ってこのルールグループを使用してください。

このルールグループは、Amazon Cognito ユーザープールでは使用できません。このルールグループを使用するウェブ ACL をユーザープールに関連付けることはできません。また、このルールグループをユーザープールに既に関連付けられたウェブ ACL に追加することはできません。

このルールグループによって追加されるラベル

このマネージドルールグループは、評価対象のウェブリクエストにウェブ ACL 内のこのルールグループの後に実行されるルールでも使用できるラベルを追加します。AWS WAF は、Amazon CloudWatch メトリクスにもラベルを記録します。ラベルとラベルメトリクスに関する一般的な情報については、「ウェブリクエストにおけるラベルの使用」および「ラベルメトリクスとディメンション」を参照してください。

トークンラベル

このルールグループは AWS WAF トークン管理を使用し、AWS WAF トークンのステータスに従ってウェブリクエストを検査してラベルを付けます。AWS WAF はクライアントセッションの追跡および検証にトークンを使用します。

トークンおよびトークンの管理の詳細については、「AWS WAF でのウェブリクエストでのトークンの使用」を参照してください。

ここで説明するラベルコンポーネントについては、「AWS WAF でのラベル構文と命名要件」を参照してください。

クライアントセッションラベル

ラベル awswaf:managed:token:id:identifier には、AWS WAF のトークン管理がクライアントセッションを識別するために使用する固有の識別子が含まれています。この識別子は、クライアントが使用していたトークンを破棄した後など、新しいトークンを取得すると変わる可能性があります。

注記

AWS WAF によって、このラベルの Amazon CloudWatch メトリクスは報告されません。

トークンステータスラベル: ラベル名前空間プレフィックス

トークンステータスラベルは、トークン、チャレンジのステータス、およびそれに含まれる CAPTCHA 情報を報告します。

各トークンステータスラベルは、次のプレフィクスの 1 つで始まります。

  • awswaf:managed:token:— トークンの一般的なステータスを報告したり、トークンのチャレンジ情報のステータスを報告したりするために使用されます。

  • awswaf:managed:captcha:— トークンの CAPTCHA 情報のステータスを報告するために使用されます。

トークンステータスラベル: ラベル名

プレフィックスに続いて、ラベルの残りの部分には詳細なトークンステータス情報が表示されます。

  • accepted - リクエストトークンが存在し、以下の内容が含まれています。

    • 有効なチャレンジまたは CAPTCHA ソリューション。

    • 有効期限が切れていないチャレンジまたは CAPTCHA タイムスタンプ。

    • ウェブ ACL に有効なドメイン仕様。

    例: ラベル awswaf:managed:token:accepted には、ウェブリクエストのトークンに有効なチャレンジソリューション、有効期限が切れていないチャレンジタイムスタンプ、および有効なドメインがあることが示されています。

  • rejected - リクエストトークンは存在するが、承認基準を満たしていない。

    トークン管理では、拒否されたラベルに加えて、理由を示すカスタムラベル名前空間と名前が追加されます。

    • rejected:not_solved — トークンにチャレンジまたは CAPTCHA ソリューションがない。

    • rejected:expired — ウェブ ACL に設定されているトークンイミュニティ時間によると、トークンのチャレンジまたは CAPTCHA タイムスタンプの有効期限が切れている。

    • rejected:domain_mismatch — トークンのドメインが、ウェブ ACL のトークンドメイン設定と一致しない。

    • rejected:invalid — AWS WAF が指定されたトークンを読み取れなかった。

    例: ラベル awswaf:managed:captcha:rejectedawswaf:managed:captcha:rejected:expired には、トークンの CAPTCHA タイムスタンプがウェブ ACL で設定されている CAPTCHA トークンのイミュニティ時間を超えたためにリクエストが拒否されたことが示されています。

  • absent — リクエストにトークンがないか、トークンマネージャーがそれを読み取れなかった。

    例: ラベル awswaf:managed:captcha:absent には、リクエストにトークンがないことが示されています。

ATP ラベル

ATP マネージドルールグループは、名前空間プレフィックス awswaf:managed:aws:atp: が付いたラベルを生成し、その後にカスタム名前空間およびラベル名が付いたラベルを生成します。

ルールグループは、ルールリストに記載されているラベルに加えて、次のラベルのいずれかを追加する場合があります。

  • awswaf:managed:aws:atp:signal:credential_compromised – リクエストで送信された認証情報が、盗まれた認証情報データベースに含まれていることを示します。

  • awswaf:managed:aws:atp:aggregate:attribute:suspicious_tls_fingerprint – 保護されている Amazon CloudFront ディストリビューションでのみ利用できます。クライアントセッションが、疑わしい TLS フィンガープリントを使用した複数のリクエストを送信したことを示します。

  • awswaf:managed:aws:atp:aggregate:volumetric:session:token_reuse:ip - 5 つを超える異なる IP アドレス間で単一のトークンが使用されていることを示します。このルールが適用するしきい値は、レイテンシーによって若干異なる場合があります。ラベルが適用される前に、いくつかのリクエストが制限を超えることがあります。

DescribeManagedRuleGroup を呼び出すことにより、API を介してルールグループのすべてのラベルを取得できます。ラベルは、応答の AvailableLabels プロパティにリストされています。

アカウント乗っ取り防止のルールリスト

次のセクションには、AWSManagedRulesATPRuleSet の ATP ルールとルールグループがウェブリクエストに追加するラベルが示されています。

注記

AWS マネージドルールのルールグループでのルールに関して公開される情報は、悪意のある人物がルールを回避するために使用可能な情報を提供するのではなく、ルールを使用するための十分な情報を提供することを目的としています。このドキュメントに記載されている以上の情報が必要な場合は、AWS Support センター にお問い合わせください。

ルール名 説明とラベル
UnsupportedCognitoIDP

Amazon Cognito ユーザープールに向かうウェブトラフィックの有無を検査します。ATP は Amazon Cognito ユーザープールでは使用できません。このルールは、他の ATP ルールグループのルールがユーザープールのトラフィックの評価に使用されないようにすることに役立ちます。

ルールアクション: Block

ラベル: awswaf:managed:aws:atp:unsupported:cognito_idp および awswaf:managed:aws:atp:UnsupportedCognitoIDP

VolumetricIpHigh

個々の IP アドレスから送信された大量のリクエストを検査します。大量とは、10 分ウィンドウにリクエストが 20 件を超えることです。

注記

このルールが適用するしきい値は、レイテンシーによって若干異なる場合があります。大量の場合、ルールアクションが適用される前に、いくつかのリクエストが制限を超える可能性があります。

ルールアクション: Block

ラベル: awswaf:managed:aws:atp:aggregate:volumetric:ip:high および awswaf:managed:aws:atp:VolumetricIpHigh

ルールグループは、中程度の量 (10 分間の時間枠あたり 15 件以上のリクエスト) および少量 (10 分間の時間枠あたり 10 件以上のリクエスト)のリクエストに対して、以下のラベル awswaf:managed:aws:atp:aggregate:volumetric:ip:medium および awswaf:managed:aws:atp:aggregate:volumetric:ip:low を適用しますが、アクションは実行しません。

VolumetricSession

個々のクライアントセッションから送信された大量のリクエストを検査します。しきい値は、30 分ウィンドウあたり 20 を超えるリクエスト数に設定します。

この検査は、ウェブリクエストにトークンがある場合にのみ適用されます。トークンは、アプリケーション統合 SDK、ならびに CAPTCHA および Challenge のルールアクションによってリクエストに追加されます。詳細については、「AWS WAF でのウェブリクエストでのトークンの使用」を参照してください。

注記

このルールが適用するしきい値は、レイテンシーによって若干異なる場合があります。ルールアクションが適用される前に、いくつかのリクエストが制限を超えることがあります。

ルールアクション: Block

ラベル: awswaf:managed:aws:atp:aggregate:volumetric:session および awswaf:managed:aws:atp:VolumetricSession

AttributeCompromisedCredentials

盗まれた認証情報を使用する同じクライアントセッションからの複数リクエストを検査します。

ルールアクション: Block

ラベル: awswaf:managed:aws:atp:aggregate:attribute:compromised_credentials および awswaf:managed:aws:atp:AttributeCompromisedCredentials

AttributeUsernameTraversal

ユーザー名トラバーサルを使用する同じクライアントセッションからの複数リクエストを検査します。

ルールアクション: Block

ラベル: awswaf:managed:aws:atp:aggregate:attribute:username_traversal および awswaf:managed:aws:atp:AttributeUsernameTraversal

AttributePasswordTraversal

パスワードトラバーサルと同じユーザー名を使用する複数のリクエストを検査します。

ルールアクション: Block

ラベル: awswaf:managed:aws:atp:aggregate:attribute:password_traversal および awswaf:managed:aws:atp:AttributePasswordTraversal

AttributeLongSession

長期に継続するセッションを使用する同じクライアントセッションからの複数リクエストを検査します。しきい値は、30 分ごとに少なくとも 1 つのログインリクエストが存在する 6 時間を超えるトラフィックです。

この検査は、ウェブリクエストにトークンがある場合にのみ適用されます。トークンは、アプリケーション統合 SDK、ならびに CAPTCHA および Challenge のルールアクションによってリクエストに追加されます。詳細については、「AWS WAF でのウェブリクエストでのトークンの使用」を参照してください。

ルールアクション: Block

ラベル: awswaf:managed:aws:atp:aggregate:attribute:long_session および awswaf:managed:aws:atp:AttributeLongSession

TokenRejected

AWS WAF トークン管理によって拒否されたトークンを含むリクエストを検査します。

この検査は、ウェブリクエストにトークンがある場合にのみ適用されます。トークンは、アプリケーション統合 SDK、ならびに CAPTCHA および Challenge のルールアクションによってリクエストに追加されます。詳細については、「AWS WAF でのウェブリクエストでのトークンの使用」を参照してください。

ルールアクション: Block

ラベル: なし。トークンが拒否されたかどうか確認するには、ラベル一致ルールを使用してラベル awswaf:managed:token:rejected を照合します。

SignalMissingCredential

認証情報を含むリクエストに、ユーザー名またはパスワードが不足しているかどうか検査します。

ルールアクション: Block

ラベル: awswaf:managed:aws:atp:signal:missing_credential および awswaf:managed:aws:atp:SignalMissingCredential

VolumetricIpFailedLoginResponseHigh

最近のログイン試行の失敗率が過度に高い IP アドレスを検査します。大量とは、10 分間の時間枠に 1 つの IP アドレスからの失敗したログインリクエストが 10 件を超えることです。

レスポンス本文または JSON コンポーネントを検査するようにルールグループを設定した場合、AWS WAF はこれらのコンポーネントタイプの最初の 65,536 バイト (64 KB) を検査し、成功または失敗のインジケータを取得します。

このルールは、同じ IP アドレスからの最新のログイン試行に対する保護されたリソースからの成功応答と失敗応答に基づいて、IP アドレスからの新しいウェブリクエストにルールアクションとラベリングを適用します。ルールグループを設定するときに、成功数と失敗数のカウント方法を定義します。

注記

AWS WAF は、Amazon CloudFront ディストリビューションを保護するウェブ ACL でのみ、このルールを評価します。

注記

このルールが適用するしきい値は、レイテンシーによって若干異なる場合があります。ルールがその後のログイン試行に対して一致処理を開始する前に、許可されているよりも多い回数の失敗したログイン試行がクライアントから送信される可能性があります。

ルールアクション: Block

ラベル: awswaf:managed:aws:atp:aggregate:volumetric:ip:failed_login_response:high および awswaf:managed:aws:atp:VolumetricIpFailedLoginResponseHigh

ルールグループは、次の関連ラベルもリクエストに適用します。関連するアクションはありません。すべてのカウントは 10 分間の時間枠のものです。5 件以上の失敗したリクエストには awswaf:managed:aws:atp:aggregate:volumetric:ip:failed_login_response:medium、1 件以上の失敗したリクエストには awswaf:managed:aws:atp:aggregate:volumetric:ip:failed_login_response:low、10 件以上の成功したリクエスト には awswaf:managed:aws:atp:aggregate:volumetric:ip:successful_login_response:high、5 件以上の成功したリクエストには awswaf:managed:aws:atp:aggregate:volumetric:ip:successful_login_response:medium、1 件以上の成功したリクエストには awswaf:managed:aws:atp:aggregate:volumetric:ip:successful_login_response:low です。

VolumetricSessionFailedLoginResponseHigh

最近のログイン試行の失敗率が過度に高いクライアントセッションを検査します。大量とは、30 分間の時間枠にクライアントセッションからの失敗したログインリクエストが 10 件を超えることです。

レスポンス本文または JSON コンポーネントを検査するようにルールグループを設定した場合、AWS WAF はこれらのコンポーネントタイプの最初の 65,536 バイト (64 KB) を検査し、成功または失敗のインジケータを取得します。

このルールは、同じクライアントセッションからの最新のログイン試行に対する保護されたリソースからの成功応答と失敗応答に基づいて、クライアントセッションからの新しいウェブリクエストにルールアクションとラベリングを適用します。ルールグループを設定するときに、成功数と失敗数のカウント方法を定義します。

注記

AWS WAF は、Amazon CloudFront ディストリビューションを保護するウェブ ACL でのみ、このルールを評価します。

注記

このルールが適用するしきい値は、レイテンシーによって若干異なる場合があります。ルールがその後のログイン試行に対して一致処理を開始する前に、許可されているよりも多い回数の失敗したログイン試行がクライアントから送信される可能性があります。

この検査は、ウェブリクエストにトークンがある場合にのみ適用されます。トークンは、アプリケーション統合 SDK、ならびに CAPTCHA および Challenge のルールアクションによってリクエストに追加されます。詳細については、「AWS WAF でのウェブリクエストでのトークンの使用」を参照してください。

ルールアクション: Block

ラベル: awswaf:managed:aws:atp:aggregate:volumetric:session:failed_login_response:high および awswaf:managed:aws:atp:VolumetricSessionFailedLoginResponseHigh

ルールグループは、次の関連ラベルもリクエストに適用します。関連するアクションはありません。すべてのカウントは 30 分間の時間枠のものです。5 件以上の失敗したリクエストには awswaf:managed:aws:atp:aggregate:volumetric:session:failed_login_response:medium、1 件以上の失敗したリクエストには awswaf:managed:aws:atp:aggregate:volumetric:session:failed_login_response:low、10 件以上の成功したリクエスト には awswaf:managed:aws:atp:aggregate:volumetric:session:successful_login_response:high、5 件以上の成功したリクエストには awswaf:managed:aws:atp:aggregate:volumetric:session:successful_login_response:medium、1 件以上の成功したリクエストには awswaf:managed:aws:atp:aggregate:volumetric:session:successful_login_response:low です。