挖矿木马是一类利用漏洞入侵计算机,并植入挖矿软件挖掘加密数字货币牟利的木马,被植入挖矿木马的计算机会出现CPU使用率飙升、系统卡顿、业务服务无法正常使用等情况。挖矿木马为了能够长期在服务器中驻留,会采用多种安全对抗技术,如修改计划任务、防火墙配置、系统动态链接库等,这些技术手段严重时可能造成服务器业务中断。
挖矿木马最早出现于2012年,加密数字货币价格自2017年开始暴涨,门罗币等匿名币的出现,其不可追踪、抗Asic矿机的特性使得服务器的计算资源变得有利可图。自2018年以来挖矿木马已成为互联网中存在的主要安全威胁。阿里云安全团队长期跟踪和研究挖矿木马,在2019年我们监测到多起挖矿木马的爆发,发现了一些挖矿木马新的发展趋势。本文将依据我们长期的监测数据,对2019年的挖矿木马发展趋势进行分析总结。
核心概要
1.全年共观察到80个成规模的挖矿僵尸网络团伙,Linux服务器为主要的攻击目标;
2.木马投放方式全面蠕虫化,多种漏洞组合攻击成为趋势;
3.挖矿团伙主要利用暴力破解进行传播,弱密码仍然是互联网面临的主要威胁;
4.非Web基础框架/组件不合理的安全配置,成为挖矿木马新型利用方式;
5.挖矿僵尸网络团伙频繁利用热门N-Day漏洞传播,N-Day漏洞留给用户进行修复的窗口期变短;
6.挖矿木马使用的安全对抗技术、资源竞争技术愈加纯熟,这要求企业具备更专业的安全应急响应能力。
整体态势
2019年共发现80个成规模的挖矿木马团伙,以累积感染量定义木马活跃度,下图/表是活跃TOP10的木马家族及简介。从受害者主机的操作系统来看69%为Linux操作系统,31%为Windows操作系统,Top10中的挖矿木马团伙的攻击目标也主要是Linux操作系统。
攻击趋势
1. 挖矿木马全面蠕虫化,漏洞组合攻击是趋势
2019年爆发了多个广泛应用的代码执行漏洞,N-day漏洞爆发后难以在短时间内得到有效修复,往往成为挖矿僵尸网络争夺的”肥肉“,”嗅觉“灵敏的黑产团伙会很快将其纳入挖矿木马的武器库。2019年我们发现多起热门漏洞被挖矿团伙大量利用的事件,下图是部分漏洞从爆发到被利用的时间线。大部分漏洞都在几天到十几天之内被挖矿团伙利用,这对云平台及用户的快速响应能力构成严峻考验。
2. 木马投放方式全面蠕虫化,多种漏洞组合攻击成为趋势
TOP10中的挖矿木马除了8220Miner以外,都采用蠕虫化的投放方式,除了CryptoSink以外全部使用超过2种以上方式进行混合攻击。这意味着挖矿木马的传播能力在大幅增强,变得无孔不入。如果企业的信息系统存在任意可被利用的漏洞,安全边界被突破后内网将会快速沦陷。在这种情况下单点防御已经失效,防御的木桶效应显现,企业需要具备全面的漏洞防御能力。
3. 挖矿团伙主要利用暴力破解进行传播,弱密码仍然是互联网面临的主要威胁
下图是不同应用被入侵导致挖矿的占比,可以发现Redis/SSH/SQLServer/RDP仍然是挖矿利用的主要攻击目标。由于运维人员的安全意识薄弱,弱密码在互联网广泛存在。而暴力破解利用门槛低,成为挖矿木马重要的传播方式。
4. 非Web基础框架/组件不合理的安全配置,成为挖矿木马新型利用方式
近几年大数据、容器等新兴技术开始广泛使用,企业上云后开发/测试环境也部署在云上,但是由于企业欠缺专业的安全人才、技术人员缺乏安全意识,这些服务的配置往往存在安全隐患,如服务暴露在公网上、接口存在无认证/弱口令、存在N-day漏洞等问题。由于这些应用是企业的非核心业务,在安全加固和漏洞修复上投入并不如Web应用,这些应用通常开放在非标端口上或者使用非HTTP协议,局部的安全策略往往是不够的。2018年挖矿木马开始利用大数据、容器组件进行传播,而2019年容器编排、供应链框架/组件开始成为挖矿木马的攻击目标,下表是近两年被挖矿木马广泛利用的非Web基础框架/组件漏洞。
技术趋势
挖矿木马入侵成功后必定希望能够长久稳定的挖掘出虚拟货币,其技术上会采用多种安全对抗技术避免被清除。而面对黑产同行的资源竞争,挖矿木马要生存下去就必须采用多种方式进行竞争。我们观测到2019年挖矿木马使用的安全对抗技术、资源竞争技术愈加纯熟,下面我们会盘点一下挖矿僵尸网络重点使用的安全对抗和资源竞争技术。
1. 安全对抗技术
无文件技术
无文件攻击不需要将恶意软件落地到磁盘,能够躲避杀毒软件的静态扫描,因此难以被杀软查杀,具备更好的隐蔽性。在挖矿僵尸网络中通常使用各种工具(比如Windows的WMI命令行工具wmic.exe)或者脚本编程语言(如PowerShell)提供的API接口访问WMI,来实现无文件攻击。如下是TheHidden使用wmic进行无文件攻击的代码。
RootKit技术
挖矿木马需要长期驻留于目标服务器上以达到获利目的,RootKit是恶意驻留技术的统称。最常见的方式是写入定时任务/计划任务实现常驻。而2019年动态链接库预加载型rootkit开始被挖矿木马大规模使用,木马通过动态连接库预加载,实现对libc中诸如readdir等常用函数的hook,当ps、top等shell指令尝试读取/proc/目录获取进程信息时对恶意进程隐藏。如下图是8220Miner利用ProcessHider工具包进行rootkit隐藏。
中控技术
中控技术是指黑客在被入侵主机上运行后门程序,后门与黑客控制的服务器进行定时通信,黑客可以向被控主机下发指令、偷取数据。由于恶意挖矿行为不需要对bot进行强控制,大部分的挖矿木马都不具备完备的c&c控制模块,他们通常使用配置文件结合定时任务,实现对bot的配置变更和版本更新。但是在2019年我们见到越来越多的挖矿僵尸网络开始使用中控技术,具备中控能力的挖矿僵尸网络在资源竞争中会具有更大的优势。如下图是h2Miner的部分中控功能模块。
暗网
挖矿僵尸网络将自己的服务器放在暗网(Tor洋葱网络)中,这使得对幕后黑手的追溯变得更加困难。2019年这项技术在挖矿僵尸网络中开始广泛使用,如下图是2019年5月份爆发的Xulu挖矿团伙的攻击流程,它将自己的控制服务器放在Tor网络中进行隐藏。
2. 资源竞争技术
杀死竞争进程
挖矿僵尸网络通过进程的指纹库判断其他挖矿进程,或者直接杀死CPU占用率高的进程。下图是h2Miner使用的部分指纹库,它使用了多达460多条的进程指纹,这也是h2Miner能够在12月异军突起的原因之一。
修改防火墙
挖矿僵尸会修改防火墙的iptables,将存在漏洞的服务端口关闭防止其他挖矿木马入侵。或者关闭常见的矿池端口,阻断竞争对手的挖矿行为。
Sinkhole
Sinkhole技术是指安全人员将恶意域名解析到无效地址的方法,挖矿僵尸网络利用该技术进行资源竞争,通过修改/etc/hosts将竞争对手的域名、常见矿池域名解析到无效地址来阻断其挖矿行为。下图是将挖矿僵尸网络将竞争对手的域名Sinkhole的恶意代码。
典型僵尸网络盘点
2019年,出现了多个大规模的新挖矿木马团伙,他们凭借独特的技术特点得获得了大规模爆发:
1.watchbog(2月出现):该蠕虫更新频繁,不断地将最新漏洞添加到自己武器库,2月利用最新的Nexus Repository 2.Manager远程代码执行漏洞传播,11月初利用最新的Solr Velocity 模版注入远程命令执行漏洞传播;
3.MinerGuard(4月出现):攻击方式复杂多样,具备完善的进程保护模块;
4.kerberods(4月出现):利用新公开的Confluence RCE传播,使用了多种持久化技术;
5.h2Miner(12月出现):利用Redis 4.x RCE大规模传播,他具备强大的竞争进程指纹库,因此在资源竞争中占据优势,成为了年底最活跃的挖矿木马;
在2019年多个老的挖矿木马团伙也不断升级自己的攻击技术、频繁更新,他们在2019年也获得了大规模传播,呈现出强者愈强的局面:
1.ddgs:1月和11月两次升级自己的中控通信模块,从中心控制结构升级到无中心拓扑P2P结构,将黑客控制的中控服
2.务器进行了完美的隐藏;
3.BuleHero:2019年频繁更新,不断的将最新的攻击方式加入自己的武器库,10月初利用最新的PHPStudy后门漏洞进行传播,并升级了自己的文件命名方式,以增强自己的资源竞争能力;
1. h2Miner
h2Miner是一个Linux下的挖矿僵尸网络,主要通过爆破Redis入侵,同时利用多个Web服务漏洞进行攻击。我们最早于12月5号捕获到该挖矿木马,以他的恶意shell脚本h2.sh进行命名,其活跃程度一直较低,直到12月18日开始才突然爆发,仅仅5天后该挖矿僵尸网络就超越了ddgs和MinerGuard成为互联网上最活跃的挖矿僵尸网络。
该挖矿木马突然爆发的原因是改变了redis的入侵方式,爆破redis成功后并不是通过写入定时任务进行提权(该利用方法更为普遍),而是利用Redis 4.x RCE进行提权,这种方式能够绕过Redis安全配置。该利用方式由Pavel Toporkov在zeronights 2018上分享,在Redis 4.x之后,Redis新增了Module功能,使用者可以在Redis中加载由C语言编译而成的so文件,从而实现特定的Redis命令。下图是h2Miner爆发前后的活跃度趋势。
下图是h2Miner的攻击链路,攻击者利用Redis 4.x RCE加载名为red2.so的恶意文件,该文件会执行恶意指令下载一个新的恶意脚本并执行,恶意脚本会下载名为kinsing的恶意二进制文件,该文件会从攻击者的中控服务器内接收黑客的指令继续对外攻击传播。下载的恶意脚本还会清理大量的竞争对手,使用的竞争进程指纹库多达460多条,这也是他能在短时间内大量爆发的原因之一,从上图中我们可以看到12月18号大规模爆发后,ddgs和MinerGuard的活跃度出现了明显的降低。
2. ddgs
ddgs挖矿僵尸网络最早曝光于2017年10月,早期利用Orientdb漏洞,目前主要利用Redis未授权访问漏洞、SSH弱口令进行入侵。如下图是ddgs的攻击流程,入侵主机后会下载i.sh的恶意脚本,并下载ddgs恶意程序。紧接着会启动disable.sh脚本清理其他挖矿程序,与黑客控制的中控服务器通信后启动挖矿程序,并开始入侵其他主机。
2019年ddgs保持频繁更新,从301X升级到4008,增加了Nexus远程代码执行漏洞的利用方式,但并未成为其主要的攻击方式。值得一提的是2019年ddgs的中控协议发生了两次重大更新,从中心控制结构升级到了完全P2P结构。
在3014以及更早的版本,ddgs的中控服务器IP地址硬编码在恶意文件中,这种方式容易被安全人员追踪。
2019年1月的3015版本中,被入侵主机使用了Memberlist协议框架组建P2P网络,真实的中控服务器隐藏在P2P网络中,被入侵主机需要利用该框架协议从P2P网络成员中遍历出真实的的中控服务器。但中控通信仍然是中心化的,安全人员可以模拟成被入侵主机,获取真实的中控服务器IP。
2019年11月ddgs升级到了4008版本,在被入侵的主机中会监听一个随机端口,利用Golang的net.Pipe()将通信转发到P2P网络成员,被入侵主机不直接与中控服务器通信。中控通信可以被其他被入侵主机”路由”到真实的中控服务器,这种类似洋葱网络的匿名结构将中控服务器地址很好地隐藏了起来。下图是ddgs三个时代的中控结构。
3. MinerGuard
MinerGuard是一个跨Windows/Linux的平台挖矿僵尸网络,利用redis未授权访问漏洞、SSH弱口令、多种Web服务漏洞进行入侵,在2019年4月份开始爆发。其程序在不同平台上逻辑相同,成功入侵主机后会运行sysguard、networkservice、sysupdate三个恶意文件。
networkservice是MinerGuard的攻击模块,会利用多个网络服务漏洞进行传播。sysupdate模块是开源的门罗币挖矿程序,会从config.json中加载矿机配置参数。值得关注的是sysguard模块,该模块主要功能是更新中控服务器地址,并且可以确保病毒持久化驻留在服务器中。模块启动后会创建4个线程,用于中控服务器地址更新、保护启动项、进程守护、版本升级。正是该模块完善的保护机制,确保了MinerGuard在与其他僵尸网络激烈的竞争中稳居前三。
4. BuleHero
Bulehero挖矿蠕虫最早出现于2018年初,初次曝光于2018年8月,因最早使用bulehero.in域名被命名为Bulehero。该蠕虫专注于攻击Windows服务器,通过植入恶意挖矿软件进行牟利。它使用多种复杂的攻击方式进行传播,自出现后更新频繁,不断的将新的攻击方式加入自己的武器库。
2019年9月20日PHPStudy爆出后门漏洞,仅仅十几天后BuleHero就开始利用该漏洞传播。下图是BuleHero的攻击流程,攻击payload会下载download.exe文件,该文件会下载攻击模块、扫描模块、挖矿模块进行蠕虫传播和恶意挖矿。在这次更新之前三个模块的恶意文件名都混淆为系统文件进行隐藏,更新后恶意文件全部改为随机文件名。这么做容易被运维人员发现并清理,但会让竞争对手无法生成进程指纹,在资源竞争中更加有利。
5. kworkerds
kworkerds是一个跨Windows/Linux的平台挖矿僵尸网络,利用redis未授权访问漏洞、SSH弱口令、Weblogic远程代码执行等多种Web服务漏洞进行入侵,在2018年9月开始爆发。该挖矿僵尸网络具备较高的活跃度,其使用的恶意文件下载地址频繁更换,但代码结构未发生重大的变化。利用漏洞入侵后下载mr.sh/2mr.sh恶意脚本运行,植入挖矿程序。其最大的特点是通过劫持动态连接库植入rootkit后门。
6. kerberods
kerberods是Linux下的挖矿蠕虫,在2019年4月份利用新公开的Confluence RCE(CVE-2019-3396)漏洞大肆传播,传播流程如下图。在该蠕虫的持久化模块中,会使用三种方式进行持久化:写入/etc/init.d/netdns文件用于启动恶意程序守护进程、写入/usr/local/lib/libpamcd.so用于hook各种系统函数、将下载恶意程序的指令写入cron文件从而定时执行。通过逆向恶意文件,发现其手法、程序结构、使用的基础设施,都与先前利用redis攻击的watchdogs蠕虫极度相似,可能是同一作者所为。
7. 8220Miner
8220Miner最早曝光于2018年8月,因固定使用8220端口而被命名为8220组织,他是最早使用Hadoop Yarn未授权访问漏洞攻击的挖矿木马,除此他还使用了多种其他web服务漏洞。
如下是8220Miner的攻击流程,入侵成功后运行mr.sh脚本执行挖矿程序。8220Miner并未采用蠕虫式传播,而是使用固定一组IP进行全网攻击,我们长期跟踪发现他所使用的IP大部分来自东南亚。8220Miner在2018年攻击最为活跃,到了2019年下半年几乎没有新的活跃迹象。我们猜测因没有使用蠕虫式攻击,恶意文件也较为简单,因此在资源竞争中败落。如果8220Miner没有重大更新,预计8220Miner将会逐渐消失。
8. watchbog
watchbog是在2019年2月爆发的Linux挖矿蠕虫,借助新出现的Nexus Repository Manager 远程代码执行漏洞爆发,如下是其攻击流程。watchbog自出现后更新频繁,在2019年7月一次性增加了多个Web服务漏洞的攻击方式。在这次更新中watchbog还内置了Windows RDP RCE(CVE-2019-0708)漏洞的扫描模块,将扫描到的存在漏洞主机地址使用R**加密方式返回给C&C服务器。攻击者可能想要利用僵尸网络搜集互联网上存在漏洞的主机,为后续攻击Windows平台做准备。
安全建议
就在我们编写这份报告的时候,即2020年1月,虚拟货币迎来了新一轮的上涨,这会吸引更多的黑产团伙投入到恶意挖矿中进行非法牟利,预计2020年挖矿活动会继续猖獗。
基于这种预计,阿里云安全团队为云上用户提供如下安全建议:
1. 超过一半的挖矿木马入侵来自弱口令爆破,而弱口令被称为不是漏洞的漏洞,最大的问题来自于人的安全意识薄弱,加强企业的安全意识教育和安全管理水平是首要措施;
2. 0/N-day漏洞在被披露到修复这段时间,挖矿团伙必定会伺机进行利用。这要求企业必须提升应急响应的效率,实时关注产品安全公告并及时升级,同时也可以选择购买安全托管服务提升自己的安全水位;
3. 企业会重点关注自己的核心业务,安全投入也重点放在这部分,比如部署Waf、高防来保障自己的核心Web服务,一些暴露在互联网的非Web类的网络应用就成为了安全防御的短板。安全运维人员应该关注非 Web 类的应用伴随的安全风险,或者选择购买带IPS功能的防火墙产品,第一时间给0-Day漏洞提供防护。
致谢:苍珀、悟泛
*本文作者:桑铎,转载请注明来自FreeBuf.COM
来源:freebuf.com 2020-02-10 10:00:24 by: 阿里云安全
请登录后发表评论
注册