mod_security-PCREの制限を超えました


11

ほぼすべてのリクエストで、次のエラーが表示されます。

Rule execution error - PCRE limits exceeded (-8): (null).

たくさんのグーグルの後、唯一の解決策は

a)httpd.confに以下を追加します

SecPcreMatchLimit 150000
SecPcreMatchLimitRecursion 150000

b)以下をphp.iniに追加します

pcre.backtrack_limit = 10000000
pcre.recursion_limit = 10000000

c)-disable-pcre-match-limitオプション付きでコンパイルされたバージョンを使用します。


私は次を実行しています:

Apache / 2.5.12のModSecurity(http://www.modsecurity.org/)。

Apache / 2.2.16(Debian)PHP / 5.3.3-7 + squeeze8とSuhosin-Patch mod_ssl / 2.2.16 OpenSSL / 0.9.8

ModSecのルールについては、この投稿の最新のOWASP ModSecurityコアルールセットプロジェクトバージョン(CRS)バージョン2.2.3を使用しています。

私のhttpd.confは、本質的に次のもので構成されています。

<IfModule security2_module>
    SecUploadDir /var/asl/data/suspicious
    SecDataDir /var/asl/data/msa
    SecTmpDir /tmp
    SecAuditLogStorageDir /var/asl/data/audit

    Include modsecurity.d/modsecurity_crs_10_config.conf
    Include modsecurity.d/activated_rules/*.conf

    SecRuleEngine On

    # Debug log
    SecDebugLog /var/log/apache2/modsec_debug.log
    SecDebugLogLevel 3

    # Serial audit log
    SecAuditEngine RelevantOnly
    SecAuditLogRelevantStatus ^5
    SecAuditLogParts ABIFHZ
    SecAuditLogType Serial
    SecAuditLog /var/log/apache2/modsec_audit.log

    SecPcreMatchLimit 150000
    SecPcreMatchLimitRecursion 150000

</IfModule>


<IfModule mod_php5.c>
    php_admin_flag pcre.backtrack_limit 10000000
    php_admin_flag pcre.recursion_limit 10000000
</IfModule>

そのうち、私のmodsecurity.dディレクトリ内には、CRSがインストールファイルに持つすべてのデフォルトルールがあります。また、pcreの制限を150000000および100000000000以上に設定しましたが、使用できません。

結論として:

解決策ab動作していませcん、私はしないことを大いに好みます...私は本当に理解/コンパイルが好きではないので。

誰か他のアイデアがありますか?


これは、ダウンロードしたばかりの最新のコアルールとmod_securityソースコードを使用しても同様です。PHPではなくRailsアプリでこれらのエラーが発生します。
ドッグウェザー

回答:


7

聖再帰、バットマン!

mod_securityルールに何か問題があると主張しています。この種の再帰は不要であるように思われ、ほとんどの場合、サーバーに深刻な負荷がかかります。ルールおよび/またはApacheの設定を修正し、任意の大きな数でこの問題を「修正」しようとしないでください。


4

私がまったく同じ問題を抱えており、あなたの設定が私のものに似ているので、これを注意深く見てください。私はmodsecurityの最初のタイマーです。noobフレンドリーではありません!

ジャンヌに同意します。私がこれまでに持っているアドバイスは、すべてのコアルールを削除し、それらを1つずつ再導入して問題の絞り込みを開始することです。私は今それをやろうとしています。

また、ルールエンジンの設定を

SecRuleEngine DetectionOnly

構成の問題を処理中に、これにより、強制せずに監視することができます-ルールが実行されているかどうかがまだわからない間は、ルールを適用したくありません。

解決策が見つかったら、学習内容を投稿してください。


0
SecPcreMatchLimit 150000
SecPcreMatchLimitRecursion 150000

いくつかの* nixバージョンのmod_security構成ファイルで見つけて変更する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.