Linux服务器挖矿病毒(kswapd0)清除实践
更新时间:2026-01-23
文档概述
本文档记录了云服务器遭遇挖矿病毒入侵后的应急响应与深度清理最佳实践,适用于云服务器运维人员、安全工程师及系统管理员。当您的服务器出现 CPU 负载异常飙升、系统响应缓慢、进程伪装成内核线程 等疑似挖矿病毒感染的场景时,可参考本文档进行排查与处置。
操作提示
- 备份前置要求:挖矿病毒通常会篡改系统核心命令、动态链接库及定时任务,清理过程可能影响系统稳定性,请务必在操作前完成 系统快照备份 与 重要数据备份。
- 环境适配说明:本文档以 Linux 系统为例,不同发行版的命令路径与工具可能存在差异,请根据实际环境调整。
- 权限要求:所有操作需使用
root或具备同等权限的账号执行。 - 最小影响原则:建议在测试环境验证方案后,再对生产环境执行操作。
最佳实践
问题现象
用户反馈远程连接非常卡顿,甚至频繁出现连接中断或无法连接。
问题分析
- 异常现象定位 通过 控制台监控 查看主机资源时,发现 监控 数据缺失。
-
当进程资源被打满时,BCC监控容易出现数据拉取失败导致监控无数据。
通过 VNC 上机,执行
top命令查看当前资源。 用户使用的是 LS 轻量服务器,规格为1c2m(1核vCPU,2G内存),配置较低;发现一个可疑进程kswapd0,CPU 排名第一但占用率约11.5%。 - 负载不只体现在 CPU 占用率,
load average也是重要指标;当前负载达到1.26、1.88、1.68,偏高。

- 进程伪装分析
针对 kswapd0 进行分析,发现它的命名伪装成了内核线程[kswapd0],因此可以认定它为植入的挖矿进程。
- 正常内核线程显示为
[kswapd0](带方括号),属于内核线程,无法直接杀掉,通常没有/proc/<PID>/exe链接。 - 恶意挖矿常伪装为用户态进程
kswapd0(不带方括号),有实际执行文件路径,用以迷惑用户、隐藏自己。 - 该类进程往往进行高强度哈希计算(挖矿),导致 CPU 持续高占用、负载升高,影响服务器上的其他应用与整体响应。
- 判别方法:查看
ps是否带括号、ls -l /proc/<PID>/exe是否指向样本文件,结合网络外联是否存在矿池连接(如下)。
- 恶意文件定位
- 先定位该进程对应的执行文件路径:
Plain Text
1ls -l /proc/<PID>/exe # <PID> 替换为实际进程 ID

- 网络外联排查
- 查看该进程的网络信息:
Plain Text
1netstat -antlp | grep -w kswapd0

该外联地址来自境外(示例为荷兰 IP),用户没有境外业务,一般挖矿病毒也多为境外IP植入。
处理方案
- 病毒样本确认
Plain Text
1md5sum /var/tmp/.copydie/kswapd0
2# 将得到的 MD5 在以下平台检索:
3# ThreatBook(微步) https://s.threatbook.com/
4# VirusTotal https://www.virustotal.com/gui/home/search
- 清理恶意文件
Plain Text
1rm -rf /var/tmp/.copydie
- 清除持久化后门 检查并删除恶意定时任务:
Plain Text
1crontab -l
2sudo crontab -l
3# 如发现异常条目,先备份再清理
- SSH 公钥检查,防止持续后门:
Plain Text
1cat ~/.ssh/authorized_keys
2sudo cat /root/.ssh/authorized_keys
3# 删除未知或异常公钥
- 终止恶意进程(建议在清理样本与定时任务后再执行,避免被拉起):
Plain Text
1kill -9 <PID> # <PID>为病毒进程号
附:更多研判时,可观察是否存在守护进程或自启动项(
systemd/init/rc.local等),按需清理。
结果验证
- 资源负载验证执行
top 命令确认 load average 恢复至正常范围(低于服务器核心数)。
- 进程完整性验证使用
ps aux 与 unhide proc 扫描,未发现隐藏进程;
总结
- 跟着可疑进程定位到具体目录,先清目录与自启动,再杀进程。
- 清理定时任务与异常公钥,防止自动拉起与后门。
- SSH 端口尽量不使用默认 22,密码设置要复杂;优先使用密钥连接。
- 封闭不使用的端口(通过防火墙和安全组策略),做到用一个开一个。
- 及时修补系统与软件漏洞,提升整体安全性。
