helloworld01
V2EX  ›  数据库

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

  •  
  •   helloworld01 · Jan 8, 2017 · 2644 views
    This topic created in 3429 days ago, the information mentioned may be changed or developed.

    本周,境外勒索集团黑客大规模利用企业使用 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 replies    2017-01-09 13:51:43 +08:00
    Kilerd
        1
    Kilerd  
       Jan 8, 2017 via iPhone
    是时候这个脚本一键检查 mongo 是否配置安全了。
    Syc
        2
    Syc  
       Jan 8, 2017 via Android
    前排挤挤,看楼下大神发言
    golmic
        3
    golmic  
       Jan 8, 2017 via Android
    我的 mongodb 就被黑了
    DoraJDJ
        4
    DoraJDJ  
       Jan 8, 2017 via Android
    说简单点,就是搭了个 MongoDB 服务器却不设个安全的密码,还允许外网访问,然后任由被各种人弓虽女干。

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