redis crackit安全事件分析

11月9日早上10点多我们收到几台客户服务器的安全监控系统告警,发现几台系统公钥文件被篡改,随后进行安全事件分析处理。在分析过程中我们发现了某黑客组织利用redis设计缺陷的攻击痕迹。考虑到攻击方式简单但影响极大,我们对此次安全事件做了进一步分析,发现这是针对全球互联网的全网性入侵事件。如果您的linux服务器上运行的redis没有设置密码,很可能已经受到了此次安全事件影响。结果将导致:redis数据丢失,服务器的ssh公钥被替换。

我们就此次安全事件预警式的针对全球6379端口的redis服务器做了扫描,结果如下图:

《redis crackit安全事件分析》

如图开放在公网的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 crackit安全事件分析》

制作SSH密钥和公钥:
《redis crackit安全事件分析》

把公钥内容写入foo.txt:
《redis crackit安全事件分析》

把SSH公钥写入redis:
《redis crackit安全事件分析》

覆盖系统用户原来的SSH公钥:
《redis crackit安全事件分析》

通过SSH登入服务器:
《redis crackit安全事件分析》

修补加固建议

  1. 环境安全:

    • 无需外网访问的可以绑定本地回环

    • 需要对外的增加ACL进行网络访问控制

    • 可以借用stunnel等工具完成数据加密传输

  2. 给redis设定密码

  3. 创建单独的nologin系统账号给redis服务使用

  4. 禁用特定命令

    rename-command CONFIG “”

    原文作者:牛盾云安全
    原文地址: https://segmentfault.com/a/1190000003981784
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