V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NewDefend
V2EX  ›  信息安全

redis crackit 安全事件分析

  •  
  •   NewDefend · 2015-11-11 18:02:53 +08:00 · 2960 次点击
    这是一个创建于 3332 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 登入服务器:

    修补加固建议

    1. 环境安全:
      • 无需外网访问的可以绑定本地回环
      • 需要对外的增加 ACL 进行网络访问控制
      • 可以借用 stunnel 等工具完成数据加密传输
    2. 给 redis 设定密码
    3. 创建单独的 nologin 系统账号给 redis 服务使用
    4. 禁用特定命令

      rename-command CONFIG ""

    5 条回复    2015-11-11 22:30:33 +08:00
    LazyZhu
        1
    LazyZhu  
       2015-11-11 18:40:33 +08:00 via Android
    期待 MySQL crackit 安全事件分析...
    chinafeng
        2
    chinafeng  
       2015-11-11 19:02:54 +08:00
    图都是外链拦截...
    Andy1999
        3
    Andy1999  
       2015-11-11 19:07:19 +08:00 via iPhone
    谢谢 已黑某服务器练手了
    GNiux
        4
    GNiux  
       2015-11-11 20:57:01 +08:00 via iPhone
    哪个黑客组织?
    barbery
        5
    barbery  
       2015-11-11 22:30:33 +08:00
    如果不开放外网 6379 端口就没这个事情了咯?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   997 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 21:04 · PVG 05:04 · LAX 13:04 · JFK 16:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.