记一次个人阿里云服务器病毒感染事件
背景
本人近几年一直租用着一台阿里云的ECS云服务器,在上面会部署自己的nas和一些个人程序。在之前一直运行的很好,直到4月6号这天,阿里云App一直提示有4个安全警告,提示我赶快处理,我看到提示信息里面分别显示挖矿程序、恶意脚本代码执行和可疑编码命令;
原因排查
服务器上面有安装docker环境,同时部署有portainer和一些其它的镜像和容器,问题是出现在打开docker的2375端口连接Ide成功几分钟之后,之后CPU打满100%,网络带宽占用飙高,内存也大量被使用,finalshell都无法直接连接了,后来我从阿里云的app进入,使用了服务器重启命令,才进入了finalshell,之后在docker中发现这三个异常的容器,网上搜索发现是中了Cetus挖矿病毒,这个病毒就包括 adroit ridible和limpid这几个,而且我的docker每次重启它们也会重启。
侵入我服务器到目前为止我还不知道是用的哪种方式,因为一共有两种可能,一个是从docker的tcp接口2375侵入的服务器,还有一种可能是portainer容器,因为这个portainer是从docker hub拉取的,并不能保证一定没有病毒,docker hub也是有很多下载量过百万的黑镜像。。。不过就我推测,portainer我已经用了一段时间了都没问题,打开2375端口以后过了几分钟就出问题了,大概率都是2375端口被侵入了。
解决过程
服务器被挖矿,没法了,必须网上找方法解决,然后看了一个比较有效的,按着这个一步一步来,服务器终于恢复平静了,链接我放在这里:
https://www.bilibili.com/read/cv18878169/
棘手的问题
在解决的过程中遇到了很多棘手的问题,比如:
yum和wget均无法使用
yum在CentOS8中已经停止维护,无法正常下载,wget下载提示通过yum下载。。。我只想说yum能用了我要你wget干啥。。。下载htop和iftop插件的过程非常曲折,配置文件改了又改,最后终于找到了下面的解决办法:
Cannot prepare internal mirrorlist: No URLs in mirrorlist问题:https://blog.csdn.net/AlexanderRon/article/details/123400906
文件被权限控制
大量病毒文件被黑客赋予权限,自己无法修改与删除,这种时候要使用 chattr(change attribute)相关工具包来抹除文件的属性,安装chattr:
yum install e2fsprogs
chattr使用方法:
lsattr fileName 显示文件属性
chattr -ia fileName 抹除文件属性
chattr -i fileName 抹除文件属性
chattr +i fileName 给文件加锁,为了防止黑客二次入侵,加锁是必要的
chattr +i foulder 给文件夹加锁
病毒被隐藏
top命令被篡改,病毒进程被隐藏,finalshell显示cpu使用率已经接近100%,但是top里面提示只使用了将近50%的cup资源,解决方法为使用如下命令:
ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu
通过这个命令我成功找到了挖矿病毒 [crypto]、[massacan]和多进程的 [httpd]病毒,将httpd进程杀死后你会发现服务器的CPU使用率突然断崖式下降,一会儿后又重新到100%,这种时候应该是httpd重新被别的病毒启动了,要通过删除httpd相关软件包和相关病毒程序来解决。
Linux系统CPU使用率过高但查看不到具体的进程:https://help.aliyun.com/document_detail/156830.html