Redis,是一种流行的开源数据结构工具,可用作内存分布式数据库、消息代理或缓存。该工具并非旨在公开在互联网上。但是,研究人员发现数以万计的 Redis 实例无需身份验证即可公开访问。

研究员Victor Zhu详细介绍了一个 Redis 未授权访问漏洞,该漏洞可被利用来破坏在线暴露的 Redis 实例。

“在某些情况下,如果 Redis 使用 root 帐户运行(甚至不使用),攻击者可以将 SSH 公钥文件写入 root 帐户,直接通过 SSH 登录到受害服务器。这可能让黑客获得服务器权限,删除或窃取数据,甚至导致加密勒索,严重危及正常的业务服务。”

来自 Censys 的研究人员警告称,互联网上暴露的数以万计未经身份验证的 Redis 服务器正受到攻击,威胁行为者正在针对这些实例安装加密货币矿工。

在公共互联网上的 350,675 个 Redis 服务中,有 39,405 个未经身份验证的 Redis 服务。互联网上近 50% 的未经身份验证的 Redis 服务显示出企图妥协的迹象。

这种利用技术背后的总体思路是配置 Redis 以将其基于文件的数据库写入一个目录,该目录包含一些授权用户的方法(例如向 '.ssh/authorized_keys' 添加密钥),或启动一个进程(例如添加'/etc/cron.d' 的脚本)。

专家们发现的证据表明正在进行的黑客活动,威胁参与者试图使用多个前缀为字符串“backup”的 Redis 密钥将恶意 crontab 条目存储 到文件“/var/spool/cron/root”中。crontab 条目允许攻击者执行托管在远程服务器上的 shell 脚本。

该 shell 脚本旨在执行以下恶意操作:

停止和禁用任何正在运行的与安全相关的进程

停止和禁用任何正在运行的系统监控进程

删除并清除所有系统和安全相关的日志文件,包括 shell 历史记录(例如,.bash_history)。

将新的 SSH 密钥添加到 root 用户的 authorized_keys 文件

禁用 iptables 防火墙

安装多个黑客和扫描工具,例如“masscan”

安装并运行加密币挖掘应用程序 XMRig

研究人员使用最近在 TCP 端口 6379 上运行的未经身份验证的 Redis 服务列表来运行一次性扫描,以查找每个主机上是否存在密钥“backup1”。Censys 发现,在此列表中的 31,239 台未经身份验证的 Redis 服务器中,有 15,526 台主机拥有此密钥集。这些实例被威胁行为者使用上述技术作为目标。

大多数暴露在互联网上的 Redis 服务器位于中国(15.29%),其次是德国(14.11%)和新加坡(12.43%)。

不过,这并不意味着有超过15,000个受感染的主机。这些主机中的每一个都具备使此漏洞成功所需的条件是不可能的。许多这些尝试失败的主要原因是 Redis 服务需要以具有适当权限的用户身份运行以写入目录“/var/spool/cron”“,虽然,在容器(如 docker)中运行 Redis 时可能会出现这种情况,该进程可能会将自己视为以 root 身份运行并允许攻击者编写这些文件。但在这种情况下,只有容器受到影响,而不是物理主机。