封鎖沒有有效的要求 AWS WAF token - AWS WAFAWS Firewall Manager、 和 AWS Shield Advanced

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

封鎖沒有有效的要求 AWS WAF token

本節說明如何在使用時封鎖遺失其權杖的登入要求 AWS WAF 移動SDK。

當您使用智慧型威脅時 AWS 受管規則規則群組AWSManagedRulesACFPRuleSetAWSManagedRulesATPRuleSetAWSManagedRulesBotControlRuleSet、和規則群組叫用 AWS WAF 令牌管理,以評估 Web 請求令牌的狀態並相應地標記請求。

注意

Token 標籤僅適用於您使用其中一個受管規則群組評估的 Web 要求。

如需有關權杖管理套用之標籤的資訊,請參閱前一節令牌標籤的類型 AWS WAF

然後,智慧型威脅緩和受管理規則群組會如下處理 Token 需求:

  • AWSManagedRulesACFPRuleSetAllRequests則設定為執行 Challenge 針對所有請求採取行動,有效地阻止任何沒有accepted令牌標籤的請求。

  • AWSManagedRulesATPRuleSet阻止具有rejected令牌標籤的請求,但不會阻止帶有absent令牌標籤的請求。

  • AWSManagedRulesBotControlRuleSet目標防護層級會在用戶端傳送五個沒有 accepted Token 標籤的要求後提出挑戰。它不會阻止沒有有效令牌的單個請求。規則群組的一般保護層級不會管理權杖需求。

如需智慧型安全威脅規則群組的其他詳細資訊AWS WAF 欺詐控制帳戶創建欺詐預防(ACFP)規則組,請參閱AWS WAF 欺詐控制帳戶接管預防(ATP)規則組AWS WAF 機器人控制規則群組

使用 Bot Control 或ATP受管規則群組時封鎖遺失 Token 的要求

透過 Bot Control 和ATP規則群組,沒有有效權杖的要求可能會結束規則群組評估,並繼續由網路評估ACL。

若要封鎖遺失其 Token 或其 Token 遭拒絕的所有要求,請新增規則以在受管規則群組之後立即執行,以擷取並封鎖規則群組未為您處理的要求。

以下是使用ATP受管規則群組ACL之 Web 的範例JSON清單。Web ACL 有一個添加的規則來捕獲標awswaf:managed:token:absent籤並處理它。此規則會將評估範圍縮小為前往登入端點的 Web 要求,以符合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, "LabelNamespace": "awswaf:111111111111:webacl:exampleWebACL:" }