2021年挖矿木马趋势报告

概述

2021年以来,我国加大了整治虚拟货币的力度,陆续出台了相关政策封杀虚拟货币交易平台,后续又发布了《关于整治虚拟货币“挖矿”活动》的通知,重点强调全面梳理排查虚拟货币“挖矿”项目。在国家对虚拟货币和“挖矿”等项目重拳出击的背景下,挖矿木马家族仍在发展壮大,老的挖矿家族依旧活跃,新的挖矿家族不断涌现。

今年持续对活跃挖矿木马家族进行追踪,检测到了多起挖矿木马爆发事件,并从中总结出了一些挖矿木挖马的发展趋势,本文将根据追踪监测到的数据,对今年挖矿木马的发展趋势和检测思路进行分析总结。

挖矿木马趋势概要:

跨平台:挖矿木马团伙使用Go语言开发恶意软件成为趋势。

隐通信:通信方式的演变:直连矿池->矿池代理;明文通信->加密通信。

强感染:愈渐强大的传播能力,传播方式蠕虫化;强大的漏洞集成能力;快速集成新爆发漏洞。

新场景:随着企业数字化转型,业务云化,挖矿木马团伙开始盯上了云上资源。

高对抗:挖矿木马使用的安全对抗技术愈加纯熟。

挖矿木马趋势

Go语言成为趋势

随着近几年Go语言的流行,越来越多挖矿木马团伙开始使用Go语言开发恶意软件。今年我们共监控到12个新出现的成规模挖矿木马家族,其中就有5个是使用Go语言开发的。

Go语言受挖矿木马团伙青睐的主要原因是挖矿木马为了收益最大化,往往会跨平台传播,而Go语言的特性便是支持跨平台编译。这样就允许恶意软件开发人员只需维护一套代码,就能针对不同操作系统编译出对应的恶意软件,可以减少开发周期和维护成本;并且Go语言又如Python一样,拥有丰富的第三方库,降低了开发难度,提升了开发效率。因此使用Go语言开发恶意挖矿木马已成为一种趋势,近几年使用Go语言开发的挖矿家族如下:

挖矿家族 披露时间 针对平台 开发语言
DDG 2017年10月 Windows/Linux Go
GuardMiner 2019年04月 Windows/Linux Go
H2Miner 2019年12月 Windows/Linux Go
TeamTNT 2020年06月 Windows/Linux C/C++、Go
Sysrv-hello 2020年12月 Windows/Linux Go
SupermanMiner 2021年01月 Linux Go
HolesWarm 2021年06月 Windows/Linux Go
Abcbot 2021年07月 Linux Go
WorkMiner 2021年08月 Linux Go

注:表中标红的挖矿家族为今年新出现的。

挖矿通信方式的演变

直连矿池->矿池代理

挖矿木马常见的挖矿方式为受害主机直连公共矿池贡献算力,矿池平台根据贡献的算力,再将收益支付给挖矿木马团伙。然而近几年,这种方式也正在发生改变,越来越多的挖矿家族开始使用矿池代理的方式来进行挖矿。如Sysrv-hello、HolesWarm、MimuMiner等家族都已使用矿池代理的方式进行挖矿。

矿池代理本质是在矿工与矿池之间增添了一个中转环节。矿池代理从公共矿池获取任务,分配给矿工进行计算,矿工再将计算完成的结果交由矿池代理转发到公共矿池。矿池代理的特点有:

隐匿钱包地址:钱包地址在矿池代理服务器上进行配置,因此在受害主机无法获取到病毒作者的钱包地址,进一步增加了隐匿性。

绕过黑名单检测:公共矿池域名特征明显,容易被识别;并且公共矿池域名/IP基本都已被收录在黑库中,因此使用矿池代理可以绕过基于黑域名/IP名单的检测。

规避联合执法风险:连接哪个公共矿池也是在矿池代理服务器上进行配置,因此安全人员无法得知挖矿木马使用的公共矿池和钱包地址,就无法与矿池官方联合执法进行封禁。

直连矿池和矿池代理方式对比流程图:

矿池代理

明文通信->加密通信

直连矿池和矿池代理的方式进行挖矿,其网络流量中的特征都十分明显,很容易被安全设备检测出来。为了对抗安全设备的检测,越来越多的挖矿木马团伙选择对挖矿流量进行加密。如HolesWarm家族,便是使用加密流量来进行挖矿的。下图为明文通信和加密通信的挖矿流量对比:

