跳至內容

如何偵測由 AWS 受管規則導致的誤判?

3 分的閱讀內容
0

AWS WAF 中的 AWS 受管規則規則群組封鎖了對我的應用程式的合法請求。我想了解這些規則是如何導致誤判的。我還想保留這些受管規則的效力,同時允許合法的流量通過。

解決方法

首先,識別由 AWS 受管規則導致的誤判。然後,使用標籤或範圍縮小陳述式將這些誤判新增至您的允許清單。

偵測受管規則群組中的誤判錯誤

請完成下列步驟:

  1. 在 AWS WAF 日誌中的 terminatingRuleId 下,找到封鎖合法請求的管理員規則群組。以下是 AWS WAF 日誌的範例:

    "timestamp": 1712236911743,
    "formatVersion": 1,
    "webaclId": "arn:aws:wafv2:us-west-2:***:regional/webacl/WAFtester/3c372***-***",
    "terminatingRuleId": "AWS-AWSManagedRulesCommonRuleSet",
    "terminatingRuleType": "MANAGED_RULE_GROUP",
    "action": "BLOCK",
    "terminatingRuleMatchDetails": [],
    "ruleGroupList": [{
    "ruleGroupId": "AWS#AWSManagedRulesCommonRuleSet",
    "terminatingRule": {
    "ruleId": "SizeRestrictions_BODY",
    "action": "BLOCK",
    "overriddenAction": "BLOCK",
    "ruleMatchDetails": null
    },
    "nonTerminatingMatchingRules": [],
    "excludedRules": null,
    "customerConfig": null
    }],
  2. terminatingRule 下,找到 ruleId 以識別封鎖合法請求的規則。例如:****"SizeRestrictions_Body"。

  3. 確定導致誤判的屬性或標準。例如,如果資料庫管理員遠端執行預存程序,他們的請求可能會包含大量資料。ManagedRulesCommonRuleSet 規則群組會因為 SizeRestrictions_Body 規則而封鎖這些請求。

將誤判新增至允許清單中

設定 Web 存取控制清單 (Web ACL),讓合法的請求能通過導致誤判的受管規則群組。若要修改受管規則組,請使用標籤或使用範圍縮小陳述式

**注意:**最佳實務是使用標籤來制定精細且明確的規則。範圍縮小陳述式不會針對所有規則群組中的規則檢查不符合範圍的請求。

標籤

使用 AWS 受管規則新增的標籤來防止誤判。當您建立與這些標籤的請求相符的自訂規則時,請變更受管規則群組內規則的預設動作。

請完成下列步驟:

  1. 開啟 AWS WAF console (AWS WAF 主控台)。
  2. 在導覽窗格中,選擇 AWS WAF
  3. 選擇 Resources & protection packs (資源和保護套件)。
  4. Protection packs (保護套件) 下,選取下拉式功能表 Managed sets and groups (受管集合與群組),然後選擇 Manage IP sets (管理 IP 集合)。
  5. 在右側窗格中,選擇 Create new IP set (建立新的 IP 集合)。
  6. 輸入 IP 集合名稱
    如果您在 CloudFront 中使用此 IP 集合,請選擇 Scope (範圍) 下的 CloudFront
    (選用) 輸入說明
    選擇您的 IP 版本。
    輸入 IP 位址。
  7. 選擇 Save (儲存)。
  8. 找到您的保護套件,然後選擇 Rules (規則) 旁邊的 View and edit (檢視和編輯)。
  9. 在右側窗格中,選取封鎖您請求的 AWS 受管規則。
  10. Rule Overrides (規則覆寫) 下,將封鎖請求的規則動作改為 Count (計數)。
  11. 選擇 Save rule (儲存規則)。
  12. 在右側窗格中,選擇 Add rules (新增規則)。
    選擇 Custom rule (自訂規則),然後選取 Next (下一步)。
    再次選擇 Custom rule (自訂規則),然後選取 Next (下一步)。
  13. 將規則 Action (動作) 設定為 BLOCK (封鎖)。
  14. 輸入您的規則名稱
  15. If a request (如果請求) 中,展開下拉式功能表並選擇 matches all the statements (AND) (符合所有陳述式 (AND))。
  16. Statement 1 (陳述式 1) 中,完成以下內容:
    Inspect (檢查) 中,選擇 Has a label (有標籤)。
    Statement (陳述式),選擇 Label (標籤)。
    Match key (比對索引鍵),選取封鎖您請求的 AWS 受管規則組中該規則的標籤。
  17. Statement 2 (陳述式 2) 中,完成以下內容:
    Inspect (檢查) 中,選擇 Originates from an IP address in (源自以下位置中的 IP 位址)。
    Statement (陳述式) 下,於 IP address list (IP 位址清單) 選取您的 IP 集合。
    展開 Rule configuration (規則組態),在 Negate statement (NOT) (否定陳述式 (NOT)) 下,選擇 Negate statement results (否定陳述式結果)。
    IP address to use as the originating address (用作原始位址的 IP 位址),選擇 Source IP address (來源 IP 位址)。
  18. 選擇 Create Rule (建立規則)。
  19. 若要設定規則優先順序,請在右側窗格中選取 Edit Rule Order (編輯規則順序),然後將規則拖曳到 AWS 受管規則群組下方。
    **注意:**規則會依照出現的順序套用。
  20. 選擇 Save Rule Order (儲存規則順序)。

範圍縮小陳述式

使用範圍縮小陳述式來縮小規則或規則群組所評估的請求範圍。當您在規則群組中新增範圍縮小陳述式時,系統便會檢查這些請求。該陳述式會略過包含在陳述式中的合法 IP 位址。

請完成下列步驟:

  1. 開啟 AWS WAF console (AWS WAF 主控台)。
  2. 在導覽窗格中,選擇 AWS WAF
  3. 選擇 Resources & protection packs (資源和保護套件)。
  4. Protection packs (保護套件) 下,按一下 Managed sets and groups (受管集合與群組),然後選擇 Manage IP sets (管理 IP 集合)。
  5. 在右側窗格中,選擇 Create new IP set (建立新的 IP 集合)。
  6. 輸入 IP 集合名稱
    如果您在 CloudFront 中使用此 IP 集合,請選擇 Scope (範圍) 下的 CloudFront
    (選用) 輸入說明
    選擇您的 IP 版本。
    輸入 IP 位址。
  7. 選擇 Save (儲存)。
  8. 找到您的保護套件,然後選擇 Rules (規則) 旁邊的 View and edit (檢視和編輯)。
  9. 在右側窗格中,選取封鎖您請求的 AWS 受管規則規則群組。
  10. Inspection (檢查) 下,選取 Match statement (比對陳述式)。
  11. If a request (如果請求) 中,選擇 doesn't match the statement (NOT) (與陳述式不符 (NOT))。
  12. Inspect (檢查) 中,選取 Originates from an IP address in (源自以下位置中的 IP 位址)。
  13. Statement (陳述式) 下,於 IP address list (IP 位址清單) 選取您的 IP 集合。
  14. 展開 Rule configuration (規則組態) 並選取 Source IP address (來源 IP 位址) 作為來源。
  15. 選擇 Save rule (儲存規則)。
AWS 官方已更新 4 個月前