Modsecurity 能否检测并阻止连接到服务器的受感染的客户端计算机?

Modsecurity 能否检测并阻止连接到服务器的受感染的客户端计算机?

我的服务器上安装了最新版本的 Modsecurity(截至 2019 年 3 月 25 日)。我在 Linux 上使用 OWASP 规则集和 fail2ban。

我知道它旨在阻止黑客攻击。我是否应该假设那些没有试图入侵我的服务器,但可能只是感染了计算机的人被检测为黑客和黑客机器人等?

实际情况是,某些人试图连接我的电脑,却告诉我无法连接。于是我查看了日志,果然,Modsecurity 检测到了来自他们 IP 的 SQL 注入攻击或其他严重级别的攻击。

因此,我建议他们中的几个人对计算机运行更新的启动时扫描,果然,他们发现了许多恶意软件和病毒,清除后便能够连接,没有任何问题。

因此,现在我想确认,当我的论坛成员尝试连接到我的服务器时,modsecurity 从他们的已验证 IP 地址报告了大量恶意活动,这是因为他们的计算机上有病毒或恶意软件,这些病毒或恶意软件被加载到他们与我的服务器的连接上。

如果我建议他们检查自己的计算机是否存在恶意软件或病毒,我需要确信我告诉他们的是正确的。

我看不出还有其他解释。有人能确认这可能是正在发生的事情吗?因为其中一些成员非常确定(甚至没有检查)他们的计算机没有感染任何恶意软件或病毒。

如果是这样的话,那么我需要找出为什么 modsecurity 会说出相反的话,因为它阻止了我的论坛成员。

答案1

Web 应用程序可以用于很多不同的事情,而 OWASP CSR 可以检测各种潜在的恶意请求和响应。一般情况下被视为恶意的事物可能在 Web 应用程序或其特定功能上正常运行。例如,HTML 注入规则与应允许站点管理员添加 HTML 内容的内容管理系统不兼容。

使用 OWASP CSR 启用 ModSecurity 后,您首先应检测在正常运行期间始终触发的规则并将它们列入白名单。由于相同的规则可能在其他地方有用,请尝试将白名单限制在某些页面上。从错误日志中,您可以配对[id "XXX"][uri "/YYY/ZZZ.php"]禁用导致误报的规则列表(Apache 的示例):

<LocationMatch /YYY/ZZZ.php>
  <IfModule mod_security2.c>
    SecRuleRemoveById XXX
  </IfModule>
</LocationMatch>

虽然 Fail2Ban jail 是阻止恶意活动的良好补充,但它应仅在白名单完成且误报率几乎为零后启用。否则,它会阻止您的用户,因为他们按预期使用您的 Web 应用程序。

答案2

不要假设任何事情 - 检查一下。解读 modsecurity 日志时必须非常小心,它有很多误报。

相关内容