mod_security 2.6.3を使用していますが、ルールの重大度レベルに基づいてシェルスクリプトを実行できるようにしたいと考えています。コアルールセット(CRS)を使用しています。これは、攻撃が検出されたときに重大度レベルを2(「クリティカル」の場合)に設定します。
重大度が十分に高い場合はいつでもスクリプトを実行したいと思います。
SecDefaultAction
次のような設定を使用してみました。
SecDefaultAction "phase:2,log,deny,status:403,exec:/path/to/my/script"
ただし、「exec」アクションは「無停止」アクションであるため、クリティカルルールまたは非クリティカルルールがトリガーされているかどうかに関係なく、常に実行されます。
それぞれのクリティカルSecRule
を調べて、その横に「exec」を追加することはできますが、それは面倒です(そして反復的で醜いです)。
私は次のようなことができると思いました:
SecRule ENV:SEVERITY "@lt 4" "exec:/path/to/my/script"
しかし、どういうわけか、それは決して実行されません。おそらく、重要なルールに、ルールの処理を停止するブロックまたは拒否ステートメントがあるためです(混乱を招くと見なされているため)。
また、次のようなCRS異常スコア機能を使用してみました。
SecRule TX:ANOMALY_SCORE "@ge 4" "exec:/path/to/my/script"
しかし、それでも処理されません。私がこれをどのように行うことができるかについてのアイデアはありますか?