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

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介:

许多人没有想到,去年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

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
3天前
|
NoSQL MongoDB 数据库
MongoDB数据恢复—MongoDB数据库文件被破坏的数据恢复案例
服务器数据恢复环境: 一台Windows Server操作系统服务器,服务器上部署MongoDB数据库。 MongoDB数据库故障&检测: 工作人员在未关闭MongoDB数据库服务的情况下,将数据库文件拷贝到其他分区。拷贝完成后将原MongoDB数据库所在分区进行了格式化操作,然后将数据库文件拷回原分区,重新启动MongoDB服务,服务无法启动。
|
6天前
|
NoSQL MongoDB Redis
Python与NoSQL数据库(MongoDB、Redis等)面试问答
【4月更文挑战第16天】本文探讨了Python与NoSQL数据库(如MongoDB、Redis)在面试中的常见问题,包括连接与操作数据库、错误处理、高级特性和缓存策略。重点介绍了使用`pymongo`和`redis`库进行CRUD操作、异常捕获以及数据一致性管理。通过理解这些问题、易错点及避免策略,并结合代码示例,开发者能在面试中展现其技术实力和实践经验。
128 8
Python与NoSQL数据库(MongoDB、Redis等)面试问答
|
1月前
|
NoSQL 网络协议 MongoDB
Windows公网远程连接MongoDB数据库【无公网IP】
Windows公网远程连接MongoDB数据库【无公网IP】
|
1月前
|
存储 NoSQL 关系型数据库
一篇文章带你搞懂非关系型数据库MongoDB
一篇文章带你搞懂非关系型数据库MongoDB
58 0
|
1月前
|
人工智能 NoSQL MongoDB
|
2月前
|
SQL NoSQL Java
文档型数据库MongoDB
文档型数据库MongoDB
|
2月前
|
JSON NoSQL MongoDB
MongoDB详解(五)——MongoDB数据库简单使用
MongoDB详解(五)——MongoDB数据库简单使用
106 1
|
7天前
|
关系型数据库 MySQL 分布式数据库
《MySQL 简易速速上手小册》第6章:MySQL 复制和分布式数据库(2024 最新版)
《MySQL 简易速速上手小册》第6章:MySQL 复制和分布式数据库(2024 最新版)
37 2
|
23天前
|
SQL 数据可视化 关系型数据库
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
105 0
|
23天前
|
存储 关系型数据库 MySQL
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)