如何检测Linux中的隐藏进程?

Chr*_*ris 11 security linux process hidden

我们有一个我们怀疑已经在工作中扎根的盒子。问题是我们如何找到它?我不是系统管理员,但我被带到团队来解决这个问题,我很好奇在哪里可以找到诸如问题之类的好地方?

我们怀疑这一点的原因是我们注意到机器上来自高(似乎是随机的)端口的网络利用率高于正常情况。

我们可以做什么来定位问题儿童?我们可以做些什么来防止将来发生这种情况?是否有监控可以让我们在未来意识到这一点?(除了我们已经在密切关注的网络监控。)

提前致谢,如果需要,我可以提供更多详细信息。珍惜你的时间。

小智 7

您不能信任机器上的任何系统工具。Rootkit 将替换 ps、netstat、ls 等以隐藏它们的存在。你应该让机器脱机,取出它的硬盘,制作一个取证副本(想想 dd),然后在辅助机器上使用它来扫描 rootkit。

如果您坚持在现场机器上工作(这通常是徒劳的),那么您可以尝试在 CD 上下载救援发行版(副本为只读非常重要)并使用其副本 ps、lsmod 等。

甚至这可能会失败,因为 rootkit 可以安装内核模块来隐藏 /proc 中的条目,而 ps 之类的工具通常会在这些条目上运行。

祝你好运!


Gop*_*poi 6

构造良好的rootkit 的问题在于它们会修改您系统的命令;像 ps 和 top 不显示 rootkit 的进程和 ls 不显示 rootkit 的文件。

因此,您需要做的是从源代码或二进制文件形式获取这些命令。(一定要签名好)。但是 root kit 的窍门(我见过)是它们也可能损坏了你的编译器。因此,当编译器知道他正在编译 ls 或 ps 或任何命令时,他也会感染它们。

当我看到这个问题时,我说可以重新编译 gcc,但是我不需要编译 gcc ……感染 gcc……所以当他知道他正在编译自己时,他会感染它,以便它可以感染命令。

你会说这很大而且难以检测,是的,但很少见的 root kit 如此防弹,我只是给了你更糟糕的情况。

说真的,如果您确定您的服务器中有一个根工具包,请重新安装它!


Ste*_*day 6

了解您的服务器是否已“扎根”的最佳方法是运行基于主机的入侵检测系统 (HIDS)。不幸的是,如果您现在没有运行 HIDS,那么安装它就太晚了。安装HIDS适当的时候是第一次安装服务器时,与之前它被放到网络上。

简而言之,大多数 HIDS 的工作方式是计算所有系统二进制文件的加密哈希值,并将这些哈希值(以及许多其他文件统计数据)存储到一个称为基线数据库的数据库中。然后,HIDS 会定期重新扫描您的系统,将其基准数据库中的所有文件与实际系统文件进行比较。

是的,当然,rootkit 有可能修改您的基线数据库,这就是为什么您需要获取该数据库的副本并将其与服务器分开存储,然后再将服务器置于联机状态。然后,如果您怀疑自己是“root”(并且您怀疑您的基准数据库也被篡改了),您可以从安装介质启动您的系统,从您的备份中恢复已知良好的数据库,然后针对众所周知。然而,更有可能的是,rootkit 不会预料到必须打败您的特定 HIDS,因此您会收到来自 HIDS 的通知,表明系统文件已更改,表明可能存在系统入侵。

由于您没有运行 HIDS,因此您无法快速确定您是否已获得 root 权限,或者哪些系统文件已被修改。您可能会花费大量时间将您的系统文件与从已知良好的安装媒体中提取的已知良好文件进行比较,但这段时间很可能最好花在从该媒体重新安装系统上。如果您想调查事后如何扎根,最好的方法是在擦除并重新安装之前拍摄系统映像。