揭秘DockerHub上累计被拉取数百万次的挖矿集群

admin 2025-12-25 02:47:39 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 研究揭露DockerHub上存在利用伪装和AI热点进行的大规模挖矿活动,累计拉取超六百万次。恶意镜像依赖隐含信任和自动化流程植入XMRig获利。文章强调容器供应链风险,建议加强镜像来源验证和运行时检测,并演示了如何利用威胁情报平台主动发现隐藏在容器仓库中的恶意代码。 综合评分: 80 文章分类: 供应链安全,云安全,威胁情报,恶意软件


cover_image

揭秘Docker Hub上累计被拉取数百万次的挖矿集群

Dubito

云原生安全指北

2025年12月24日 08:35 江苏

注:本文翻译自Flare – Assaf Morag的文章《Cryptomining Supply-Chain Abuse on Docker Hub: Hiding Malware in Plain Sight》[1],可点击文末“阅读原文”按钮查看英文原文。

全文如下:

一、引言

Docker Hub 是全球最大的公共容器镜像仓库,也是现代软件供应链的基础组成部分。每天,数百万开发者和组织依赖 Docker Hub 拉取基础镜像、应用运行时和基础设施组件,这些镜像支撑着从本地开发环境到生产云工作负载的一切应用。

这种核心角色也使得 Docker Hub 成为被滥用的诱人目标。

容器镜像通常被隐式信任,会被 CI/CD Pipeline、编排平台和基础设施即代码(Infrastructure-as-Code,IaC)工作流自动拉取。当恶意行为者成功通过公共仓库分发有害镜像时,他们就能有效地大规模获取下游环境的访问权限,从而将容器生态系统本身转变为供应链攻击面。在本研究中,我们发现了多个加密货币挖矿活动正在滥用 Docker Hub,以大规模分发恶意容器镜像。

我们发现的恶意容器镜像位于此处[2]。

二、核心要点

  • • Docker Hub 仍然是恶意容器镜像的活跃分发渠道
  • • 加密货币挖矿活动可持续数年,同时累积数百万次拉取
  • • 镜像命名、体积大小以及冒充合法技术是关键的欺骗策略
  • • 以 AI 为主题的镜像正被滥用于针对开发者的社会工程攻击
  • • 供应链安全必须从源代码扩展到容器镜像仓库和制品

三、初步发现:通过恶意镜像进行主动利用

我们的调查始于发现一个规模不大但活跃的活动,其核心是容器镜像:renegadefuel/renegadefuel:latest

Docker Hub 上的恶意容器镜像页面

我们观察到该镜像正在主动攻击配置错误的 Docker API,这是云上和本地环境中一个反复出现且有据可查的攻击向量。开放的 Docker API 允许未经身份验证的攻击者部署任意容器,使其成为机会型加密货币挖矿活动的理想目标。我们通过 Shodan 观察到该镜像被用于实际的攻击尝试,这表明它是真实的滥用行为,而非休眠或实验性活动。

我们在 Shodan 上发现了它的攻击迹象:

Shodan 上显示的实时攻击迹象

检查该容器镜像本身时,我们发现了这个入口点脚本,它会在容器启动时运行,并执行加密货币挖矿程序。

容器启动时运行的恶意 entrypoint.sh 脚本

四、静默但规模庞大:Docker Hub 上的大型挖矿集群**

除了最初发现的活跃活动,我们还发现了一个更大、更令人担忧的集群,其中包含托管在 Docker Hub 上的、处于休眠状态的加密货币挖矿容器镜像。

该集群包含 64 个不同的容器镜像,遵循一致的命名模式:

<hex-namespace>/<technology-name>:<hex-tag>

主要特征:

  • • 上传时间段:2021 年 6 月 26 日 – 2021 年 9 月 15 日
  • • 总拉取次数:6,498,377
  • • Star 数:0
  • • 镜像平均大小:约 314 MB(范围:313–316 MB)

恶意镜像按日期上传至 Docker Hub 的情况

尽管拉取次数巨大,但这些镜像没有任何社区参与度、文档或合法的使用信号。这强烈表明它们是自动化或欺骗性消耗的结果,而非自然采用。

4.1 深入容器内部:启动即挖矿

检查容器镜像后,发现其结构刻意简单。文件系统类似于一个基于 Ubuntu 的最小化镜像,包含:

  • • 一个名为 xmrig 的目录
  • • 一个以合法技术(例如 Gradle)命名的二级目录

在这个以技术命名的二级目录内,我们发现了一个单独的可执行文件。根据 VirusTotal 分析,此文件是一个加密货币挖矿程序。

