写点什么

Docker 严重错误导致企业数据被黑客擦除,已存在七年之久

  • 2021-06-30
  • 本文字数:2454 字

    阅读完需:约 8 分钟

Docker严重错误导致企业数据被黑客擦除,已存在七年之久

谨慎对待那些承诺让工作变得轻松的热门技术——它们通常会偷工减料,而安全性往往是其中之一。


几天前,由于 Docker 中存在多年的一个错误,导致 NewsBlur(一种基于 Web 的 RSS 阅读器)的数据库被黑客删除


在本周的一篇博客文章中,NewsBlur 的创始人 Samuel Clay 详细讲述了他的遭遇:在将 MongoDB 集群迁移到 Docker 容器过程中,一名黑客获得了 NewsBlur 数据库的访问权限,删除掉了 250GB 的原始数据,并要求他支付 0.03 BTC 的赎金。


Clay 将攻击归咎于数据库迁移期间发生的防火墙错误:“在我将 MongoDB 容器化时,Docker 帮助我在 iptables 中插入了一个允许的规则,从而向全世界开放了 MongoDB。”


而 Docker 的这个问题,早在 2014 年,就有开发者以“严重错误”反馈给了 Docker 公司,但一直没有得到解决。



NewsBlur 的 MongoDB 服务器是如何被入侵的?


上周,Clay 开始了 NewsBlur 的维护工作,他准备将公司的 PostgreSQL、MongoDB、Redis、Elasticsearch 几种数据库都迁移到 Docker 容器。在攻击发生前的几个小时里,他将应用程序的 MongoDB 集群切换到新服务器,并关闭了原始服务器,打算在新设置证明稳定可用后将其删除。


大约三个小时后,暴露的数据库似乎已被自动勒索软件脚本发现并删除。Clay 说,当他在看到手机上错误消息时,就明白这等于是收到了灾难警报。



这条错误消息中包含了关键词“drop”,用于删除数据库的 SQL 命令。


随后登录到 MongoDB 机器检查数据库处于什么状态时,他发现了一个名为“READ__ME_TO_RECOVER_YOUR_DATA”新的空数据库。其中包含了一条黑客留下的信息:“你的数据已经被删除,必须在 48 小时内支付 0.03 BTC 才能恢复它。”


Clay 迅速查看了 MongoDB 的访问日志。通过分析日志可以发现两个相隔几秒钟的连接。这两个来自未知 IP 的连接都发生在整个数据库被删除的前一刻。通过跟踪连接 IP,可以轻易地发现黑客进入服务器,并在几秒钟后就将其删除。



但事实上,Clay 启用了 UFW 防火墙,并努力保持在严格的允许列表中,仅对内部服务器开放。但出于 Docker 的原因,在新的服务器上却没有发挥作用。


在他将 MongoDB 容器化时,Docker 在 iptables 中插入了一个允许的规则,从而向全世界开放了 MongoDB。因此,当防火墙处于“活动状态”状态时,执行 sudo iptables -L | grep 27017,显示 MongoDB 已经开放。


幸运的是,Clay 并未向黑客支付赎金,因为通过分析他认为数据实际上没有被盗,而且他有被擦除的数据库的备份(副本)。日志也显示自动攻击者只发出了删除命令,并没有从 MongoDB 服务器上转移任何数据。


另一个能证明数据没有转移的证据是 24 小时内 db-mongo1 机器的流量快照。



下午 6 点 10 分:新的 db-mongo1 服务器轮换为 MongoDB 主服务器。这台机器是第一台新的、即将成为私有云的机器。


晚上 9 点 35 分:三小时后,一次自动黑客攻击试图打开与 db-mongo1 服务器的连接,该数据库立即被丢弃。随后停机了。


晚上 10 点 15 分:在以前的主服务器进入轮换状态之前,NewsBlur 做了一个服务器的快照,以确保备份在重新连接时不会自我删除。这个过程花费了几个小时的停机时间,但由于没有迫使我进入每日备份档案,存下了将近 18 个小时的数据。


凌晨 3 点:快照完成,并开始从原主服务器复制到新的 db-mongo1。


