刚刚过去的这个周末,各位大数据和数据库从业者想必是被MongoDB的“安全事件”给刷屏了,MongoDB作为当前NoSQL在全球的领军人物,遭到这么大规模的黑客攻击,这也再次让我们对于新一代的开源数据库的数据安全问题产生了思考。而作为国内领先的新一代分布式数据库厂商,我们也来说说我们对这个事件的看法。

事件回顾

此前,众多无需身份验证的开放式 MongoDB 数据库实例正在遭受多个黑客组织的攻击,被攻破的数据库内容会被加密,受害者必须支付赎金才能找回自己的数据。攻击者利用配置存在疏漏的开源 MongoDB 数据库展开了一系列勒索行为。此番针对 MongoDB 的勒索行为最早是由 GDI Foundation 的安全研究人员 Victor Gevers 在2016年12月27日发现的,在这之后影响陆续扩大,目前至少有五个不同黑客组织控制了上万个数据库实例。

目前在Google Docs上有一个列表,其中列出了参与此次攻击的黑客组织名单,具体数量还在增加中。攻击者所要求支付的金额各异,最低仅0.15个比特币,但也有高达1个比特币的赎金。2017年至今,比特币的价值上下波动,截止1月6日,具体金额约等于892美元。

此次针对MongoDB的攻击非常简单,利用了配置有误且可公开访问的数据库,无须具备相应的管理员凭据即可展开攻击。一旦攻击者登录到开放的数据库,随后会全面夺取控制权并窃取或加密数据库,被勒索的受害者必须支付赎金才能找回自己的数据。

事件几点分析

针对此次的MongoDB安全事件,业界的评判不一,而从一个数据库厂商的角度,我们认为主要的原因有一下几点:

1) 数据库用户的安全意识:本次攻击的原理并不复杂,基本属于把自己数据库的大门敞开,难免最终会被贼“光顾”。一方面,用户对于数据库特别是MongoDB这样的数据库新面孔并没有特别熟悉,因此在使用的过程中由于经验不足而没有注意数据库安全的设置。另一方面,一些用户会认为防火墙和数据中心的安全机制已经足够,不需要再管数据库的安全设置,最终“大意失荆州”。归集起来,原因主要还是用户对于数据库使用的经验不足。

2) 黑客攻击后未有有效的警告:除了本身用户使用的大意,对于数据库安全的监控无论是厂商自己还是相关的机构都远未达到大家的预期。首先,早在15年有关MongoDB“裸奔”的消息放出后,无论是厂商还是业界都没有引起足够的重视,更没有有效的警告和提醒。其次,在本次大规模的攻击事件发生后,各方的反应也较慢,直到有媒体开始爆出消息才引起了厂商和用户群体的警惕。然而可以说是“为时已晚”。

3) MongoDB的安全机制不完善:虽然本次安全时间并不是因为MongoDB程序自身的漏洞而遭到大规模攻击,但是作为厂商,产品用户遭到大规模的攻击和勒索,自己也是难逃其咎。总结起来主要有两个问题,一个是安全机制的不完善,也就是在使用中没有自动化的安全保护机制,如MongoDB在3.x之后更改了鉴权协议,而不兼容2.x版本协议,许多用户因为不愿升级而最终选择“裸奔”。另一个,MongoDB也没有能有效的提醒用户注意设置数据库权限,对于可能出现的“裸奔”情况,其并没有做好十足的提醒,保证用户必须设置好权限才可以使用,这也是造成本次事件的主要原因之一。

数据库安全的思考

说了这么多,大家应该也比较关心怎么去预防类似问题的出现,我们也在这里给大家几点思考吧:

1) 数据库安全十分重要:这次的事件提醒大家,数据库安全真的很重要。无论是资深的还是新人“小白”用户,都应该把数据库的安全提到一个重要的位置。用户们要注意数据库的安全保护,充分利用好数据库的安全机制,保护好自己的数据。避免这次MongoDB“裸奔”的情况出现。

2) 企业用户需要专业的技术支持:对于数据量达到一定规模或者是保存的数据十分敏感、重要的企业用户,无论是数据库安全还是数据库的高效管理、高性能配置,我们认为最好都要寻求专业的厂商技术团队的支持。厂商专业的团队可以帮助企业更全面的使用和管理好自己的数据库平台,同时,厂商专业的团队也能给到用户最好最及时的数据库安全保护和漏洞修复服务,避免大规模数据库安全事故的发生。

3) 国产化与开源产品:虽然目前业界也有许多的海外开源产品,但是作为用户,如果在并不能完全了解这些技术的前提下使用开源架构,很可能也会面临使用上和管理上的一些盲点,造成出现数据库“裸奔”这样的失误。因此,国内的用户我们也认为可以考虑更多国产大数据架构,这样不仅产品更适合国内应用场景需求,在技术支持上相对海外的开源架构,更能给到原厂代码级别的服务支持。

4) 厂商的产品服务:反过来,对于厂商,我们希望厂商也都能引以为戒,产品开发要更全面的考虑到用户的需求以及可能遇到的问题,同时对客户的服务响应上也要更加的及时,不要等到大规模的爆发了问题才引起重视。

SequoiaDB巨杉数据库

SequoiaDB巨杉数据库是一款新一代的分布式NewSQL数据库,完全自主研发并且产品已经商业化开源。巨杉数据库的产品和服务能够切实保障用户的数据安全:

  • 分布式高可用:完全的分布式架构,实现了数据的多副本与高可用,保证数据实时在线。
  • 容灾:巨杉数据库的跨数据中心异地容灾,保证企业的数据安全。
  • 7x24小时原厂技术支持:巨杉最专业的技术团队,为企业用户提供7x24的本地技术支持,加速企业用户的大数据业务,是您的大数据系统的坚强后盾。

