一个未知的攻击者针对暴露在互联网上的数万台未经身份验证的 Redis 服务器,试图安装加密货币矿工。

目前尚不清楚所有这些主机是否都被成功入侵。尽管如此,它还是通过一种“鲜为人知的技术”实现的,该技术旨在欺骗服务器将数据写入任意文件——这是 2018 年 9 月首次记录的未经授权访问的案例。

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

攻击面管理平台表示,它发现了证据(即 Redis 命令),表明部分攻击者努力将恶意crontab 条目存储到文件“/var/spool/cron/root”中,从而导致执行托管的 shell 脚本在远程服务器上。

仍然可以访问的 shell 脚本被设计为执行以下操作 -

  • 终止安全相关和系统监控进程
  • 清除日志文件和命令历史
  • 将新的 SSH 密钥(“backup1”)添加到 root 用户的authorized_keys 文件以启用远程访问
  • 禁用iptables防火墙
  • 安装masscan等扫描工具,以及
  • 安装并运行加密货币挖掘应用程序 XMRig

据说 SSH 密钥已设置在 31,239 个未经身份验证的 Redis 服务器中的 15,526 个上,这表明该攻击是在“互联网上超过 49% 的已知未经身份验证的 Redis 服务器上”进行的。

然而,这种攻击可能失败的一个主要原因是,Redis 服务需要以提升的权限(即 root)运行,以使攻击者能够写入上述 cron 目录。

“虽然,在容器(如 docker)中运行 Redis 时可能会出现这种情况,该进程可能会认为自己以 root 身份运行并允许攻击者编写这些文件,”Censys 研究人员说。“但在这种情况下,只有容器受到影响,而不是物理主机。”

Censys 的报告还显示,大约有 350,675 个可通过 Internet 访问的 Redis 数据库服务,跨越 260,534 个独立主机。

“虽然这些服务中的大多数都需要身份验证,但 11% (39,405) 不需要,”该公司表示,并补充说“在我们观察到的 39,405 台未经身份验证的 Redis 服务器中,潜在的数据暴露超过 300 GB。”

暴露和未经身份验证的 Redis 服务排名前 10 的国家包括中国(20,011)、美国(5,108)、德国(1,724)、新加坡(1,236)、印度(876)、法国(807)、日本(711)、香港( 512)、荷兰 (433) 和爱尔兰 (390)。

在每个国家暴露的数据量方面,中国也处于领先地位,占 146 GB 的数据,美国以大约 40 GB 的数据排在第二位。

Censys 表示,它还发现了许多配置错误的 Redis 服务实例,并指出“以色列是唯一一个配置错误的 Redis 服务器数量超过正确配置的地区之一。”

为了缓解威胁,建议用户启用客户端身份验证,将 Redis 配置为仅在面向内部的网络接口上运行,通过将 CONFIG 命令重命名为不可猜测的名称来防止滥用,并将防火墙配置为仅接受来自受信任主机的 Redis 连接。

Redis数据库裸露