凌晨 4 点 30 分:已完成从旧主服务器入站的复制,并开始在新的辅助服务器上出站复制。现在 NewsBlur 已经恢复正常。


从打开开关到黑客删除 NewsBlur 的 MongoDB 集合并假装要赎回大约 250GB 的数据,花了 3 个多小时。几个小时后,当备份恢复后,NewsBlur 就重新上线了,Docker 制造的漏洞也修补完毕。


怎样才能保证不再发生这样的事情?


在过去的七年里,“Docker 网络绕过防火墙,且没有禁用选项”一直是开发人员关注的问题。早在 2014 年的时候,就有开发者上报给 Docker 公司,但问题一直没有得到解决。


虽然在线论坛有各种解决方案的建议,但 Docker 为什么不选择直接修复,Clay 对此评论说:“这有点像方便和安全之间的权衡。在这里,Docker 认为方便更重要。”


另一方面,处于开放状态的 MongoDB 数据库受到攻击的情况早已存在。本次事件在 Riddit 上引起开发者广泛关注之后,著名安全研究员 Bob Diachenko 在推特上写道



值得注意的是,在“黑客”将其清理干净之前,这个 MongoDB 在网上处于不安全状态将近一个月。


专业人士认为该攻击是自动化的,并且是 2016 年底开始的勒索潮流的一部分。当时多个黑客组织开始擦除 MongoDB 服务器并索要赎金,这些服务器所有者都是在没有密码的情况下将 MongoDB 实例暴露在网络上。虽然黑客声称他们复制了已删除的数据,但在大多数情况下是虚张声势,希望受害者支付小额赎金,赎金要求通常在 200 美元到 2000 美元之间。


这些攻击多年来一直存在,至今仍然活跃。我们从本次事件中能吸取到的教训是:


  • 将数据迁移到 VPC(即虚拟私有云,Virtual Private Cloud),可让关键服务器只能通过私有网络中的其他服务器访问。但正是这一迁移过程中,遭受到了黑客的攻击。讽刺的是,将数据迁移到私有网络时,NewsBlur 需要从公共可访问的机器上迁移所有数据。它是整个过程的第一步。

  • 需要在所有的数据库上启用数据库用户认证机制。长期以来,NewsBlur 都依赖防火墙来保护自己免受威胁,但当防火墙默默地失效时,数据库就被暴露了。如今,谁能说,如果防火墙失效了,但是由于已经存在认证机制,那么黑客攻击将会被发现。这个密码需要足够长,才能避免暴力破解,因为到最后,一个开放的数据库,如果不受密码保护,它就很可能会出现在黑客攻击的名单上。

  • 需要调整具有删除权限的数据库用户。大多数数据库用户应该只需要读和写的权限。在最理想的情况下,只允许本地主机用户执行潜在的破坏性操作。


但这些都只是防御策略的一部分,一项合适的防御策略绝不能仅仅依赖于一个精心设置的层。对于 NewsBlur 来说,这一层是一个只允许访问的防火墙。


像往常一样,真正的有用的是“备份”策略。定期的、经过测试的备份是任何网络服务的必要组成部分。


参考链接:


http://blog.newsblur.com/2021/06/28/story-of-a-hacking/


2021-06-30 15:265240

评论 4 条评论

发布
用户头像
docker怎么设置的也不贴
2021-07-01 08:55
回复
2021年最新整理,名企校招各大岗位的技能树,含技术细节,Python, Golang, iOS, Android, Java,C/C++,前端,运维,测试,运营岗位。
https://github.com/0voice/develop_skill_tree
2021-07-08 15:23
回复
用户头像
这不能叫严重错误,应该是工作人员的失误
2021-06-30 17:06
回复
用户头像
设置个密码能死?
2021-06-30 15:52
回复
没有更多了
发现更多内容

兰州中川国际机场上线RFID行李跟踪系统:查找时间压缩到3分钟

斯科信息

斯科 RFID行李跟踪系统 兰州中川国际机场 CK-T8B RFID龙门架

Apache Doris 中的 Data Trait:性能提速 2 倍的秘密武器

SelectDB

数据库 apache 社区

