1. 症状识别:你的服务器是不是在“偷偷挖矿”?
最近有好几个朋友和客户都跑来问我,说自己的Linux服务器突然变得奇慢无比,CPU风扇狂转,但自己明明没跑什么大程序。我一听这描述,心里就咯噔一下:十有八九是中了挖矿木马。这玩意儿现在太常见了,它就像服务器里的“寄生虫”,悄无声息地占用你的计算资源,给攻击者“打工”挖虚拟货币,电费、硬件损耗全是你买单,性能却被拖垮。
怎么初步判断呢?我一般会告诉新手朋友几个最直观的“报警信号”。首先,服务器响应变得异常缓慢,平时秒开的网页或服务,现在要等半天,甚至SSH连接都卡顿。其次,CPU使用率长期居高不下,即使在你认为的“空闲”时段,用top或htop命令一看,总有一个或多个你不认识的进程吃掉了90%以上的CPU。最后,系统风扇噪音明显增大,因为CPU持续满载导致温度飙升。如果你同时遇到了这几点,那就得高度警惕了。
这里我分享一个我早期踩过的坑。有一次客户说网站访问慢,我第一反应是数据库或者Web服务器配置问题,折腾了半天优化参数,效果甚微。后来无意间用top命令,才发现一个名叫kinsing的进程几乎吃光了所有CPU资源。单纯用kill命令结束它,几秒钟后它又自己“复活”了,这就是典型的挖矿木马特征——它们通常有守护进程、计划任务或者系统服务来自我恢复,让你“杀不死”。所以,当你发现一个可疑进程无法用普通方式彻底清除时,基本就可以断定服务器被入侵了,接下来的工作就是一场系统的“排雷”战斗。
2. 深入排查:揪出隐藏的“矿工”进程
发现可疑症状后,我们不能只停留在表面。直接打开终端,开始我们的“侦探”工作。第一步永远是查看系统资源占用。我习惯用top命令,然后按1键展开所有CPU核心的详情,看看是哪个核心负载高。接着按c键,可以显示进程的完整命令行,这对于识别伪装进程至关重要。比如,一个正常的bash或nginx进程命令很清晰,而挖矿进程的命令行往往是一长串奇怪的路径或加密的矿池地址。
光看top还不够,我们需要更详细的进程信息。这时ps命令就派上用场了。我常用的组合是:
ps aux --sort=-%cpu | head -20
这个命令会列出所有进程,并按CPU使用率降序排列,显示前20个。重点关注那些用户是root或者不常见的系统用户、进程名奇怪(比如warmup、kinsing、xmrig、minerd等)、命令行中包含pool(矿池)、mine(挖矿)、stratum(挖矿协议)或一长串奇怪域名和端口的进程。记下这些进程的PID(进程ID)和完整路径。



被折叠的 条评论
为什么被折叠?



