web-dev-qa-db-ja.com

mod_security-PCRE制限を超えました

ほぼすべてのリクエストで次のエラーが発生します。

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...をコンパイルしないので、理解していないので、実行しないことを強くお勧めします。

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

11
ParoX

聖なる再帰、バットマン!

Mod_securityルールに何か問題があると私は主張します。この種の再帰は不要であると思われ、サーバーに深刻な負荷をかける可能性があります。ルールやApacheの構成を修正し、この問題を任意に大きい数で「修正」しようとしないでください。

7

私がまったく同じ問題を抱えており、あなたの設定が私のものに似ているので、これを注意深く見てください。私はmodsecurityの最初のタイマーです。正確には初心者向けではありません。

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

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

SecRuleEngine DetectionOnly

構成の問題を処理している間、これにより、強制せずに監視できます。ルールが適用されているかどうか不明な場合は、ルールを適用したくない場合があります。

解決策を見つけたら、学んだことを投稿してください。

4
Paul Fernihough
SecPcreMatchLimit 150000
SecPcreMatchLimitRecursion 150000

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

0
Egils