《UDB MongoDB 0day 零漏洞,让人放心的 UCloud NoSQL服务》要点:
本文介绍了UDB MongoDB 0day 零漏洞,让人放心的 UCloud NoSQL服务,希望对您有用。如果有疑问,可以联系我们。
相关主题:非关系型数据库
近期,大批量的MongoDB实例因为配置漏洞遭遇了攻击,黑客无需身份认证即可登录MongoDB实例,从而删除了大量数据,并勒索受害者支付赎金才能要回自己的数据.截止目前为止,被劫持的MongoDB实例已经达到了一个惊人的数量.更加可恶的是,黑客在删除完业务数据库后,在里面的数据库留下了这段嘲讽+敲诈的文章.UCloud君简单翻译了下:“你的数据库可以通过公网IP免暗码登陆,你tmd的是怎么想的?”吓得UCloud君迅速针对这个漏洞去检查了下自家的云MongoDB产品,确认并无遭受攻击的风险.
其实熟悉MongoDB的同学会不难发现,漏洞原因非常简单,而且由来已久.从根本上说,这其实是MongoDB在设计之初的一个小疏忽.MongoDB为了让开发者能够更快地上手使用,支持免去复杂的连接配置和鉴权方式的做法,默认情况下是无鉴权的,即免暗码即可登陆.同样的原理,其他类型的数据库比如MySQL,只要配置了允许免暗码公网IP访问,同样会存在遭遇攻击的风险.
通过调查,我们发现遭遇黑客攻击的MongoDB实例必要同时具备以下两个条件:
1 MongoDB实例免暗码登陆
2 MongoDB实例开放了公网拜访
通过上述的原因分析,一般都是以下两种原因引发了悲剧:
1 MongoDB使用者平安意识不高(认为数据可有可无,并非关键性服务)
2 MongoDB使用者的运维能力软弱,根本没想到这一点
1、建议您使用我们的UDB MongoDB,我们的云MongoDB产品文档链接如下:
https://docs.ucloud.cn/database/udb-mongodb/index
2、对现有的云主机UHost自建MongoDB进行平安加固,步骤如下:
2.1 开启暗码认证方式访问MongoDB(如果是副本集或mongos集群建议使用keyfile认证, UDB默认使用keyfile);
2.2 禁止通过公网IP拜访MongoDB(即在配置文件中设置bind_ip为该云主机的内网IP或127.0.0.1);
2.3 已经使用鉴权的,建议将暗码修改为足够的复杂度,排除被暴力破解的可能
1、打通目标库和源库之间的网络.这一步不做详细讨论,简单地说,假如源库自己就布置是在云服务商所在的云主机上,那么一般来说同一账户下的资源,网络已经是打通了的;假如是从其他IDC机房迁移到云MongoDB上,可以通过做一次代理的方式实现网络互通.
2、建立源DB和目标DB的副本集,以源库作为主节点,目标库作为从节点,建立主从进行复制.这里还需要注意的是保证账户鉴权方式一致,即auth是否都关闭或者开启,保证副本集名称(replSet)一致,保证各节点使用的keyfile一致.三方面任何一个节点务必坚持一致,不然无法正常同步.假设源DB为三个节点的副本集,现在想迁移到云上,那么需要做成的副本集结构图如下:
3、待同步完成后,check从节点数据完整性后,将这几个目标DB的IP添加到副本集连接字符串URI中,重启应用层连接客户端.
4、选择云上的某个从节点作为主节点候选节点,提高它的选举优先级,人为触发副本集的选举过程(具体操作参加rs.reconfig()).这样就可以将MongoDB云数据库中的一个Secondary节点提升为新的Primary节点,提升完成后的布局图如下:
5、确认业务正常,数据没有问题后,将这几个源DB的IP从副本集连接字符串URI中删除,重启应用层连接客户端.
6、登录到MongoDB云数据库的Primary节点中挨个删除自建DB的数据节点,这样就只保存了云数据库的几个节点.
7、迁移完毕.
以上过程可以平滑迁移到云数据库上,其实在步骤3、步骤5还有一定的优化空间,可以预先配置好URI,包含变更前URI、中间态URI和变更后URI,不同阶段使用正确的URI配置文件,启用或者关闭对应的应用层连接客户端,这种策略可以缩短对业务的影响时间.
《UDB MongoDB 0day 零漏洞,让人放心的 UCloud NoSQL服务》是否对您有启发,欢迎查看更多与《UDB MongoDB 0day 零漏洞,让人放心的 UCloud NoSQL服务》相关教程,学精学透。维易PHP学院为您提供精彩教程。
转载请注明本页网址:
http://www.vephp.com/jiaocheng/9592.html