最近,在维护阿里云上的一台服务器时,我发现系统负载异常高,远远超过了正常运行的范围。通过top命令查看,我发现一个名为Shib的进程一直占用了百分之300多CPU 资源。由于常在币圈混的我就觉得这个进程名称非常特别进入了查杀状态
这篇文章将分享我如何发现这个恶意进程,并一步步解决问题,最终加强服务器安全以防止类似情况的再次发生。
1. 初步发现异常
检查它的启动命令时,我发现它连接到了一个外部的挖矿服务器。
ps aux | grep Shib
进程信息显示:
root 29806 363 0.2 93520 20452 ? Sl Nov05 43453:14 ./Shib -a gr -o stratum+ssl://1123.某挖矿地址:443 -u SHIB:0x031e5116606050737eec2df246a0d99e6e57e6bb.kk#igf7-a271 -p x
通过对该进程的命令行分析,我意识到它正与一个远程挖矿服务器(1123.某挖矿地址:443)建立连接,利用服务器资源进行加密货币挖矿,显然这是一种恶意软件。
2. 暂时性解决方案:防止黑客连接
在明确了服务器被感染之后,我的首要任务是防止黑客通过该进程进一步控制服务器。由于服务器的 SSH 服务是通过密码验证的,我担心在处理过程中黑客可能会再次利用密码登录到服务器。为了避免这一风险,我立刻采取了以下措施:
通过阿里云的安全组功能,临时开启了 IP 白名单,确保只有我信任的 IP 地址可以访问服务器。这一步骤可以有效防止黑客继续进行远程连接。
3. 查杀恶意进程并清理文件
接下来,我开始着手清除Shib恶意进程及其相关文件。首先,我用kill命令强制停止了该进程:
kill -9 29806
然后,通过find命令在整个系统中查找该进程的可执行文件:
find / -name "Shib" 2>/dev/null
找到文件路径后,我将其删除:
rm -f /root/Shib
此外,我还检查了是否存在与此恶意软件相关的定时任务或启动项。通过查看crontab和/etc/init.d/等位置,我确保系统中没有被设置为自启动的恶意程序。
4. 更改 SSH 登录方式
在排查过程中,我意识到继续使用密码登录存在较大的安全隐患。为此,我决定关闭密码登录,改用密钥登录 SSH。
首先,编辑 SSH 配置文件/etc/ssh/sshd_config,禁用 root 密码登录并强制使用密钥认证:
PermitRootLogin without-password
PasswordAuthentication no
大家有什么更靠谱的想法也可以留言大家相互学习