首页 存档 技术 查看内容

Redis突然报错 NOAUTH Authentication required

2018-3-30 13:00 |来自: 互联网 701 0

摘要: 很坑爹的事! 2016年年底有个项目需要用到redis,当时比较忙没有在新机器安装redis,就把我博客那台服务器上的redis地址给了技术的同事。第二天开发的同事告诉我redis连不上了,提示NOAUTH Authentication required ...

很坑爹的事!

2016年年底有个项目需要用到redis,当时比较忙没有在新机器安装redis,就把我博客那台服务器上的redis地址给了技术的同事。第二天开发的同事告诉我redis连不上了,提示NOAUTH Authentication required,看了redis配置文件并没有设置密码,而且前一天使用的时候正常,我这台服务器也不会有人动。当时并没有深入分析,重启了redis后可以正常使用了。

过了一天后,同事又告诉我redis出问题了,由于在高铁上回家过年还是没有深入分析,用手机远程连接服务器,重启了redis让技术继续使用,当时百度了一下(搜索的关键词不对)没有查到相关的问题。


到家后虽然各种忙,大年初一还在想这个问题。。。


这台机器的redis是2015年的时候做一个开源项目时,team里的一个朋友安装的,当时做消息队列使用,没有设置密码,可以任意ip链接。

过完年回北京后继续解决这个事,发现网上很多人遇到过这个问题,原因很简单:由于redis非授权访问漏洞,被攻击了!


下面是 redis crackit安全事件分析

参考某安全云的数据,开放在公网的redis的6379端口的ip总数有63443个。无密码认证的IP有43024个,在总数占比里达到67%。发现遭受到redis crackit事件影响的服务器达到35024,在总数占比中达到55%,在无密码认证的redis数量中占比达到81%左右。


事件描述

很多使用者都是把redis下载到服务器直接运行使用,无ACL,无密码,root运行,且绑定在0.0.0.0:6379,暴露在公网。攻击者在未授权访问 Redis 的情况下通过redis的机制,可以将自己的公钥或者其他恶意程序写入目标服务器中,从而可以直接控制目标服务器。

可以看一下redis里是否有key是crackit的字符串,如果有,肯定是被攻击了!


事还原攻击过程

寻找无验证的redis服务:


制作ssh公钥和私钥:


将公钥内容写入到foo.txt:


把ssh公钥写入到redis:


覆盖系统用户原来的ssh公钥:


通过ssh登录服务器:


修改方案

1、环境安全

无需外网访问的可以绑定本地ip

需要对外增加ACL进行网络访问控制

可以借用stunnel等工具完成数据加密传输

2、给redis设定密码

3、创建单独的nologin系统账号给redis服务使用

4、禁用特定命令

rename-command CONFIG ""




非授权访问漏洞存在于很多软件上,如redis mongodb等

不要有侥幸心理,会出错的,终将会出错。

一定要重视互联网安全!!!

本文转载于微信公众号: 用文字看世界(text_world),更多微信文章请扫描关注公众号:

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部