APP下载

挖矿木马的攻击手段及防御策略研究

2018-12-24应宗浩

无线互联科技 2018年8期
关键词:挖矿脚本木马

应宗浩,金 海

(兰州理工大学,甘肃 兰州 730050)

近年来随着数字货币的发行及行情发展,许多设备参与到了挖矿行为中去,数字货币依据特定算法,需要将计算资源投入区块链的验证。挖矿是一项CPU密集型的资源争抢工作,不法分子将挖矿机程序植入受害者的计算机中,利用受害者计算机的运算力进行挖矿,这种用户不知情的挖矿机程序就是挖矿木马[1]。

挖矿木马主要有3种形式:僵尸网络挖矿、网页挖矿木马、Android设备挖矿木马。本文就以上3种形式的挖矿木马的攻击原理及攻击手段进行分析,并针对不同形式的攻击提出相应的防护措施。

1 僵尸网络挖矿木马

僵尸网络挖矿木马就是黑客通过入侵其他计算机建立僵尸网络,在僵尸网络已建立的前提下植入挖矿木马,通过计算机集群的巨大运算能力来进行挖矿。

1.1 僵尸网络挖矿木马攻击手段

黑客在搭建僵尸网络时会利用各种已知漏洞进行入侵控制,如struts2漏洞、永恒之蓝、WebLogic WLS-wast RCE等各种RCE漏洞以及弱口令、权限认证等能够写入shell进而控制计算机的漏洞。总体来说攻击分为两种途径,一种是简单快速地对暴露在公网的服务进行漏洞扫描,进行入侵获取权限,进行挖矿。另一种方式在第一种的基础上增加了内网传播,其中利用了端口扫描、口令爆破等技术,许多木马本身具备内网漏洞扫描与传播功能,并且在内网的主机数量比暴露在公网的主机数量更多,而且几乎没有做安全措施。因此,第二种方式能够控制更多主机,为挖矿提供更多的资源。

僵尸网络挖矿木马建立之后,一旦开始挖矿,便会调用计算机集群巨大的运算能力进行挖矿。

僵尸网络从黑客服务器上下载执行powershell命令行部分代码[2]:

cmd.exe /c powershell.exe -Nop -NonI -W Hidden

if((Get-WmiObjectWin32_OperatingSystem).osarchitecture.contains (‘64’))

