Recommended Services
› Amazon Web Services
› LeanCloud
› New Relic
› ClearDB
arronliu
V2EX  ›  云计算

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

  •  1
     
  •   arronliu · Nov 11, 2015 · 8652 views
    This topic created in 4012 days ago, the information mentioned may be changed or developed.

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

    允许公网访问 + 不设访问密码 + 以 Root 权限启动公网可访问没密码的程序
    lukew
    lukew
    Nov 11, 2015
    10
    @est 对的。。
    aofall
    aofall
    Nov 11, 2015 via iPhone
    11
    @master 自编译的就是以 root 启动的
    youxiachai
    youxiachai
    Nov 11, 2015
    12
    这个算是 redis 漏洞????????????

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

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

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

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

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

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

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

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

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

    不过可以更改默认配置 直接 bind 127.0.0.1 限制成本机访问
    BOYPT
    BOYPT
    Nov 12, 2015
    35
    这压根不算漏洞,服务器管理人员的知识问题。
    ihciah
    ihciah
    Nov 12, 2015
    36
    @raysmond “在 V2EX 看到 os 助教是什么体验”...
    raysmond
    raysmond
    Nov 13, 2015
    37
    @ihciah 13 届的吗? V2EX 是一个神奇的站
    ihciah
    ihciah
    Nov 18, 2015
    38
    @raysmond 13 级 233333
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4857 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 101ms · UTC 07:58 · PVG 15:58 · LAX 23:58 · JFK 02:58
    ♥ Do have faith in what you're doing.