RKHunter 报告了正在使用已删除文件或正在监听网络的进程

RKHunter 报告了正在使用已删除文件或正在监听网络的进程

我跑了Rootkit 猎手1.4.0 在 Debian Wheezy 服务器上,我对输出感到困惑。

我使用以下配置启用了每个测试:

ENABLE_TESTS="all"
DISABLE_TESTS="none"

输出如下:

Warning: The following processes are using deleted files:
  Process: /usr/sbin/mysqld    PID: 2036    File: /tmp/ibi1WkYB
  Process: /usr/sbin/cron    PID: 7468    File: /tmp/tmpf73tnoh
  Process: /bin/dash    PID: 7469    File: /tmp/tmpf73tnoh
  Process: /bin/run-parts    PID: 7470    File: /tmp/tmpf73tnoh
  Process: /var/virtualenvs/project_foo/bin/python    PID: 28542    File: /tmp/wgunicorn-cIAtc2
  Process: /var/virtualenvs/project_foo/bin/python    PID: 28547    File: /tmp/wgunicorn-cIAtc2
  Process: /var/virtualenvs/project_foo/bin/python    PID: 28548    File: /tmp/wgunicorn-cIAtc2
  Process: /var/virtualenvs/project_foo/bin/python    PID: 28549    File: /tmp/wgunicorn-cIAtc2
Warning: Process '/sbin/dhclient' (PID 1328) is listening on the network.

其中大多数肯定是误报,但我想了解这些误报背后发生了什么,并修复那些不是误报的。这份报告不是凭空而来的,从 RKHunter 第一次运行开始我就有这些行了。

关于已删除的文件

RKHunter 每天通过 cron 运行,这解释了为什么/usr/sbin/cron/bin/run-parts也许/bin/dash还有?)会出现在这里。

但是,我不明白为什么:

1) 所有这些已删除的文件均由进程使用。此报告是否意味着每个进程都在尝试使用已删除的文件,或者是否在某个时间点使用了当时存在但之后被删除的文件?我认为如果答案是第一个选项,则可能存在问题。可以/应该修复吗?

2) 同一程序的 4 个进程正在使用同一个已删除文件。即使使用已删除文件是误报,此报告中是否有内容表明这 4 个进程是错误的(而不是只有一个)?我知道这可能完全是应用程序特定的,并且此处的报告可能没有答案,但我只是想了解它们为什么在这里。作为信息,它们指的是在整个服务器中仅运行一次的 Web 应用程序(单线程和单核)。

关于聆听过程

我确实在此服务器上运行了 DHCP(开箱即用,我没有对其进行调整,也没有了解有关 DHCP 的太多细节)。

3) RKHunter 报告警告是否正常?如果是误报,是否有明显的原因导致这里没有报告其他正在监听网络的进程(例如sshd,...)?


当然,如果需要的话,我会尽量提供尽可能多的信息,如果我忘记提供具体的有用数据,请随时询问。

答案1

首先,这些不是“假阳性”。rkhunter 报道的是事实,它并没有对这些事实进行任何解释。

该报告是否意味着这些进程中的每一个都试图使用已被删除的文件,或者它在某个时候使用了当时存在但后来被删除的文件?

报告向您展示了在文件被删除时打开了文件的进程。您需要确定这些进程的行为是否合法/可接受。

...该报告中是否有内容表明这 4 个过程存在错误(而不是只有一个)?

您认为错误是什么?有 4 个独立进程(如不同的 PID 编号所示),这就是 rkhunter 所报告的。

RKHunter 对此报告警告是正常的吗?

rkhunter 带有通用配置;它无法知道预计 dhcpd 正在运行特定机器——你必须进行一些配置。rkhunter FAQ 的第 6 节详细介绍了如何将进程/守护进程/等列入白名单

答案2

据我所知,类 Unix 系统上的程序打开文件然后删除它是正常的。您可以在或中禁用该检查 ( DISABLE_TESTS=deleted_files) 。/etc/rkhunter.conf/etc/rkhunter.conf.local

据我所知,dhclient监听网络是正常的。并且/sbin/是该程序的常用位置。所以我也会将 dhclient 列入白名单。(ALLOWPROCLISTEN=/sbin/dhclient

相关内容