发布日期:2026-02-06 13:46 点击次数:61
CPU 飙升是服务器被挖矿病毒(如 xmrig、kdevtmpfsi、watchdogs 等)攻击的典型表现。这类恶意程序会利用你的服务器资源进行加密货币挖矿,导致 CPU 持续 100% 占用,系统变慢甚至宕机。
下面是一套 针对性排查与清除方案 ,适用于 Linux 系统(如 CentOS、Ubuntu):
C 第一步:快速定位高 CPU 进程# 查看 CPU 占用最高的进程
top
# 按 'P'(大写)可按 CPU 使用率排序
#后端 #掘金一周重点关注:
进程名可疑(如 kdevtmpfsi 、 xmrig 、 sysupdate 、 networkservice 、 watchdog 、随机字符串)用户不是你创建的(如 nobody 、 daemon 、 redis 等系统用户运行未知程序)记下 PID 和进程名。
️ 第二步:深入分析可疑进程假设你发现一个叫 kdevtmpfsi 的进程占用了 95% CPU:
# 查看该进程的详细信息(替换为实际 PID)
PID=12345 ls -l /proc/$PID/exe # 查看它实际执行的是哪个文件
cat /proc/$PID/cmdline # 查看启动命令(可能带矿池地址)
cat /proc/$PID/environ | tr '\0' '\n' # 查看环境变量
常见藏匿路径:
/tmp//dev/shm//var/tmp//usr/bin/.xxx (隐藏文件)/root/.cache/ 第三步:终止进程并删除文件# 终止进程
kill -9 12345
# 删除对应文件(根据 /proc/PID/exe 的结果)
rm -f /tmp/kdevtmpfsi rm -f /dev/shm/kdevtmpfsi
⚠️ 注意 :有些病毒会通过守护进程或定时任务自动重启!所以不能只 kill 进程!
⏰ 第四步:检查持久化入口(关键!)1. 检查定时任务(cron)crontab -l # 当前用户
crontab -u root -l # root 用户
cat /etc/crontab ls /etc/cron.d/ ls /var/spool/cron/crontabs/ # Ubuntu 路径
ls /var/spool/cron/ # CentOS 路径
常见恶意 cron 示例:
*/5 *
@reboot /tmp/.sysupdate
→ 删除这些行 ,或直接清空可疑用户的 crontab:
crontab -r # 清空当前用户 cron(谨慎使用)
2. 检查 systemd 服务(较新病毒会伪装成服务)systemctl list-unit-files --type=service | grep enabled
ls /etc/systemd/system/
删除可疑服务:
systemctl stop malicious.service
systemctl disable malicious.service
rm -f /etc/systemd/system/malicious.service
3. 检查 rc.local、init.d 等启动项cat /etc/rc.local
第五步:封堵入侵源头CPU 飙升通常是 已有漏洞被利用 的结果。常见入口包括:
| Redis 未授权访问 | 绑定 127.0.0.1,设置密码,关闭 AOF/RDB 自动加载脚本 | | SSH 弱密码爆破 | 改用密钥登录,禁用 root 登录,改 SSH 端口 | | Web 应用漏洞(如 WordPress、ThinkPHP) | 升级 CMS/框架,删除未使用插件 | | Docker API 暴露 | 不要将 2375 端口暴露到公网 | | Nginx/Apache 配置错误导致目录遍历 | 检查配置,禁止列出目录 | 立即检查: # 查看最近的 SSH 登录(是否有异常 IP)
grep "Accepted" /var/log/auth.log | tail -20 # Ubuntu
grep "Accepted" /var/log/secure | tail -20 # CentOS
# 查看监听端口(是否有 Redis 6379、MongoDB 27017 暴露?)
ss -tulnp
️ 第六步:加固与监控启用阿里云「云安全中心」免费版即可检测挖矿行为开启「病毒查杀」+「入侵检测」安装实时监控工具# 安装 atop(记录历史资源使用)
apt install atop -y # 或 yum install atop
systemctl enable --now atop 限制普通用户执行权限# 例如禁止 /tmp 执行程序(在 /etc/fstab 中添加 noexec)
mount -o remount,noexec,nosuid /tmp mount -o remount,noexec,nosuid /dev/shm
极端建议:重装系统如果反复感染、无法彻底清除,最安全的方式是 :
在阿里云控制台 创建当前磁盘快照 (用于取证)更换系统盘 (重装干净的官方镜像)仅恢复业务数据 (不要恢复可执行文件、脚本、配置文件)重新部署应用,并严格遵循安全规范 附:快速检测脚本(可复制运行)#!/bin/bash
echo "=== 高 CPU 进程 ==="
ps aux --sort=-%cpu | head -n 10
echo -e "\n=== /tmp 和 /dev/shm 中的可执行文件 ===" find /tmp /dev/shm -type f -executable 2>/dev/null