一场屠戮MongoDB的盛宴反思:超33000个数据库遭入侵

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介:

许多人没有想到,去年12月一件不起眼的小事,在新年伊始却演变成了一场屠杀。如今,受害的一方似乎正由于自身的疏忽和迟钝而显得愈发无力反抗,一个接一个倒下。

截止本周三(1月11日),已经有20名以上的黑客加入到这场对MongoDB用户一边倒的碾压中来,遭到入侵、勒索的数据库超过了33,000个,并且这一数字还在不断上升中。(源自凯捷咨询的Niall Merrigan提供的数据)MongoDB是目前包括eBay,纽约时报,LinkedIn在内的全世界多家公司广泛采用的数据库。

一场屠戮MongoDB的盛宴反思:超33000个数据库遭遇入侵勒索

源于0.2比特币的勒索

去年12月27日,安全专家兼GDI Foundation联合创始人Victor Gevers(@0xDUDE)在Twitter上称由于存在配置漏洞,可不通过任何认证直接访问某些MongoDB数据库,而黑客早已盯上了这些目标。当时,第一波被黑的MongoDB数据库中,Gevers观察到数据内容被清空,黑客还留下了一条“WARNING”信息:

一场屠戮MongoDB的盛宴反思:超33000个数据库遭遇入侵勒索

“SEND 0.2 BTC TO THIS ADDRESS 13zaxGVjj9MNc2jyvDRhLyYpkCh323MsMq AND CONTACT THIS EMAIL WITH YOUR IP OF YOUR SERVER TO RECOVER YOUR DATABASE !”

意思就是:要求支付0.2比特币到指定地址用以还原数据。署名“Harak1r1”的黑客(或组织)大肆入侵了MongoDB数据库,清空里面的内容并向拥有者索要0.2比特币(约$211)的赎金,否则数据将不予归还。Gevers发现了这次攻击并随即在Twitter上警告了MongoDB数据库用户。遗憾的是,这份警告并没有引起MongoDB使用者足够的重视。而嗅觉敏锐的黑客们却迅速地围了上来,盛宴开始。

MongoDB屠戮全面开启

当时Gevers暂时只统计到了有近200个MongoDB数据库实例(instance)被黑客入侵当做勒索筹码。FreeBuf安全快讯对此进行了追踪报道,在1月3日,这个数字达到了2,000以上。接下来的日子里,攻击规模不断扩大,受害者数量急剧上升。仅在1月9日早间开始的12小时内,受到黑客勒索的数据库就从12,000个翻倍达到了27,633之多。

参与其中的黑客数量也增加到至少15人以上,其中一位名为“kraken0”的黑客已经入侵了15,482个MongoDB数据库并向每位受害者索取了1比特币(约$921)赎金。尽管安全专家已经告诫众多MongoDB数据库用户不要向黑客支付赎金(很多黑客并不会如宣称的那样保留了数据,多数情况是直接删掉了),但已知仍有至少22个受害机构或个人缴纳了赎金。

之所以会有如此众多的数据库实例被这次冲击迅速收割,主要是因为很多使用者没有遵照生产环境部署手册,缺少安全认证,直接将服务器暴露在公网里以及版本过于老旧。对于攻击者而言,使用在线工具就可以较轻松地发现存在问题的数据库。事实上,黑客还发掘到了另一个商机:他们有人开始贩卖用来攻陷数据库的软件赚钱。这种工具被称作“Kraken Mongodb ransomware”,只要价值$200的比特币就可以买到该程序的C#源码。

产生如此后果的另一个重要原因是部分使用者安全意识淡薄,反应迟钝。作为最初发现者的Gevers就曾对SecurityWeek这样吐槽:

“永远不要低估某些公司的反应有多么愚蠢,有些只是移除了勒索信息,还原了数据,却依旧让服务器门户大开。”

Gevers有所怨言是不无道理的。作为安全专家,他长时间致力于数据库漏洞探测并会向企业提供风险报告。然而,他的预警却被许多公司视而不见,仅在去年一年就有138份相关报告石沉大海。即使他对这波攻击迅速做出了告警,却依然收效甚微。

一场屠戮MongoDB的盛宴反思:超33000个数据库遭遇入侵勒索

安全组织“ShadowServer”通过AISI(Australian Internet Security Initiative)每天约提供400个MongoDB数据泄漏预警,服务澳洲90%的网络提供商

