服务器被挖矿了?别慌,按这个流程处理
发现服务器CPU突然飙到100%,top命令看到一个奇怪的进程在跑,很可能是被挖矿了。别慌,这是云服务器最常见的安全事件之一。按照下面的流程处理,可以最大限度地减少损失并防止再次发生。
第一步:确认和隔离
先用 top 确认异常进程(通常CPU占用99%+,进程名可能是随机的)。用 ls -la /proc/PID/exe 查看进程的可执行文件路径。用 cat /proc/PID/cmdline 查看启动命令。
不要急于kill进程(可能还会被拉起),先做现场保留:ps aux > /tmp/ps_output.txt、netstat -antlp > /tmp/netstat.txt、last -50 > /tmp/last_login.txt。然后将服务器从负载均衡中摘除,避免影响业务。
第二步:排查入侵路径
常见的入侵途径:
- 弱密码:SSH使用root+简单密码,被暴力破解。检查
/var/log/secure中的失败登录记录。 - 未修复的漏洞:Redis未设置密码暴露在公网、Web应用有RCE漏洞、Docker API未授权访问。
- 被利用的服务:Struts2、WebLogic等中间件的已知漏洞。
检查 ~/.ssh/authorized_keys 是否被写入了陌生的公钥。检查 /etc/crontab 和 /var/spool/cron/ 是否有可疑的定时任务(挖矿木马通常通过cron持久化)。检查 /tmp 和 /dev/shm 目录下是否有可疑的可执行文件。
第三步:清理和恢复
杀掉挖矿进程,删除恶意文件,清理可疑的cron任务和authorized_keys。检查 /etc/ld.so.preload 是否被植入恶意动态链接库。检查系统binary是否被替换(rpm -Va 或 dpkg --verify)。
如果系统文件被篡改严重,最安全的做法是重装系统:创建快照备份数据 → 更换操作系统 → 恢复业务数据 → 重新部署应用。
第四步:加固防护
修改SSH端口(从22改为随机端口)、禁止root登录、使用密钥认证、设置fail2ban防暴力破解。安装云安全中心Agent,开启入侵检测。关闭不必要的端口和服务。Redis、MySQL等服务只监听内网IP。定期更新系统补丁。
