web-dev-qa-db-ja.com

mod_securityですべてのログを記録する方法POSTデータ?

現在、関連するmod_securityアクションを監査ログファイルに正常に記録しているCentOSシステムがあります。以下は私の設定です:

<IfModule mod_security2.c>
  SecRuleEngine On
  SecAuditEngine RelevantOnly
  SecAuditLog /var/log/httpd/modsec_audit.log
  SecDebugLog /var/log/httpd/modsec_debug.log
  SecDebugLogLevel 0
  SecRequestBodyAccess On
  SecDataDir /tmp
  SecTmpDir /tmp
  SecPcreMatchLimit 250000
  SecPcreMatchLimitRecursion 250000
</IfModule>

これは、SecAuditEngine RelevantOnly設定が原因でmod_securityが要求をインターセプト/ブロックするすべてのアクションをログに記録します。

ただし、サーバーに送信されるすべてのPOSTデータを(ステータスに関係なく)追加でログに記録します。SecAuditEngine Onを設定することでこれを達成できますが、すべてのGETがログに記録されますおよびPOST過剰なデータです。リクエストが傍受されない限り、基本的にすべてのGETデータを省略したいと思います。

誰でもこれを行う方法を提案できますか?

6
Chris

AuditEngineリクエストに対してPOSTをオンにするルールがあります。

このようなもの(試されていない):

SecRule REQUEST_METHOD "POST" "id:1000,phase:2,ctl:auditEngine=On,nolog,pass"

Ctlアクションは現在のリクエストにのみ影響を与えるため、その後、次のリクエストのためにRelevantOnlyにリセットされます。

Sanitiseルールを作成して、パスワードやクレジットカードデータなどの機密データがログに記録される前に確実にマスクされるようにすることもできます。ここを参照してください: https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#sanitiseArg

6
Barry Pollard