暗潮涌动

轻视安全问题是要付出代价的。事实上MongoDB数据库泄漏问题早在2015年就被报导过。当时Shodan(搜索引擎)的负责人John Matherly统计到有30,000个以上的MongoDB数据库实例,近600TB的数据暴露于公网之上,无需任何认证就可访问。很多版本滞后的数据库配置文件里没有做IP捆绑(bind_ip 127.0.0.1),在用户不甚了解的时候留下了安全隐患。虽然MongoDB的开发团队在下一个版本里修复了这个问题,但截止事发,仍然有数量众多的数据库管理者没来得及更新。

这次勒索事件的一个显著后果就是世界范围内存储在MongoDB数据库里数据量的大幅下滑。据Merrigan提供的信息显示,在短短3天内就有114.5TB的数据因此消失。据估计,目前网上约有50,000个开放访问的MongoDB数据库,也许用不了多久所有没做好安全措施的数据库都会被黑客攻陷。这个过程需要多久?据Gevers估算,这个过程可能用不了几周。

毫无疑问,黑客们的疯狂给人们敲响了警钟。现在应该会有很多人后悔了。

一场屠戮MongoDB的盛宴反思:超33000个数据库遭遇入侵勒索

现在补救还来得及

Gevers确认,目前已有来自包括IP,医疗,金融服务,旅游等行业在内的多家公司就此次攻击事件求助,但他不愿意透露求助企业的名称。他建议:有时一个数据库会被不同的黑客攻击多次,受害者很有可能把赎金给错了人,这更是一个无底洞。因此不仅不要支付赎金,更要想办法让攻击者证明丢失的数据是否还真实存在。Gevers表示,如果有适当的网络监控程序,可以判断丢失的数据是被转移了还是被直接删掉了。不过这样做需要把出站的数据流量同系统日志里的访问记录做多方面比较才行。

MongoDB官方建议如下:

