如何消除 WordPress 文件完整性监控中的误报

已发表: 2020-01-17

文件完整性监控 (FIM) 允许您快速检测 WordPress 站点上的文件更改。 它是保护 WordPress 网站的重要部分,其工作方式非常简单:它将基线加密哈希值与受监控文件的当前哈希值进行比较。 当发生变化时,您会收到警报。

然而,简单的文件完整性监控方法存在一个主要问题:误报(又名误报)。 并非 WordPress 网站上的所有文件更改都是有害的,或者是攻击的迹象。 许多是无害的和预期的维护部分。 所以误报会导致很多问题:

  • 管理员可能会忽略恶意文件更改(哭狼情况),
  • 并非所有 WordPress 网站管理员都可以从非法警报中识别出合法警报,从而导致误报。

在本文中,我们将解释文件完整性监控的工作原理、WordPress 的文件和目录结构,以及如何正确配置 WordPress 文件更改监控插件。

文件完整性监控和文件哈希 101

了解文件哈希和校验和可以帮助您了解 FIM 的工作原理。 简而言之,加密散列基于特定输入产生特定输出。 散列函数是单向不可逆函数。 也就是说,仅知道结果不会使您能够回溯到输入。

例如,我们可以使用 MD5 哈希来检查文本的完整性。 在下面的示例中,我们使用 MD5 校验和生成器来创建句子 The quick brown fox 的哈希。

MD5 哈希生成器

我们可以多次输入相同的文本,得到相同的结果,如下图所示:

为相同文本生成 MD5 哈希

但是,添加或删除单个字符,我们得到的哈希值会完全改变,尽管它仍然是相同数量的字符长。 在下面的示例中,我们将源文本更改为The quick brown foxes。

不同的文本生成不同的 MD5 哈希

那么,为什么这对 WordPress 文件更改监控很重要? 简单:哈希函数的输出用于确定文件是否已更改。 即使对文件进行了微小的更改,文件哈希也会有所不同。 文件完整性监控插件使这些比较变得简单。

注意:要详细了解 FIM,请阅读 WordPress 网站的文件完整性监控。

为什么会出现误报?

但是,仅仅盲目接受我们监控工具的结果是不够的。 我们必须能够解释它们的含义并排除潜在的假阴性和假阳性。 在安全方面,误报是误报,我们的工具检测到的东西最终会成为哑弹。 这类似于在厨房里烤吐司,触发火警,唤醒其他人。 假阴性则相反,即存在恶意活动,但我们的工具无法检测到。 一般来说,由于文件完整性监控的工作原理,误报是一个更常见的问题。

当插件在没有上下文的情况下监视文件更改时会发生错误警报。 并非所有文件更改都是错误的。 例如,如果您更新 WordPress 或插件,一些文件将会更改。 在这种情况下,文件更改是必要的,这不是警报。

了解 WordPress 目录结构

那么你怎么知道你应该关心哪些文件更改呢? 首先要了解 WordPress 目录结构,并且可能会发生场景更改。 要监控的最重要的文件目录包括:

  • /wp-content/uploads/ – 静态文件(图像、视频、文档等)的上传在此目录中很常见,可以从警报中排除。 可执行文件,如 PHP 文件是您需要在此处注意的内容。
  • /wp-content/cache/ - 如果你使用缓存插件,监控这个目录变得很困难。 这是因为缓存插件可以合法地使用可执行文件。 如果您不使用缓存插件,则监视此目录的更改更简单。
  • /wp-content/plugins – 此目录中的更改仅在安装、更新或卸载插件时发生。 值得注意的是,插件通常应该只更改它们自己的目录中的文件(或者在缓存插件的情况下,或者在上传目录中,以防它存储一些数据)。
  • /wp-content/themes/ - 与上一个目录相同,此处的更改仅应在安装、更新、修改或卸载主题时发生。
  • WordPress 根目录 - 因此,此目录不应有任何更改,除非您有一些自定义解决方案或代码。
  • WordPress 核心文件– WordPress 更新是这些文件应该更改的唯一原因。

有了上面的信息,您现在应该能够确定文件更改是否是良性的,以及它们何时可能是一个问题。 例如,如果您更新了一个插件,那么该插件文件夹中的插件文件会发生变化是意料之中的事情。 但是,核心文件更改或另一个插件的文件夹更改不会在预期之内。 同样,当您没有启动任何更新时,您不应该看到插件、核心或其他文件更改。 那些意外的文件更改可能表明存在恶意软件或网站受损。

