Logging

mod_security:行動審計日誌的意義何在?

  • February 2, 2016

我正在擺弄 mod_security 來記錄特定 URI 的 POST 請求有效負載。

如此響應https://serverfault.com/a/729079/292993中所述,對類似問題 mod_security 的 AuditEngine 的工作方式如下:

它還將根據您的 SecAuditEngine 值設置為記錄到 AuditEngine:

  1. 如果您將 SecAuditEngine 設置為 On,則所有內容都會記錄到審核日誌中,並且不需要上述規則。這會很快填滿日誌文件,因此不推薦。
  2. 如果您將 SecAuditEngine 設置為 RelevantOnly,那麼它只會記錄到審核引擎的某些返回程式碼(由您的 SecAuditLogRelevantStatus 定義)。這通常僅針對錯誤 (5xx) 或訪問被拒絕(4xx - 儘管通常沒有 404s)進行。由於您沒有拒絕訪問(並且可能不想拒絕!),因此不會將其記錄到審核日誌中。
  3. 如果 SecAuditEngine 設置為 Off,則永遠不會將其記錄到審核日誌中。

通常最好將 SecAuditEngine 設置為 RelevantOnly (我懷疑這是你已經擁有的)。正確的方法是使用您使用 ctl 操作提供的其他規則:

SecRule REQUEST_METHOD "POST" "id:22222224,phase:2,ctl:auditEngine=On,log,pass"

這會強制 AuditEngine 為發布請求打開 - 即使請求成功,通常不會記錄。

牢記這一點,auditlog如果我必須ctl在請求級別上打開 AuditEngine 以將某些內容記錄到審核日誌中,那麼該操作的意義何在?

我寫了您引用的答案,在閱讀您的問題後進行了一些測試後,我意識到它不准確。會更新它。

經過一些實驗,我發現了以下內容:

  • 如果 SecAuditEngine 設置為On,那麼 auditlog 將沒有實際效果,因為無論如何都會記錄請求。
  • 如果 SecAuditEngine 設置為Off,則 auditlog 將不起作用,因為無論如何都不會記錄請求。
  • 如果 SecAuditEngine 設置為RelevantOnly,則 auditlog 將導致記錄規則的觸發。即使您不拒絕訪問(這是您引用的上述答案中的錯誤)。

auditlog那麼和 和有什麼區別ctl:auditEngine=On呢?好吧,不多,但我可以看到兩個主要區別:

  1. Auditlog當 SecAuditEngine 設置為關閉時將不起作用。而 ctl:auditEngine=On會工作。
  2. ctl:auditEngine=On可用於在不顯示實際規則的情況下打開審核。例如,如果您有以下情況:
SecRule REQUEST_METHOD "POST" "id:22222224,phase:2,ctl:auditEngine=On,nolog,pass"

然後該請求將記錄在審核日誌中,但不會提及規則 22222224(因為它設置為nolog)。這可能有用與否:規則 22222224 的存在可能會增加混淆,因為此規則沒有實際的安全問題(它只是用於打開 AuditEngine),也許您只希望在審計和錯誤日誌中記錄真正的安全規則. 另一方面,它可能會讓人們感到困惑,為什麼在審計日誌中沒有明顯的規則觸發導致它被放在那裡。

最終沒有太大的區別,更多的是你想要使用的品味問題。

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