前言
最近发现在使用gitlab提交代码的时候总是失败,一访问gitlab还时常报503,于是使用 'top' 命令查看了内存占用情况,发现了一个git进程内存使用了2.3g,cpu还一直占用300-400%,
以前不知道gitlab还有病毒,只以为是git存储了往期版本产生的内存占用大,但是看见占用的进程 kill 掉之后还会立刻就出现,大概明白是病毒了,gitlab-ce 12.3.5版本的时候,只要一出现这个病毒,必将提交失败,将gitlab-ce 12.3.5 升级到了 12.10.14之后,病毒出现后依旧可以提交,只是gitlab会非常卡。
说明
服务器:腾讯云
Linux:CentOS Linux release 7.9.2009 (Core)
gitlab-ce:
12.3.5、
12.10.14、
gitlab-ce-13.1.11-ce.0.el7.x86_64、
gitlab-ce-13.5.7-ce.0.el7.x86_64
注:以上gitlab-ce版本都是会被植入挖矿病毒的版本,都是随着我每一次升级但依然还存在挖矿病毒时更新记录的
新:距离上次更新(2023-12-20 13:04:48)该篇博文已经过去7天了,往常都是升级完一两天就会发现有病毒侵入了,这次升级到了 gitlab-ce-13.8.8-ce.0.el7.x86_64 版本,7天了未再发现有病毒侵入,如果后续发现该13.8.8版本稳定,则将停止更新本篇博文,否则会继续升级gitlab继续更新博文。
简介
本文主要内容为怎么排查gitlab-ce漏洞引起的挖矿病毒以及如何彻底杀死,为读者提供一个在不能及时升级gitlab-ce版本的情况下的应急解决方案。最终解决还是要升级gitlab版本
网上看了很多篇文章,发现讲的解决方案都不清晰,因此提供一篇,希望能帮助到同行朋友
一、发现问题
top
使用 “ top ”命令可以查看Linux系统中占用内存排名前10的进程,以倒叙展示。
图中排名第一的就是挖矿病毒,独有内存占用2.3g,CPU占用380+%
二、排查问题
lsof -p 病毒进程的PID
注意:这里查的 PID 之所以是 29261,是因为将图一的PID=16615的git进程 kill 掉之后重新出现的挖矿病毒进程PID
国外的IP地址
三、解决问题
从上图可以看见病毒所在文件的路径为以下路径
/var/tmp/.bin/x
注意:“ .bin ” 是个隐藏文件,命令 “ ls ” 或 “ ll ” 是看不见的,需要加上参数 “ -a ”
找到病毒文件后,使用 rm 命令删除,而后再将病毒进程kill掉
rm x #删除x文件
kill 29261 #终止PID为29261的进程
至此完成
我将病毒 “x” 下载下来发给朋友看看是什么病毒,朋友给我来一张图
Threats found. Start the recommended actions(发现威胁。启动建议的操作)