Logging

Modsecurity 白名單並繼續記錄

  • January 23, 2016

我將一個標籤列入白名單,我很好奇是否有辦法將其列入白名單並同時保持記錄。

SecRuleUpdateTargetByTag "OWASP_CRS/WEB_ATTACK/SQL_INJECTION" !ARGS:/^fallout/

像這樣的東西會起作用嗎?

SecRuleUpdateTargetByTag “OWASP_CRS/WEB_ATTACK/SQL_INJECTION”, “log”,“allow” !ARGS:/^fallout/

不,這僅用於更新規則所針對的目標。

有一個 SecRuleUpdateActionById 命令允許您使 SQL_INJECTION 規則通過而不是阻止,但不適用於您想要的特定場景(即只有 ARGS/^fallout/ 請求),而不是 ctl 等價於允許您連結此實現這 :-(

您可以刪除您的 SecRuleUpdateTargetByTag 自定義,而是將規則引擎轉為僅針對以下請求進行檢測:

SecRule ARGS /^fallout/ "phase:2,id:1000,ctl:ruleEngine=DetectionOnly"

然而,這意味著沒有 phase:2 規則會阻止這些 URL,這會在您的 WAF 中留下一個巨大的漏洞。

一種可行的方法是將其添加到 modsecurity_crs_41_sql_injection_attacks.conf 文件的開頭並在結尾處反轉以再次將其重新打開。這將起作用,因為規則會按照它們在配置中載入的順序進行處理。但是通常我不喜歡編輯實際的 CRS 文件,因為這會使升級變得困難(很容易覆蓋這樣的更新)。

或者,只需記錄所有 ARGS 後果請求,然後手動檢查它們是否有 SQL_INJECTION 嘗試:

SecRule ARGS /^fallout/ "phase:2,id:1001,log"

引用自:https://serverfault.com/questions/750557