触目惊心,超过 8000+ 漏洞 Redis 暴露在云端!

简介: 研究人员在云端发现约8000个不安全的Redis,这些Redis未使用TLS加密且未设密码保护。Redis设计之初是在受信任环境中使用,如果允许其在互联网或物联网中使用,攻击者会利用不安全的Redis服务器来发起攻击,例如SQL注入,跨站攻击,恶意文件上传、远程代码执行等。

研究人员在云端发现约8000个不安全的Redis,这些Redis未使用TLS加密且未设密码保护。


Redis设计之初是在受信任环境中使用,如果允许其在互联网或物联网中使用,攻击者会利用不安全的Redis服务器来发起攻击,例如SQL注入,跨站攻击,恶意文件上传、远程代码执行等。


什么是Redis?

Redis全称为Remote Dictionary Server,是一种开源内存数据存储结构,常用在数据库,数据缓存等。由于Redis驻留在内存中,它可以为需要处理大量请求的程序提供毫秒级的响应,例如实时聊天,金融服务,医疗保健和游戏等。


据报道,2018年Redis上运行着9亿个容器,其拥有广泛的用户群,官方镜像已被下载超过10亿次,同时被GitHub,Craigslist和Twitter等公司使用。Redis还可部署在云中,利用缓存节省云存储空间。


Redis分析

利用Shodan发现全球部署了8000多个不安全的Redis。其中一些部署在公共云中,如AWS、Azure和Google云。


下图只列出超过50个不安全Redis的云:


image.png


全球分布:


image.png


Redis官方文档中指出:


Redis旨在受信任环境中的供受信任客户端访问。将Redis直接暴露在互联网中或让不受信任的客户端直接访问会使Redis处于危险之中。


默认情况下,Redis监听6379端口。与SMTP协议相似,此协议通信不加密,虽然有TLS加密选项但不是Redis的默认设置,用户需要手动启用TLS。在Redis启用TLS时,攻击者无法嗅探传输数据。


但是启用TLS无法阻止Redis服务器未授权访问。可在在redis.conf中配置requirepass来启用身份验证,也可以通过CONFIG SET requirepass password命令来启动。


身份验证密码会以明文形式存储,所有可以看到配置信息的人都可以获得密码。但是即使设置了身份验证,未启用TLS时攻击者仍可以通过嗅探获得密码。


image.png


为了限制用户执行关键命令,Redis使用了两种方法:禁用命令或将命令重命名。Redis用户可以将命令重命名为空字符来完全禁用命令。


image.png


当不安全的Redis服务器处于暴露状态时,攻击者可能会使用以下命令:


DEBUG SEGFAULT

此命令可访问无效内存,导致Redis崩溃。攻击者可利用该命令进行拒绝服务攻击,关闭正在运行的Redis。


EVAL

此命令可在服务器执行LUA脚本。Redis已经利用LUA沙盒对某些功能进行了限制,不加载关键库阻止远程执行,禁用诸如loadfile和dofile之类的功能,确保不会被读取任意文件。


GET/SET

攻击者可利用该命令检索或修改数据。


FLUSHALL

此命令能够清空或删除所有数据库中所有key,导致数据丢失,如果Redis上数据未正确备份,还可能导致服务出错。


MONITOR

此命令显示服务器处理的请求,攻击者可利用它来嗅探流量,寻找目标中的重要文件。


image.png


安全建议


为确保Redis安全,建议采取以下措施:


1、确定Redis部署位置,确定访问人员权限设置。


2、确保环境安全配置正确,不允许其他部署干扰Redis。


3、同时启用TLS与密码身份验证。


4、密切注意命令执行情况,如DEBUG SEGFAULT和MONITOR。


5、正确网络分段。防止Redis应暴露在其他不受信任的环境中。


6、不要在前端开发中使用Redis。


相关文章
|
NoSQL 安全 网络协议
|
安全 NoSQL 网络安全
漏洞检测与防御:Redis未授权访问漏洞复现
漏洞检测与防御:Redis未授权访问漏洞复现
1024 0
|
缓存 NoSQL 安全
【Azure Redis 缓存】Azure Redis 4.0 被扫描到漏洞,如何修补呢?
【Azure Redis 缓存】Azure Redis 4.0 被扫描到漏洞,如何修补呢?
269 0
|
NoSQL 安全 Shell
Redis未授权访问漏洞(自写自动化利用EXP分享)
# 前言: 之前已经有文章写过redis未授权访问的利用总结了,这次主要是py脚本自动化的一个小分享吧。也算是对自己学习的一个记录..
528 0
|
NoSQL 安全 Shell
Redis主从复制漏洞gethsell
在Redis 4.x之后,Redis新增了模块功能,通过外部拓展,可以实现在redis中实现一个新的Redis命令,通过写c语言并编译出.so文件。利用范围:Redis 4.x-Redis 5.x
642 0
|
NoSQL 安全 Shell
Redis未授权访问漏洞的利用总结
Redis 默认情况下,会绑定在 0.0.0.0的6379端口上,如果没有设置相关的策略和安全配置,会将 Redis 服务直接暴露在公网上,在没有设置密码认证的情况下,会导致攻击者可以未授权访问 Redis服务读取、甚至是修改 Redis 的数据
688 0
|
存储 缓存 NoSQL
Redis未授权访问漏洞
利用Redis实现攻击的三种方式
Redis未授权访问漏洞
|
NoSQL 安全 网络安全
13 redis未授权访问漏洞
未授权访问漏洞可以理解为需要安全配置或权限认证的地址、授权页面配致其他用户可以无需认证授权真接访问从而引发重票权限可被操作、数据目录等敏感信息泄察
13 redis未授权访问漏洞
|
运维 NoSQL 算法
对不起,你在网上找的Redis分布式锁都有漏洞
基于 Redis 的分布式锁对大家来说并不陌生,可是你的分布式锁有失败的时候吗?在失败的时候可曾怀疑过你在用的分布式锁真的靠谱吗?以下是结合自己的踩坑经验总结的一些经验之谈。 你真的需要分布式锁吗? 用到分布式锁说明遇到了多个进程共同访问同一个资源的问题。一般是在两个场景下会防止对同一个资源的重复访问: 提高效率。比如多个节点计算同一批任务,如果某个任务已经有节点在计算了,那其他节点就不用重复计算了,以免浪费计算资源。不过重复计算也没事,不会造成其他更大的损失。也就是允许偶尔的失败。 保证正确性。这种情况对锁的要求就很高了,如果重复计算,会对正确性造成影响。这种不允许失败。
对不起,你在网上找的Redis分布式锁都有漏洞