rkhunter 警告 inode 更改,但没有文件修改日期更改

rkhunter 警告 inode 更改,但没有文件修改日期更改

我有几个系统运行着 Centos 6,并安装了 rkhunter。我有一个每日 cron 运行 rkhunter 并通过电子邮件报告。

我经常会收到类似这样的报告:

---------------------- Start Rootkit Hunter Scan ----------------------
Warning: The file properties have changed:
        File: /sbin/fsck
        Current inode: 6029384    Stored inode: 6029326
Warning: The file properties have changed:
        File: /sbin/ip
        Current inode: 6029506    Stored inode: 6029343
Warning: The file properties have changed:
        File: /sbin/nologin
        Current inode: 6029443    Stored inode: 6029531
Warning: The file properties have changed:
        File: /bin/dmesg
        Current inode: 13369362    Stored inode: 13369366

据我所知,rkhunter 通常会报告扫描文件的哈希值和/或修改日期的改变,所以这让我认为没有真正的变化。

我的问题是:机器上是否存在其他活动可能会导致 inode 发生变化(运行 ext4)或者这是否真的yum作为正常安全更新的一部分对这些文件进行定期(约每周一次)更改?

答案1

更新文件通常是通过在同一目录中写入新文件,然后在旧文件之上重命名该文件来完成的。此方法通常适用于通过包管理器安装的所有内容,也适用于对可执行文件和库执行的任何更新,即使是出于其他原因而更新的。

这种更新文件的方式确保打开文件的任何进程都会获得旧文件或新文件,而不会看到他们打开的文件发生任何变化。这意味着每次更新时,您实际上都会得到一个同名的新文件,因此 inode 编号已经改变。

我猜这就是这些文件具有新 inode 编号的原因。

安全更新可能是一个原因。但还有另一种可能性,这是我在 Fedora Core 1 上首次发现的,而且很可能在某个时候也出现在 Centos 中。

可执行文件和库正在预链接,以便它们可以更快地启动并使用更少的内存。在此过程中,加载地址被随机化,以使利用安全漏洞变得更加困难。 cron 作业将定期使用新的随机地址重复该过程,从而更新所有预链接的可执行文件和库。

答案2

我发现的另一个选项是完全禁用这些属性测试。如果您编辑/etc/rkhunter.conf并查找该DISABLE_TESTS行并将其更改为:

DISABLE_TESTS="suspscan hidden_procs deleted_files packet_cap_apps apps properties"

properties测试是检查文件哈希值并返回误报的测试。

答案3

更改的 inode 编号通常意味着文件已被替换。正如您所说,这可能是由于预期的更新。我会验证这些文件的 md5sum 是否与分发版本的 md5sum 相匹配。如果您有另一个可比较的系统,那么与之进行比较可能是最容易的。

看看接受的答案rkhunter 报告文件属性发生变化,但我没有看到 yum 更新它们如何检查这些二进制文件来自哪个包。

如果这些二进制文件来自一个由于另一个二进制文件发生更改而更新的发行版,但您列出的二进制文件未作任何更改就包含在新版本的软件包中,这并不奇怪。您的报告是否还显示了一些二进制文件,其中的内容曾是變化?

答案4

我将一个驱动器克隆到一个更大的驱动器,并收到文件具有不同 inode 编号的警告。我从系统中移除了 rkhunter,重新安装并再次运行扫描,没有关于 inode 编号被更改的警告

相关内容