11月9日早上10点多我们收到几台客户服务器的安全监控系统告警,发现几台系统公钥文件被篡改,随后进行安全事件分析处理。在分析过程中我们发现了某黑客组织利用redis设计缺陷的攻击痕迹。考虑到攻击方式简单但影响极大,我们对此次安全事件做了进一步分析,发现这是针对全球互联网的全网性入侵事件。如果您的linux服务器上运行的redis没有设置密码,很可能已经受到了此次安全事件影响。结果将导致:redis数据丢失,服务器的ssh公钥被替换。
我们就此次安全事件预警式的针对全球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服务:
制作SSH密钥和公钥:
把公钥内容写入foo.txt:
把SSH公钥写入redis:
覆盖系统用户原来的SSH公钥:
通过SSH登入服务器:
修补加固建议
-
环境安全:
无需外网访问的可以绑定本地回环
需要对外的增加ACL进行网络访问控制
可以借用stunnel等工具完成数据加密传输
给redis设定密码
创建单独的nologin系统账号给redis服务使用
-
禁用特定命令
rename-command CONFIG ""