1. 背景
我们的服务器部署在某云上,这台服务器的配置是8核16G,用途是GitLab和VPN。环境是内网通讯,公司无专业的运维工程师。
2. 发现
2022年01月的某一天,项目成员反馈GitLab无法正常进入,页面响应502。然后就意识到GitLab服务出了问题。
3. 排查
进入排查,通过vpn登录到服务器,查询到gitLab进程已经异常,进行gitLab重新启动,启动成功。
启动成功之后,发现GitLab所有的项目全部没有了,开始定位问题:
思路一:gitLab进程异常,二次重启,还是未解决。
思路二:进入到gitLab默认的项目文件保存目录发现该目录下的存储项目的文件夹被清空。
思路三:查询history,命令执行历史记录,未查询到异常。
思路四:查询top进程,查看异常进程,无异常。
通过上述定位,问题是:gitLab的保存项目的文件夹被清空;接下来开始查找被清空原因,通过某云上10:40的预警,说服务器可能被DDOS共计,不限于执行了python或者其他脚本。
截图如下:
开始转换思路,这是被病毒注入了。
通过上面的wegt地址,在新的服务器(针对病毒启动了一台全新的临时服务器)把bins.sh进行下载,内容如下:
病毒文件如下:
经鉴定确认这只一种挖矿木马,木马对服务器内部文件进行了损坏,其中包含gitlab。
经查询GitLab服务器一个外网端口在暴露着,打开正好是GitLab登录的页面,病毒通过登录窗口进行侵入,提权进行下载挖矿项目。
4. 解决
挖矿病毒入侵,残留比较严重,无法保证全部删除干净,进行镜像回复出厂设置,进行重新搭建VPN+GitLab。
5. 总结
1. GitLab服务器应该配置为内网,禁止对外开放外网端口;GitLab更改默认80端口,默认存储文件夹进行更改新的位置;
2. vpn服务器使用某云,由某云进行入口防护,或者安全性低自己搭建vpn服务器,对外仅暴露1个vpn端口。
3. 进行服务器镜像快照备份。
6. 安全的重要性
当公司还是小型互联网公司时候,大家对安全并不重视,也是允许因为无攻击价值和攻击后的损耗,公司也是处于生存期。但是当公司已经渡过了生存期,到达发展期,那么业务的增长和业务安全的重要性,那么系统安全尤为重要。应该有专门的运维安全工程师进行安全防护,防护分为内部防护和外部防护,在这里不做延展。