我用 Google 搜索了一些内容,并查看了它找到的前两个链接:
- http://www.skullbox.net/rkhunter.php
- http://www.techerator.com/2011/07/how-to-detect-rootkits-in-linux-with-rkhunter/
他们没有提到如果出现此类警告我该怎么办:
Warning: The command '/bin/which' has been replaced by a script: /bin/which: POSIX shell script text executable
Warning: The command '/usr/sbin/adduser' has been replaced by a script: /usr/sbin/adduser: a /usr/bin/perl script text executable
Warning: The command '/usr/bin/ldd' has been replaced by a script: /usr/bin/ldd: Bourne-Again shell script text executable
Warning: The file properties have changed:
File: /usr/bin/lynx
Current hash: 95e81c36428c9d955e8915a7b551b1ffed2c3f28
Stored hash : a46af7e4154a96d926a0f32790181eabf02c60a4
问题 1:是否有更多扩展的 HowTo 来解释如何处理不同类型的警告?
第二个问题是,我的行动足以解决这些警告吗?
a) 查找包含可疑文件的软件包,例如文件 /bin/which 的 debianutils
~ > dpkg -S /bin/which
debianutils: /bin/which
b) 检查 debianutils 包校验和:
~ > debsums debianutils
/bin/run-parts OK
/bin/tempfile OK
/bin/which OK
/sbin/installkernel OK
/usr/bin/savelog OK
/usr/sbin/add-shell OK
/usr/sbin/remove-shell OK
/usr/share/man/man1/which.1.gz OK
/usr/share/man/man1/tempfile.1.gz OK
/usr/share/man/man8/savelog.8.gz OK
/usr/share/man/man8/add-shell.8.gz OK
/usr/share/man/man8/remove-shell.8.gz OK
/usr/share/man/man8/run-parts.8.gz OK
/usr/share/man/man8/installkernel.8.gz OK
/usr/share/man/fr/man1/which.1.gz OK
/usr/share/man/fr/man1/tempfile.1.gz OK
/usr/share/man/fr/man8/remove-shell.8.gz OK
/usr/share/man/fr/man8/run-parts.8.gz OK
/usr/share/man/fr/man8/savelog.8.gz OK
/usr/share/man/fr/man8/add-shell.8.gz OK
/usr/share/man/fr/man8/installkernel.8.gz OK
/usr/share/doc/debianutils/copyright OK
/usr/share/doc/debianutils/changelog.gz OK
/usr/share/doc/debianutils/README.shells.gz OK
/usr/share/debianutils/shells OK
c) 放松,/bin/which
因为我看到 OK
/bin/which OK
d)将文件/bin/which
放入/etc/rkhunter.conf
SCRIPTWHITELIST="/bin/which"
e)对于文件的警告,/usr/bin/lynx
我使用以下方法更新校验和rkhunter --propupd /usr/bin/lynx.cur
问题 2:我能正确解决这些警告吗?
答案1
使用debsums
是一个非常聪明的想法,但有一个主要缺陷:如果某些东西覆盖了 root 拥有的文件(例如)/bin/which
,它可以还/var/lib/dpkg/info/*.md5sums
可以使用更新的校验和进行重写。据我所知,没有追溯到 Debian/Ubuntu 签名的保管链。这真是太遗憾了,因为那将是一种非常简单、非常快速的方法来验证实时文件的真实性。
相反,要真正验证文件,您需要下载该 deb 的全新副本,提取内部文件control.tar.gz
,然后查看其 md5sums 文件以与真实文件进行比较md5sum /bin/which
。这是一个痛苦的过程。
这里最有可能发生的情况是,您进行了一些系统更新(甚至是发行版升级),但您还没有要求 rkhunter 更新其配置文件。rkhunter 需要知道文件应该是什么样的,所以任何系统更新都会扰乱它。
一旦您知道某些东西是安全的,您就可以运行sudo rkhunter --propupd /bin/which
来更新其对文件的引用。
这是 rkhunter 的问题之一。它需要深度集成到 deb 进程中,这样当安装了受信任的签名包时,rkhunter 就会更新其对文件的引用。
不,我不会将此类东西列入白名单,因为这正是 rootkit 所要追踪的东西。
答案2
zuba,白名单的想法很糟糕;它取消了对您和您的反恶意软件应该可见的要检查文件的分配,尽管这个想法被使用并且查看消息是无害的。我们是否可以创建一个 writethrough 来代替会更好。在某个地方,以 \ 开头的行将被忽略;但这需要一些编码经验和对 rkhunter 工作原理的深入了解。
当需要适应编程变化时,bin/将被重写;通常,一个文件可能会被替换,或者文件可能会被临时创建并在重新启动后更改或消失,这可能会欺骗 rkhunter 软件。
有一条线,其中的软件/更新或反恶意软件类似于rootkit,我相信这些就是其中之一。
您使用的方法只有在更改程序或文件时才会造成危险,而这些程序或文件会以某种方式影响计算机的运行。有时,在这方面,我们比我们的机器更糟糕。要求为您的计算机证明这一点真的很不公平,如果是我的计算机,我也可以这样做。我会知道,记录警告和校验和,并记录每次发生的变化。