检查 ps 程序

黑客最常见的手段之一就是替换掉 ps (process status) 程序,被替换的 ps 将不会显示那些正在运行的非法程序。所以要检查 ps 程序的大小。

ls -lh /bin/ps

在 RH/CentOS 系不同的版本里,ps 差不多都是 60~80kB 的大小。如果 ps 程序被恶意替换的话,体积会小得多,一般常见于 10~20kB。

检查历史指令记录

黑客常见的把戏还有将历史指令记录文件链接到 /dev/null 。Linux 用户常用在 CLI 环境下使用方向键“↑”来翻看先前执行过的指令,黑客把历史指令记录文件重定向到 /dev/null 的主要目的是使用户不能看到黑客曾经输入过的指令。

可以使用指令 history 来访问历史指令记录,如果发现刚刚使用的 history 指令并没有出现在历史指令记录的尾端,那就要提高警惕了。

历史指令记录文件位于 ~/.bash_history。查看一下记录文件内容,

cat ~/.bash_history

如果文件是空的,就执行指令

ls -lh ~/.bash_history

将看到类似如下输出:

root root 2.1K Oct 7 18:50 /root/.bash_history

root root 0.9K Oct 7 18:50 /root/.bash_history -> /dev/null

假如看到的是后者,就表明 ~/.bash_history 文件已经被重定向到 /dev/null ,这是一个危险的信号。

寻找未知系统账户

打算对 Linux 系统做检测的时候,首先检查是否有存在未知的系统账户无疑是明智的。使用指令

grep :x:0: /etc/passwd

在一个正常的 Linux 发行版里,应该只反馈一行结果

root:x:0:0:root:/root:/bin/bash

如果 grep 反馈的结果不止一行那就可能有问题了,因为只该有一个用户的 UID 为 0 !而如果 grep 命令的反馈结果超过一行,那就表示不止一个用户。

结语

基本来说,虽然对于发现黑客入侵行为,以上都是一些很好的简单快速的基本方法,但这些技巧本身并不能构成足够的安全性,而且其深度和广度和入侵检测系统比起来也差得远。

我的建议是,假如怀疑系统真的出了问题,打电话给一个 Linux 安全专家,参考他的意见。毕竟 Linux 的安全不是一下子就可以弄好的。

其他

参考 配置基于SSH密钥的身份验证