Redis CrackIT 入侵事件引发Linux 沦陷
▲针对全球6379端口的redis服务器做了扫描,结果如上图
如图开放在公网的redis的6379端口的ip总数有63443个。无密码认证的IP有43024个,在总数占比里达到67%。发现遭受到redis crackit事件影响的服务器达到35024,在总数占比中达到55%,在无密码认证的redis数量中占比达到81%左右。
事件描述
很多使用者都是把redis下载到服务器直接运行使用,无ACL,无密码,root运行,且绑定在0.0.0.0:6379,暴露在公网。攻击者在未授 权访问 Redis 的情况下通过redis的机制,可以将自己的公钥或者其他恶意程序写入目标服务器中,从而可以直接控制目标服务器。
本次攻击事件已经影响至少万余家服务器被成功入侵。redis官网并未对此提供补丁,到目前为止看到的利用过程是基于redis提供的正常功能,而且这一问题早在去年九月就作为远程代码执行RCE的技术问题做了公开发布,并只得到小范围传播。
还原攻击过程
寻找无验证的redis服务:
容易遭受攻击的环境是用户自建的运行了 Redis 服务的 Linux 主机,并在公网上开放了 6379 的 Redis 端口。目前云服务供应商青云已经提供相应解决方案:
●以非 root 权限启动 Redis
●增加 Redis 密码验证
●禁止公网开放 Redis 端口, 例如可以在青云防火墙上禁用 6379 Redis 的端口
●检查 authorized_keys 是否非法
比较直接有效的修补加固建议是 从环境安全角度进行无需外网访问的可以绑定本地回环,同时需要对外的增加ACL进行网络访问控制。另外还可以借用stunnel等工具完成数据加密传输。 给redis设定密码、创建单独的nologin系统账号给redis服务使用、禁用特定命令等有效措施也可以亡羊补牢。