Moli的记事本

Moli的记事本

kdevtmpfsi挖矿病毒 复盘

14
2025-06-20

起初:昨日在arm盒子上用docker部署了rocketmq,今天瞥了眼探针发现盒子的cpu 100%在爆红了,立马察觉不对,赶紧ssh上机检查

挖矿病毒

通过htop发现/tmp/kdevtmpfsi 疯狂占用cpu,显然是罪魁祸首,第一时间 kill -9 pid杀掉后cpu使用率骤降

PS:建议这里先docker stats看一下容器情况,如果容器cpu明显异常,那病毒就是在容器里

如果容器状态没异常,那么建议systemctl status PID查一下有没有守护进程

网上搜索了下得知,kdevtmpfsi是个在20年处爆发的挖矿僵尸网络蠕虫病毒

然后ll /tmp/kdevtmpfsi,没看到文件,很奇怪

继续ll /var/tmp/kdevtmpfsi,依然没有

这里其实是因为在容器,所以宿主机找不到,后续find命令无输出也是这个原因

再次使用htop,未看到kdevtmpfsi复活

环境确认

  • 印象里ssh是仅密钥登录,用cat /etc/ssh/sshd_config 检查是否符合预期,以下着重注意这两行

PubkeyAuthentication yes

PasswordAuthentication no

  • 确认是否有未知密钥cat ~/.ssh/authorized_keys

  • 检查所有用户的crontab是否有异常任务for user in $(cut -f1 -d: /etc/passwd); do crontab -u $user -l; done

  • 全盘扫一下病毒位置,无输出代表没找到find / -name "*kdevtmpfsi*"

到这如果都没问题,那宿主机大概率没事,问题应该是在docker

检查docker

docker exec -it 容器名 /bin/bash 进入容器

如果前面你没和我一样kill异常进程,那么这里top -c 你应该能再次看到它

ls -al /tmp/kdevtmpfsi 不出意外就能看到病毒文件了

清除病毒

我这边容器只是用来测试,并不重要就直接docker rm 和docker rmi了

如果容器还需使用,临时处理可以参考这个:

https://segmentfault.com/a/1190000042305570

总结

因为rocketmq官方并没有提供arm镜像,我也不想浪费时间再去配置,偷懒使用了github上的这个镜像

https://github.com/dyrnq/docker-rocketmq-example/blob/main/compose/docker-compose.yml

同时为了方便随处使用,把rocketmq的10911和9876内网穿透到公网。

所以这里就有两个问题:

  • 首先他人镜像并不能保证安全无毒。切记对需要特权模式运行的容器一定要慎重,确保来源安全可信

  • 任何程序都有存在漏洞的可能。这里用的rocketmq是4.9.4版本,非最新版本(怀疑病毒就是从这突破进来的)

然后是ssh仅密钥登录+禁止root登录,最好也要确保

后记

我这边盒子使用的是coreelec,默认没useradd,偷懒还是用的root,此处是有风险的(emmmm,老爱偷懒)

PS:根据coreelec论坛资料,其实还是可以实现新增用户的,虽然有点麻烦。本懒狗考虑到coreelec作为极度精简的linux,使用非root可能后续会带来很多不变,决定继续用root。。。大不了重刷:)

https://discourse.coreelec.org/t/how-can-i-add-a-new-user/14645