加密通信

愈渐强大的传播能力

传播方式蠕虫化

挖矿的传播方式分为两种:一种是病毒作者进行全网漏洞扫描,漏洞利用成功后投放恶意挖矿程序进行挖矿。另一种是恶意挖矿程序自身集成漏洞扫描和利用模块,投放出去的恶意挖矿程序以蠕虫方式进行传播。目前大多数挖矿木马团伙都是以蠕虫方式进行传播的,不仅传播速度远远强于单点漏洞扫描,并且还能在内网中广泛传播。

强大的漏洞集成能力

挖矿木马团伙在利益的驱使下,往往会不断集成更有效的1/N Day漏洞来感染更多主机资源,从而获取更多的收益。如:HolesWarm家族,在其11月的版本更新中,新集成了19种漏洞利用手法,横向攻击模块更是达到了31个,几乎涵盖企业信息系统的方方面面。一旦企业有可被利用的漏洞暴露时,防御的木桶短板效应就会显现,企业会被快速攻陷。部分活跃挖矿家族漏洞集成数量如下:

image-20220122182714584

快速集成新漏洞

每当爆发影响范围广泛的漏洞后,全网受影响的设备很难在短时间内得到有效的修复。一些“嗅觉”敏锐的挖矿团伙会立刻集成漏洞发起攻击。例如近期Log4j2漏洞爆发事件中,H2Miner、Muhstik等挖矿家族在距Log4j2漏洞披露不到36小时,便已集成该漏洞并发起攻击。这对企业的漏洞快速修复能力构成了严峻考验,一旦企业没有及时进行修复,挖矿木马团伙便能轻松获得主机的控制权,Log4j2漏洞披露及各恶意家族武器化的时间线如下:

log4j2_timeline

攻击目标云化

随着企业数字转型、业务云化,云上安全风险也随之而来。近年来,我们注意到越来越多的挖矿木马家族盯上了云主机,在其攻击活动中会添加专门针对云主机的相关模块,如移除安骑士、云镜等云安全防护软件以及窃取云主机登陆凭证(如Access key和Secret key)等。其背后主要原因除了越来越多的业务上云,还有就是云主机相较于个人终端往往拥有更多的计算资源。具体实例如今年AbcBot家族针对国内云服务厂商发起攻击;TeamT/N/T和Muhstik家族今年陆续针对KUBERNETES集群发起攻击;新挖矿家族HolesWarm窃取云主机登陆凭证(Access key和Secret key)等。

在IBM的《2021 IBM Security X-Force Cloud Threat Landscape Report》报告中,也指出目前恶意挖矿木马已经成为云主机恶意软件中最突出的问题,报告中针对云环境的恶意软件类型占比情况如图:

IBM

对抗技术愈加成熟

驻留方式的对抗

挖矿木马入侵成功后,为了能长久稳定的挖矿,必然会使用各种对抗手法来规避安全检测和运维人员的清除。近些年逐渐衍生的驻留对抗手法如下:

挖矿进程隐藏

由于挖矿进程行为特征明显,多数挖矿木马家族常会通过隐藏挖矿进程来逃避检测。以HolesWarm家族为例,针对Windows通过Hook NativeAPI来实现简单的进程隐藏;针对Linux则通过动态链接库预加载的方式来隐藏挖矿进程。具体代码如图:

进程隐藏

内核态RootKit对抗

能力较强的挖矿木马家族(如Mykings和TeamT/N/T等)会集成Rootkit,从内核层来进行对抗。以TeamT/N/T为例,通过加载内核模块diamorphine.ko,来实现进程、模块、文件目录的隐藏以及用户权限提升。diamorphine.ko Hook系统函数实现进程隐藏如图:

rootkit

系统命令劫持

针对Linux平台,除了预加载动态链接库和植入RootKit外,还可以通过替换系统命令的方式隐藏挖矿进程。以TeamT/N/T家族为例,该家族替换了ps、top、pstree系统命令,当使用这些命令进行排查时,挖矿进程ext4和横向传播进程scan就会被隐藏。具体代码如图:

image-20220122183221089

Bash自启和隐藏

