专栏首页北京马哥教育Redis服务器被劫持风波

Redis服务器被劫持风波

作者:当年的春天 来源: http://blog.csdn.net/zhanghan18333611647/article/details/57128279

前言

俗话说安全猛于虎,之前多多少少有所小体会;这次的上线Redis服务器被劫严重影响了开发测试和线上环境,在解决的过程也对安全方面了解了很多;总结了这次过程的排查流程以及采取的相应测试,在此与大家共享。

被劫风波

01

问题

1、开发,生产,测试服务器(shiro :246;开发:251; 测试:204;生产:164,165)每台机器的Redis服务(全部或部分,其中若为单机版的Redis则为全部,有集群则为部分)未启动;

注:判断Redis启动没问题的步骤:

(1)利用命令: ps -ef | grep redis 查询Redis服务(下图以246为例,黄框部分代表6379的Redis服务正在运行)

(2)在客户机上利用Redis Desktop Manager客户端连接服务(能够连上并加装上数据说明Redis服务正常)---(若连接不上检查服务器和个人机的防火墙,以及Redis的配置文件中的bind绑定的IP)

2、将Redis服务重新启动,发现Redis服务没有起来:

(1)查询Redis所占用的进程---用ps -ef |grep redis 命令查询Redis服务的进程号(如下图,黄框中代表Redis在6379的端口启动着,所占用进程为3684)

(2)用kill -9 3684(Redis所占用的进程号,集群版可能有多个端口号需要都杀掉)

(3)用./redis-server & 命令启动Redis

(4)正常启动后发现不报错,并能正常访问,这次发现Redis服务竟然没有起来

02

排查过程

1、通过检查所有Redis服务发现共同的特点:使用默认端口6379的都挂掉;其中246的情况最为严重(246上执行命令反应比较环慢)

2、在246上查看服务器性能消耗情况(执行top命令,出来数据后用Ctrl+C组合键数据按CPU排序,用Ctrl+M键按内存排序),发现有一恶意进程持续占用CPU特别高,如下:

3、怀疑此恶意进程是黑客通过定时任务或开机启动脚本植入,在246服务器上用crontab –r发现一定时任务:

4、去网上查,操作了部分:将/var/spool/cron目录下的root文件删除(文件内容为3中的定时任务),用(kill-9 PID)将恶意进程(AnXqV.yam)杀掉观察;

5、发现过了五六分钟这个进程又自己起来,此时在246上通过命令find / -name AnXqV查看发现有很多文件和网上遇到情况一样确认被挖矿入侵

6、通过本地浏览器访问定时任务中的网址:http://www.haveabitchin.com/pm.sh?0222从黑客网站上下载一个脚本(pm.sh);

7、分析pm.sh中的文件发现了黑客想做的事情,大概内容如下:

8、根据pm中的相关路径将246上如下恶意文件删除:

(1)/var/spool/cron/root

(2)/var/spool/cron/crontabs/root

(3)~/.ssh/authorized_keys

(4)/var/spool/cron/authorized_keys

(5)/tmp中的11个文件

查看了这几个文件除了log文件其他均为乱码,查看log文件内容:

①一直试图在访问病毒的网站

②在DNS上查找一些网址,猜测它是监测服务器是否可以有通路访问到它的网站

③在站长之家上查询IP信息,再查询Digital Ocean猜测应该是某黑客在Digital Ocean上租用的服务来搞的:

④其中它对应的网站:

9、检查其他Redis服务器上有无可疑文件,发现204上的一个可疑文件,/var/spool/cron/中的root;

10、将246上的可疑文件和redis缓存文件dump.rdb以及204上的可疑文件删除,启动各个Redis服务器的服务正常。

注:246上删除redis的缓存文件如下:

/tmp/dump.rdb

/usr/local/redis/bin/ dump.rdb

/var/spool/cron/ dump.rdb

11、现在再看看情况,其中有疑惑的地方:

