一、挖矿诞生背景
近几年随着全球对虚拟货币的不断炒作,虚拟货币价格水涨船高,除主流比特币外,市场上涌现出了以太坊、莱特币、泰达币、艾达币等多个加密货币。“挖矿”的概念最早出现于中本聪2008年发布的论文《比特币:一种点对点电子货币系统》,意为通过消耗CPU的计算时间和电力,以类似于黄金开采商消耗资源的方式,稳定获得一定数量的电子货币,是用算力(哈希)处理交易并获得奖励的过程。由于“挖矿”过程中需要消耗大量的计算机资源,为了提高算力,国内市场上相继出现了CPU挖矿、GPU挖矿、FPGA挖矿、ASIC挖矿。随着矿工越来越多,算力越来越大,单个设备挖矿很难再获得加密货币奖励,此时开始出现矿池,通过矿池挖矿所产生的加密货币奖励会按照每个矿工贡献算力的占比进行利益分配。为了进一步缩减成本,一些网络犯罪分子自2013年开始便利用挖矿木马控制成千上万台机器组建僵尸网络进行恶意挖矿,致使挖矿木马一度成为全球最大的网络安全威胁之一。自2021年以来,国家发展改革委等部门一直在严厉打击虚拟货币相关非法金融活动和涉虚拟货币犯罪活动,在强监管之下,国内挖矿产业已迅速降温。
二、挖矿木马家族
(一)MyKings
MyKings僵尸网络于2017年开始出现,是由多个子僵尸网络构成的多重僵尸网络,集成了Mirai、Masscan、暗云III等多种恶意程序功能。该僵尸网络通过口令爆破、永恒之蓝漏洞在局域网内快速扩散,传播的恶意代码包括DDoS、Proxy(代理服务)、RAT(远程控制木马)、Miner(挖矿木马)。由于MyKings僵尸网络代码被公开至Github,导致被多个网络黑产团伙疯狂利用。
(二)8220
8220是一个长期活跃的利用多个漏洞进行攻击的国内挖矿团伙,因早期恶意程序版本与C2[5]服务器通信使用8220端口而得名。该团伙擅长利用WebLogic、Jboss反序列化漏洞,Redis、Hadoop未授权访问漏洞等漏洞进行攻击,攻击目标覆盖Windows和Linux系统。该团伙在释放挖矿木马时,会检查并终止服务器中的所有竞争挖矿木马进程,以独占服务器资源。
(三)WannaMine
WannaMine挖矿家族最早活跃于2017年9月,早期使用“永恒之蓝”漏洞攻击武器与“Mimikatz”凭证窃取工具来攻击服务器,并植入挖矿木马,目前已经历四代变种,WannaMine4.0沿用早期WannaMine家族的套路,依旧利用“永恒之蓝”漏洞进行传播。
(四)H2Miner
H2Miner组织最早在2019年底使用kinsing僵尸网络发起攻击,因守护进程为kinsing而得名,支持同时向Linux与Windows双平台传播恶意XMR挖矿脚本,该组织尤其擅长使用漏洞攻击。
(五)WatchDogsMiner
WatchDogsMiner于2019年被发现,由于其会在/tmp/目录下释放一个叫watchdogs的母体文件而得名。WatchDogsMiner病毒程序由go语言编写,程序包含了网络通信模块、加密算法、Redis攻击、SSH暴力破解、挖矿等功能。
(六)DTLMiner
DTLMiner挖矿木马在2018年12月爆发,主要传播方式包括“永恒之蓝”漏洞、U盘传播、SMB共享(域账户弱口令)、MSSQL弱口令、RDP弱口令、SSH弱口令、SSH公钥登录、Redis未授权访问,2020年曾经利用“疫情”热点进行钓鱼传播,该病毒在执行过程中会抓取系统内密码来扩充自己的弱密码库,从而提高弱口令入侵成功率。
(七)SystemdMiner
SystemdMiner在2019年被首次发现,因运行进程为systemd-而得名,早期SystemdMiner通过入侵DDG挖矿僵尸网络进行快速扩张,该木马存在多次变种,最新变种通过SSH暴力破解、SSH免密登录利用、HadoopYarn未授权访问漏洞和自动化运维工具在内网扩散,且该木马在感染主机后,会清除主机上的其他挖矿木马,以达到资源独占的目的。
(八)DDG
DDG是一款在Linux系统下运行的恶意挖矿木马,因程序运行进程名称含有关键字“ddg*”字样得名,前期其主要通过SSH爆破、Redis未授权访问漏洞等方式进行传播,近年来其更新非常频繁。
三、挖矿木马产生源头与表现类型
挖矿木马能够在各种平台上运行,包括Windows、Linux、Android、物联网(IOT)等,其产生源头有两类,第一类是黑客攻击网站、PC、服务器或云主机后非法植入恶意挖矿程序,第二类是企业内部人员利用内部网络和机器私自安装部署挖矿木马程序。
挖矿木马的表现类型主要有三种:一是可执行挖矿木马文件,此类挖矿木马程序一般都是基于XMRig、CNRig、XMR-Stak等开源挖矿代码进行定制,通过设置计划任务或者修改注册表,实现长期挖矿作业。二是无文件挖矿木马,利用PowerShell等合法工具在系统内存中运行挖矿程序,具有不落地、难检测、隐蔽性高等特点。三是嵌入恶意JS脚本的挖矿网站,黑客通过在网站中植入JavaScript恶意挖矿脚本,实现利用浏览该网站的用户计算机资源进行挖矿。
四、挖矿木马运行机制
通过分析主要挖矿木马家族的行为特征,不难发现挖矿木马的主要入侵方式为弱口令、系统漏洞和捆绑软件方式,其中,部分挖矿木马也使用了诸如网页挂马、钓鱼邮件、供应链污染等攻击方式。
挖矿木马程序在运行后,一般会主动连接C2服务器以获取工作指令,执行正式挖矿任务前,会主动连接矿池地址获取相应的挖矿任务。挖矿机器与矿池之间的通信需要遵循特定的协议,目前主流的挖矿协议是Stratum协议,早期的挖矿协议有getblocktemplate和getwork协议。标准的Stratum协议有四个阶段,分别是矿机任务订阅、矿机认证、挖矿任务下发和挖矿结果提交,个别加密货币采用的通信协议会有部分不同,比如常见的XMR门罗币挖矿程序,其将前3个阶段合并为一个阶段,大大简化通信过程。
为了实现长期驻留隐蔽挖矿的目标,挖矿木马会采用多种隐蔽技巧,如创建挖矿守护进程,设置后门账号、使用任务计划(Windows)或者Crontab(Linux)设置周期性执行任务、设置文件或目录为隐藏属性、将自身程序写入启动项、劫持替换ls、netstat、ps、lsof等系统命令文件、修改/etc/ld.so.preload文件实现恶意so文件预加载。为了实现系统资源的独占性,部分挖矿木马程序在感染主机后会选择清理CPU占用高的进程或其他竞争挖矿程序的进程,并屏蔽其他竞争挖矿程序的域名访问。为了避免被防毒软件查杀,大部分挖矿木马程序会自动关闭或卸载常见防毒软件的相关进程以实现安防对抗。为了获取更多的计算资源,挖矿木马程序基本上都集成了蠕虫模块,除暴力破解外,还会利用大量0day/Nday漏洞获取内网主机权限,实现内网快速横向移动。
五、挖矿木马防范措施
(一)事前阶段
一是要杜绝系统服务弱口令。对于RDP、SSH、Mssql、Redis等系统服务,必须设置高强度的登录密码口令,并保持定期更新,具备条件的企业,应该考虑将上述服务接入堡垒机或者4A进行有效管控。
二是要减少互联网暴露面。必须按照“最小化原则”开放必要的端口及服务,尽量不要在互联网中开放135(Windows)、139(Windows)、445(Windows)、3389(RDP)、3306(Mysql)、1433(Mssql)、1521(Oracle)、2181(Zookeeper)、6379(Redis)、27017(MongoDB)、9200/9300(ElasticSearch)、9092(Kafka)等高危端口。对于必须在公网上直接开放的高危端口,必须提前做好安全基线配置,并在防火墙上设置IP白名单保护。
三是要及时更新系统漏洞补丁。目前,大部分挖矿木马均会借助系统漏洞进行传播。2021年,ApacheLog4j“核弹级漏洞”仅曝光1天,挖矿木马家族就将其加入至漏洞武器库,可见挖矿木马程序的漏洞武器库更新较为迅速。因此,在监测发现系统或者服务存在重大安全漏洞后,必须在最短的时间内开展漏洞影响评估,在不影响业务连续性的前提下,稳妥开展漏洞升级工作,降低感染挖矿木马的风险。
四是要设置网络出向访问白名单。通过分析挖矿木马的运行机制后发现,挖矿木马运行后不仅会连接外部矿池,还可能会连接C2服务器以接收C2指令,通过设置网络出向访问白名单,可以有效阻断挖矿木马与互联网的通信,此安全控制措施对于通过代理中转方式间接访问矿池或C2域名的变种挖矿木马也具有非常好的防护作用。
五是要启用主机防火墙。由于主机防火墙是最后一道安全防线,通过启用主机防火墙,可以实现入站和出站访问流量的精细化控制,有效封堵某些攻击漏洞的入口,从而避免被恶意挖矿木马攻击利用。
六是引入部署安全防护产品。从挖矿木马的运行机制来看,挖矿木马在进行挖矿时,会对矿池进行DNS查询和IP连接,且感染主机后还会产生一系列异常行为,因此可以从进程特征、网络连接、文件特征等维度进行事前检测和事中防护。通过部署主机Hids、网络流量监测产品、IOC威胁情报类产品以及防病毒产品,可以实现挖矿木马从植入到内网扩散的全过程检测与防护。
(二)事中阶段
由于挖矿程序一般会消耗大量的CPU或者GPU资源,同时,会占用大量的系统资源和网络带宽,极可能造成系统运行卡顿或服务运行异常,因此很容易被日常监控软件发现,如不幸中招挖矿木马,可以采取以下措施进行事中处置。
一是采取断网或关机的方式隔离问题主机。目前,大部分挖矿木马均具有蠕虫传播特性,在感染主机后,挖矿木马会进一步以本机作为跳板,通过口令爆破或漏洞扫描等方式在整个局域网内快速传播,因此为了避免挖矿木马程序的扩散,使受感染主机离线是最好的方案。
二是快速定位事件原因,还原网络攻击链。通过提取系统网络日志、安全产品告警日志以及挖矿木马样本文件,结合互联网公开威胁情报数据,综合研判当前挖矿木马程序是否与已知公开样本具有同源性,如感染变种挖矿木马程序,应通知专业安全机构参与攻击溯源工作,确保挖矿攻击链能够被有效还原。
三是封堵漏洞入口,根除挖矿木马程序。在完整摸清挖矿木马程序的攻击链后,可以着手实施挖矿木马程序的清理工作。在停止挖矿木马程序进程,删除相关落地文件之后,必须需要重点检查定时任务、系统启动项、公钥文件、关键系统命令是否被修改。如有必要,建议对相关受感染的系统进行重装,以保证恶意程序清理的彻底性。此外,系统重新入网上线前,必须要对漏洞入口进行有效处置。
(三)事后阶段
完成挖矿木马事件应急响应后,企业必须及时更新内部知识库,并且举一反三,针对相关事件过程开展全面复盘,通过总结经验与教训,不断强化企业自身网络安全能力短板建设。