记录一次Linux服务器被爆破感染bioset挖矿的处理过程
问题现象
某客户反馈开通的云服务器特别的卡,而且服务器是新开通的,还没有部署任何业务。于是登录服务器执行top
命令查看了下服务器的负载情况,结果发现系统负载全显示的-nan
,再看看CPU的使用率情况,CPU使用率基本达到100%
(其中us占用34.1%
,sy占用65.6%
),可是详细看了下占用CPU最多的进程,就是刚执行的top命令,占用15.3%
。
说明
us, user : time running un-niced user processes(用户空间占用CPU时间的百分比)
sy, system : time running kernel processes(内核空间占用CPU时间的百分比)
排查过程
根据上述现象,系统负载无法正常显示,系统CPU使用率达到100%,但是top命令又看不到具体是哪个进程占用了CPU,初步怀疑系统是中了病毒,并且系统命令的动态库可能被劫持了,或者进程被特意隐藏了。因此这个时候系统命令的执行结果就不大可信了。于是想到了Busybox工具箱
说明
BusyBox是一个集成了三百多个最常用Linux命令和工具的软件。BusyBox包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具,例grep、find、mount以及telnet。有些人将 BusyBox称为Linux工具里的瑞士军刀。简单的说BusyBox就好像是个大工具箱,它集成压缩了Linux的许多工具和命令,也包含了Linux系统的自带的shell。
在服务器上执行以下命令安装busybox
1 | wget https://busybox.net/downloads/binaries/1.21.1/busybox-x86_64 --no-check-certificate |
使用busybox top
查看系统负载和资源使用率情况,果然发现了占用CPU的进程bioset
,上网查了下bioset
发现这确实是挖矿程序
根据PID
查看进程运行状态,可以看到进程刚启动了1个多小时,并且发现了挖矿程序的具体路径
1 | systemctl status <PID> |
解决方法
首先尝试直接删除挖矿程序无效,文件已经被隐藏并锁定
连root用户都无法删除,怀疑文件是不是被设置了隐藏属性,然后通过busybox lsattr
查看是否设置了隐藏属性,果不其然,挖矿程序具有i
属性。将隐藏属性取消后,删除成功
说明
如果对文件设置i属性,那么不允许对文件进行删除、改名,也不能添加和修改数据;
如果对目录设置i属性,那么只能修改目录下文件中的数据,但不允许建立和删除文件;
挖矿程序删除后,最后根据PID
杀死挖矿进程,并确认进程不再运行
此时执行busybox top
再次查看系统负载和资源使用率,发现CPU使用率已经降下来了
系统自带的top
命令也恢复正常
溯源
虽然问题是解决了,但是这个挖矿程序究竟是怎么进入服务器的呢?继续查了下系统日志/var/log/messages
,发现了有3万多条密码认证失败的日志
于是查看了下云服务器的安全组规则,有一条入方向全部放通的规则,并且没做任何的源IP限制…真是大门敞开啊!
建议
病毒往往会狡猾地篡改系统文件来隐藏自身的文件和进程,但究竟篡改了哪些文件我们不得而知,因此如果可以的话还是建议对重要数据进行备份然后重装系统,防止病毒卷土重来。同时要对服务器做好安全访问控制,以免服务器被暴力破解最终成为肉鸡。