关于MongoDB安全事件的一些思考的更多相关文章

  1. MongoDB安全事件的防范与反思

    此文已由作者温正湖授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 近段时间来,全球范围内数以万计的MongoDB实例被攻击,作为旨在为用户提供最优MongoDB云服务的网易蜂 ...

  2. MongoDB,还有一个角度看数据

    传智-玄痛(传智播客北京校区C/C++学院技术指导老师) MongoDB的起源 几年前 10gen 公司做了 SaaS 方面的研发,由于公司一个 MongoDB 产品存储接口的易用性,用户评价很好,公 ...

  3. 2017年开年的第一次比较大的安全事件: MongoDB “赎金事件”,如何看待互联网安全问题

    今天上午(2017年1月7日),我的微信群中同时出现了两个MongoDB被黑掉要赎金的情况,于是在调查过程中,发现了这个事件.这个事件应该是2017年开年的第一次比较大的安全事件吧,发现国内居然没有什 ...

  4. 单点登录(十四)-----实战-----cas5.0.x登录mongodb验证方式常规的四种加密的思考和分析

    我们在上一篇文章中已经讲解了cas4.2.X登录启用mongodb验证方式 单点登录(十三)-----实战-----cas4.2.X登录启用mongodb验证方式完整流程 但是密码是明文存储的,也就是 ...

  5. 关于mongoDB的思考和nodeJS执行windows系统命令

    P1:在cnodejs.org上面看到有人问这个问题: 然后对此产生思考,第一句db.artile.find('uid':id) 然后问后台是否是这样查询,后台告诉我不是,这种写法就是违背非关系型数据 ...

  6. MongoDB仲裁节点的理解以及memcached,zookeeper,redis,故障恢复方案思考.

    在进行副本集部署时我们会添加一个或多个仲裁节点,仲裁节点不用于备份数据,由于它职责的职责是负责选举主节点,所以对硬件没有太高要求,可以将它部署在单独的服务器上,这个服务器可以是监听服务器,也可以部署在 ...

  7. CAP理论与MongoDB一致性、可用性的一些思考

    大约在五六年前,第一次接触到了当时已经是hot topic的NoSql.不过那个时候学的用的都是mysql,Nosql对于我而言还是新事物,并没有真正使用,只是不明觉厉.但是印象深刻的是这么一张图片( ...

  8. MongoDB分页的Java实现和分页需求的思考

    前言 传统关系数据库中都提供了基于row number的分页功能,切换MongoDB后,想要实现分页,则需要修改一下思路. 传统分页思路 假设一页大小为10条.则 //page 1 1-10 //pa ...

  9. 关于Mongodb RC的思考

    Mongodb Oplog 和 Journal log 的关系与执行顺序 就关系来说,op log实际上与数据是一致的概念. 但在有 RC的时候,执行顺序 w  j 的设置 如果不设置 j ,则默认是 ...

随机推荐

  1. 1.各个浏览器内核?经常遇到的浏览器兼容性有哪些?解决办法?常用的hack技巧?

    IE: trident内核 Firefox(火狐):gecko内核 Safari(苹果):webkit内核 Opera(欧鹏):以前是presto内核,现在是Blink内核 Chrome:Blink ...

  2. Ajax,纯Js+Jquery

    AJAX:Asynchronous Javascript and xml 异步,Js和Xml 交互式网页开发 不刷新页面,与服务器交互 详情请参照Jquery工具指南用在浏览器端的技术,无刷新,通过X ...

  3. dubbo高级配置学习

    启动时检查 可以通过check="false"关闭检查,比如,测试时,有些服务不关心,或者出现了循环依赖,必须有一方先启动. 关闭某个服务的启动时检查:(没有提供者时报错) < ...

  4. SQL Server on Ubuntu——Ubuntu上的SQL Server(全截图)

    本文从零开始一步一步介绍如何在Ubuntu上搭建SQL Server 2017,包括安装系统.安装SQL等相关步骤和方法(仅供测试学习之用,基础篇). 一.   创建Ubuntu系统(Create U ...

  5. Adobe Photoshop CS6中文破解MAC版

    Adobe Photoshop CS6中文破解MAC版 下载地址及破解方法 http://www.sdifenzhou.com/657.html

  6. SpringMVC 3.2集成Spring Security 3.2

    参考:http://www.cnblogs.com/Beyond-bit/p/springmvc_and_springsecurity.html SpringMVC 3.2集成Spring Secur ...

  7. 026 hibernate操作树形结构

    树形结构:也就是目录结构,有父目录.子目录.文件等信息,而在程序中树形结构只是称为节点. 一棵树有一个根节点,而根节点也有一个或多个子节点,而一个子节点有且仅有一个父节点(当前除根节点外),而且也存在 ...

  8. [原创]MLCC全球性缺货分析

    2017首季开始全球片式多层陶瓷电容器(MLCC)供应火爆,目前部分厂商交期已延长4周以上,供需缺口达15%.再加之苹果iPhone 8第二季已提前启动备货期,其需求数量极为庞大,至少上亿只,而各大M ...

  9. R语言进行文件夹操作示例(转)

    rm(list=ls())path = 'J:/lab/EX29 --在R语言中进行文件(夹)操作'setwd(path)cat("file A\n", file="A& ...

  10. React之组件通信

    组件通信无外乎,下面这三种父子组件,子父组件,平行组件(也叫兄弟组件)间的数据传输.下面我们来分别说一下: 父子组件: var Demo=React.createClass({ getInitialS ...