超过8000不安全Redis暴露在云端

作者 : 开心源码 本文共1457个字,预计阅读时间需要4分钟 发布时间: 2022-05-13 共224人阅读

研究人员在云端发现约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

全球分布:

image

Redis官方文档中指出:

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

默认情况下,Redis监听6379端口。与SMTP协议类似,此协议通信不加密,尽管有TLS加密选项但不是Redis的默认设置,客户需要手动启用TLS。在Redis启用TLS时,攻击者无法嗅探传输数据。但是启用TLS无法阻止Redis服务器未受权访问。可在在redis.conf中配置requirepass来启用身份验证,也可以通过CONFIG SET requirepass password命令来启动。身份验证密码会以明文形式存储,所有可以看到配置信息的人都可以取得密码。但是即便设置了身份验证,未启用TLS时攻击者仍可以通过嗅探取得密码。

image

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

image

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

DEBUG SEGFAULT

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

EVAL

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

GET/SET

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

FLUSHALL

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

MONITOR

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

image

安全建议

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

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

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

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

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

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

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

*参考来源:trendmicro,由Kriston编译,转载来自FreeBuf.COM

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 超过8000不安全Redis暴露在云端

发表回复