![Ubuntu 上的恶意进程](https://linux22.com/image/729193/Ubuntu%20%E4%B8%8A%E7%9A%84%E6%81%B6%E6%84%8F%E8%BF%9B%E7%A8%8B.png)
运行 Ubuntu 14.04.5 LTS 的 VPS 消耗了近 300% 的 CPU 容量。它被标识top
为正在运行cER6XH
。
有什么方法可以追踪这个过程是什么以及它为什么会变得不正常?
答案1
当您说 VPS 时,您是指在虚拟化解决方案中运行的虚拟服务器,例如 KVM?
300% CPU 只是意味着它同时在 3 个核心上运行。如果它是虚拟服务器,并且已分配 3 个核心 - 如果它正在执行某项操作,则所有分配的 CPU 都应该处于繁忙状态,要找出它在做什么,您需要连接到服务器,然后在那里运行 top 或 ps。
答案2
你可以通过列出进程目录中的 exe 链接来找出正在运行的进程:如果你在 top 中看到的 PID 是 666,那么执行ls -l /proc/666/exe
。
这将(或至少应该)显示一个->
指向您可以分析的文件的箭头。
但是,文件的名称是随机的,这在一定程度上表明您的服务器已被入侵,您需要立即采取纠正措施,但这超出了本文的简短回答范围。最好的办法是确保备份所有内容,并用最新的操作系统替换 VPS。您需要确定入侵者是如何进入的,并确保新服务器没有同样的问题(更改密码,确保向互联网提供的任何服务都是安全的,等等)。
答案3
我会发出命令并 grep 查找该进程。输出ps -ef
中的列为和。查看该列以确定启动了哪个父进程。重新发出命令并 grep 查找父进程 PID。最终,您应该找出涉及哪些二进制文件,并可能找出应该进一步调查哪个应用程序。ps
UID, PID, PPID, C, STIME, TTY, TIME
CMD
PPID
cER6XH
ps
一种更简单的方法(取决于您的系统有多忙)可能是命令pstree
,但将输出通过管道传输到,less
以便您可以以合理的方式查看信息页面。
编辑:阅读@Law29 的评论:尽管进程名称是非标准的 *nix 实用程序,并且确实看起来很可疑,但您正在运行的另一个进程可能创建了一个临时的 shell 脚本并分叉了某些内容。进程名称本身并不是妥协的明显迹象。