ModSecurity 与 OWASP-CRS 阻止包含“(”和“)”字符的 ERDDAP 查询

问题描述 投票:0回答:1

我已在运行 ERDDAP 和 ncWMS docker 的 XUbuntu 22.04 虚拟机上安装了 ModSecurity 以进行数据分发。

我通过

apt install libapache2-mod-security2
安装了 ModSecurity,然后通过
a2enmod security2
启用了它。

然后我安装了 OWASP 核心规则集 v3.3.0。

在运行 ERDDAP 时,我注意到如果包含

(
)
字符,请求数据的查询将被阻止。

如何设置允许使用

(
)
字符进行查询的规则?

mod-security
1个回答
0
投票

OWASP CRS 开发人员在此值班。第一步确实是分析日志,寻找与您的请求相匹配的规则。这些可以在

Error logs
中找到,搜索包含
ModSecurity: Warning.
标记的条目。它指出规则已被触发,以及导致此匹配的规则 ID 和有效负载等详细信息。这是一个例子:

[2016-10-25 08:40:01.884172] [-:error] 127.0.0.1:42732 WA7@QX8AAQEAABC4maIAAAAV [client 127.0.0.1] …
ModSecurity: Warning. Matched phrase "/bin/bash" at ARGS:exec. …
[file "/apache/conf/crs/rules/REQUEST-932-APPLICATION-ATTACK-RCE.conf"] [line "448"] [id "932160"] …
[rev "1"] [msg "Remote Command Execution: Unix Shell Code Found"] [data "Matched Data: /bin/bash found …
within ARGS:exec: /bin/bash"] [severity "CRITICAL"] [ver "OWASP_CRS/3.1.0"] [maturity "1"] [accuracy "8"] …
[tag "application-multi"] [tag "language-shell"] [tag "platform-unix"] [tag "attack-rce"] …
[tag "OWASP_CRS/WEB_ATTACK/COMMAND_INJECTION"] [tag "WASCTC/WASC-31"] [tag "OWASP_TOP_10/A1"] …
[tag "PCI/6.5.2"] [hostname "localhost"] [uri "/index.html"] [unique_id "WA7@QX8AAQEAABC4maIAAAAV"]

之后,根据这些知识,您可以编写排除规则,以消除不需要的匹配,同时最大限度地减少对安全态势的影响(不建议完全禁用该规则,而是针对特定路径或特定路径禁用它)不只处理特定变量)。

您可以在此处阅读有关编写排除规则和处理误报的更多信息:https://coreruleset.org/docs/concepts/false_positives_tuning/

我还建议您阅读以下 Apache / ModSecurity 系列教程,逐步了解 ModSecurity 和 CRS 安装直至处理误报: https://www.netnea.com/cms/apache-tutorials/

© www.soinside.com 2019 - 2024. All rights reserved.