关键在于,该容器的 CMD 和入口点被明确配置为在容器启动时立即执行此挖矿程序。这意味着任何运行该镜像的用户(无论有意与否)都会立即执行挖矿恶意软件。整个过程无需额外的加载器、漏洞利用或用户交互。

Gradle 容器内的文件系统

挖矿程序隐藏在 Gradle 目录下

将二进制文件上传到 Virus Total 后,被标记为恶意软件

运行挖矿程序的初始 CMD

4.2 伪装成合法基础设施

该集群中的镜像伪装成了种类繁多的常见企业和云技术,包括:

  • • 数据库 & 数据存储:MySQL, MariaDB, PostgreSQL, MongoDB, Neo4j, Redis, Memcached, Zookeeper
  • • Web 服务器、代理 & 网关:Nginx, Apache HTTPD, Traefik, Kong
  • • 应用平台 & 运行时:Java / OpenJDK, Python, PHP, Node.js, Ruby, Perl, Bash, Erlang
  • • 框架 & CMS:WordPress, Drupal, Rails, Nextcloud
  • • DevOps & CI/CD:Docker, Docker Swarm, Jenkins, Consul
  • • 可观测性 & 日志:Kibana, Logstash
  • • 消息队列:RabbitMQ
  • • 应用服务器:Tomcat
  • • 构建工具 & 编译器:Gradle, GCC
  • • 独立语言:Rust, Swift

如此广泛的伪装范围强烈表明,其意图是混入正常的基础设施使用模式,从而增加这些镜像被脚本、模板或配置错误的 Pipeline 自动拉取的可能性。

五、第二个、更近期的集群:以 AI 为主题的欺骗

我们还发现了第二个规模较小的集群,包含 10 个容器镜像,但其活动时间更近:

  • • 上传窗口:8月-11月(每年同月的推送)
  • • 总拉取次数:31,462
  • • Star 数:0

此集群采用了不同的命名策略:

  • • 随机或看似合理的命名空间(例如:sandcorp, reymen44)
  • • 以 AI 为主题的镜像名称,例如:tensor-train-vis, ai-train, predict
  • • 统一的 0.0.0 风格版本号

使用 AI 相关术语,其设计意图似乎是利用当前的热潮和开发者的好奇心,从而增加那些尝试机器学习工作流的开发者进行机会性拉取的可能性。

5.1 深入容器内部:通过 Tor 执行挖矿

检查容器镜像后,发现其结构同样刻意简单:

一个运行 Tor 和加密货币挖矿程序的入口点 Shell 脚本文件:

运行 Tor 和挖矿程序的恶意入口点脚本

容器名称(例如 insights)对应的二进制文件位于 /bin/<容器名称> 下:

加密货币挖矿程序(其名称与容器镜像名称相似)

挖矿配置位于 etc/<容器名称>/config.json 下:

加密货币挖矿程序的配置文件

根据 VirusTotal 分析,此二进制文件是一个加密货币挖矿程序:

该二进制文件在 Virus Total 上被标记为恶意

5.2 基础设施变现:追踪资金流向

在整个第二个集群中,我们识别出 10 个与挖矿操作绑定的不同门罗币(XMR)钱包。

基于对大约四个月内多个时间窗口的交易分析,我们估计该基础设施产生了:

  • • 总计约 35–40 XMR
  • • 约合 5,200–6,300 美元
  • • 通过高度规律、完全自动化的门罗币交易支付
  • • 混合因子(mixin)使用一致,表明采用了标准化的挖矿配置

这种支付模式强烈暗示这是一个长期运行、工业规模的加密货币挖矿活动,很可能通过容器化和基于云的部署来执行,而非临时的、手动的方式。

