Cetus:攻击docker的加密货币挖矿蠕虫

  • A+
所属分类:安全新闻

Cetus:攻击docker的加密货币挖矿蠕虫

本文介绍unit 42研究人员在Docker daemon蜜罐中发现的一个进行门罗币加密货币挖矿的蠕虫——Cetus。

Cetus:攻击docker的加密货币挖矿蠕虫
蜜罐

研究人员搭建了一个隔离的、受限的Docker daemons,并记录了5月所有的流量。在这段时间,研究人员发现有很多种不同类型的攻击,从僵尸网络到蠕虫,其中大多数的目的是进行加密货币挖矿,尤其是门罗币。

Cetus:攻击docker的加密货币挖矿蠕虫
Cetus工作原理

恶意软件的目标就是Docker demon,并尝试将自己伪装为合法的二进制文件,研究人员将其命名为Cetus。Cetus将自己伪装成一个Docker中常用的合法的二进制文件——Portainer。Portainer 是一个提供管理多Docker 环境的用户接口管理工具。在接管机器后,Cetus 会复制自己到受害者机器中,并部署一个XMRig 加密货币挖矿机payload。Cetus 还会将这些加密货币挖矿机伪装成其他合法的二进制文件——docker-cache。这看起来是一个合法的名字,但事实上并不是一个真实的二进制文件的名字。

Cetus的生命周期从2个函数开始:miner_start 和 scan_start。最后一步是引发受害者创建一个Ubuntu 容器、更新库、安装Masscan 和 Docker、复制Cetus 和 XMRig、通过.bash_aliases 实现驻留、然后重启容器并运行Cetus。

Cetus:攻击docker的加密货币挖矿蠕虫

图1. Cetus的攻击流(生命周期)

Cetus的感染机制非常简单和有效。Cetus使用Masscan 来随机扫描Docker daemon 的子网,一旦找到就通过发送请求到daemon的 REST API来进行传播。此外,Cetus还会通过Docker 命令行工具来伪造这些请求。

Cetus 的攻击流如图1所示/Cetus运行的命令有:

检查daemon是否可利用,以及是否被感染:

docker -H  ps -a

从Docker Hub 运行一个ubuntu:18.04 的新容器:

docker -H  run -dt --name  --restart always ubuntu:18.04 /bin/bash

更新包管理器列表:

docker -H  exec  apt-get -yq update

通过包管理器安装Masscan和Docker:

docker -H  exec  apt-get install masscan docker.io

复制恶意portainr和docker-cache 二进制文件到容器中:

docker -H  cp -L docker-cache :/usr/bin/

docker -H  cp -L portainer /usr/bin/

将Cetus加入到/root/.bash_aliases中。这样,cetus就会在容器每次重启或root开启bash会话时运行:

docker -H  exec  bash --norc -c `echo /usr/bin/portainer  >/dev/null` 2>/dev/null &

重启容器来运行Cetus:

docker -H  restart

Cetus:攻击docker的加密货币挖矿蠕虫
逆向Cetus

Cetus并没有使用任何的反调试或混淆技术,因此逆向Cetus非常简单。而XMRig挖矿机是加密货币挖矿攻击中最常用的加密货币挖矿机,因此安全工具可以检测到。为了在攻击中进行欺骗,挖矿机是完全混淆的,使得逆向的过程非常复杂。

此外,研究人员断定这款恶意软件是很新的,因为其使用的是XMRig 5.5.3,发布时间为2020年2月2日,因此恶意软件的开发时间比如晚于2月。

Cetus的架构非常简单,其中含有2个主要的函数:miner_start 和 scan_start。

Cetus:攻击docker的加密货币挖矿蠕虫

图 2. Cetus 主函数

函数 miner_start 非常直接。会打开/var/log/stmp.log 来记录Cetus的动作,之后,运行XMRig加密货币挖矿机,使用机器的CPU来进行门罗币挖矿。

函数scan_start 更加有意思,可以执行核心的恶意软件功能。会随机选择一个16位的子网,运行Masscan 来扫描2375端口上的Docker daemon子网。当找到daemon时,就会使用之前下载的Docker命令行工具来开始感染过程。

有意思的是恶意软件每次感染一个Docker daemon,都会给容器起一个不同的名字。恶意软件中有2个含有8个名字的列表,每次从中随机选择一个名字。

Cetus:攻击docker的加密货币挖矿蠕虫

图 3. 恶意容器名

然后,Cetus会用名字作为参数来运行挖矿机。挖矿机用名字识别自己到矿池,并发送关于挖矿的信息。这样攻击者就可以对每个挖矿机进行分类,并创建关于矿工和攻击活动的数据。

因此,可以断定,蠕虫的日志机制是为了更好地监控攻击活动的进展。

Cetus:攻击docker的加密货币挖矿蠕虫
结论

随着攻击者对云的理解越来越深入,攻击容器的恶意软件越来越复杂。这是既Graboid之后,Unit 42研究人员发现的第二个Docker 加密货币挖矿蠕虫。因为,Cetus使用的门罗币钱包地址与另一个攻击AWS和Docker daemon的加密货币蠕虫相同,因此研究人员断定这两期攻击活动属于同一攻击者。而且,针对云的复杂攻击将会成为一个新的攻击趋势。

参考及来源:https://unit42.paloaltonetworks.com/cetus-cryptojacking-worm/

Cetus:攻击docker的加密货币挖矿蠕虫

Cetus:攻击docker的加密货币挖矿蠕虫

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: