V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
arronliu
V2EX  ›  云计算

[安全公告] Redis Crackit 入侵事件通告

  •  1
     
  •   arronliu · 2015-11-11 14:23:55 +08:00 · 7287 次点击
    这是一个创建于 3329 天前的主题,其中的信息可能已经有所发展或是发生改变。

    近日曝出大规模利用 Redis 漏洞进行入侵的事件,会给用户的 Redis 运行环境以及 Linux 主机造成安全风险,请可能被漏洞影响的用户仔细阅读本文,并做相应的处理。

    容易遭受入侵的环境

    用户自建的运行了 Redis 服务的 Linux 主机,并在公网上开放了 6379 的 Redis 端口

    入侵现象

    • Redis 可能被执行过 flushall 命令
    • Redis 内建了名为 crackit 的 key
    • Redis 的 dir 参数指向了 /root/.ssh
    • /root/.ssh/authorized_keys 被覆盖或者包含 Redis 相关的内容

    修复办法

    • 以非 root 权限启动 Redis
    • 增加 Redis 密码验证
    • 禁止公网开放 Redis 端口, 例如可以在青云防火墙上禁用 6379 Redis 的端口
    • 检查 authorized_keys 是否非法

    温馨提示:青云提供的 Redis 服务是运行在私有网络中的,并且已经考虑了安全加固措施,同时提供密钥验证的配置,不会受到该漏洞的影响,请用户放心使用。

    关于入侵事件的更多详情还可以参见:https://nosec.org/bobao/redis_crackit

    另外,有任何其他问题可以工单与我们联系。

    QingCloud 技术团队

    38 条回复    2015-11-18 09:22:28 +08:00
    ququzone
        1
    ququzone  
       2015-11-11 16:07:49 +08:00   ❤️ 1
    昨天公司服务器中招了,数据全被清了,还好不是正式数据。虽然它给我的 redis 里面放了 crackit 的 key ,不过我们服务器是禁止 root 用户 ssh 登录的,所以没有造成其他影响。大家在服务器里面设置一定要加 **禁止 root 远程登录 **
    shiny
        2
    shiny  
       2015-11-11 16:09:45 +08:00
    想起前几天一个帖子 /t/234520
    master
        3
    master  
       2015-11-11 16:27:31 +08:00
    禁止 root 远程登录固然重要
    但是为什么要让 redis 使用 root 账号启动
    wawehi
        4
    wawehi  
       2015-11-11 16:33:18 +08:00
    开放 redis 公网访问
    以 ROOT 启动
    这两大错误绝不能犯呀
    est
        5
    est  
       2015-11-11 16:39:30 +08:00
    @master 出问题的公司,一般没运维团队。 redis 多半是码农自己编译的。跑起来就谢天谢地了。
    Showfom
        6
    Showfom  
       2015-11-11 16:41:42 +08:00
    已经做好安全措施了。
    raysmond
        7
    raysmond  
       2015-11-11 16:44:44 +08:00
    禁止了 redis 公网访问,只能 localhost 访问,为什么还不能用 root 账号启动?
    raysmond
        8
    raysmond  
       2015-11-11 16:45:10 +08:00
    @wawehi 禁止了 redis 公网访问,只能 localhost 访问,为什么还不能用 root 账号启动?
    typcn
        9
    typcn  
       2015-11-11 16:46:41 +08:00
    这是何样的安全头脑。。。。

    允许公网访问 + 不设访问密码 + 以 Root 权限启动公网可访问没密码的程序
    lukew
        10
    lukew  
       2015-11-11 16:50:57 +08:00
    @est 对的。。
    aofall
        11
    aofall  
       2015-11-11 16:53:19 +08:00 via iPhone
    @master 自编译的就是以 root 启动的
    youxiachai
        12
    youxiachai  
       2015-11-11 16:54:02 +08:00
    这个算是 redis 漏洞????????????

    redis 的文档我记得,明显写了不要用 root 启动,也不要暴露外网....
    kn007
        13
    kn007  
       2015-11-11 17:15:05 +08:00
    自用的 VPS ,
    1.一直以非 root 权限启动 Redis
    2.从未开放公网 Redis 端口
    est
        14
    est  
       2015-11-11 17:16:51 +08:00
    @raysmond 这个思路,出问题是迟早的。

    安全的攻防对抗,防守是只要漏一点,全盘皆输。攻击是只要突破一点,全盘皆赢。安全问题不是你只跑 localhost 就能高枕无忧的事。

    Defenders think in lists. Attackers think in graphs.
    iugo
        15
    iugo  
       2015-11-11 17:25:22 +08:00
    @est 看来开发者学一些运维常识是必要的.
    xshell
        16
    xshell  
       2015-11-11 17:28:22 +08:00
    没做安全设置啊··~~
    facert
        17
    facert  
       2015-11-11 17:39:21 +08:00
    1. 增加 Redis 密码验证基本能被暴力破解,因为 redis 太快了,每秒钟 12k 的速度。。。
    2. 禁止 root 用户登录,也可以猜测用户名,风险还是有的。
    3. 可以修改 redis 的默认端口 6379 ,配置 rename-command CONFIG "RENAME_CONFIG", 这样即使存在未授权访问, 也能够给攻击者使用 config 指令加大难度
    4. 如果 redis 只在本机需要访问,还是设置 bind 127.0.0.1 吧
    iyangyuan
        18
    iyangyuan  
       2015-11-11 17:51:24 +08:00 via iPhone
    端口都不改,被黑怪谁
    raysmond
        19
    raysmond  
       2015-11-11 17:51:41 +08:00
    @est 我就想知道怎么做到的
    Cloudee
        20
    Cloudee  
       2015-11-11 17:58:13 +08:00
    @raysmond 我感觉就算 bind 127.0.0.1 ,也有本地提权的风险,比如本地的某个 nobody 用户上跑的危险比较大的程序被黑了,通过 127.0.0.1 连上 redis 相当于可以以 root 身份任意写文件了
    mingyi0
        21
    mingyi0  
       2015-11-11 18:56:13 +08:00
    redis 还是尽量放在内网较好
    wy315700
        22
    wy315700  
       2015-11-11 19:02:26 +08:00
    不给服务器直接分配外网 IP 是有道理的
    msg7086
        23
    msg7086  
       2015-11-11 22:16:19 +08:00
    #8 @raysmond 永远不要用 ROOT 账号启动无降权的网络服务。
    nginx / php 这些,都是起了子进程降权跑的,主进程用 ROOT 并无所谓。
    redis 这种单进程系统,开 ROOT 跑就跟你直接把 ROOT 账号白送别人是一样的。
    如 20 楼所说,任何一个无权用户都可以直接连上你的 redis 把自己提权成 root 。
    branchzero
        24
    branchzero  
       2015-11-12 00:29:02 +08:00
    还好改了端口,幸运躲过一劫,然后赶紧去限制了高危命令并且加了密码,绑定内网 IP 监听。
    lshero
        25
    lshero  
       2015-11-12 00:34:06 +08:00
    阿里云 腾讯云 XX 云 估计都是有人批量扫段的吧
    mywaiting
        26
    mywaiting  
       2015-11-12 01:19:26 +08:00
    感觉这个安全公告都有点神经病了~

    1 、竟然有人连都个 iptables 不设置就跑在公网上?
    2 、竟然有人用 root 来启动关系到网络连接的进程?
    3 、竟然有人只想改个端口、 rename 个 config 命令的名字就想逃过这个安全漏洞?
    4 、竟然有人想随便设置个密码就打发 redis 了,你们真心不懂 Redis 的爆破速度有多快吗?
    5 、竟然有人把 .ssh 目录设置成除 root 外可读可写的?

    嗯嗯,安全这事情,看来还任重而道远
    msg7086
        27
    msg7086  
       2015-11-12 01:26:11 +08:00
    @mywaiting iptables 我就不开,但是对外端口我也不会乱开,所以并没什么影响。
    WildCat
        28
    WildCat  
       2015-11-12 08:09:51 +08:00 via iPhone
    扔 docker 里的是不是不用太担心?
    wawehi
        29
    wawehi  
       2015-11-12 08:46:27 +08:00
    @raysmond 绑定局域网地址也是可以的
    youxiachai
        30
    youxiachai  
       2015-11-12 09:05:19 +08:00
    @mywaiting 有个调查报告表示..全球还真不少..其中中国占了不少..
    jimrok
        31
    jimrok  
       2015-11-12 09:20:42 +08:00
    大部分数据都不是太重要,防护力度肯定不够。
    raysmond
        32
    raysmond  
       2015-11-12 10:33:58 +08:00
    @mywaiting 这黑的
    raysmond
        33
    raysmond  
       2015-11-12 10:35:03 +08:00
    @msg7086 了解了,我感觉我之前的 redis 出了一些奇怪的问题,感觉是 flushall 了一样,但是我觉得我的程序应该是没有出错的。
    newghost
        34
    newghost  
       2015-11-12 11:20:41 +08:00
    这个漏洞应该没想象的那么严重,

    装了个数据库不设密码? 我怀疑安装的人根本不会用 redis 。

    默认 apt-get 安装 redis 的用户和组 不应该是 redis:redis 吗?

    要造成这个漏洞的执行条件其实还挺不容易的。

    redis 对这个所谓的漏洞应该不予理会,没有必要把 redis 弄的太复杂

    不过可以更改默认配置 直接 bind 127.0.0.1 限制成本机访问
    BOYPT
        35
    BOYPT  
       2015-11-12 14:33:53 +08:00
    这压根不算漏洞,服务器管理人员的知识问题。
    ihciah
        36
    ihciah  
       2015-11-12 16:28:07 +08:00
    @raysmond “在 V2EX 看到 os 助教是什么体验”...
    raysmond
        37
    raysmond  
       2015-11-13 14:04:26 +08:00
    @ihciah 13 届的吗? V2EX 是一个神奇的站
    ihciah
        38
    ihciah  
       2015-11-18 09:22:28 +08:00
    @raysmond 13 级 233333
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   844 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 21:36 · PVG 05:36 · LAX 13:36 · JFK 16:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.