(1)病毒通过哪台机器以及如何入侵到局域网,现在连外网机器除了ITOO的生产Jboss外还有其他机器

(2)246和204的病毒是自己本身上的病毒还是局域网其他机器来遥控的

03

Redis防护建议

1、Redis本身防护

(1)不要使用默认端口(6379)

(2)增加Redis用户名和密码

(3)在Redis绑定指定IP访问(位置配置文件[redis.config]中的bind节点)

2、Linux服务器

(1)Redis服务器不要暴露在外网

(2)开启防火墙,限制IP可以访问(iptables命令)

(3)用容器(如Docker等)管理起服务器,这样中病毒后排查不出原因需要重新装环境的时候影响小并且可以快速恢复。

04

参考资料

1、CentOS7安装redis被AnXqV挖矿程序入侵

2、阿里云服务器被挖矿minerd入侵的解决办法

3、Google基础设施安全设计概述翻译和导读

4、codis与pika的docker化 (Redis替代解决方案)

总结

1、安全无小事,重视起安全;

2、在侦查病毒的时候,真如一朋友所说想破案一样;

3、要事第一,学会衡量;在这次解决的过程中,因为严重影响了开发人员的开发,所以在解决的过程中要先稳定开发环境,不能让人员闲置起来。

本文分享自微信公众号 - 马哥Linux运维(magedu-Linux),作者:当年的春天

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-04-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Redis数据库安全手册

    Redis是一个 高性能的key-value数据库,这两年可谓火的不行。而Redis的流行也带来一系列安全问题,不少攻击者都通过Redis发起攻击。本文将讲解...

    小小科
  • Redis 基础、高级特性与性能调优 | 一文看全

    本文将从Redis的基本特性入手,通过讲述Redis的数据结构和主要命令对Redis的基本能力进行直观介绍。之后在性能调优等方面进行更深入的介绍和指导。 概述...

    小小科
  • 从解决Redis访问超时的问题谈起——故事比结果要精彩

    这周终于解决了Redis访问经常超时的问题,终于可以踏实睡觉了。从上周就开始纠结在这个问题上,可以用寝食难安来形容,感觉这个问题就像个定时炸弹一样,虽然根据手搜...

    小小科
  • 有了它,Redis不再是你技术面试中的阻碍

    Redis在互联网技术存储方面使用非常广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对求职小伙伴们进行各种刁难,特别是那些优秀的、竞争激烈的大型...

    博文视点Broadview
  • 史上最全 50 道 Redis 面试题

    Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到...

    Java技术栈
  • Redis数据库安全手册

    Redis是一个高性能的key-value数据库,这两年可谓火的不行。而Redis的流行也带来一系列安全问题,不少攻击者都通过Redis发起攻击。本文将讲解这方...

    FB客服
  • 使用Redis走进误区,该怎么办?

    首先是一个产品线开发人员搭建起了一套庞大的价格存储系统,底层是关系型数据库,只用来处理一些事务性的操作和存放一些基础数据; 在关系型数据库的上面还有一套Mong...

    企鹅号小编
  • Redis未授权访问配合SSH key文件利用分析

    1.更新情况 ? 2.漏洞概述 Redis默认情况下,会绑定在0.0.0.0:6379,这样将会将Redis服务暴露到公网上,如果在没有开启认证的情况下,可以导...

    FB客服
  • Redis是什么?看这一篇就够了

    在Web应用发展的初期,那时关系型数据库受到了较为广泛的关注和应用,原因是因为那时候Web站点基本上访问和并发不高、交互也较少。而在后来,随着访问量的提升,使用...

    葡萄城控件
  • 对话张冬洪 | 全面解读NoSQL数据库Redis的核心技术与应用实践

    互联网和Web的蓬勃发展正在改变着我们的世界,随着互联网的不断发展和壮大,企业数据规模越来越大,并发量越来越高,关系数据库无法应对新的负载压力,随着Hadoop...

    数据和云

扫码关注云+社区

领取腾讯云代金券