ReMember

Docker内Redis挖矿清理

最近一朋友反应其公司的服务器的阿里云服务器近期经常出现告警被阿里云截断网络的情况,由于他们公司没有单独的运维相关人员,不知如何排查,就让我看下。

当听到这种情况时,我第一反应就是“八成是利用Redis空密码漏洞的挖矿病毒”;拿到相关信息及服务器权限后一看,果不其然。

其目前一共有12台ECS服务器,所有服务器均配置了公网IP;而出现告警的2台机,正是运行了Redis的2台服务器:

于是登陆其服务器进行查看,发现其Redis服务运行在Docker容器之中,而中的挖矿病毒也运行于其中:

在进一步发现,所有运行的服务器均未配置防火墙,所有端口均直接对外。Redis做了主从但未配置访问密码。

于是连接进容器查看,挖矿文件存在于/data及/tmp目录下:

[email protected]:~# docker ps
CONTAINER ID        IMAGE                            COMMAND                  CREATED             STATUS              PORTS                                                                                        NAMES
4d50f88fe85b        redis                            "docker-entrypoint.s…"   4 months ago        Up About an hour    0.0.0.0:6379->6379/tcp                                                                       redis-slave
[email protected]:~# docker exec -it  redis-slave bash
[email protected]:/data# ls
core  dump.rdb  kinsingKWKkNKxfZk  kinsingVXOpxOHDr6 red2.so  root
[email protected]:/data# ls /tmp/
kdevtmpfsi

由于其做了主从,项目还未正式使用,于是将其Docker容器先进行重启后(结束所有内在进程),再进行病毒文件删除:

[email protected]:~# docker restart redis-slave
[email protected]:~# docker exec -it redis-slave bash
[email protected]:/data# redis-server /usr/local/etc/redis/redis.conf
12:C 03 Jan 2020 10:16:02.839 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
12:C 03 Jan 2020 10:16:02.839 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=12, just started
12:C 03 Jan 2020 10:16:02.839 # Configuration loaded
[email protected]:/data# 
[email protected]:/data# rm -f kinsing*
[email protected]:/data# cd /tmp/
[email protected]:/tmp# rm -f kdevtmpfsi

接着发现,其两台Redis容器中,其中一台上面添加计划任务,另一台却没有:

将其一并删掉即可。

后续又给其所有服务器做了下安全操作,更改服务器SSH端口,启用防火墙,对端口访问做出限制等:

由于其公司服务器也有出现过问题,本周末也过去帮其检查处理一下;估计要给其安装Jumpserver堡垒机及OpenVPN来实现安全访问。

码字很辛苦,转载请注明来自ReMember《Docker内Redis挖矿清理》

评论

  1. White Label SEO #1

    Awesome post! Keep up the great work! 🙂

    回复
    2020-01-26
  2. AffiliateLabz #2

    Great content! Super high-quality! Keep it up! 🙂

    回复
    2020-02-16