刚刚过去的这个周末,各位大数据和数据库从业者想必是被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. mybatis中传入一个List集合作为查询条件的参数

    如果有一个查询参数有多个,用一个List集合传进去,这个mapper文件可以这么写 <select id="queryList04" resultType="map ...

  2. AMD及requireJS

    前面的话 由CommonJS组织提出了许多新的JavaScript架构方案和标准,希望能为前端开发提供统一的指引.AMD规范就是其中比较著名一个,全称是Asynchronous Module Defi ...

  3. Cassandra Issue with Tombstone

    1. Cassandra is quicker than postgre and have lower change to lose data. Cassandra doesn't have fore ...

  4. CodeForces 544C (Writing Code)(dp,完全背包)

    题意:有n个程序员,要协作写完m行代码,最多出现b个bug,第i个程序员每写一行代码就会产生a[i]个bug,现在问,这n个人合作来写完这m行代码,有几种方案使得出的bug总数不超过b(题中要求总方案 ...

  5. Github 开源:使用控制器操作 WinForm/WPF 控件( Sheng.Winform.Controls.Controller)

    利用午休时间继续把过去写的一些代码翻出来说一说,文章可能写的比较简略,但是我会努力把核心意思表达清楚,具体代码可直接访问 Github 获取. Github 地址:https://github.com ...

  6. C# Ajax 返回json数据--前后台交互

    本人实习生一枚,遇到这个问题,网上找的试了试基本可以,自己搞了一下.可以供新手参考,大神如有指点,请不吝赐教. 版权声明:本文为博主原创文章,未经博主允许不得转载. 前台JavaScript代码: & ...

  7. JavaScript 扫描枪使用(一)

    JavaScript 扫描枪应用(一)com.js为主要的代码实现,test.html文件为测试的页面,其中包括了com.js文件中方法的调用.以下为测试成功代码:com.js //com.js /* ...

  8. gulp报错

    这个问题网上搜索到的答案不一定能够解决问题,有可能是node版本问题,需要升级 到最新版就可以了....

  9. CommonsChunkPlugin并不是分离第三方库的好办法(DllPlugin科学利用浏览器缓存)

    webpack算是个磨人的小妖精了.之前一直站在glup阵营,使用browserify打包,发现webpack已经火到爆炸,深怕被社区遗落,赶紧拿起来把玩一下.本来只想玩一下的.尝试打包了以后,就想启 ...

  10. HTML5录音控件

    最近的项目又需要用到录音,年前有过调研,再次翻出来使用,这里做一个记录. HTML5提供了录音支持,因此可以方便使用HTML5来录音,来实现录音.语音识别等功能,语音开发必备.但是ES标准提供的API ...