2021年以来,我国加大了整治虚拟货币的力度,陆续出台了相关政策封杀虚拟货币交易平台,后续又发布了《关于整治虚拟货币“挖矿”活动》的通知,重点强调全面梳理排查虚拟货币“挖矿”项目。在国家对虚拟货币和“挖矿”等项目重拳出击的背景下,挖矿木马家族仍在发展壮大,老的挖矿家族依旧活跃,新的挖矿家族不断涌现。
深信服威胁情报团队基于云端数据持续对活跃挖矿木马家族进行追踪,检测到了多起挖矿木马爆发事件,并从中分析总结出了一些挖矿木挖马的发展趋势,本文将根据我们追踪监测到的数据,对挖矿木马的发展趋势和检测思路进行分析总结。
挖矿木马趋势
2021年挖矿木马相较于往年呈现以下新趋势 : Go语言成为趋势
随着近几年Go语言的流行,越来越多挖矿木马团伙开始使用Go语言开发恶意软件。今年我们共监控到12个新出现的成规模挖矿木马家族,其中就有5个是使用Go语言开发的。
Go语言受挖矿木马团伙青睐的主要原因是挖矿木马为了收益最大化,往往会跨平台传播,而Go语言的特性便是支持跨平台编译。这样就允许恶意软件开发人员只需维护一套代码,就能针对不同操作系统编译出对应的恶意软件,可以减少开发周期和维护成本;并且Go语言又如Python一样,拥有丰富的第三方库,降低了开发难度,提升了开发效率。因此使用Go语言开发恶意挖矿木马已成为一种趋势,近几年使用Go语言开发的挖矿家族如下:
挖矿通信方式的演变
直连矿池->矿池代理
挖矿木马常见的挖矿方式为受害主机直连公共矿池贡献算力,矿池平台根据贡献的算力,再将收益支付给挖矿木马团伙。然而近几年,这种方式也正在发生改变,越来越多的挖矿家族开始使用矿池代理的方式来进行挖矿。如Sysrv-hello、HolesWarm、MimuMiner等家族都已使用矿池代理的方式进行挖矿。
矿池代理本质是在矿工与矿池之间增添了一个中转环节。矿池代理从公共矿池获取任务,分配给矿工进行计算,矿工再将计算完成的结果交由矿池代理转发到公共矿池。
直连矿池和矿池代理方式对比流程图:
明文通信->加密通信
直连矿池和矿池代理的方式进行挖矿,其网络流量中的特征都十分明显,很容易被安全设备检测出来。为了对抗安全设备的检测,越来越多的挖矿木马团伙选择对挖矿流量进行加密。如HolesWarm家族,便是使用加密流量来进行挖矿的。下图为明文通信和加密通信的挖矿流量对比:
愈渐强大的传播能力
传播方式蠕虫化
挖矿的传播方式分为两种:一种是病毒作者进行全网漏洞扫描,漏洞利用成功后投放恶意挖矿程序进行挖矿。另一种是恶意挖矿程序自身集成漏洞扫描和利用模块,投放出去的恶意挖矿程序以蠕虫方式进行传播。目前大多数挖矿木马团伙都是以蠕虫方式进行传播的,不仅传播速度远远强于单点漏洞扫描,并且还能在内网中广泛传播。
强大的漏洞集成能力
挖矿木马团伙在利益的驱使下,往往会不断集成更有效的1/N Day漏洞来感染更多主机资源,从而获取更多的收益。如:HolesWarm家族,在其11月的版本更新中,新集成了19种漏洞利用手法,横向攻击模块更是达到了31个,几乎涵盖企业信息系统的方方面面。一旦企业有可被利用的漏洞暴露时,防御的木桶短板效应就会显现,企业会被快速攻陷。部分活跃挖矿家族漏洞集成数量如下:
快速集成新漏洞
每当爆发影响范围广泛的漏洞后,全网受影响的设备很难在短时间内得到有效的修复。一些“嗅觉”敏锐的挖矿团伙会立刻集成漏洞发起攻击。例如近期Log4j2漏洞爆发事件中,H2Miner、Muhstik等挖矿家族在距Log4j2漏洞披露不到36小时,便已集成该漏洞并发起攻击。这对企业的漏洞快速修复能力构成了严峻考验,一旦企业没有及时进行修复,挖矿木马团伙便能轻松获得主机的控制权,Log4j2漏洞披露及各恶意家族武器化的时间线如下:
对抗技术愈加成熟
驻留方式的对抗
挖矿木马入侵成功后,为了能长久稳定的挖矿,必然会使用各种对抗手法来规避安全检测和运维人员的清除。近些年逐渐衍生的驻留对抗手法如下:
挖矿进程隐藏
由于挖矿进程行为特征明显,多数挖矿木马家族常会通过隐藏挖矿进程来逃避检测。以HolesWarm家族为例,针对Windows通过Hook NativeAPI来实现简单的进程隐藏;针对Linux则通过动态链接库预加载的方式来隐藏挖矿进程。具体代码如图:
内核态RootKit对抗
能力较强的挖矿木马家族(如Mykings和Team***等)会集成Rootkit,从内核层来进行对抗。以Team***为例,通过加载内核模块diamorphine.ko,来实现进程、模块、文件目录的隐藏以及用户权限提升。diamorphine.ko Hook系统函数实现进程隐藏如图:
系统命令劫持
针对Linux平台,除了预加载动态链接库和植入RootKit外,还可以通过替换系统命令的方式隐藏挖矿进程。以Team***家族为例,该家族替换了ps、top、pstree系统命令,当使用这些命令进行排查时,挖矿进程ext4和横向传播进程scan就会被隐藏。具体代码如图:
Bash自启和隐藏
针对Linux平台,除了常见的定时任务实现自启动外,还可以修改~/.profile和~/.bashrc文件来实现自启动。~/.profile是在系统启动时执行shell命令;~/.bashrc是用户登陆时执行shell命令。Team***家族通过修改~/.profile和~/.bashrc文件来实现自启动,如图:
除了实现自启动外,更精明的挖矿家族还会通过修改~/.bashrc文件来逃避检测,在~/.bashrc中添加结束挖矿进程的命令,这样当运维人员登录服务器进行排查时,挖矿进程便会结束,从而逃避检测。
守护进程保护
部分挖矿木马为了防止挖矿进程被轻易杀掉,通常会使用守护进程来监控挖矿进程的状态,当挖矿进程被杀掉后,守护进程便会创建新的挖矿进程。以Sysrv-hello为例,sys.exe为守护进程,Kthreaddk.exe为挖矿进程,如图:
反分析/检测的对抗
对抗较强的挖矿木马团伙还会对恶意软件进行加壳和代码混淆处理,来对抗安全产品检测和防止安全人员分析。如HolesWarm家族,其早期版本中使用的是普通压缩壳,后续版本迭代逐步替换为变型壳和VMP等的强壳来进行对抗;Sysrv-hello、HolesWarm家族,在其后续版本中对代码进行了混淆处理来增加分析难度。下图为Sysrv-hello前后版本代码混淆对比图:
攻击目标云化
随着企业数字转型、业务云化,云上安全风险也随之而来。近年来,我们注意到越来越多的挖矿木马家族盯上了云主机,在其攻击活动中会添加专门针对云主机的相关模块,如移除安骑士、云镜等云安全防护软件以及窃取云主机登陆凭证(如Access key和Secret key)等。其背后主要原因除了越来越多的业务上云,还有就是云主机相较于个人终端往往拥有更多的计算资源。具体实例如今年AbcBot家族针对国内云服务厂商发起攻击;Team***和Muhstik家族今年陆续针对KUBERNETES集群发起攻击;新挖矿家族HolesWarm窃取云主机登陆凭证(Access key和Secret key)等。
在IBM的《2021 IBM Security X-Force Cloud Threat Landscape Report》报告中,也指出目前恶意挖矿木马已经成为云主机恶意软件中最突出的问题,报告中针对云环境的恶意软件类型占比情况如图:
检测手段与防护建议
网络安全是一个持续攻防对抗的过程,挖矿木马的对抗技术手段也在不断在演变,由简至繁,由弱变强。相应的针对挖矿木马的检测与防护手段也在不断升级。
防护手段如下图所示:
总结 不同时代黑灰产团伙总有不同的盈利方式,当下较好的选择无疑是挖矿,其分险小、技术门槛相对较低。因此在利益的驱使下,未来几年挖矿木马的热度仍将持续下去。不断有新的挖矿木马家族出现,集成新的攻击手法以及更加成熟的对抗手段。各安全厂商也应持续追踪恶意挖矿木马,不断提升自身安全产品的能力,积极响应国家号召,帮助客户防护和清除恶意挖矿木马。