V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐工具
RoboMongo
推荐书目
50 Tips and Tricks for MongoDB Developers
Related Blogs
Snail in a Turtleneck
corona
V2EX  ›  MongoDB

前几天突然发现,阿里云 ECS 服务器上的 mongodb 数据库数据全部丢失,黑客是怎么做到的?

  •  
  •   corona · 2017-01-07 20:29:48 +08:00 · 12026 次点击
    这是一个创建于 2884 天前的主题,其中的信息可能已经有所发展或是发生改变。

    事情的经过是这样的:

    1. 上个月,在阿里云 ECS 服务器上搭建了一个小系统,技术栈使用: Angular + Express + Mongodb;

    2. mongodb 数据库是创建在 ECS 服务器上的;

    3. 前几天收到阿里云的一个邮件,是这样的:

      http://ww3.sinaimg.cn/mw1024/aede01c6jw1fbic04sgy6j21aa0qa0zm.jpg

    4. 关于数据库的端口,我是用的默认的 27017 ,没有做修改,数据库用户 admin 也只是做了简单设置。

    5. 发现这个问题后,我做了一些措施:修改数据库端口,绑定 IP ,修改用户等。


    有两个疑问:

    1. 想知道,黑客要攻击 mongodb 数据库,一般都是用哪些套路?
    2. 要想让数据库更安全,有什么比较好的措施?
    29 条回复    2017-04-23 17:02:42 +08:00
    changwei
        1
    changwei  
       2017-01-07 20:31:37 +08:00 via Android
    是不是没有加密码?没有加的话,黑客用那种批量扫描器随随便便就能扫到
    DDMCloud
        2
    DDMCloud  
       2017-01-07 20:32:57 +08:00
    - -数据库没加密码 默认是无需密码的。。。
    xiaoz
        3
    xiaoz  
       2017-01-07 20:35:16 +08:00 via iPhone
    前几天我和楼主收到了同样的漏洞提醒,然后我赶紧把 27017 的公网端口关了,只留了内网放行。
    corona
        4
    corona  
    OP
       2017-01-07 20:38:48 +08:00
    @changwei @DDMCloud 是没有加密码,这是个疏忽。
    corona
        5
    corona  
    OP
       2017-01-07 20:39:07 +08:00
    @xiaoz 恩,我现在就是这样做的。
    PaleCheung
        6
    PaleCheung  
       2017-01-07 20:41:02 +08:00
    mongodb 默认是监听 127.0.0.1 的. 未授权访问是相对安全的.除非对方拿到 shell 权限.

    收到邮件可能是你机器上装了 安骑士吧.

    要不就是开了 外部访问,被阿里扫到了.
    corona
        7
    corona  
    OP
       2017-01-07 20:44:17 +08:00
    @PaleCheung
    我自己没主动安装 安骑士,从邮件来看,是阿里云的“云盾”扫描到的。
    如果关闭外部访问,那还能在公网正常访问系统吗?
    whx20202
        8
    whx20202  
       2017-01-07 20:44:19 +08:00
    我看微博上 左耳朵耗子 说最近 MongoDB 被黑了好多,可能阿里搞了波专项吧
    也可以能是安骑士
    roychan
        10
    roychan  
       2017-01-07 21:19:10 +08:00
    1. Listen 0.0.0.0
    2. 没有启动 auth

    我一直很好奇不做访问控制直接暴露在公网上的数据库都是用来干嘛的。
    billlee
        11
    billlee  
       2017-01-07 22:38:01 +08:00
    如果你自己搞不明白或者懒,那么用发行版提供的包,至少默认配置是安全的
    非要自己手动安装又不会配置就是作死
    BOYPT
        12
    BOYPT  
       2017-01-07 22:43:06 +08:00
    因为很多中文的教程教他们自己编译, 然后监听 0.0.0.0, 之前的 redis 也是同理.
    golmic
        14
    golmic  
       2017-01-07 23:06:33 +08:00 via Android
    我的也被黑了~
    SP00F
        15
    SP00F  
       2017-01-07 23:15:05 +08:00
    没密码默认的不被 delete 掉才怪……
    q397064399
        16
    q397064399  
       2017-01-08 07:58:46 +08:00
    阿里云,我 记得我买来的 vps 一直都是裸着的,端口全暴露在外面
    还有我记得我刚买的那天晚上,同一公网段的 vps 兄弟 暴力了我的 22 整整一晚,
    因为当时阿里云搞活动送 6 个月体验

    一般国外绝大部分云厂商,默认不转发端口,公网是公网 内网是内网,
    你要配置转发才行
    realpg
        17
    realpg  
       2017-01-08 09:52:56 +08:00
    @roychan
    ubuntu server 的 apt , mysql , redis , mongodb 什么的安装好就是默认 127.0.0.1 的
    你要有外网需求再去改

    redhat 系的从来都是 0.0.0.0 的,但是很多人并不知道
    roychan
        18
    roychan  
       2017-01-08 10:10:44 +08:00
    @realpg 是的。但是即便用于外网访问,也要开启认证啊…
    realpg
        19
    realpg  
       2017-01-08 10:15:00 +08:00
    @roychan
    阿里云有很大一部分用户连 yum install XXXX 都是从百度搜到的直接粘贴的 你还要求啥……
    zjqzxc
        20
    zjqzxc  
       2017-01-08 11:45:17 +08:00
    @realpg 我阴谋论以下, rh 系默认监听 0.0.0.0 是不是(人为)增加不安全因素以迫使企业购买 rh 服务或者增加对 rhce 人才的需求呢
    zoues
        21
    zoues  
       2017-01-08 13:41:17 +08:00 via iPhone
    原来 mg 不就是 0.0.0.0 访问吗
    skywayman
        22
    skywayman  
       2017-01-08 22:20:08 +08:00
    裸奔时痛骂别人看光了就是耍流氓....
    type
        23
    type  
       2017-01-09 09:49:52 +08:00
    mongodb 对公网开放了端口
    domty
        24
    domty  
       2017-01-09 11:59:45 +08:00
    https://www.bleepingcomputer.com/news/security/number-of-hijacked-mongodb-databases-is-going-up-as-more-hackers-are-flocking-in/

    不是个例,简单说就是因为某些漏洞,用户的 mongodb 被攻击了,然后所有数据都被删除,接着收到勒索邮件要救支付一定数量的比特币赎回备份数据。
    domty
        25
    domty  
       2017-01-09 12:04:16 +08:00
    @domty
    好吧也谈不上漏洞。。。
    cobola
        26
    cobola  
       2017-03-28 16:23:10 +08:00
    默认只允许本机访问吧
    dven
        27
    dven  
       2017-04-23 07:18:10 +08:00
    @BOYPT
    @realpg
    我们的习惯是通过一个类似 VPN 的东西访问一个特定的 10 段,所有的数据库只在 10 段上跑,这样应该也还可以吧
    BOYPT
        28
    BOYPT  
       2017-04-23 14:57:44 +08:00
    @dven vpn 的话就比全暴露公网安全多了,但是也有内网渗透的风险;看你的环境需要什么级别的安全而已,安全工作是无底洞
    dven
        29
    dven  
       2017-04-23 17:02:42 +08:00
    @BOYPT 127.0.0.1 加 SSH 隧道 /Shadowsocks 穿透呢,我看敏姐 @loveminds 提到过这方法
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2602 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 77ms · UTC 06:34 · PVG 14:34 · LAX 22:34 · JFK 01:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.