V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
helloworld01
V2EX  ›  数据库

MongoDB 数据库被入侵删除事件分析

  •  
  •   helloworld01 · 2017-01-08 00:12:16 +08:00 · 1986 次点击
    这是一个创建于 2669 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本周,境外勒索集团黑客大规模利用企业使用 MongoDB 开源版时的配置疏漏进行入侵,给自建 MongoDB 数据库服务的企业造成不小的安全隐患。

    阿里云安全团队监测入侵趋势,第一时间发布公告《 MongoDB 数据库未授权访问漏洞及加固》给出相应修复建议。同时,立即通过邮件、站内信和短信进一步提醒。

    从以上安全事件可以看出,一个 Harak1r1 黑客团队访问的黑客要求 0.2 BTC ,大约为 200 美元,以便恢复数据。 通过整个事件监测和第三方掌握的信息,发现目前针对 MongoDB 勒索攻击主要有以前黑客团队,其中 Harak1r1 团队是目前主要黑客团队。

    问题出在哪里? 从多个客户事件排查总结发现这些受害的用户都有一个共同的特征:

    所有事发 MongoDB 可以在任何网络在无需使用账号任意登录

    换句话说,家门全部敞开,没有任何安全防护措施,业务直接裸奔在互联网上,黑客可以来去自如,用底层本的方式做任何想做的事情,包括数据库删除这样的高危操作等,从排查的案例来看,也正好验证了这个攻击方式。

    如果您是 MongoDB 管理员,下面的其他提示可能对您有用:

    1. 检查 MongDB 帐户以查看是否没有人添加了密码( admin )用户(使用 db.system.users.find()命令);
    2. 检查 GridFS 以查看是否有人存储任何文件(使用 db.fs.files.find()命令);
    3. 检查日志文件以查看谁访问了 MongoDB ( show log global 命令)。

    为什么会发生?

    作为技术人员,我们肆意的猜测可能有以下原因:

    1.一般技术人员从官网下载的二进制安装包后,没有配置文件 ,直接使用脚本启动部署业务并投入到生产环境,默认条件下, MongoDB 是不启用认证和访问控制功能,至于 MongoDB 为何这样设计不得而知。 以下是小编从官网下载最新的安装包,从安装包里面,无配置文件,所以基于这种底成本大伤害的攻击方式,很容易被黑客利用成功。

    2.不了解 MongoDB 的安全使用方式,数据库管理员在启动时,未加安全参数直接运行,导致任何用户可以使用任何网络无账号登录到数据库。

    如何解决这个问题呢?

    勒索再也不是土匪绑架,英雄救美这样的老套把戏,远隔万里的黑客可以分分钟逼你花大把金钱"消灾",作为用户的您,该如何防范呢?

    1.您可以登录到阿里云云盾控制台,使用云盾安骑士 MongoDB 检测是否存在此安全问题;

    1. 如果您需要自己搭建 MongoDB 数据库,强烈推荐您使用 yum rpm 方式安装 MongoDB Server 服务 3.在正式使用 MongoDB 服务之前,强烈建议您对 MongoDB 服务进行加固后上线正式服务:

    1).江湖险恶,对于数据库高危险服务慎重考虑是否要开放发布到互联网上,如果不需要互联网访问数据库,可以使用 ECS 安全组功能控制外网访问服务端口,拒绝黑客初始化访问,让黑客无法触碰到核心业务,该方法适用于所有 IT 业务服务;

    2).即将部署使用或已经在线运行的 MongoDB 需要配置鉴权认证机制、绑定访问源 IP 等方面的加固,给门上加一把“强锁;

    3).光有以上的一些措施可能不够,建议 MongoDB 管理员使用以下参考资料对数据库进行加固

    • MongoDB 加固手册 • MongoDB 官方 Security Checklist

    4.数据备份。不论是数据库文件或本地代码文件,对于重要的数据使用阿里云 ECS 快照功能、或其他离线备份数据;

    5.建议您使用阿里云 MongoDB 服务,云数据库服务设计考虑多层安全防护体系,为您抵御 90%以上的网络攻击,提高业务的安全性。

    最后,再次提醒受影响的用户,不要信任何可去支付任何赎金,您可能会成为一个更大的目标,下一次的赎金可能会更高,同时也建议您提高安全意识,关注业务安全

    11 条回复    2017-01-09 13:51:43 +08:00
    Kilerd
        1
    Kilerd  
       2017-01-08 00:17:08 +08:00 via iPhone
    是时候这个脚本一键检查 mongo 是否配置安全了。
    Syc
        2
    Syc  
       2017-01-08 00:23:59 +08:00 via Android
    前排挤挤,看楼下大神发言
    golmic
        3
    golmic  
       2017-01-08 00:40:01 +08:00 via Android
    我的 mongodb 就被黑了
    DoraJDJ
        4
    DoraJDJ  
       2017-01-08 01:01:28 +08:00 via Android
    说简单点,就是搭了个 MongoDB 服务器却不设个安全的密码,还允许外网访问,然后任由被各种人弓虽女干。

    实际上换到哪个服务器上都差不多,安全意识淡薄自然就会造成类似这样的安全事故。
    McContax
        5
    McContax  
       2017-01-08 01:15:06 +08:00 via iPhone
    学到姿势了,不过我也不喜欢把数据库扔到外网去
    kimoCHG
        6
    kimoCHG  
       2017-01-08 01:55:34 +08:00
    虽然未能写个一键检查 mongo 是否配置安全的脚本
    但是总结了下如何配置身份验证登陆
    [Mongodb enable authentication]( http://www.jianshu.com/p/79caa1cc49a5)
    michael2016
        7
    michael2016  
       2017-01-08 08:01:32 +08:00
    打开 mongoDB 官网,可以随便下载 gz 包,但是在官方的 install manual 里面则是 rpm 安装, gz 包里面是没有任何 conf 配置文件的,有很多技术小白下来就直接用,不加任何参数, mongodb 官方可能是为了推广这个数据库降低了使用门槛,但是对于数据库这么关键的业务,同样带来了不可预料的安全问题,可以说,用户和 mongoDB 要各打几大板,用户要承担更多的责任,对于任何软件,建议研究透了要,谨慎使用,这个行业不是什么人都可以会得,专业人干专业事情,否则代价很大!
    yzmm
        8
    yzmm  
       2017-01-08 11:51:48 +08:00
    2 年前给阿里云用户扫描出来了差不多 3000 个 MongoDB 未授权服务器,据说后来批量处理了?然而现在 MongoDB 未授权依旧是漫天飞。楼上说的没错,感觉官方责任更大
    orvice
        9
    orvice  
       2017-01-09 00:34:56 +08:00
    似乎从 debian 源安装的,默认配置文件只监听了 127.0.0.1
    lujiajing1126
        10
    lujiajing1126  
       2017-01-09 08:21:38 +08:00 via iPhone
    测试服务器被删了😂😂杯具
    michael2016
        11
    michael2016  
       2017-01-09 13:51:43 +08:00
    @orvice 是的,推荐使用源安装,一方面有配置文件,另一方面默认有一些安全策略,但是个人觉得仅仅 bind 是不够的,我发现了这篇加固文档不错, https://help.aliyun.com/knowledge_detail/37451.html
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3225 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 00:40 · PVG 08:40 · LAX 17:40 · JFK 20:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.