今天早些时候,安全公司 TrendMicro 发布了一篇 博客文章,其中包含该公司的安全研究人员的发现。该团队使用 Shodan,流行的互联网连接或物联网 (IoT) 设备搜索引擎,识别出跨各种云平台的 8,000 多个不安全的 Redis 服务器。 如果不加以保护,网络犯罪分子可能会将此类服务器用于不正当目的。
这个数字很大,但它表明暴露的服务器总数在不断减少,即使没有大幅减少。大约三年前,我使用相同的方法统计了 9,916 个此类服务器,一年后,Shodan 证实,更新版本的 Redis(特别是 4.0 版本)“大大改进/降低了公共可访问 Redis 实例的数量”——在全球范围内统计了 17,443 个不安全的服务器。
这种显着改进归功于 Redis 4.0 版本中引入并反向移植到 Redis 3.2.0 版本的 保护模式。默认情况下启用此特殊模式,可防止从外部对服务器进行不安全的访问。查看不安全服务器使用的热门 Redis 版本,我们发现很大一部分暴露的服务器仍在使用过时的版本。
上表取自 Shodan 报告,显示了暴露的 Redis 服务器的版本(右侧)及其各自的计数(左侧)。当然,存在运行 Redis v3.2.0 及更高版本的暴露服务器这一事实令人担忧。这意味着这些 Redis 服务器的管理员故意禁用了保护模式,并且没有为他们的数据库设置密码。故意这样做的动机尚不清楚; 似乎任何安全保护都不足以完全克服人为错误的可能。
也就是说,我们正在继续改进开源 Redis 的安全性。Redis 提供的托管服务开箱即用是安全的,并且消除了用户弄清楚自己的安全实践的需要。 此外,安全 是下一个版本的开源 Redis 的关键重点,预计将于今年 4 月晚些时候发布。 即将发布的 Redis 6.0 版本 将传输层安全性 (TLS) 加密添加到所有三个通信通道:客户端-服务器、主副本和集群总线。 此外,Redis 6.0 包括一个新的 访问控制列表 (ACL) 机制,该机制已集成到服务器中,允许定义对访问和操作数据具有细粒度用户权限。
Redis 始终以极其严肃的态度对待安全风险,我们的企业产品旨在帮助防止这些风险。 Redis Enterprise 堆栈阻止创建无密码数据库。 Redis Enterprise 的其他安全功能包括 TLS 加密以及与组织身份管理系统的紧密集成,如 此处 和 此处 所述。
从上下文中来看,Trend Micro 的博客文章实际上显示了一个令人鼓舞的趋势,即暴露的开源 Redis 服务器数量正在下降。与此同时,新版本通过减少攻击面、加密通信通道以及添加权限管理来改进开源 Redis 的安全模型。
然而,从本质上讲,包括 Redis 在内的开源软件可以轻松配置为使用全部、部分或不使用任何可用的安全功能。 因此,在生产中使用 Redis 时,用户应仔细检查其安全设置,或者选择经过生产验证且经过安全加固的 Redis Enterprise。