使用正确的工具可以在不牺牲安全性的情况下最大限度地减少误报。 例如,适用于 WordPress 的网站文件更改监视器插件的好处之一是能够检测 WordPress、插件和主题更新,以避免误报和滋扰警报。

WordPress文件更改监控的真实示例

现在您了解了文件完整性监控的工作原理以及预期的文件更改,让我们看看网站文件更改监控器的实际应用。 首先,该插件会在您激活后自动进行初始基线扫描。

首次文件完整性监控扫描确认

报告由于插件和主题安装、更新和卸载而导致的文件更改

如果我们安装新插件,网站文件更改监视器插件会清楚地将文件系统中的更改报告为新插件安装。 它还报告检测到新文件的路径,以及插件的名称。 这有助于那些不熟悉 WordPress 内部工作的人更好地了解报告的文件更改,从而减少误报。

由于安装了新插件而报告了文件更改

您还可以单击信息图标以查看在新插件安装期间添加的文件的完整列表。 该插件还报告与此更新关联的文件数。

在新插件安装期间添加到网站的文件列表

该插件以相同的方式报告所有其他插件和主题更新。 这意味着该插件清楚地标记了插件或主题的安装、更新或删除,使您可以就文件更改是否合法做出明智的决定。

报告由于 WordPress 核心更新导致的文件更改

现在让我们更新 WordPress 核心。 更新 WordPress 时,我们预计文件会发生变化,尤其是在根目录中。 运行 WordPress 更新后,我们在“添加的文件”部分看到以下内容:

WordPress 核心更新文件更改

  1. /wp-content/themes/twentytwenty/文件夹中添加了许多文件。 这意味着更新包含一个新主题。 该插件未将此报告为主题安装,因为文件已通过更新直接复制到文件系统。
  2. wp-adminwp-includes文件夹中的一些新的 WordPress 核心文件(标记为绿色)。 您可以通过单击信息图标查看完整的文件列表。

查看更新期间修改的文件,我们只看到核心更新类型文件的更改。 同样,WordPress 更新的预期行为。

由于更新而在 WordPress 核心中修改了文件

这里的外卖? 正常行为。 网站文件更改监视器插件清楚地标记了更改,没有误报。 另一方面,如果插件报告了一个文件更改列表而没有任何说明它们发生的原因,用户会感到震惊。

微调网站文件更改监视器插件

WordPress 用于具有广泛插件和修改的各种应用程序。 因此,文件完整性监控插件解决方案也应该足够灵活,以适应自定义更改和需求。 例如,个人博客和大型电子商务网站的扫描频率偏好可能不同。 此外,您可能需要包含或排除一组特定的自定义文件和文件夹。

一个可配置但易于使用的 WordPress 文件更改插件

一个好的插件可以指导用户并帮助他们更好地理解结果。 例如,默认情况下,插件应从扫描中排除不可执行的文件。 日志文件、文本文件和媒体文件等文件并不危险,管理员不需要知道它们是否更改,因为文本文件中的更改永远不会是恶意的。 因此,插件无需在日志文件更改时提醒用户,因为它只会引发问题和误报。

这就是使网站文件更改监视器插件脱颖而出的原因。 它是为所有级别的用户开发的。 您无需了解技术细节以及哪些文件更改是恶意的或不会从此插件中受益。 任何人都可以从这个插件中受益并理解结果。 最重要的是,该插件是完全可定制的。 你可以:

  • 配置扫描计划和频率,
  • 选择插件应该扫描的目录,
  • 排除特定目录或扩展名中的文件。

有效的文件完整性监控是 WordPress 安全性的一个重要方面

一个有效的 WordPress 安全解决方案是一种不报告误报的解决方案,它的报告可以被任何级别的用户轻松理解。 这就是网站文件更改监视器插件从所有其他 FIM 插件中脱颖而出的原因; 它易于使用并清楚地突出显示不同类型的文件更改,以帮助用户理解报告。 最重要的是,它不会报告误报。

立即下载网站文件更改监视器插件,以获取有关 WordPress 网站上文件更改的警报。

文件完整性监控只是安全难题的一部分

与许多其他事情一样,一个插件本身并不能构成您所有的 WordPress 安全工具包。 文件完整性监控还应补充:

  • WordPress活动日志,
  • 针对 WordPress 用户的强密码策略,
  • WordPress上的两因素身份验证,
  • WordPress 防火墙(有关不同类型的防火墙等的更多信息,请参阅 WordPress 防火墙指南)
  • 最后但同样重要的是,一个好的 WordPress 备份解决方案。

如果您最终遭到入侵,我们的文件完整性工具可以帮助您找到发生更改的位置。 这反过来又可以实现有效的事件响应、补救和记录。