SequoiaDB 关于 MongoDB 安全事件的一些思考

njsunpeng 7年前
   <p>刚刚过去的这个周末,各位大数据和数据库从业者想必是被MongoDB的“安全事件”给刷屏了,MongoDB作为当前NoSQL在全球的领军人物,遭到这么大规模的黑客攻击,这也再次让我们对于新一代的开源数据库的数据安全问题带来了思考。而 SequoiaDB 巨杉数据库作为国内领先的新一代分布式数据库厂商,我们也来说说我们对这个事件的看法。</p>    <p><strong>事件回顾</strong></p>    <p>此前,众多无需身份验证的开放式 MongoDB 数据库实例正在遭受多个黑客组织的攻击,被攻破的数据库内容会被加密,受害者必须支付赎金才能找回自己的数据。攻击者利用配置存在疏漏的开源 MongoDB 数据库展开了一系列勒索行为。此番针对 MongoDB 的勒索行为最早是由 GDI Foundation 的安全研究人员 Victor Gevers 在2016年12月27日发现的,在这之后影响陆续扩大,目前至少有五个不同黑客组织控制了上万个数据库实例。</p>    <p>目前在Google Docs上有一个列表,其中列出了参与此次攻击的黑客组织名单,具体数量还在增加中。攻击者所要求支付的金额各异,最低仅0.15个比特币,但也有高达1个比特币的赎金。2017年至今,比特币的价值上下波动,截止1月6日,具体金额约等于892美元。</p>    <p>此次针对MongoDB的攻击非常简单,利用了配置有误且可公开访问的数据库,无须具备相应的管理员凭据即可展开攻击。一旦攻击者登录到开放的数据库,随后会全面夺取控制权并窃取或加密数据库,被勒索的受害者必须支付赎金才能找回自己的数据。</p>    <p><strong>事件几点分析</strong></p>    <p>针对此次的MongoDB安全时间,业界的评判不一,而从一个数据库厂商的角度,我们认为主要的原因有一下几点:</p>    <p>1) <strong> </strong> <strong>数据库用户的安全意识</strong> :本次攻击的原理并不复杂,基本属于把自己数据库的大门敞开,难免最终会被贼“光顾”。一方面,用户对于数据库特别是MongoDB这样的数据库新面孔并没有特别熟悉,因此在使用的过程中由于经验不足而没有注意数据库安全的设置。另一方面,一些用户会认为防火墙和数据中心的安全机制已经足够,不需要再管数据库的安全设置,最终“大意失荆州”。归集起来,原因主要还是用户对于数据库使用的经验不足。</p>    <p>2) <strong> </strong> <strong>黑客攻击后未有有效的警告</strong> :除了本身用户使用的大意,对于数据库安全的监控无论是厂商自己还是相关的机构都远未达到大家的预期。首先,早在15年有关MongoDB“裸奔”的消息放出后,无论是厂商还是业界都没有引起足够的重视,更没有有效的警告和提醒。其次,在本次大规模的攻击事件发生后,各方的反应也较慢,直到有媒体开始爆出消息才引起了厂商和用户群体的警惕。然而可以说是“为时已晚”。</p>    <p>3) <strong> </strong> <strong>MongoDB</strong> <strong>的安全机制不完善</strong> :虽然本次安全时间并不是因为MongoDB程序自身的漏洞而遭到大规模攻击,但是作为厂商,产品用户遭到大规模的攻击和勒索,自己也是难逃其咎。总结起来主要有两个问题,一个是安全机制的不完善,也就是在使用中没有自动化的安全保护机制,如MongoDB在3.x之后更改了鉴权协议,而不兼容2.x版本协议,许多用户因为不愿升级而最终选择“裸奔”。另一个,MongoDB也没有能有效的提醒用户注意设置数据库权限,对于可能出现的“裸奔”情况,其并没有做好十足的提醒,保证用户必须设置好权限才可以使用,这也是造成本次事件的主要原因之一。</p>    <p><strong>数据库安全的思考</strong></p>    <p>说了这么多,大家应该也比较关心怎么去预防类似问题的出现,我们也在这里给大家几点思考吧:</p>    <p>1) <strong> </strong> <strong>数据库安全十分重要:</strong> 这次的事件提醒大家,数据库安全真的很重要。无论是资深的还是新人“小白”用户,都应该把数据库的安全提到一个重要的位置。用户们要注意数据库的安全保护,充分利用好数据库的安全机制,保护好自己的数据。避免这次MongoDB“裸奔”的情况出现。</p>    <p>2) <strong> </strong> <strong>企业用户需要专业的技术支持:</strong> 对于数据量达到一定规模或者是保存的数据十分敏感、重要的企业用户,无论是数据库安全还是数据库的高效管理、高性能配置,我们认为最好都要寻求专业的厂商技术团队的支持。厂商专业的团队可以帮助企业更全面的使用和管理好自己的数据库平台,同时,厂商专业的团队也能给到用户最好最及时的数据库安全保护和漏洞修复服务,避免大规模数据库安全事故的发生。</p>    <p>3) <strong> </strong> <strong>国产化与开源产品:</strong> 虽然目前业界也有许多的海外开源产品,但是作为用户,如果在并不能完全了解这些技术的前提下使用开源架构,很可能也会面临使用上和管理上的一些盲点,造成出现数据库“裸奔”这样的失误。因此,国内的用户我们也认为可以考虑更多国产大数据架构,这样不仅产品更适合国内应用场景需求,在技术支持上相对海外的开源架构,更能给到原厂代码级别的服务支持。</p>    <p>4) <strong> </strong> <strong>厂商的产品服务:</strong> 反过来,对于厂商,我们希望厂商也都能引以为戒,产品开发要更全面的考虑到用户的需求以及可能遇到的问题,同时对客户的服务响应上也要更加的及时,不要等到大规模的爆发了问题才引起重视。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/dfd214e06322256791e3fb61d8b38a81.png"></p>    <p> </p>    <p>来自:https://www.oschina.net/news/80823/some-thoughts-on-mongodb-security-incident</p>    <p> </p>