临近2018年底,我们阿里云上的一台ECS服务器竟然被阿里云短信提示有挖矿程序,多次收到阿里云的短信提醒说什么服务器被植入挖矿程序,造成系统资源大量消耗;而且还收到CPU使用率达到百分之90的安全提醒,我们的服务器上并没有运行大量的网站,只是一个公司的展示网站,怎么可能会出现CPU%90以上的告警,然后致电阿里云技术帮忙检查服务器为什么CPU占用这么高,得知服务器被黑,导致中了挖矿木马,服务器含有挖矿进程,一直在不停的挖矿才导致CPU这么高。
服务器挖矿程序处理过程
首先我们先来了解一下什么是挖矿:
挖矿是跟区块链以及虚拟币有关系,虚拟币是挖矿挖出来的,每间隔一段时间,比特币或者以太坊虚拟币就会在他们的区块链系统上生成一个块的随机代码,网络上的所有服务器都可以去找这个随机代码,也就是挖矿的过程对这个随机代码进行挖掘,谁挖到这个代码就会产生一个区块链的块,那么比特币跟以太坊就会奖励找到随机代码的人,奖励一定数量的虚拟币,那么挖矿的人就会有动力去挖矿,去维护整个区块链节点的网络正常运行,挖矿需要计算哈希值需要服务器的处理能力,所以有些攻击者利用入侵别人服务器来给自己挖矿,获取利润。
知道什么是挖矿,那么我们就要从服务器来入手,我的服务器是阿里云 linux centos系统,通过执行top命令来查看当前服务器的所有进程,我们来看下图:
挖矿程序的进程一般都是以一些数字加大小写字母组合的进程名字,比如:WaKuang,Qw1a,Poa1等等的挖矿进程名字,有的甚至伪装成正常的进程名来绕过管理员的查杀,最简单的办法就是通过TOP命令看当前占用CPU最高的进程来确定。
看到恶意的进程我们来看下进程的程序是在哪里调用的,lsof -p pid执行这个命令,把TOP看到进程PID写上,比如我的PID是888 那就执行lsof -p 888,我们可以看到调用的程序文件位置在哪里。
如下图:
从上面的图片中可以看出,这个进程所使用的文件位置非常的可疑,我们就打开这个目录地址看下目录里是否存在恶意的文件,我们通过查看发现果真存在恶意的文件,文件里竟然写了很多恶意的挖矿程序代码,我们确定问题后就要删除这些恶意文件,对该目录的文件进行强制的删除,对linux系统自启动的项目进行删除,去除挖矿程序的自启动,清除挖矿木马,KILL挖矿的进程,至此服务器挖矿程序解决完毕。
挖矿程序删除的安全建议与处理方法
对服务器的安全要定时的安全检查,检查服务器的系统是否有linux定时任务,以及服务器重启动后会不会自动加载启动项,对于服务器的连接进行阿里云安全组策略,对特殊端口进行单独的放行,比如服务器的SSH端口,管理员要登录的时候先放行IP,才能登录到服务器。对服务器的漏洞进行修复,检查服务器为何被上传木马文件,是通过系统漏洞,还是网站漏洞进行的入侵。如果自己对服务器不是太了解的话,可以找专业的网络安全公司来处理挖矿程序,删除挖矿木马,像Sinesafe,绿盟那些专门做网络安全防护的安全服务商来帮忙。