症状表现

服务器CPU资源使用一直处于100%的状态,通过 top 命令查看,发现可疑进程 kdevtmpfsi。通过 google搜索,发现这是挖矿病毒。

挖矿病毒 kdevtmpfsi 处理_java

排查方法

首先:查看 kdevtmpfsi 进程,使用 ps -ef | grep kdevtmpfsi ps -ef | grep kinsing命令查看,见下图。

挖矿病毒 kdevtmpfsi 处理_运维_02

PS:通过 ps -ef 命令查出 kdevtmpfsi 进程号,直接 kill -9 进程号并删除 /tmp/kdevtmpfsi 执行文件。但没有过1分钟进程又运行了,这时就能想到,kdevtmpfsi 有守护程序或者有计划任务。通过 crontab -l 查看是否有可疑的计划任务。

第二步:根据上面结果知道 kdevtmpfsi 进程号是 10393,使用 systemctl status 10393 发现 kdevtmpfsi 有守护进程,见下图。

挖矿病毒 kdevtmpfsi 处理_java_03

第三步:kill 掉 kdevtmpfsi 守护进程 kill -9 30903 30904,再 killall -9 kdevtmpfsi 挖矿病毒,最后删除 kdevtmpfsi 执行程序 rm -f /tmp/kdevtmpfsi

事后检查

  • 通过 命令搜索是否还有 kdevtmpfsi 文件
  • find / -name "kdevtmpfsi"
  • find / -name "kinsing"
  • 查看 Linux ssh 登陆审计日志。CentosRedHat 审计日志路径为 /var/log/secureUbuntuDebian 审计日志路径为 /var/log/auth.log
  • 检查 crontab 计划任务是否有可疑任务
  • find / -name kdevtmpfsi
  • find / -name kinsing
  • cd /var/spool/cron  
  • 查看是否有相关的木马定时任务在执行  
  • 有的话删掉再重启下crontab
  • 关闭定时任务
  • service crond stop

挖矿病毒 kdevtmpfsi 处理_java_04

后续工作溯源,找到程序漏洞,封禁访问ip,不正常ip。源程序下载。

使用clamav对整个Linux做全盘扫描,确定被感染文件并删除。

挖矿病毒 kdevtmpfsi 处理_java_05

 查找守护进程文件变种名字。

挖矿病毒 kdevtmpfsi 处理_java_06

全部删除  - 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 再次查看网络连接,已无问题

补充一个小知识点

挖矿病毒 kdevtmpfsi 处理_linux_07

ps -ef | grep kdevtmpfsi 进程号一直改变的原因 ps -ef | grep xx 显示的进程就是你查寻进程的进程,每次查都会变 哈哈哈,我弱爆了