复盘服务器被挖矿程序入侵处理流程

mgs2002 2020年03月27日 295次浏览

开端

事情的起因是从一条短信开始的
S0032715320634.png
最近几乎每天都会收到这样的短信,起初由于工作的关系我并没有在意,心想我的服务器上面并没有什么东西,也就一个简单的博客系统,这也能被黑客惦记上?
QQ截图20200327163905.png
过了两天,我登录博客系统记录一点东西的时候出现了如下错误
QQ截图20200327153309.png
意思就是通过ng代理转发的时候博客系统后台程序挂掉了。。所以必须要处理了

第一次排查

登录阿里云服务器控制管理台,果然有大量的报警信息,其中最主要的有两种:异常网络连接-主动连接恶意下载源、恶意进程(云查杀)-挖矿程序
QQ截图20200327171436.png
看到第二个我顿时警觉起来,恶意进程?挖矿程序?使用top指令查询服务器CPU使用情况,果不其然发现有个名为kdevtmpfsi的进程占用了98-100%的CPU资源,找到问题就好办了,直接killkdevtmpfsi进程,然后top发现CPU使用率正常了
QQ截图20200327172143.png
然而过了几分钟阿里云又开始告警,再次通过top查看发现又出现了kdevtmpfsi进程QQ截图20200327173406.png

第二次排查

既然kdevtmpfsi进程会自动重启,那一定会有相关的守护进程定时任务来重启。

查找并删除异常定时任务

crontab -l 查看定时任务
crontab -r 表示删除用户的定时任务,当执行此命令后,所有用户下面的定时任务会被删除

通过crontab -l查看后果然发现有一个异常的定时任务脚本(unk.sh)
QQ截图20200327174435.png
crontab -r 删除后在查询发现已经没有其他定时任务了
QQ截图20200327174651.png

删除异常进程文件

find / -name kdevtmpfsi #查找异常进程文件路径
rm -rf /xx/xxkdevtmpfsi #删除异常进程文件
#不放心的话可以再检查是否还有kdevtmpfsi的相关文件,有的话就继续删除

结束异常进程

前面两部做完后在杀掉异常进程

top #查找异常进程文件的pid
kill -9 pid #杀掉异常进程

做完以上步骤重启博客系统,一切正常QQ截图20200327193706.png

原因

造成服务器被挖矿的根本原因就是我前段时间搭建了一个Redis的缓存服务器用来做一些调试,为了方便我没有设置密码并开放了公网(bind 0.0.0.0)导致利用了这个漏洞登录服务器并植入恶意程序。QQ截图20200327194327.png
解决方法有如下几种

  • 修改默认端口号
  • 关闭公网映射
  • 设置密码
    具体方法可以参考Redis安全加固

总结

经过这次事件我觉得自己的服务器安全意识还是很薄弱,以为上面没有什么敏感数据就掉以轻心。无论是个人还是公司服务器都要做好安全防护,简单总结下来有如下几点

  1. 修改常用端口号,如8080,6379,3309等。
  2. 数据库,缓存服务器不要开放公网访问权限,限制内网访问,不要放出真实的IP地址。
  3. 设置复杂的密码并定期更换。
  4. 账户权限粒度精细化。比如运维账号、数据库账号,开发账号等等,每个账号权限分配喜欢。
  5. 定期备份重要的数据。
  6. 及时处理服务器告警信息,以免造成更大的损失。