症状表现
服务器CPU资源使用一直处于100%的状态,通过 top
命令查看,发现可疑进程 kdevtmpfsi
。通过 google搜索,发现这是挖矿病毒。
排查方法
首先
:查看 kdevtmpfsi
进程,使用 ps -ef | grep kdevtmpfsi
ps -ef | grep kinsing
命令查看,见下图。
PS:通过
ps -ef
命令查出kdevtmpfsi
进程号,直接 kill -9 进程号并删除 /tmp/kdevtmpfsi 执行文件。但没有过1分钟进程又运行了,这时就能想到,kdevtmpfsi
有守护程序或者有计划任务。通过crontab -l
查看是否有可疑的计划任务。
第二步
:根据上面结果知道 kdevtmpfsi
进程号是 10393
,使用 systemctl status 10393
发现 kdevtmpfsi
有守护进程,见下图。
第三步
:kill 掉 kdevtmpfsi 守护进程 kill -9 30903 30904
,再 killall -9 kdevtmpfsi
挖矿病毒,最后删除 kdevtmpfsi 执行程序 rm -f /tmp/kdevtmpfsi
。
事后检查
- 通过 命令搜索是否还有 kdevtmpfsi 文件
- find / -name "kdevtmpfsi"
- find / -name "kinsing"
- 查看 Linux ssh 登陆审计日志。
Centos
与RedHat
审计日志路径为/var/log/secure
,Ubuntu
与Debian
审计日志路径为/var/log/auth.log
。 - 检查 crontab 计划任务是否有可疑任务
- find / -name kdevtmpfsi
- find / -name kinsing
- cd /var/spool/cron
- 查看是否有相关的木马定时任务在执行
- 有的话删掉再重启下crontab
- 关闭定时任务
- service crond stop
后续工作溯源,找到程序漏洞,封禁访问ip,不正常ip。源程序下载。
使用clamav对整个Linux做全盘扫描,确定被感染文件并删除。
查找守护进程文件变种名字。
全部删除 - find / -name "kdevtmpfsi" | xargs rm -rf - find / -name "kinsing" | xargs rm -rf
至此杀毒工作基本进入尾声。后面几天观察服务器服务,进程是否异常。
后期防护
- 启用
ssh公钥登陆
,禁用密码登陆。 -
云主机
:完善安全策略,入口流量,一般只开放 80 443 端口就行,出口流量默认可以不限制,如果有需要根据需求来限制。物理机
:可以通过硬件防火墙
或者机器上iptables
来开放出入口流量规则。 - 本机不是直接需要对外提供服务,可以拒绝外网卡入口所有流量,通过
jumper
机器内网登陆业务机器。 - 公司有能力可以搭建安全扫描服务,定期检查机器上漏洞并修复。
小结
:以上例举几点措施,不全。这里只是抛砖引玉的效果,更多的措施需要结合自己业务实际情况,否则就空中楼阁。 之后查看系统的网络连接
netstat -anpt 1 发现仍旧还有可以连接
接下来查看可以连接的文件位置
ps aux | grep 6712 1 发现文件在/tmp/kinsing 在tmp中查看并无此文件,可能只是进程没有关闭而已
使用命令关闭异常进程
kill -9 6712 1 再次查看网络连接,已无问题
补充一个小知识点
ps -ef | grep kdevtmpfsi 进程号一直改变的原因 ps -ef | grep xx 显示的进程就是你查寻进程的进程,每次查都会变 哈哈哈,我弱爆了