引言
对于企业机构和广大网民来说,除了面对勒索病毒这一类威胁以外,其往往面临的另一类广泛的网络威胁类型就是感染恶意挖矿程序。恶意挖矿,就是在用户不知情或未经允许的情况下,占用用户终端设备的系统资源和网络资源进行挖矿,从而获取虚拟币牟利。其通常可以发生在用户的个人电脑,企业网站或服务器,个人手机,网络路由器。随着近年来虚拟货币交易市场的发展,以及虚拟货币的金钱价值,恶意挖矿攻击已经成为影响最为广泛的一类威胁攻击,并且影响着企业机构和广大个人网民。
为了帮助企业机构和个人网民应对恶意挖矿程序攻击,发现和清除恶意挖矿程序,防护和避免感染恶意挖矿程序,360威胁情报中心整理了如下针对挖矿活动相关的现状分析和检测处置建议。
本文采用Q&A的形式向企业机构人员和个人网民介绍其通常关心的恶意挖矿攻击的相关问题,并根据阅读的人群分为企业篇和个人篇。
本文推荐如下类人员阅读:
企业网站或服务器管理员,企业安全运维人员,关心恶意挖矿攻击的安全从业者和个人网民
企业篇
为什么会感染恶意挖矿程序
通常企业机构的网络管理员或安全运维人员遇到企业内网主机感染恶意挖矿程序,或者网站、服务器以及使用的云服务被植入恶意挖矿程序的时候,都不免提出“为什么会感染恶意挖矿程序,以及是如何感染的”诸如此类的问题。
我们总结了目前感染恶意挖矿程序的主要方式:
利用类似其他病毒木马程序的传播方式。
例如钓鱼欺诈,色情内容诱导,伪装成热门内容的图片或文档,捆绑正常应用程序等,当用户被诱导内容迷惑并双击打开恶意的文件或程序后,恶意挖矿程序会在后台执行并悄悄的进行挖矿行为。
企业机构暴露在公网上的主机、服务器、网站和Web服务、使用的云服务等被入侵。
通常由于暴露在公网上的主机和服务由于未及时更新系统或组件补丁,导致存在一些可利用的远程利用漏洞,或由于错误的配置和设置了较弱的口令导致被登录凭据被暴力破解或绕过认证和校验过程。
360威胁情报中心在之前披露“8220挖矿团伙”[1]一文中就提到了部分常用的远程利用漏洞:WebLogic XMLDecoder反序列化漏洞、Drupal的远程任意代码执行漏洞、JBoss反序列化命令执行漏洞、Couchdb的组合漏洞、Redis、Hadoop未授权访问漏洞。当此类0day漏洞公开甚至漏洞利用代码公开时,黑客就会立即使用其探测公网上存在漏洞的主机并进行攻击尝试,而此时往往绝大部分主机系统和组件尚未及时修补,或采取一些补救措施。
内部人员私自安装和运行挖矿程序
企业内部人员带来的安全风险往往不可忽视,需要防止企业机构内部人员私自利用内部网络和机器进行挖矿牟利,避免出现类似“湖南某中学校长利用校园网络进行挖矿”的事件。
恶意挖矿会造成哪些影响
恶意挖矿造成的最直接的影响就是耗电,造成网络拥堵。由于挖矿程序会消耗大量的CPU或GPU资源,占用大量的系统资源和网络资源,其可能造成系统运行卡顿,系统或在线服务运行状态异常,造成内部网络拥堵,严重的可能造成线上业务和在线服务的拒绝服务,以及对使用相关服务的用户造成安全风险。
企业机构遭受恶意挖矿攻击不应该被忽视,虽然其攻击的目的在于赚取电子货币牟利,但更重要的是在于揭露了企业网络安全存在有效的入侵渠道,黑客或网络攻击团伙可以发起恶意挖矿攻击的同时,也可以实施更具有危害性的恶意活动,比如信息窃密、勒索攻击。
恶意挖矿攻击是如何实现的
那么恶意挖矿攻击具体是如何实现的呢,这里我们总结了常见的恶意挖矿攻击中重要攻击链环节主要使用的攻击战术和技术。
初始攻击入口
针对企业和机构的服务器、主机和相关Web服务的恶意挖矿攻击通常使用的初始攻击入口分为如下三类:
远程代码执行漏洞
实施恶意挖矿攻击的黑客团伙通常会利用1-day或N-day的漏洞利用程序或成熟的商业漏洞利用包对公网上存在漏洞的主机和服务进行远程攻击利用并执行相关命令达到植入恶意挖矿程序的目的。
下表是结合近一年来公开的恶意挖矿攻击中使用的漏洞信息:
暴力破解
黑客团伙通常还会针对目标服务器和主机开放的Web服务和应用进行暴力破解获得权限外,例如暴力破解Tomcat服务器或SQL Server服务器,对SSH、RDP登录凭据的暴力猜解。
未正确配置导致未授权访问漏洞
还有一类漏洞攻击是由于部署在服务器上的应用服务和组件未正确配置,导致存在未授权访问的漏洞。黑客团伙对相关服务端口进行批量扫描,当探测到具有未授权访问漏洞的主机和服务器时,通过注入执行脚本和命令实现进一步的下载植入恶意挖矿程序。
下表列举了恶意挖矿攻击中常用的未授权漏洞。
除了上述攻击入口以外,恶意挖矿攻击也会利用诸如供应链攻击,和病毒木马类似的传播方式实施攻击。
植入,执行和持久性
恶意挖矿攻击通常利用远程代码执行漏洞或未授权漏洞执行命令并下载释放后续的恶意挖矿脚本或木马程序。
恶意挖矿木马程序通常会使用常见的一些攻击技术进行植入,执行,持久化。例如使用WMIC执行命令植入,使用UAC Bypass相关技术,白利用,使用任务计划持久性执行或在Linux环境下利用crontab定时任务执行等。
下图为在8220挖矿团伙一文[1]中分析的恶意挖矿脚本,其通过写入crontab定时任务持久性执行,并执行wget或curl命令远程下载恶意程序。
竞争与对抗
恶意挖矿攻击会利用混淆,加密,加壳等手段对抗检测,除此以外为了保障目标主机用于自身挖矿的独占性,通常还会出现“黑吃黑”的行为。例如:
修改host文件,屏蔽其他恶意挖矿程序的域名访问
搜索并终止其他挖矿程序进程
通过iptables修改防火墙策略,甚至主动封堵某些攻击漏洞入口以避免其他的恶意挖矿攻击利用
恶意挖矿程序有哪些形态
当前恶意挖矿程序主要的形态分为三种:
自开发的恶意挖矿程序,其内嵌了挖矿相关功能代码,并通常附带有其他的病毒、木马恶意行为
利用开源的挖矿代码编译实现,并通过PowerShell,Shell脚本或Downloader程序加载执行,如XMRig [7], CNRig [8],XMR-Stak[9]。
其中XMRig是一个开源的跨平台的门罗算法挖矿项目,其主要针对CPU挖矿,并支持38种以上的币种。由于其开源、跨平台和挖矿币种类别支持丰富,已经成为各类挖矿病毒家族最主要的挖矿实现核心。
Javascript脚本挖矿,其主要是基于CoinHive[6]项目调用其提供的JS脚本接口实现挖矿功能。由于JS脚本实现的便利性,其可以方便的植入到入侵的网站网页中,利用访问用户的终端设备实现挖矿行为。
如何发现是否感染恶意挖矿程序
那么如何发现是否感染恶意挖矿程序,本文提出几种比较有效而又简易的排查方法。
“肉眼”排查或经验排查法
由于挖矿程序通常会占用大量的系统资源和网络资源,所以结合经验是快速判断企业内部是否遭受恶意挖矿攻击的最简易手段。
通常企业机构内部出现异常的多台主机卡顿情况并且相关主机风扇狂响,在线业务或服务出现频繁无响应,内部网络出现拥堵,在反复重启,并排除系统和程序本身的问题后依然无法解决,那么就需要考虑是否感染了恶意挖矿程序。
技术排查法
1.进程行为
通过top命令查看CPU占用率情况,并按C键通过占用率排序,查找CPU占用率高的进程。
2.网络连接状态
通过netstat -anp命令可以查看主机网络连接状态和对应进程,查看是否存在异常的网络连接。
3.自启动或任务计划脚本
查看自启动或定时任务列表,例如通过crontab查看当前的定时任务。
4.相关配置文件
查看主机的例如/etc/hosts,iptables配置等是否异常。
5.日志文件
通过查看/var/log下的主机或应用日志,例如这里查看/var/log/cron*下的相关日志。
6.安全防护日志
查看内部网络和主机的安全防护设备告警和日志信息,查找异常。
通常在企业安全人员发现恶意挖矿攻击时,初始的攻击入口和脚本程序可能已经被删除,给事后追溯和还原攻击过程带来困难,所以更需要依赖于服务器和主机上的终端日志信息以及企业内部部署的安全防护设备产生的日志信息。
如何防护恶意挖矿攻击
如何防护恶意挖矿攻击:
1.企业网络或系统管理员以及安全运维人员应该在其企业内部使用的相关系统,组件和服务出现公开的相关远程利用漏洞时,尽快更新其到最新版本,或在为推出安全更新时采取恰当的缓解措施
2.对于在线系统和业务需要采用正确的安全配置策略,使用严格的认证和授权策略,并设置复杂的访问凭证
3.加强企业机构人员的安全意识,避免企业人员访问带有恶意挖矿程序的文件、网站
4.制定相关安全条款,杜绝内部人员的主动挖矿行为
个人篇
个人用户面对的恶意挖矿问题
相比企业机构来说,个人上网用户面对着同样相似的恶意挖矿问题,如个人电脑,手机,路由器,以及各类智能设备存在被感染和用于恶意挖矿的情况。像现在手机的硬件配置往往能够提供很高的算力。360威胁情报中心在今年早些就配合360网络研究院及多个安全部门联合分析和披露了名为ADB.Miner的安卓蠕虫[2],其就是利用智能电视或智能电视盒子进行恶意挖矿。
当用户安装了内嵌有挖矿程序模块的APP应用,或访问了植入有挖矿脚本的不安全网站或被入侵的网站,往往就会造成设备算力被用于恶意挖矿。而其影响通常会造成设备和系统运行不稳定,异常发热和耗电,甚至会影响设备的使用寿命和电池寿命。
如何避免感染恶意挖矿程序
以下我们提出几点安全建议让个人用户避免感染恶意挖矿程序:
1.提高安全意识,从正常的应用市场和渠道下载安装应用程序,不要随意点击和访问一些具有诱导性质的网页;
2.及时更新应用版本,系统版本和固件版本;
3.安装个人终端安全防护软件。
典型的恶意挖矿恶意代码家族及自查方法
8220挖矿攻击
概述自查办法
1.执行netstat -an命令,存在异常的8220端口连接
2. top命令查看CPU占用率最高的进程名为java,如下图为利用Hadoop未授权访问漏洞攻击
3.在/var/tmp/目录下存在如java、pscf3、w.conf等名称的文件
4.执行crontab -u yarn -l命令查看是否存在可疑的定时任务
5.通过查看/var/log/cron*相关的crontab日志,看是否存在利用wget访问和下载异常的远程shell脚本
如何清除和防护
1.终止挖矿进程,删除/var/tmp下的异常文件
2.删除异常的crontab任务
3.检查是否存在上述漏洞的组件或服务,若存在则更新相关应用和组件到最新版本,若组件或服务未配置远程认证访问,则开启相应的认证配置
WannaMiner/MsraMiner/HSMiner概述自查方法
检查是否存在任务计划名为:“Microsoft\Windows\UPnP\Spoolsv”的任务
检查%windir%目录下是否存在cls.bat和spoolsv.exe和windows.exe文件
并检查是否存在可疑的java.exe进程
如何清除
删除检查到的可疑的任务计划和自启动项
结束可疑的进程如运行路径为:%windir%\IME\Microsofts\和运行路径为%windir%\spoolsv.exe和%windir%\windows.exe的进程
删除c盘目录下的012.exe和023.exe文件
防护方法
安装Windows系统补丁并保持自动更新
如果不需要使用Windows局域网共享服务,可以通过设置防火墙规则来关闭445等端口
安装360天擎或360安全卫士可有效防护该类挖矿病毒的攻击
JbossMiner
概述自查方法Linux平台
1.检查是否存在/tmp/hawk 文件
2.检查是否存在/tmp/lower*.sh或/tmp/root*.sh文件
3.检查crontab中是否有可疑的未知定时任务
Windows平台
检查是否有名为Update*的可疑计划任务和Updater*的可疑启动项
检查是否存在%temp%/svthost.exe和%temp%/svshost.exe文件
检查是否存在一个rigd32.txt的进程
如何清除Linux平台
可以执行如下步骤执行清除:
删除crontab中可疑的未知定时任务
删除/tmp/目录下的bashd、lower*.sh、root*.sh等可疑文件
结束第2步发现的各种可疑文件对应的可疑进程。
Windows平台
可以执行如下步骤进行清除:
删除可疑的计划任务和启动项
结束进程中名为svshost.exe、svthost.exe的进程
结束可疑的powershell.exe、regd32.txt等进程
清空%temp%目录下的所有缓存文件
防护方法
如果不需要使用Windows局域网共享服务,可以通过设置防火墙规则来关闭445等端口
修改服务器上的数据库密码,设置为更强壮的密码
安装系统补丁和升级产品所使用的类库
Windows下可以安装360天擎或360安全卫士可有效防护该类挖矿病毒的攻击
MyKings
MyKings是一个大规模多重僵尸网络,并安装门罗币挖矿机,利用服务器资源挖矿。
概述自查方法
1.检查是否存在以下文件:
c:\windows\system\my1.bat
c:\windows\tasks\my1.job
c:\windows\system\upslist.txt
c:\program files\kugou2010\ms.exe
c:\windows\system\cab.exe
c:\windows\system\cabs.exe
2.检查是否有名为xWinWpdSrv的服务
如何清除
可以执行如下步骤进行清除:
1.删除自查方法1中所列的文件
2.停止并删除xWinWpdSrv服务
防护办法
从僵尸网络当前的攻击重点来看,防范其通过1433端口入侵计算机是非常有必要的。此外,Bot程序还有多种攻击方式尚未使用,这些攻击方式可能在未来的某一天被开启,因此也需要防范可能发生的攻击。对此,我们总结以下几个防御策略:
1.对于未遭到入侵的服务器,注意msSQL,RDP,Telnet等服务的弱口令问题。如果这些服务设置了弱口令,需要尽快修改;
2.对于无需使用的服务不要随意开放,对于必须使用的服务,注意相关服务的弱口令问题;
3.特别注意445端口的开放情况,如果不需要使用Windows局域网共享服务,可以通过设置防火墙规则来关闭445等端口。并及时打上补丁更新操作系统。
4.关注服务器运行状况,注意CPU占用率和进程列表和网络流量情况可以及时发现系统存在的异常。此外,注意系统账户情况,禁用不必要的账户。
5. Windows下可以安装360天擎或360安全卫士可有效防护该类挖矿病毒的攻击
ADB.Miner挖矿攻击自查方法
概述自查方法
2.执行ps | grep debuggerd命令,存在/system/bin/debuggerd_real进程
3.执行ls /data/local/tmp命令,查看目录下是否存在如下文件名称:droidbot, nohup, bot.dat, xmrig*, invoke.sh, debuggerd等。
如何清除
可以执行如下步骤进行清除:
2.执行ps | grep /data/local/tmp列举相关挖矿进程,执行kill -9进行终止
3.执行rm命令删除/data/local/tmp下相关文件
4. mv /system/bin/debuggerd_real/system/bin/debuggerd恢复debuggerd文件
防护办法
可以采用如下方式进行防护:
1.进入设置界面,关闭adb调试或adb wifi调试开关
3.在root权限下可以配置iptables禁止外部访问5555端口:
iptables -A INPUT -p tcp -m tcp --dport 5555-j REJECT
总结
附录
附录一 恶意挖矿常见攻击入口列表
附录二 恶意挖矿样本家族列表
参考链接
1.https://ti.360.net/blog/articles/8220-mining-gang-in-china/
2.https://ti.360.net/blog/articles/more-infomation-about-adb-miner/
3.https://blog.trendmicro.com/trendlabs-security-intelligence/rig-exploit-kit-now-using-cve-2018-8174-to-deliver-monero-miner/
4.https://research.checkpoint.com/jenkins-miner-one-biggest-mining-operations-ever-discovered/
5.https://www.volexity.com/blog/2018/08/27/active-exploitation-of-new-apache-struts-vulnerability-cve-2018-11776-deploys-cryptocurrency-miner/
6.https://coinhive.com/
7.https://github.com/xmrig/xmrig
8.https://github.com/cnrig/cnrig
9.https://github.com/fireice-uk/xmr-stak
领取专属 10元无门槛券
私享最新 技术干货