我有几个运行 Centos 6 并安装了 rkhunter 的系统。我每天都有一个运行 rkhunter 的 cron,并通过电子邮件进行报告。
我经常收到这样的报告:
---------------------- 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
定期(每周一次)更改这些文件作为正常安全更新的一部分?
更新文件通常通过在同一目录中写入新文件然后在旧文件之上重命名文件来完成。此方法通常适用于通过包管理器安装的所有内容,也适用于对可执行文件和库执行的任何更新,即使出于其他原因进行了更新。
这种更新文件的方式确保任何打开文件的进程都将获得旧的或新的,并且不会在他们打开的文件中看到任何变化。这确实意味着每次更新时,您实际上都会有一个同名的新文件,因此 inode 编号已更改。
我想这就是这些文件具有新 inode 编号的原因。
安全更新可能是原因之一。但是还有另一种可能性,我首先在 Fedora Core 1 上观察到,它很可能在某个时候进入了 Centos。
可执行文件和库正在被预链接,以便它们可以更快地启动并使用更少的内存。在此过程中,加载地址是随机的,以使利用安全漏洞变得更加困难。cron 作业会定期使用新的随机地址重复该过程,从而导致所有预链接的可执行文件和库得到更新。
我发现的另一个选项是完全禁用这些属性测试。如果您编辑
/etc/rkhunter.conf
并查找该DISABLE_TESTS
行并将其更改为:测试是检查并返回文件哈希的
properties
误报。更改的 inode 编号通常意味着文件已被替换。正如您所说,这可能是由于预期的更新。我会验证这些文件的 md5sum 是否与分布式版本的匹配。如果您周围有另一个类似的系统,那么与之比较可能是最容易的。
查看 rkhunter 报告文件属性更改中接受的答案,但我没有看到 yum 已更新它们以了解如何检查这些二进制文件来自哪个包。
如果这些二进制文件来自已更新的发行版,因为另一个已更改的二进制文件存在问题,但您列出的二进制文件未更改地包含在新版本的软件包中,这不会太令人惊讶。您的报告是否还显示了一些内容已更改的二进制文件?
我将驱动器克隆到更大的驱动器,并收到具有不同 inode 编号的文件的警告。我从系统中删除了 rkhunter 并重新安装并再次运行扫描,没有关于更改 inode 编号的警告