我们观察到一次攻击活动滥用暴露的 Docker 远程 API 服务器来部署加密货币矿工。此攻击活动因其初始步骤而被称为 Commando Cat,其中涉及部署使用公开可用的 Commando 项目(一个开源 GitHub 项目,为开发人员按需创建 Docker 映像)生成的良性容器。 Commando 是公开可用的,使用 cmd.cat 进行部署。攻击者使用 cmd.cat/chattr docker 镜像容器从他们自己的命令和控制 (C&C) 基础设施中检索有效负载。该攻击活动自 2024 年初以来一直活跃。
初始访问
为了获得初始访问权限,攻击者部署了一个名为 cmd.cat/chattr 的 docker 映像,这是一个无害的 docker 映像。部署后,恶意攻击者会根据该映像创建一个 docker 容器,并使用 chroot 突破该容器并获得对主机操作系统的访问权限。它还使用curl/wget 将恶意二进制文件下载到主机中。
攻击顺序
让我们一步步分解攻击是如何展开的:
1. 探测 Docker Remote API 服务器
此攻击活动中的事件序列从对 Docker Remote API 服务器进行 ping 操作开始,该服务器是随后一系列操作的关键起点。
2. 使用 cmd.cat/chattr 镜像创建容器:
确认服务器状态为“正常”后,攻击者继续使用 cmd.cat/chattr 映像实例化容器。
在容器创建请求中,我们看到恶意行为者利用 chroot 和卷绑定来逃逸容器。使用 chroot,攻击者可以查看容器外部,然后使用指定卷绑定的 Binds 参数进入主机系统。
绑定/:/hs将主机的根目录挂载到容器的/hs目录中,从而授予攻击者对主机文件系统的无限制访问权限。它还绑定了 Docker 套接字(/var/run/docker.sock:/var/run/docker.sock),使容器可以直接访问主机上的 Docker 守护进程,从而允许攻击者像控制 Docker 一样控制 Docker。在主机本身上。
3.缺席时的形象创作
如果上述请求返回“No such image”响应,攻击者将从 cmd.cat 存储库中提取 chattr docker 镜像。
4. 容器部署
镜像到位后,攻击者继续创建 Docker 容器,有效执行上一步的副本。
在创建 docker 容器时,恶意攻击者会执行 Base64 编码的字符串:
这将转换为以下 shell 脚本:
该脚本首先进行条件检查,以确定目录 /usr/sbin/ 中是否存在名为“z”的文件。如果该文件不存在,脚本将继续从其文件服务器 (hxxp[:]/leetdbs[.]anondns[.]net/z) 下载并执行恶意二进制文件,并将其保存到目录 /usr/sbin/ ,这可能是 ZiggyStarTux,一个基于 Kaiten 恶意软件的开源 IRC 机器人。该二进制文件是使用 UPX 打包程序打包的。
在进行分析时,我们发现 C&C 服务器已关闭。但是,二进制文件中存在的以下用户代理字符串可用于监视网络中此恶意软件的存在:
- 用户代理:HackZilla/1.67 [en](X11;U;Linux 2.2.16-3 x64)
- 用户代理:Mozilla/4.75 [en](X11;U;Linux 2.2.16-3 i686)
此二进制文件/代码中存在的字符串表明该恶意软件正在使用 DropBear SSH,这是 TCP 端口 3022 上相对较小的 SSH 服务器和客户端应用程序。这可以作为发现恶意软件的另一个线索。
部署的恶意软件尝试在端口 1219 上连接其 C&C 服务器 45[.]9[.]148[.]193。图 6 描述了初始网络流量,其中显示了初始 IRC 通信。
此攻击活动的重要性在于它使用 Docker 映像在受感染的系统上部署加密劫持脚本。这种策略允许攻击者利用 Docker 配置中的漏洞,同时逃避安全软件的检测。随着网络安全研究人员继续监控这个恶意行为者,组织必须加强对 Docker 相关攻击的防御。
建议
为了保护开发环境免受针对容器和主机的攻击,我们建议实施以下最佳实践:
- 应始终正确配置容器和 API,以最大程度地减少利用攻击的机会。 Docker 对于用户如何增强安全性有具体的指导方针。
- 组织应仅使用官方或经过认证的映像,以确保只有受信任的内容在环境中运行。
- 运行的容器不应以 root 权限运行,而应以应用程序用户身份运行。
- 应配置容器,以便仅向受信任的来源(例如内部网络)授予访问权限。
- 组织应遵守推荐的最佳实践。例如,Docker 提供了完整的最佳实践列表,并具有用户可以遵循的内置安全功能来提高云环境的安全性。
- 应定期执行安全审核,以检查是否有任何可疑的容器和图像。
- 结论
Commando Cat 攻击活动凸显了滥用暴露的 Docker 远程 API 服务器所带来的威胁。通过利用 Docker 配置并利用 cmd.cat 等开源工具,攻击者可以获得初始访问权限并部署恶意二进制文件,同时规避传统的安全措施。该活动使用 Docker 镜像来传播加密劫持脚本,强调了实施强大的容器安全实践的重要性。