禁用 ModSecurity 的 SQL 注入规则

禁用 ModSecurity 的 SQL 注入规则

我一直试图通过将其添加到 conf 文件中来禁用 mod_security sql 注入规则

SecRuleRemoveById 981172
SecRuleRemoveById 981243
SecRuleRemoveById 981173
SecRuleRemoveById 981249
SecRuleRemoveById 981318
SecRuleRemoveById 981246
SecRuleRemoveById 981231

但似乎还有更多规则,有什么办法可以禁用 SQL 注入规则而不添加每个规则 ID?还是我的方法不对。

我想禁用此功能的原因是因为我正在尝试安装 IPS(论坛)并且我所做的一切,无论是添加用户还是编辑类别,我都会收到由 mod security 引起的 403 错误,并且错误通常表示帖子标题或 cookie 中存在模式匹配。

编辑:这是其中一个错误

Message: Access denied with code 403 (phase 2). Pattern match "(/\\*!?|\\*/|[';]--|--[\\s\\r\\n\\v\\f]|(?:--[^-]*?-)|([^\\-&])#.*?[\\s\\r\\n\\v\\f]|;?\\x00)" at ARGS:core_theme_setting_title_167. [file "/usr/share/modsecurity-crs/activated_rules/modsecurity_crs_41_sql_injection_attacks.conf"] [line "49"] [id "981231"] [rev "2"] [msg "SQL Comment Sequence Detected."] [data "Matched Data: '#'>This  found within ARGS:core_theme_setting_title_167: <h4>Mega Footer Links</h4>\x0d\x0a<ul class='footerLinks'>\x0d\x0a\x09<li><a href='http://www.ipsfocus.com'>IPS 4.x themes</a></li>\x0d\x0a\x09<li><a href='#'>This is a link list</a></li>\x0d\x0a\x09<li><a href='#'>This is a longer link inside of the list</a></li>\x0d\x0a\x09<li><a href='#'>This is a link list</a></li>\x0d\x0a</ul>"] [severity "CRITICAL"] [ver "OWASP_CRS/2.2.8"] [maturity "8"] [accuracy "8"] [tag "OWASP_CRS/WEB_ATTACK/SQL_INJECTION"] [tag "WASCTC/WASC-19"] [tag "OWASP_TOP_10/A1"] [tag "OWASP_AppSensor/CIE1"] [tag "PCI/6.5.2"]

答案1

正确的方法是像您一直做的那样,或者更好的方法是仅将导致问题的参数列入白名单:

SecRuleUpdateTargetById 981231 "!ARGS:core_theme_setting_title_167"

正如您所看到的,这可能需要一些时间才能获得您需要的所有白名单。

当然,您应该在 DetectionOnly 模式下运行并微调规则,直到您获得很少(没有?)误报并且可以轻松切换到阻止模式。看起来您已经在阻止模式下运行,所以我建议您切换回 DetectionOnly,将其保留一周,查看日志以一次性将所有误报规则列入白名单,然后再重复几次。这样做比逐个追逐尾巴要好得多。

如果您确实想关闭所有 SQL 注入规则(它们很容易过度警报!),您可以不包括此文件:

/usr/share/modsecurity-crs/activated_rules/modsecurity_crs_41_sql_injection_attacks.conf

根据配置文件中 ModSecurity 的设置方式,可以通过从 activated_rules 目录中删除该文件(或指向它的链接)来完成此操作,因为(通常)该目录中的所有文件都包含在内。

当然,这意味着您没有这些规则的保护,而且这对您来说有多大影响,只有您自己才能判断。正如我所说,这些规则很嘈杂,需要花一些时间来微调,但 SQL 注入也是最常见和最危险的漏洞之一。

或者,您可以完全关闭 ModSecurity。我个人觉得它很方便,过去也曾受到它的保护,但其他人认为,像它这样的 WAF 麻烦多于其价值。

相关内容