本文介绍unit 42研究人员在Docker daemon蜜罐中发现的一个进行门罗币加密货币挖矿的蠕虫——Cetus。
蜜罐
研究人员搭建了一个隔离的、受限的Docker daemons,并记录了5月所有的流量。在这段时间,研究人员发现有很多种不同类型的攻击,从僵尸网络到蠕虫,其中大多数的目的是进行加密货币挖矿,尤其是门罗币。
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。
图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
Cetus并没有使用任何的反调试或混淆技术,因此逆向Cetus非常简单。而XMRig挖矿机是加密货币挖矿攻击中最常用的加密货币挖矿机,因此安全工具可以检测到。为了在攻击中进行欺骗,挖矿机是完全混淆的,使得逆向的过程非常复杂。
此外,研究人员断定这款恶意软件是很新的,因为其使用的是XMRig 5.5.3,发布时间为2020年2月2日,因此恶意软件的开发时间比如晚于2月。
Cetus的架构非常简单,其中含有2个主要的函数:miner_start 和 scan_start。
图 2. Cetus 主函数
函数 miner_start 非常直接。会打开/var/log/stmp.log 来记录Cetus的动作,之后,运行XMRig加密货币挖矿机,使用机器的CPU来进行门罗币挖矿。
函数scan_start 更加有意思,可以执行核心的恶意软件功能。会随机选择一个16位的子网,运行Masscan 来扫描2375端口上的Docker daemon子网。当找到daemon时,就会使用之前下载的Docker命令行工具来开始感染过程。
有意思的是恶意软件每次感染一个Docker daemon,都会给容器起一个不同的名字。恶意软件中有2个含有8个名字的列表,每次从中随机选择一个名字。
图 3. 恶意容器名
然后,Cetus会用名字作为参数来运行挖矿机。挖矿机用名字识别自己到矿池,并发送关于挖矿的信息。这样攻击者就可以对每个挖矿机进行分类,并创建关于矿工和攻击活动的数据。
因此,可以断定,蠕虫的日志机制是为了更好地监控攻击活动的进展。
结论
随着攻击者对云的理解越来越深入,攻击容器的恶意软件越来越复杂。这是既Graboid之后,Unit 42研究人员发现的第二个Docker 加密货币挖矿蠕虫。因为,Cetus使用的门罗币钱包地址与另一个攻击AWS和Docker daemon的加密货币蠕虫相同,因此研究人员断定这两期攻击活动属于同一攻击者。而且,针对云的复杂攻击将会成为一个新的攻击趋势。
本文翻译自:https://unit42.paloaltonetworks.com/cetus-cryptojacking-worm/如若转载,请注明原文地址: