阿里云服务器被挖矿病毒入侵,CPU跑满,需要先停止相关进程。为了根除病毒,还需要
- 解决系统的后门问题(这部分听从阿里云工程师的建议备份系统盘快照后重置系统,再通过快照恢复数据)
- 然而重置系统后依然存在出现不定期挖矿程序跑满CPU的问题,查找相关资料后找到了对应的进程的父进程(PID为1的守护进程),删除了相关的系统任务
一、挖矿进程处理
-
通过
top
找到跑满CPU的进程注:
- 注意到CPU占用率极高,显然就是PID为979的进程
- 查找相关资料可知,c3pool为挖矿程序
-
进而可以通过
kill -9 pid
杀死进程,但建议还是kill -SIGSTOP PID
暂停进程,方便后续相关信息的查找
二、问题的根除
重置操作系统
- 原因:"病毒一旦入侵系统,通常会执行替换系统命令、植入后门、修改计划任务等等一些列操作,很难发现和完全根除。"
- 解决:进入阿里云控制台
- 生成系统快照
- 重置操作系统
- 通过系统快照恢复数据
解决残留问题
-
原因:重置系统后依然存在出现不定期挖矿程序跑满CPU的问题
-
解决
-
查看root用户的定时任务:
crontab -l
注:发现并没有
-
查看守护进程下的服务
参考:详细解决服务器的挖矿病毒和端口扫描器 - 墨天轮 (modb.pro)
-
通过
cat /proc/979/status
确定挖矿程序的父进程:PPID=1,即系统守护进程 -
通过
systemctl list-units --type=service --all --state=active
查看系统进程的相关服务注:这里运气很好,相关的服务名就是c3pool,直接定位到了病毒服务
-
通过
systemctl stop c3pool
关闭病毒服务进程 -
通过/etc/systemd/system找到病毒服务进程的配置文件,删去即可
-
重启系统后,再次通过
systemctl list-units --type=service --all --state=active
查看系统守护进程的服务,没有出现病毒服务进程,且之后没有再出现挖矿程序,问题解决
-
-
三、其他建议
- ssh端口不要使用默认的22,最好做一定的偏移,以防止被爬虫扫描破解
- 加强root账户的ssh密码强度
- 设置登录IP的白名单
- 使用阿里云快照定期备份,以及时恢复错误内容