针对Linux平台,除了常见的定时任务实现自启动外,还可以修改/.profile和/.bashrc文件来实现自启动。/.profile是在系统启动时执行shell命令;/.bashrc是用户登陆时执行shell命令。TeamT/N/T家族通过修改/.profile和/.bashrc文件来实现自启动,如图:

bash

除了实现自启动外,更精明的挖矿家族还会通过修改/.bashrc文件来逃避检测,在/.bashrc中添加结束挖矿进程的命令,这样当运维人员登录服务器进行排查时,挖矿进程便会结束,从而逃避检测。

守护进程保护

部分挖矿木马为了防止挖矿进程被轻易杀掉,通常会使用守护进程来监控挖矿进程的状态,当挖矿进程被杀掉后,守护进程便会创建新的挖矿进程。以Sysrv-hello为例,sys.exe为守护进程,Kthreaddk.exe为挖矿进程,如图:

守护进程

反分析/检测的对抗

对抗较强的挖矿木马团伙还会对恶意软件进行加壳和代码混淆处理,来对抗安全产品检测和防止安全人员分析。如HolesWarm家族,其早期版本中使用的是普通压缩壳,后续版本迭代逐步替换为变型壳和VMP等的强壳来进行对抗;Sysrv-hello、HolesWarm家族,在其后续版本中对代码进行了混淆处理来增加分析难度。下图为Sysrv-hello前后版本代码混淆对比图:

function

检测手段与防护建议

网络安全是一个持续攻防对抗的过程,挖矿木马的对抗技术手段也在不断在演变,由简至繁,由弱变强。相应的针对挖矿木马的检测与防护手段也在不断升级。

AI病毒引擎

由于Go语言的跨平台性,其编译的程序会包含大量的公共库函数,依赖人工恶意代码特征的传统引擎较难区分其是否为恶意程序。而相交于传统引擎,AI引擎能够持续进化和自我演进,自动学习提取特征并提高检测能力,不会受开发语言影响其检测能力。因此可以用AI引擎来对抗由Go语言编写的恶意软件。

空间测绘+加密挖矿流量检测

​ 对于挖矿通信方式的演变:直连矿池->矿池代理;明文通信->加密通信。可以分别通过空间测绘加密流量检测技术来进行检测。

空间测绘检测:

通过空间测绘技术检测矿池代理,基于矿池常用的各类通信协议,分析黑客使用的通信流量隐藏手法进行拆解检测,对门罗币等挖矿木马常用币种及比特币等主流虚拟货币进行针对性的监控与挖掘,可全面、精准发现公共矿池、私有矿池、P2P矿池、矿池代理等矿池情报。

加密挖矿流量检测:

​ 由于挖矿协议本身有比较固定的模式,包括矿机登记、任务下发、登录、结果提交等,明文通信和加密通信都存在类似的关系,而且每种命令交互的包大小相对固定,因此可以基于相对固定的时序和通信包大小等特征构建加密挖矿特有的行为模型进行检测。

构建云端安全防护体系

业务上云、安全上云是近年来业界的发展趋势之一,为了保证云环境的安全,云服务厂商应构建好云端安全防护体系,通过将现有的安全能力聚集在云端,帮助用户在云上构建一个新的安全边界,来防护逐渐将攻击目标转化为云服务器的恶意软件。

托管式安全运营服务

挖矿木马愈渐强大的传播能力,对抗手法愈加纯熟。这就要求企业具备更加全面的漏洞加固能力和更加快速的安全应急响应能力。而大多数企业并不具备这些能力,因此企业可以借力托管式安全运营服务(MSS)以低成本构建高阶安全能力,来防护外界攻击。托管式安全运营服务(MSS)是将安全服务外包给具有先进专业知识和工具的网络安全服务厂商,为企业提供7*24小时的网络安全保障。

总结

不同时代黑灰产团伙总有不同的盈利方式,当下较好的选择无疑是挖矿,其分险小、技术门槛相对较低。因此在利益的驱使下,未来几年挖矿木马的热度仍将持续下去。不断有新的挖矿木马家族出现,集成新的攻击手法以及更加成熟的对抗手法。各安全厂商也应持续追踪监控恶意挖矿木马,不断提升自身安全产品的能力,积极响应国家号召,帮助客户防护和清除恶意挖矿木马。