以下是门罗币加密货币钱包列表:

  • • 86ZJF2powbsBdgrCvijNnG6VmNPiCUtJ7AvA9txEir7bDpy51UHaRpsUVRwPKy1Ck6M76jfSWS1GBjKkBCYaHhhy99YRGSh
  • • 8ANFj4CKyP21CrJR38tw2LTXSd6LDbY1SMaVUp5dGYt4YtVaQXAg6kCYszR1Qa4hRegsw8AvjENBZRz4nqS8xzPHJBQyon5
  • • 83hCPtDuvJ7i7htkaaHZPgj2mijX5s5awZ4jnv46iM53Ap2t9SVZczw3Ta7ksKtbmUQgNrkr6qirNAyGWrvGWEvDP7AuHs2
  • • 82miFUyQT7f4gUdHG2jJtjDoVNNavCYoK7N61MrQ1drX7pvTMmRLycYVffLJCoEZpv2wDWCivDmkDKwxb2hK5Q2WSsH5hdb
  • • 884NyZgThwgYrsok1SWDkX5KXzTjYAAiRhQw36EBD87PNZqfiWhcXb574nDdczMmKNdxEbJUJLhV7UrhaqGm5Qk8PjmVKtY
  • • 87EhDrK8emZddUheNPYusrj3J5sDgsdc3HUfyHXzjoZUFGMdidgZ3z1P1vXSGbgY3VbTBJHffH9EkFykbriizER7FvTFUBo
  • • 894sKh2WCsq7YcHJ2yfipkA7U9Fmo2wHRgYUaV5PKCG4RZHWqfS7cmPfBsfx6Yu6pUMXWNuHKm4hffT7mKrNCm5hTxwF5Pw
  • • 8AKTc8Gym3EawazbM7yS9RgZqByFUa479jU1cskRxu78Pndsx7sjfgw48ZFpy6Ff8yYKb9EegqigN1p6XrboxBRi18JpFtH
  • • 83yZSzPrWQQLtsWcyt7J8DYTptUFCoe5q9WzDRCpWCUjWiZintNdYj4AL3VroqGfEUSLWWr1dTZLechhu9fVakCANAvgxdk

六、我们如何在 Flare 中发现这些内容

下图展示了我们如何设置搜索过滤器来轻松找到恶意容器镜像。

我们所采取的步骤如下:

1. 在“事件”(Events)→ “全局搜索”(Global Search)下:我们搜索了“xmrig”这个关键词。同理,你也可以搜索特定的 rootkit(如 Diamorphine)或恶意软件(如 Tsunami)。

在 Flare 中搜索“xmrig”

2. 我们选择了两个数据源。一个是“开放网络 – 源代码”(Open web – source code),这包括了 GitHub 和 Docker Hub。此外,我们还加入了“新兴数据源”(Emerging sources)和“Docker Hub 文件”(Docker Hub files),后者指的是不同镜像层内的实际文件。这正是 Flare 平台的真正优势所在。据我们所知,目前没有其他平台扫描容器内的这些文件,因此你可以在其中发现恶意软件、Secrets 等“金矿”。

通过将 Docker Hub 标记为数据源来优化结果

3. 最后,我们扫描了所有结果。我们将所有发现导出到 CSV 文件,加载到 Jupyter notebook 中,并运行了几个算法来查找集群。

我们发现的其中一个结果,其中“xmrig”被隐藏在容器镜像内部。

可点击Flare 链接[3] 查看帖子,如果您还不是客户,可以注册免费试用[4]以获取访问权限。

七、为何此事至关重要

这项研究揭示了容器生态系统中一个长期存在且常被低估的风险:未经核验的信任。公共容器镜像仓库日益被视为默认的安全来源,但它们基本上仍缺乏管理,且容易被滥用。

恶意容器镜像的成功,并不依赖于零日漏洞。它们仰仗的是:

  • • 隐含的信任
  • • 自动化流程
  • • 规模效应
  • • 以及系统性的镜像审核缺失

随着组织持续向云原生和容器优先的架构迁移,镜像仓库卫生、镜像来源验证和运行时检测已不再是可选的”最佳实践”,而是至关重要的安全控制措施。

八、使用 Flare 发现恶意容器镜像

我们发现的恶意容器镜像位于此处[2]。

Flare 威胁暴露管理[5]解决方案能够帮助组织主动检测、优先处理和缓解威胁行为者常利用的各类暴露风险。我们的平台 7×24 小时自动扫描明网、暗网以及主要的威胁行为者社区,旨在发现未知事件、优先评估风险,并提供可即时用于提升安全性的可操作情报。

Flare 能在 30 分钟内集成到您的安全体系中,并且通常可以替代多个 SaaS 和开源工具。通过注册我们的免费试用[4],了解您的组织暴露于哪些外部威胁。

引用链接

[1] 《Cryptomining Supply-Chain Abuse on Docker Hub: Hiding Malware in Plain Sight》: https://flare.io/learn/resources/blog/cryptomining-supply-chain-abuse-docker-hub-malware/ [2] 此处: https://gist.github.com/flareio-research/cf10531327c8070a85a75c859e4c0c66 [3] Flare 链接: https://app.flare.io/#/docker_image/dockerhub/sha256_388f72d49dabee31a09683f4ac6924d95a5732badd519adaaefb398ccb79244c [4] 免费试用: https://try.flare.io/free-trial/ [5] Flare 威胁暴露管理: https://flare.io/glossary/continuous-threat-exposure-management-ctem/

交流群


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:云原生安全指北 Dubito《揭秘Docker Hub上累计被拉取数百万次的挖矿集群》

评论:0   参与:  2