應用 WAF 白名單

目錄結構

|-- waf_whitelist/
  |-- waf_whitelist.yaml
  |-- ...

YAML 檔案中可以包含一個或多個應用 WAF 白名單配置。

配置說明

每個 WAF 白名單配置是一個包含以下引數的物件:

引數名資料型別是否必選描述
conditionsarray觸發白名單的條件列表
rulesarray要忽略的 WAF 規則列表

conditions 配置

可參考 頁面規則 - 條件

rules 配置

引數名資料型別是否必選描述
rule_set_namestringWAF 規則集的名稱
rule_namesarray要忽略的具體規則名稱列表

配置示例

- conditions:
  - var: uri
    op: eq
    val: /hello
  rules:
  - rule_set_name: scanner_detection
    rule_names:
    - '913100'
    - '913110'
  - rule_set_name: protocol_enforcement

此配置定義了兩個 WAF 白名單規則,使用規則集名稱及規則名稱來指定要忽略的規則。

其中的 '913100''913110' 是 ModSecurity 規則的 ID,在 OpenResty Edge 中被用作規則名稱,因此需要是字串型別。當您使用自定義規則集時,可以自行指定規則名稱。

使用示例

更新配置到 OpenResty Edge 中:

edge-config https://192.168.1.1 -s -t 2051e780-1897-4ea0-92b4-2c2f0169aa94 -l waf_whitelist -i /root/oredge-configs -d test.com

從 OpenResty Edge 中匯出配置:

edge-config -u https://192.168.1.1 -s -t 2051e780-1897-4ea0-92b4-2c2f0169aa94 -E -l waf_whitelist -d test.com

清理 OpenResty Edge 中的配置:

edge-config -u https://192.168.1.1 -s -t 2051e780-1897-4ea0-92b4-2c2f0169aa94 -c -l waf_whitelist -d test.com

示例中均使用 -l waf_whitelist 來指定只操作應用 WAF 白名單相關的配置。

注意事項

  1. 每個白名單規則必須包含 conditionsrules 兩個部分。

  2. conditions 中的每個條件必須包含 varopval(或 vals)欄位。

  3. rules 中的每個規則必須包含 rule_set_namerule_names 是可選的。

  4. 如果使用 rule_set_name,確保該名稱在全域性 WAF 規則集中存在。

  5. 如果指定了 rule_names,則只有列出的規則會被忽略;否則,整個規則集都會被忽略。

  6. 在匯入配置時,工具會先刪除所有現有的 WAF 白名單,然後新增新的白名單規則。

  7. 白名單規則的處理順序與配置檔案中的順序相反,即最後定義的規則會首先被處理。

  8. 在匯出配置時,工具會將規則集 ID 轉換為對應的規則集名稱,以提高可讀性。

  9. 如果應用不存在,工具會在匯出時給出警告資訊。

  10. WAF 白名單可以幫助減少誤報,但過度使用可能會降低安全性,請謹慎配置。

  11. 在處理配置時,工具會自動將規則集名稱轉換為對應的 ID。