カスタム mod-security ルールを作成していますが、ルール ID がルールの実行順序に影響するかどうかについて質問があります。
私の現在の設定は次のとおりです。
- mod-security バージョンを使用しています: 2.6.3-1ubuntu0.2
- 私の mod-security 設定はhttp://mod-security.svn.sourceforge.net/viewvc/mod-security/m2/trunk/modsecurity.conf-recommendedに基づいています (5 つの SecRule ディレクティブがあります - ID: 200000 - 200005)
- 私のルールは別のファイル/etc/apache2/conf.d/modsecurity-activated-rules.confにあり、modsecurity 構成/etc/apache2/conf.d/modsecurity.confの後にロードされます
私のルールは次のとおりです。
<IfModule mod_security2.c>
# block all GET requests - learning purposes only
SecRule REQUEST_METHOD "^(GET)$" \
"phase:1,t:none,auditlog,block,id:1001,rev:2,tag:HARDENING"
</IfModule>
免責事項:これは単純なルールであり、まだ学習中であるため最適ではない可能性があります。提案は大歓迎です
それで、デバッグファイルを分析した後(レベル9がアクティブ化された)、私の質問が私に来ました:
[...]
[4] Recipe: Invoking rule 7f157a85da30; [file "/etc/apache2/conf.d/modsecurity-activated-rules.conf"] [line "11"] [id "1001"] [rev "2"].
[5] Rule 7f157a85da30: SecRule "REQUEST_METHOD" "@rx ^(GET)$" "phase:1,log,t:none,auditlog,block,id:1001,rev:2,tag:HARDENING"
[4] Transformation completed in 4 usec.
[4] Executing operator "rx" with param "^(GET)$" against REQUEST_METHOD.
[9] Target value: "GET"
[6] Ignoring regex captures since "capture" action is not enabled.
[4] Operator completed in 36 usec.
[2] Warning. Pattern match "^(GET)$" at REQUEST_METHOD. [file "/etc/apache2/conf.d/modsecurity-activated-rules.conf"] [line "11"] [id "1001"] [rev "2"] [tag "HARDENING"]
[4] Rule returned 1.[04/Sep/2012:09:30:27 +0000] [107.21.159.51/sid#7f157a854510][rid#7f1573fcf0a0][/poll/13456492248275482/vote/yes][9] Match -> mode NEXT_RULE.
[4] Recipe: Invoking rule 7f157a85e648; [file "/etc/apache2/conf.d/modsecurity.conf"] [line "24"] [id "200000"].
[5] Rule 7f157a85e648: SecRule "REQUEST_HEADERS:Content-Type" "@rx text/xml" "phase:1,auditlog,id:200000,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=XML"
[4] Rule returned 0.
[9] No match, not chained -> mode NEXT_RULE.
[...]
デバッグ行が示すように、私のルール (id:1001) はルール (id:200000) の前に最初に実行されましたが、私のルールは 20000x の後に読み取られます。
OWASP ModSecurity Core Rule Set https://www.owasp.org/index.php/Category:OWASP_ModSecurity_Core_Rule_Set_Projectには 950000 から 990000 の間のルール ID があり、ルールが存在しないため、ID はルール実行の順序で実際には重要ではありません。特定の攻撃のルール ID 範囲に関する情報: SQLi、XSS など。
上記で、私の質問は次のとおりです。
- ルールの実行は ID 番号によって決定されますか (最小番号が最初に実行されます)?
- カスタム ルールに使用するルール ID 範囲を定義するドキュメントはありますか? 私は次のようなものを探しています:
- Mod セキュリティの主なルール: 200.000 - 200.xxx
- OWASP ModSecurity コア ルール セット: 950.000 - 999.xxx
- カスタム ルール: 1.000.000 - 9.xxx.xxx
御時間ありがとうございます。