数个机构 MongoDB 被攻击,数据库被删
更多的黑客蜂拥而至,被劫持的MongoDB数据库数量随之增加。
由于现在涉嫌企图劫持MongoDB的黑客团伙从一个增加至三个,预计更多的团伙会在接下来几天纷纷加入其中,MongoDB管理员们在数据库管理实践方面将结结实实地上一堂课。
这个周一,Bleeping Computer网站爆出新闻:一个自报家门是Harak1r1的黑客/团伙接管了管理员帐户没有设置密码的连接至互联网的MongoDB数据库。
这个团伙导出数据库的内容,将所有表换成名为WARNING(意为“警告”)的一个表,里面有一封勒索信,要求中招数据库的所有者往比该团伙的特币钱包打入0.2个比特币(约合200美元)。
在我们刊发这篇文章时,Harak1r1已劫持了1800多个MongoDB数据库,11个受害者如数支付了赎金,以换回文件。
随着时间的推移,Harak1r1劫持了更多的数据库,劫持的MongoDB数量一度超过3500个,目前高峰时期超过800个。
在这些受害者当中,黑客甚至钓到了一条“大鱼”:艾默里医疗集团(Emory Healthcare),这是一家总部位于美国的医疗保健组织。
据MacKeeper安全研究团队声称,Harak1r1把艾默里医疗集团洗劫一空,阻止该集团访问200000多个医疗记录。
第二个团伙加入进来
来自harak1r1的攻击又持续了两天,但是随着全球信息安全媒体开始竞相报道这个话题,两个跟风者浮出水面,开始如法炮制。
第二个团伙化名为0wn3d,他们采用的手法是,把劫持而来的数据库表换成名为WARNING_ALERT的表。
据在圣诞节前后最早发现第一个被黑MongoDB数据库的研究人员维克托·格弗斯(Victor Gevers)声称,这第二个团伙已劫持了930多个数据库。
不像Harak1r1,这第二个团伙来得更贪婪一点,索要0.5个比特币(约合500美元),但是这还是没有阻止许多公司支付赎金;0wn3d的比特币钱包显示,至少三个受害者已乖乖支付了赎金。
发现第三个团伙
一天后,同样由格弗斯发现了第三个黑客,使用0704341626asdf这个化名,似乎已攻陷了740多台MongoDB服务器。
这个黑客/团伙索要0.15个比特币(约合150美元),他使用了一封内容更长的勒索信,他在信中告诫受害者:如不配合,他们的数据库内容将发布到互联网上。
此外,这个威胁分子似乎对受害者要求更苛严,限定数据库所有者必须在72小时内支付赎金。
支付赎金并不意味着受害者就可以拿回数据。
据格弗斯声称,由于这三个团伙开始使用内容更多样的勒索信和不同的比特币地址,让他得以跟踪查明这些团伙活动的思路在慢慢模糊起来。
此外,在这些攻击更新颖的变种当中,黑客们似乎懒得拷贝中招的数据库。在最近的几次攻击中,格弗斯表示,骗子们索性删除了数据库的内容,照样索要赎金,希望没人检查日志,没人发现他们的所作所为。
争夺MongoDB的地盘战刚开始
但是坏消息并不仅限于此。据格弗斯声称,这些团伙如今在争抢同一块地盘,其中许多人在改写对方的勒索信。
因此导致出现了这种情况:数据库的所有者把赎金付错对象,结果付给不该支付的团伙,对方自然无法归还内容。
格弗斯近日告诉Bleeping Computer网站:“这引起了坏人的注意,更多的玩家加入进来,打算趁机浑水摸鱼。这是件坏事。”
这位研究人员补充说:“虽然如此,但是这可能不会促使MongoDB的所有者开始修复门户敞开的MongoDB数据库。”他提到,大量未受到保护的MongoDB服务器连接到互联网上。
格弗斯补充道:“Shodan上的MongoDB总数量仍在增加,ZoomEye显示有90000多台服务器的门户敞开。AWS安全团队接到了潮水般涌入的帮助请求。”他本人忙于为遭到这些攻击的公司提供技术援助。
攻陷指标(IOC)
这张表现在出现在谷歌文档(Google Docs)上,现在由尼尔·梅里根(Niall Merrigan)和维克托·格弗斯共同管理。
下面这张表总结了与MongoDB勒索攻击有关的所有详细信息。这张表极有可能不完整。如果你有任何新的详细信息,欢迎联系我们。
团伙名称 | 电子邮件地址 | 比特币地址 | 勒索 金额 | 被替换数据 库的名称 | 已知的IP地址 |
Harak1r1 | harak1r1@sigaint.org | 13zaxGVjj9MNc2jyvDRhLyYpkCh323MsMq | 0.2个 比特币 | WARNING | 92.99.14.92.99.14.3 |
Mongo3l1t3 | mongo3l1t3@sigaint.org | 1j4ocBecBanTwjLsxLfiE7iWjMJGHdZGB | 0.2个 比特币 | WARNING | 193.107.145.20 |
0wn3d | 0wn3d@protonmail.com | 15b7bS8tUg8NpzX2FRJQskEFjWRDg9gy6f | 0.5个 比特币 | WARNING_ALERT | 185.106.120.159 |
0704341626asdf | 0704341626asdf@signaint.org | 18eUPJLM79zdXKYWZSzT29fBQScFwU81VR | 0.15个 比特币 | PWNED | 95.211.184.210 |
*** 1月6日,Mongoel1t3团伙后来居上,攻击势头超过Harak1r1攻击。这回,攻击者没有导出数据库,没有拷贝就直接更换数据库。
以上为云头条翻译自外媒新闻,以下为陈皓解读。
从 MONGODB “赎金事件” 看安全问题(作者:陈皓、左耳朵耗子)
今天上午(2017年1月7日),我的微信群中同时出现了两个MongoDB被黑掉要赎金的情况,于是在调查这个事的过程中,我发现了这个事。这个事件应该是2017年开年的第一次比较大的安全事件吧,发现国内居然没有什么报道,国内安全圈也没有什么动静(当然,他们也许知道,只是不想说吧),Anyway,让我这个非安全领域的人来帮补补位。
事件回顾
这个事情应该是从2017年1月3日开始的,是由安全圈的大拿 Victor Gevers (网名:, 的Chairman),他在2016年12月27日,他发现了一些在互联网上用户的MongoDB没有任何的保护措施,被攻击击把数据库删除了,并留下了一个叫 WARNING 的数据库,这张表的内容如下:
{ "_id" : ObjectId("5859a0370b8e49f123fcc7da"), "mail" : "harak1r1@sigaint.org", "note" : "SEND 0.2 BTC TO THIS ADDRESS 13zaxGVjj9MNc2jyvDRhLyYpkCh323MsMq AND CONTACT THIS EMAIL WITH YOUR IP OF YOUR SERVER TO RECOVER YOUR DATABASE !" }
基本上如下所示:
说白了就是黑客留下的东西——老子把你的MongoDB里的数据库给转走了,如果你要你的数据的话,给我0.2个的比特币(大约USD200)。然后,他的twitter上不断地发布这个“赎金事件”的跟踪报道。与此同时,中国区的V2EX上也发现了相关的攻击问题 《》
然后,在接下来的几天内,全球大约有1800个MongoDB的数据库被黑,这个行为来自一个叫 Harak1r1 的黑客组织(这个组织似乎就好黑MongoDB,据说他们历史上干了近8500个MongoDB的数据库,几乎都是在祼奔的MongoDB)。
不过,这个组织干了两天后就停手了,可能是因为这事已经引起了全球科技媒体的注意,产生了大量的报道(如果你在Google News里查一下“”,你会看到大量的报道(中文社区中,只有)),他们也许是不敢再搞下去了。
不过,很快,有几个copycats开始接着干,
马上跟进的是 own3d ,他们留下的数据库的名字叫 WARNING_ALERT,他们至少干掉了 930个MongoDB,赎金0.5个比特币(USD500),至少有3个用户付费了
然后是0704341626asdf,他们留下的数据库名字叫PWNED,他们至少干掉了740个MongoDB,赎金0.15个比特币(USD150),看看他们在数据库里留下的文字——你的MongoDB没有任何的认证,并且暴露在公网里(你TMD是怎么想的?)……
0704341626asdf group ransom note (via Victor Gerves)
就在这两天,有两个新的黑客也来了
先是kraken0,发现到现在1天了,干了13个MongoDB,赎金 0.1个比特币。
然后是 3lix1r,发现到现在5个小时,干了17个MongoDB,赎金0.25比特币。
BBC新闻也于昨天报道了这一情况——《》,现在这个事情应该是一个Big News了。
关于MongoDB的安全
安全问题重来都是需要多方面一起努力,但是安全问题最大的短板就是在用户这边。这次的这个事,说白了,就是用户没有给MongoDB设置上用户名和口令,然后还把服务公开到了公网上。
是的,这个安全事件,相当的匪夷所思,为什么这些用户要在公网上祼奔自己的数据库?他们的脑子是怎么想的?
让我们去看一下Shodan上可以看到的有多少个在暴露在公网上而且没有防范的MongoDB?我了个去!4万7千个,还是很触目惊心的(下图来自我刚刚创建的 )
那么,怎么会有这么多的有对象显露的MongoDB?看了一下Shodan的报告,发现主要还是来自公有云平台,Amazon,Alibaba,Digital Ocean,OVH,Azure 的云平台上有很多这样的服务。不过,像AWS这样的云平台,有很完善的默认安全组设置和VPC是可以不把这样的后端服务暴露到公有云上的,为什么还会有那么多?
这么大量的暴露在公网上的服务是怎么回事?有人发现(参看这篇文章《》 ),MongoDB历史上一直都是把侦听端口绑在所有的IP上的,这个问题在5年前(2011年11月)就报给了MongoDB (),结果2014年4月才解决掉。所以,他觉得可能似乎 MongoDB的 2.6之前的版本都会默认上侦听在0.0.0.0 。
于是我做了一个小试验,到我拉Ubuntu 14.04上去 apt-get install mongodb(2.4.9版),然后我在/etc/mongodb.conf 文件中,看到了默认的配置是127.0.0.1,mongod启动也侦听在了127.0.0.1这台机器上。一切正常。不过,可能是时过境迁,debain的安装包里已加上了这个默认配置文件。不管怎么样,MongoDB似乎是有一些问题的。
再到Shodan上看到相关的在公网裸奔的MongoDB的版本如下,发现3.x的也是主流:
虽然,3.x的版本成为了主流,但是似乎,还是有很多人把MongoDB的服务开到了互联网上来,而且可以随意访问。
你看,我在阿里云随便找了几台机器,一登就登上去了,还都是3.2.8的版本。
真是如那些黑客中的邮件所说的:WTF,你们是怎么想的?
后续的反思
为什么还是有这么多的MongoDB在公网上祼奔呢?难道有这么多的用户都是小白?这个原因,是什么呢?我觉得可能会是如下两个原因:
1)一是技术人员下载了mongod的软包,一般来说,mongodb的压缩包只有binary文件 ,没有配置文件 ,所以直接解开后运行,结果就没有安全认证,也绑在了公网上。也许,MongoDB这么做的原因就是为了可以快速上手,不要在环境上花太多的时间,这个有助于软件方面的推广。但是,这样可能就坑了更多的人。
2)因为MongoDB是后端基础服务,所以,需要很多内部机器防问,按道理呢,应该绑定在内网IP上,但是呢,可能是技术人员不小心,绑在了0.0.0.0的IP上。
那么,这个问题在云平台上是否可以更好的解决呢?
关于公网的IP。一般来说,公有云平台上的虚拟主机都会有一个公网的IP地址,老实说,这并不是一个好的方法,因为有很多主机是不需要暴露到公网上的,所以,也就不需要使用公网IP,于是,就会出现弹性IP或虚拟路由器以及VPC这样的虚拟网络服务,这样用户在公有云就可以很容易的组网,也就没有必要每台机器都需要一个公网IP,使用云平台,最好还是使用组网方案比较好的平台。
关于安全组。在AWS上,你开一台EC2,会有一个非常严格的安全组——只暴露22端口,其它的全部对外网关闭。这样做,其实是可以帮用户防止一下不小心把不必要的服务Open到公网上。按道理来说,AWS上应该是帮用户防了这些的。但是,AWS上的MongoDB祼奔的机器数量是最多的,估计和AWS的EC2R 基数有关系吧(据说AWS有千万台左右的EC2了)
最后,提醒大家一下,被黑了也不要去付赎金,因为目前来说没有任何证据证明黑客们真正保存了你的数据,因为,被黑的服务器太多了,估计有几百T的数据,估计是不会为你保存的。下面也是Victor Gevers的提示:
(全文完)
相关阅读:
三大NoSQL数据库HBase、Cassandra和MongoDB大比拼|「云头条」
Salesforce因数据中心电力故障导致数据库故障而停运12个小时
Gartner发布2016年数据仓库和数据管理解决方案魔力象限