如何知道自己有没有受到攻击:

  1. 如果已经为数据库正确配置了访问控制,攻击者应该访问不到数据,可参考安全手册(https://docs.mongodb.com/manual/security/)
  2. 验证数据库和集合。在最近的案例中,攻击者丢弃了数据库和/或集合,并用一个ransom需求的新的替换它们。
  3. 如果启用访问控制,请审核系统日志以进行未经授权的访问尝试或可疑活动。

如果已经受到攻击:

  1. 如果您是MongoDB企业支持客户,请尽快提交P1订单,我们的技术服务工程师可以指导您完成以下过程。
  2. 您的首要任务是保护您的集群以防止进一步的未授权访问。您可以参照我们的安全实践文档。
  3. 通过运行 usersInfo 来检查是否有添加,删除或修改的用户。
  4. 检查日志以查找攻击的时间。检查是否有删库或者删表,修改用户或创建赎金记录的命令。
  5. 如果你有定期对受损数据库进行备份,则可以还原最近的备份。您需要评估最近的备份和攻击时间之间可能已更改的数据量。如果您使用Ops Manager或Cloud Manager进行备份,则可以恢复到攻击之前的时间点。
  6. 如果您没有备份或以其他方式无法还原数据,那么您的数据可能会永久丢失。
  7. 您应该假设攻击者已经复制了受影响的数据库的所有数据。请按照内部安全流程对数据泄露事件进行恰当处理。

最后,请参阅我们的安全最佳做法和资源,以便将来保护您的数据。

如何防范此类攻击?

  1. 做好访问认证。打开你的MongoDB配置文件(.conf),设置为auth=true
  2.  做好防火墙设置。建议管理者关闭27017端口的访问。
  3. Bind_ip,绑定内网IP访问。
  4. 做好升级。请管理者务必将软件升级到最新版本。


作者:佚名

来源:51CTO

相关文章
|
2月前
|
NoSQL MongoDB 数据库
数据库数据恢复—MongoDB数据库数据恢复案例
MongoDB数据库数据恢复环境: 一台操作系统为Windows Server的虚拟机上部署MongoDB数据库。 MongoDB数据库故障: 工作人员在MongoDB服务仍然开启的情况下将MongoDB数据库文件拷贝到其他分区,数据复制完成后将MongoDB数据库原先所在的分区进行了格式化操作。 结果发现拷贝过去的数据无法使用。管理员又将数据拷贝回原始分区,MongoDB服务仍然无法使用,报错“Windows无法启动MongoDB服务(位于 本地计算机 上)错误1067:进程意外终止。”
|
2月前
|
缓存 NoSQL Linux
在CentOS 7系统中彻底移除MongoDB数据库的步骤
以上步骤完成后,MongoDB应该会从您的CentOS 7系统中被彻底移除。在执行上述操作前,请确保已经备份好所有重要数据以防丢失。这些步骤操作需要一些基本的Linux系统管理知识,若您对某一步骤不是非常清楚,请先进行必要的学习或咨询专业人士。在执行系统级操作时,推荐在实施前创建系统快照或备份,以便在出现问题时能够恢复到原先的状态。
234 79
|
2月前
|
存储 NoSQL MongoDB
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
132 8
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
|
5月前
|
NoSQL MongoDB 数据库
数据库数据恢复——MongoDB数据库服务无法启动的数据恢复案例
MongoDB数据库数据恢复环境: 一台Windows Server操作系统虚拟机上部署MongoDB数据库。 MongoDB数据库故障: 管理员在未关闭MongoDB服务的情况下拷贝数据库文件。将MongoDB数据库文件拷贝到其他分区后,对MongoDB数据库所在原分区进行了格式化操作。格式化完成后将数据库文件拷回原分区,并重新启动MongoDB服务。发现服务无法启动并报错。
|
6月前
|
存储 NoSQL MongoDB
微服务——MongoDB常用命令1——数据库操作
本节介绍了 MongoDB 中数据库的选择、创建与删除操作。使用 `use 数据库名称` 可选择或创建数据库,若数据库不存在则自动创建。通过 `show dbs` 或 `show databases` 查看所有可访问的数据库,用 `db` 命令查看当前数据库。注意,集合仅在插入数据后才会真正创建。数据库命名需遵循 UTF-8 格式,避免特殊字符,长度不超过 64 字节,且部分名称如 `admin`、`local` 和 `config` 为系统保留。删除数据库可通过 `db.dropDatabase()` 实现,主要用于移除已持久化的数据库。
383 0
|
6月前
|
存储 NoSQL MongoDB
从 MongoDB 到 时序数据库 TDengine,沃太能源实现 18 倍写入性能提升
沃太能源是国内领先储能设备生产厂商,数十万储能终端遍布世界各地。此前使用 MongoDB 存储时序数据,但随着设备测点增加,MongoDB 在存储效率、写入性能、查询性能等方面暴露出短板。经过对比,沃太能源选择了专业时序数据库 TDengine,生产效能显著提升:整体上,数据压缩率超 10 倍、写入性能提升 18 倍,查询在特定场景上也实现了数倍的提升。同时减少了技术架构复杂度,实现了零代码数据接入。本文将对 TDengine 在沃太能源的应用情况进行详解。
297 0
|
7月前
|
存储 NoSQL MongoDB
数据库数据恢复—MongoDB数据库迁移过程中丢失文件的数据恢复案例
某单位一台MongoDB数据库由于业务需求进行了数据迁移,数据库迁移后提示:“Windows无法启动MongoDB服务(位于 本地计算机 上)错误1067:进程意外终止。”
|
JSON NoSQL Java
mongoDB导出数据库所有集合内容到json文件
网上搜了一圈,官方并有提供批量导出所有集合到json文件的方法。有不少脚本可以实现,但是我还是习惯用java,如下 package starcLL.
2288 0
|
9月前
|
存储 JSON NoSQL
学习 MongoDB:打开强大的数据库技术大门
MongoDB 是一个基于分布式文件存储的文档数据库,由 C++ 编写,旨在为 Web 应用提供可扩展的高性能数据存储解决方案。它与 MySQL 类似,但使用文档结构而非表结构。核心概念包括:数据库(Database)、集合(Collection)、文档(Document)和字段(Field)。MongoDB 使用 BSON 格式存储数据,支持多种数据类型,如字符串、整数、数组等,并通过二进制编码实现高效存储和传输。BSON 文档结构类似 JSON,但更紧凑,适合网络传输。
217 15
|
9月前
|
存储 NoSQL 关系型数据库
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板
我们的风控系统引入阿里云数据库MongoDB版后,解决了特征类字段灵活加减的问题,大大提高了开发效率,极大的提升了业务用户体验,获得了非常好的效果
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板

热门文章

最新文章

推荐镜像

更多