{

IEX(New-Object Net.WebClient).DownloadString(‘ht tp://*.*.*.*:8000/in6.ps1’)

}

1.2 僵尸网络挖矿木马防御策略

为了避免爆破成功,计算机的所有者应该设置严谨的登录策略,如绑定登录IP,限制登录次数登。另一方面,应该增强口令的强度,以避免基于弱口令的攻击。

僵尸网络会在进行内网的横向渗透时进行端口的扫描,如果扫描到可能存在漏洞的端口便会执行相应的攻击,因此,为了降低被攻击的风险,计算机所有者应关闭不必要端口。

大部分僵尸网络在构建初期所利用的漏洞攻击技术均是已知的漏洞,并没有使用到未知漏洞,因此需要及时为操作系统和相关服务打补丁,高危RCE漏洞要及时修复[3]。

计算机所有者应定期维护、监测计算机状态,具体的步骤主要包括:查看进程,进行排查,并将可疑进程终结;查找可疑程序路径并删除;排除异常会话;排查计划任务等。

2 网页挖矿木马

网页形式的挖矿木马,就是在网页源代码中嵌入恶意挖矿脚本,当网页被浏览时将会进行挖矿的行为。

2.1 网页挖矿木马攻击手段

用户访问网页时,浏览器负责解析网站中的资源、脚本,并将解析的结果展示在用户面前。如果网页中植入了挖矿脚本,浏览器将解析并执行挖矿脚本,利用用户计算机资源进行挖矿从而获利。挖矿脚本的执行会导致计算机资源利用率上升,甚至会影响用户的正常操作,同时会增加硬件损耗。

在网页挖矿木马中,典型的手段就是在网页中调用Coinhive官网中的js文件coinhive.min.js并指定一个唯一的标识符。它采用了一种Cryptonight挖矿算法挖门罗币,这种算法复杂、占用资源高,常被植入普通用户机器,占用其CPU 资源来挖矿。

以下是在网站中调用coinhive的js文件的代码:

2.2 网页挖矿木马防御策略

在执行挖矿脚本时,会消耗计算机上大量的CPU资源,因此,如果在浏览网页时注意到操作变得迟缓,CPU使用率上升等情况,那么有可能网页嵌入了挖矿脚本。此时应该关闭正在访问的页面,同时检查任务管理器是否有残余的相关进程存在[4]。

如果使用火狐或者chrome等浏览器,可以安装相应的浏览器插件,来防止浏览器被挖矿。这些插件能够帮助我们检测和拦截网站的挖矿脚本,插件的原理主要是内置黑名单,黑名单中包括挖矿脚本以及检特定的url地址,若检测到则直接进行拦截,这些url地址都是目前已知的矿池地址,插件通过黑名单屏蔽这些地址来进行防护。

以下是黑名单中部分内容:

*://*.ppoi.org/lib/*

*://*.coinerra.com/lib/*

*://*.minero.pw/miner.min.js*

*://*.coinblind.com/lib/*

*://*.webmine.cz/miner*

wss://*.webmine.cz/*

*://*.inwemo.com/inwemo.min.js*

*://*.cloudcoins.co/javascript/*

3 Android设备挖矿木马

Android设备挖矿木马主要包括两种方式:(1)同网页形式挖矿木马一样,使用浏览器JavaScript脚本进行挖矿。(2)在软件中嵌入开源的矿池代码库进行挖矿[5]。

3.1 Android设备挖矿木马攻击手段

在本文2.1中,已经提及网页挖矿的攻击手段,故在本部分着重说明嵌入开源矿池代码库进行挖矿的木马的攻击手段。

木马apk在其开发过程中,相对于正常普通APP开发流程而言,挖矿木马主要多了以下几个步骤:首先挖矿木马在Android Manifest里注册挖矿服务,接着嵌入开源的用于挖矿的文件及相应代码,再设置后挖矿必须的信息,包括算法、地址、账户信息等。

开发完成后,可以通过伪装成各类应用软件进行分发,一旦用户安装并启动,则会开始挖矿。以下是开源矿池代码库部分关键代码,该代码用于加密运算:

static inline void HMAC_SHA256_80_init(const uint32_t *key, uint32_t *tstate, uint32_t *ostate)

{

uint32_t ihash[8];

uint32_t pad[16];

int i;

/* tstate is assumed to contain the midstate of key */

memcpy(pad, key + 16, 16);

memcpy(pad + 4, keypad, 48);

sha256_transform(tstate, pad, 0);

memcpy(ihash, tstate, 32);

sha256_init(ostate);

for (i = 0; i < 8; i++)pad[i] = ihash[i] ^ 0x5c5c5c5c;

for (; i < 16; i++)pad[i] = 0x5c5c5c5c;

sha256_transform(ostate, pad, 0);}

3.2 Android设备挖矿木马防御策略

针对已经root用户,可以通过iptables设置防火墙规则,对挖矿网址进行拦截,原理与网页挖矿防护中反挖矿插件基本相同。

而对于没有root的用户,可以禁用手机浏览器JavaScript执行功能。另外,由于挖矿木马apk会通过各种途径进行分发,在下载应用时,用户应提高甄别能力,选择正规的途径下载。

4 结语

本文在对典型挖矿木马进行分类后,针对性地进行攻击手段的分析,并在此基础上提出相应的防御策略,系统地介绍了挖矿木马的特性以及危害,并通过相关防御策略避免受到挖矿木马的危害,降低设备所有者的损失。

[参考文献]

[1]沈鑫,裴庆祺,刘雪峰.区块链技术综述[J].网络与信息安全学报,2016(11):11-20.

[2]360安全卫士.Android平台挖矿木马研究报告[EB/OL].(2018-02-01)[2018-03-21].http://www.freebuf.com/articles/paper/161741.html.

[3]许太安.木马攻击原理及防御技术[J].网络安全技术与应用,2014(3):97-98.

[4]张慧琳,邹维,韩心慧.网页木马机理与防御技术[J].软件学报,2013(4):843-858.

[5]360安全卫士.闷声发大财年度之星:2017挖矿木马的疯狂敛财暗流[EB/OL].(2017-12-25)[2018-03-21].https://weibo.com/1645903643/FAf1tcFJ3.

猜你喜欢

挖矿脚本木马
酒驾
合力攻坚 全面治理高校“挖矿”
多措并举 全流程整治“挖矿”
小木马
骑木马
小木马
数据库系统shell脚本应用
基于网页挖矿攻击的防御策略研究与实现
旋转木马
快乐假期