有効なトークン AWS WAF がないリクエストをブロックする - AWS WAF、 AWS Firewall ManagerAWS Shield Advanced、および AWS Shield ネットワークセキュリティディレクター

の新しいコンソールエクスペリエンスの紹介 AWS WAF

更新されたエクスペリエンスを使用して、コンソールの任意の場所で AWS WAF 機能にアクセスできるようになりました。詳細については、「更新されたコンソールエクスペリエンスの使用」を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

有効なトークン AWS WAF がないリクエストをブロックする

このセクションでは、 AWS WAF モバイル SDK の使用時にトークンが欠落しているログインリクエストをブロックする方法について説明します。

インテリジェントな脅威の AWS Managed Rules ルールグループ AWSManagedRulesACFPRuleSetAWSManagedRulesATPRuleSet、および を使用するとAWSManagedRulesBotControlRuleSet、ルールグループは AWS WAF トークン管理を呼び出してウェブリクエストトークンのステータスを評価し、それに応じてリクエストにラベルを付けます。

注記

トークンのラベル付けは、これらのマネージドルールグループのいずれかを使用して評価したウェブリクエストにのみ適用されます。

適用されるトークン管理のラベル付けについては、前述の「のトークンラベルのタイプ AWS WAF」セクションを参照してください。

その後、インテリジェントな脅威軽減マネージドルールグループは、トークンの要件を次のように処理します。

  • AWSManagedRulesACFPRuleSet AllRequests ルールは、すべてのリクエストに対して Challenge アクションを実行するように設定されており、accepted トークンラベルのないリクエストは効果的にブロックされます。

  • AWSManagedRulesATPRuleSet は、rejected トークンラベルを持つリクエストをブロックしますが、absent トークンラベルを持つリクエストはブロックしません。

  • acceptedトークンラベルなしでリクエストを 5 回送信すると、AWSManagedRulesBotControlRuleSet のターゲットを絞った保護レベルが、クライアントにチャレンジを送信します。有効なトークンを持たない個別のリクエストはブロックされません。ルールグループの共通の保護レベルでは、トークンの要件は管理されません。

インテリジェントな脅威ルールグループの詳細については、「AWS WAF Fraud Control アカウント作成不正防止 (ACFP) ルールグループ」、「AWS WAF Fraud Control アカウント乗っ取り防止 (ATP) ルールグループ」、および「AWS WAF Bot Control ルールグループ」を参照してください。

Bot Control または ATP マネージドルールグループの使用時にトークンを持たないリクエストをブロックするには

Bot Control および ATP ルールグループを使用すると、有効なトークンがないリクエストがルールグループ評価を終了し、保護パック (ウェブ ACL) によって引き続き評価される可能性があります。

トークンが不足ているリクエスト、あるいはトークンが拒否されたリクエストをすべてブロックするには、マネージドルールグループの直後に実行するルールを追加し、ルールグループがユーザーに代わって処理しないリクエストをキャプチャしてブロックします。

以下は、ATP マネージドルールグループを使用する保護パック (ウェブ ACL) の JSON リストの例です。保護パック (ウェブ ACL) に、awswaf:managed:token:absentラベルをキャプチャして処理するためのルールが追加されました。このルールは、ATP ルールグループの範囲に合わせて、ログインエンドポイントに送信されるウェブリクエストに評価を絞り込みます。追加されたルールは太字で表示されます。

{ "Name": "exampleWebACL", "Id": "55555555-6666-7777-8888-999999999999", "ARN": "arn:aws:wafv2:us-east-1:111111111111:regional/webacl/exampleWebACL/55555555-4444-3333-2222-111111111111", "DefaultAction": { "Allow": {} }, "Description": "", "Rules": [ { "Name": "AWS-AWSManagedRulesATPRuleSet", "Priority": 1, "Statement": { "ManagedRuleGroupStatement": { "VendorName": "AWS", "Name": "AWSManagedRulesATPRuleSet", "ManagedRuleGroupConfigs": [ { "AWSManagedRulesATPRuleSet": { "LoginPath": "/web/login", "RequestInspection": { "PayloadType": "JSON", "UsernameField": { "Identifier": "/form/username" }, "PasswordField": { "Identifier": "/form/password" } }, "ResponseInspection": { "StatusCode": { "SuccessCodes": [ 200 ], "FailureCodes": [ 401, 403, 500 ] } } } } ] } }, "OverrideAction": { "None": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "AWS-AWSManagedRulesATPRuleSet" } }, { "Name": "RequireTokenForLogins", "Priority": 2, "Statement": { "AndStatement": { "Statements": [ { "Statement": { "LabelMatchStatement": { "Scope": "LABEL", "Key": "awswaf:managed:token:absent" } } }, { "ByteMatchStatement": { "SearchString": "/web/login", "FieldToMatch": { "UriPath": {} }, "TextTransformations": [ { "Priority": 0, "Type": "NONE" } ], "PositionalConstraint": "STARTS_WITH" } }, { "ByteMatchStatement": { "SearchString": "POST", "FieldToMatch": { "Method": {} }, "TextTransformations": [ { "Priority": 0, "Type": "NONE" } ], "PositionalConstraint": "EXACTLY" } } ] } }, "Action": { "Block": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "RequireTokenForLogins" } } ], "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "exampleWebACL" }, "Capacity": 51, "ManagedByFirewallManager": false, "RetrofittedByFirewallManager": false, "LabelNamespace": "awswaf:111111111111:webacl:exampleWebACL:" }