Geomys开源维护标准:构建安全可靠的软件供应链

qife122

供应链安全 开源维护

2024年-2025年开源语音数据汇总:数十万小时多语种、儿童老人语音、医疗健康等(截止2025年11月)

RTE开发者社区

境外舆情监控服务商对比:哪家的技术支持更到位?

沃观Wovision

舆情监控 海外舆情监测 舆情监控软件 出海舆情

Amazon Bedrock助力飞书深诺电商广告分类

亚马逊云科技 (Amazon Web Services)

人工智能

1688商品评论API开发指南

Datafox(数据狐)

1688商品评论API 1688API 1688评论API 1688商品评论采集 1688评论数据

不停机迁移 Oracle 到达梦:NineData 图形化工具降低技术门槛,业务零中断

NineData

oracle NineData 不停机迁移 达梦数据库 国产化数据库替换

1688工厂数据API开发指南

Datafox(数据狐)

1688API 1688工厂信息接口 1688公司信息接口 1688店铺档案接口

【干货篇】HTTP和SOCKS5代理协议核心区别全解析

kookeey代理严选

HTTP 代理IP SOCKS5 住宅ip

「腾讯云NoSQL」技术之向量数据库篇: 索引六边形战士IVF-RabitQ如何实现集性能、成本、召回于一身

腾讯云数据库

索引 向量数据库 腾讯云数据库 数据库技术 腾讯云NoSQL

N8N+飞书+Coze打造零成本生图神器!

王磊

驱动全球增长:8个行业专业的境外舆情监控服务商

沃观Wovision

跨境贸易 舆情监控 海外舆情监测 境外舆情监控 出海舆情

喜报|凡得科技斩获 2025 年度最佳快消品行业 AI 服务商,流程挖掘拥抱AI、探索更大价值赋能

凡得流程PROCESS X

零售行业 流程挖掘 快消品 蒙牛 华润集团

华为试水毛绒 AI 玩具;理想将发布智能眼镜;Quail STT:专为机器优化的语音增强模型丨日报

RTE开发者社区

正版 Altair 软件采购全指南:官方代理商合作流程与安全下载规范

智造软件

仿真 CAE软件 altair CAE仿真

从“AI 赋能”到“赋能 AI”:ICPC时刻之后,研发管理者最应该关注的转型指标

思码逸研发效能

研发效能 研发效能管理 度量AI

12月3日在线工作坊:高绩效团队画布:团队成展与评估的强大工具

ShineScrum

敏捷 团队 团队成长 团队效率 敏捷活动

Vibe Coding 的爱与恨:AI 开发流程设计和工程哲学丨开发者工具专场@RTE2025 回顾

RTE开发者社区

正式发布CTyunOS V4.0!

天翼云开发者社区

云计算 CTyunOS V4.0

多语种舆情分析专家:国外舆情监控软件的语言文化壁垒突破之道

沃观Wovision

舆情监控 海外舆情监控 舆情监控软件 全球舆情监控

“全球金牌敏捷课程” · 2026年1月17-18日CSM认证课程 ·

ShineScrum

敏捷 Scrum Master CSM CSM认证 CSM认证培训

SpreadJS:数据录入、指标补录与表单填报场景下的高效利器

郝培强

数据管理

纪委监督执纪AI平台:铸造精准监督的“智慧利剑”

上海拔俗

浅谈 AI 搜索前端打字机效果的实现方案演进

vivo互联网技术

Vue 前端 DOM

2025年中国SD-WAN服务商性价比排行

光联世纪

用n8n零代码构建你的第一个测试工作流

测吧(北京)科技有限公司

神策分析 Android SDK 网络模块解析!

郝培强

程序员 代码

产品文档的救赎:从信息碎片到智能中枢的进化之路

百川云开发者

产品文档 wiki软件 知识库工具

荣耀加冕 领航未来——中国重汽揽获多项权威殊荣,看其如何引领高端新局

科技经济

为什么“搞漏洞的”和“搞运营的”总是说不到一块去

塞讯科技

网络安全

Docker严重错误导致企业数据被黑客擦除,已存在七年之久_服务革新_Tina_InfoQ精选文章