2

カスタム mod-security ルールを作成していますが、ルール ID がルールの実行順序に影響するかどうかについて質問があります。

私の現在の設定は次のとおりです。

私のルールは次のとおりです。

<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 など。

上記で、私の質問は次のとおりです。

  1. ルールの実行は ID 番号によって決定されますか (最小番号が最初に実行されます)?
  2. カスタム ルールに使用するルール ID 範囲を定義するドキュメントはありますか? 私は次のようなものを探しています:
    • Mod セキュリティの主なルール: 200.000 - 200.xxx
    • OWASP ModSecurity コア ルール セット: 950.000 - 999.xxx
    • カスタム ルール: 1.000.000 - 9.xxx.xxx

御時間ありがとうございます。

4

3 に答える 3

0
  1. ルールにはIDを含めることはできませんが、質問のように、同じフェーズでIDを持っている場合

    最小数が最初に実行される

    同相のみ!

  2. ビジネスルールがthrose idを定義しているのかもしれません。https://ssl.trustwave.com/web-application-firewall

于 2012-09-11T08:32:33.910 に答える
0

ModSecurity は、ポジティブ セキュリティ モデルとネガティブ セキュリティ モデルの 2 種類のルール モデルをサポートしています。ネガティブ セキュリティ モデルのサポート シグネチャ ベースの検出とルールの順序付けは、skip、skipafterキーワードを使用してルールをスキップし、リソースを集中的に使用する正規表現ベースのパターン パッチを回避する場合に重要です。次に、ルール ID に基づくルールの順序は絶対的なものではなく、ルールによって変更される可能性があります。つまり、フェーズ 1 のルールが常に最初に実行されます。初心者には ModSecurity ハンドブックを読むことをお勧めします。2 番目のタイプのルールはポジティブ セキュリティ モデルです。このモデルでは、異常を検出するためにカウンターが維持され、しきい値を超えた場合にルールがトリガーされるため、順序は重要ではありません。

于 2012-12-17T10:46:13.663 に答える