虚拟货币挖矿检测与防御

虚拟货币挖矿检测与防御
⼀、前⾔
近年来由于虚拟货币区块链等技术和产品的发展以及虚拟货币价值的持续升⾼,让原本⽤于DDoS攻击或者发垃圾邮件的僵⼫⽹络⼜看到了另⼀种新的变现途径:虚拟货币"挖矿"。所以⼀些被攻陷的主机常常也被植⼊挖矿⽊马,开始偷偷地消耗服务器资源来挖矿,甚⾄企业的内⿁也会给服务器安装挖矿⽊马,防不胜防。
作为企业,如何检测防范挖矿这种危害⾏为?其实挖矿⽊马本⾝是⼀个程序,同传统的⽊马检测思路⼀致,也是从流量层或主机层⼊⼿。
⼆、流量
2.1 挖矿协议
挖矿机器与矿池之间的通信需要遵循特定的协议,⽬前主流的挖矿协议为Stratum协议,在很久之前还有
GBT(getblocktemplate)协议和getwork协议,不过由于带宽和性能的消耗较多,在7、8年前就已经被新的矿机所抛弃[1] 。
回到Stratum协议,该协议在2012年推出,是从getwork协议的基础上演变⽽来的,解决了getwork协议效率低下的问题[2]。在Stratum中,挖矿机器与矿池之间采⽤TCP的形式传输数据,数据传输的过程基于JSON-RPC(⼀个⽆状态且轻量级的远程过程调⽤RPC传送协议)。矿机向矿池可使⽤如下8个发放发送数据:
矿池向矿机则可使⽤如下7个⽅法发送数据:
矿机使⽤Stratum协议的总体⼯作流程如下:
蚀刻因子(1)矿机任务订阅
矿机=>矿池:mining.subscribe
矿池=>矿机:ify
(2)矿机认证
矿机=>矿池:mining.authorize
矿池=>矿机:返回认证的结果,true 或者false
(3)设置难度和extranonceing.set_extranonce,并通知矿机⼯作
矿池=>矿机:mining.set_difficulty、mining.set_extranonce、ify
(4)矿机提交结果链条传动
矿机=>矿池:mining.submit
矿池=>矿机:返回是否接受结果,true 或者false
油底壳垫值得注意的是,上⾯是标准的Stratum,由slush pool(最⼤的BTC矿池)提出[3],由于加密货币的种类繁多,不同的加密货币采⽤的通信协议会有部分不同。⽐如常见的XMR(门罗币)挖矿程序xmrig[4]、xmr-stak[5]则会将上述的协议进
密货币采⽤的通信协议会有部分不同。⽐如常见的XMR(门罗币)挖矿程序xmrig[4]、xmr-stak[5]则会将上述的协议进⾏修改。门罗币简化了上述流程,通过login⽅法来进⾏认证和订阅。矿池端在接收到login信息后,如果验证通过,则会直接下发任务 —— 这样⼦就将标准Stratum协议的三次通信压缩为⼀次,⼤⼤减少了通信流量。
2.2 协议检测
⾸先看下真正的挖矿流量是什么样⼦:
可以看出,BTC挖矿采⽤了标准的Stratum协议,其传输数据采⽤标准的json格式,有⽐较明显的⽅法标识,如mining.subscribe、mining.authorize等。⽽XMR挖矿流量简化了上述过程,数据包⼤概分成了两类,⼀类是登录包,⼀类是提交包。这两种包也有明显的特点:
(1)⾸先是有jsonrpc的版本标识,这个是必须要有的。
(2)id字段请求和响应相等,并且逐步递增。
(3)带有明显的特征字段,例如login、submit、params、seed_hash等。
针对上述的特征,可以通过特征⼯程的⽅式建⽴规则,针对性的进⾏检测。由于挖矿⾏为本⾝的特性,⼀天中的登录和认证包较少,⽽提交包和下发任务的包很多,可针对这种情况进⾏优化。
2.3 检测对抗
针对矿机与矿池通信的协议检测仅能覆盖到明⽂通信的情况,⽬前绝⼤多数矿池都⽀持了加密通信。
协议加密是未来IDS要解决问题。那么针对加密传输的情况,我们能够在握⼿协议和证书两个层⾯来
做⼀些事情。由于挖矿的特殊性,矿池的域名、证书是不会轻易进⾏变化的,并且矿池的具有聚集属性,即越⼤的矿池集合到的矿机越多,越能够保证收益的稳定性。所以也可以针对排名较为靠前的矿池进⾏域名和证书的收集,添加针对性的检测策略。
三、主机
早期的挖矿⽊马在感染主机后显著的⾏为特征是极⼤的占⽤CPU及GPU资源,主要包括:⾼CPU 和 GPU 使⽤率、响应速度慢、崩溃或频繁重新启动、系统过热、异常⽹络活动(⽐如连接挖矿相关的域名或 IP)。
随着对抗的深⼊和区块链技术的升级,挖矿采取更加隐蔽的CPU/GPU占⽤,防⽌被⽤户发现,同时出现了⼀类以占⽤硬盘空间和⽹络带宽来进⾏挖矿的虚拟货币,CPU并没有表现出极⾼的使⽤率,反⽽是硬盘被占⽤了极⼤的空间,⽐较有代表性的币种是Filecoin、Chia、Swarm和Dfinity。
虽然经过多年的演进,挖矿⽊马攻击主机的⼿法越来越多样化和精细化,但从攻击流程来说并没有⼤的变化,总体上分为三个阶段:
(1)攻击者利⽤主机或者服务漏洞获取上传挖矿⽊马的必要权限。⽐如未授权访问漏洞、Web服务远程代码执⾏漏洞、服务器系统组件漏洞等;
(2)攻击者将挖矿⽊马上传到受害主机后,启动⽊马程序⾃动实现持久化运⾏和⾃⾝隐藏。
三相四极插头(3)挖矿⽊马为了实现收益的最⼤化,使⽤内⽹探测扫描,密码爆破等⽅式发现其他潜在受害⽬标主机,并在内⽹主机间进⾏⼤范围传播
在整个攻击流程中,主机层⾯的检测在上述三个阶段中均有合适的切⼊点,⼀般会从进程特征,⽹络连接,⽂件特征等多个维度进⾏检测。
在第⼀阶段,攻击者利⽤已知漏洞对主机进⾏⾃动化攻击,攻击成功后,接着通过命令执⾏等⽅式下载执⾏挖矿⽊马,
在第⼀阶段,攻击者利⽤已知漏洞对主机进⾏⾃动化攻击,攻击成功后,接着通过命令执⾏等⽅式下载执⾏挖矿⽊马,同时会检查系统有没有其他挖矿进程运⾏,如果有就结束掉,确保⾃⼰独占挖矿资源。通过对常见挖矿⽊马脚本命令执⾏链的进⾏分析,可以⽐较容易地发现其中的异常。
在第⼆阶段,挖矿⽊马植⼊到受害主机,⼀般会写⼊计划任务实现持久化,并开始挖矿。
挖矿⽊马在进⾏挖矿时,会对矿池进⾏DNS查询和IP连接。通过对⽐收集的公开矿池域名和IP,在⽊马进⾏⽹络连接的时候可以有效告警。当然,这样不能检测连接私有矿池的挖矿⽊马,但是对连接公开矿池的挖矿⽊马具有很好的检测能⼒。如下所⽰,这是收集的部分公开矿池地址。
除了命令执⾏链和主机⽹络连接信息的检测,⼤部分挖矿⽊马会在主机落地。通过收集⼤量的挖矿⽊马样本,提取静态检测规则或者使⽤机器学习的⽅式训练检测模型来发现潜在的挖矿⽊马。⽐如科恩实验室的BianryAI引擎就是类似⽅法[6]。
在第三阶段,挖矿⽊马为了实现利益最⼤化,开始横向移动,感染更多的机器。⾼级的挖矿⽊马⼀般会⾃带密码库和具备扫描爆破功能,⽤来爆破登陆同⼀⽹段⾥的主机。这部分可以通过东西向流量检测以及HIDS来发现。
四、挖矿⽊马的纵深防御
4.1 威胁情报
⽆论是因为可利⽤的漏洞数量(且因为补丁更新会不断收敛)的原因,还是⽹络资源总量的原因,甚⾄是僵⼫⽹络互相竞争原因,同时期存在于⽹络中的僵⼫⽹络数量其实是有限的。如果基于威胁情报共享,那么⽹络和计算资源相对丰富的各⼤型互联⽹公司,以及电信运营商所提供的情报⼏乎可以覆盖现⽹主要挖矿⽊马⽹络。
TSRC在以往的博⽂中,也分享过不少⽊马与僵⼫⽹络的IOC信息。从《云端博弈 —— ⽊马屠城》[7]⼀⽂可以看到,通常活跃的僵⼫⽹络,其⽊马常⽤的就是⼏个固定版本,或者有明显的家族特征;从
电动液控闸阀《BORG:⼀个快速进化的僵⼫⽹络》[8]可以看到,僵⼫⽹络的活跃程度与0day\1day的在⽹络中的存在周期是相关的,且僵⼫⽹络虽然也在进化,但也有其家族特征,依然是可以通过威胁情报关联检测与打击。
4.2 资⾦链
虽然虚拟货币有其宣称的匿名性和去中⼼化特点,但⼤量的虚拟币需要变现,那么还是会有与资⾦相关的活动痕迹可追溯。
今年初的时候,币圈掀起⼀股所谓的“空投”(发⾏新的虚拟货币的资⾦募集⾏为)热潮,其中⼤部分都是骗⼦,募集了散户投资者资⾦之后,根本不会上市交易。笔者曾经追踪过⼏个“空投”事件,其募集的‘资⾦()’最终都流⼊了⼏个⼤账户,并且⾛到了交易所。那么⾛到交易所之后如何追踪呢?我们来看看下⾯的案例。
焦磷酸盐
2020年8⽉27⽇,某国通过诉讼,追缴⿊客⼊侵加密交易所盗取的资⾦。
“诉讼书中表⽰,执法⼈员是通过分析区块链来识别特定BTC/ETH地址的所有者。例如,⿊客可能会创建多个BTC地址来接收来⾃不同地址的BTC,当⿊客想要处理它接收到的BTC 时,这些收款地址就会发⽣聚集和关联。执法部门利⽤⼏家不同的区块链分析公司提供的商业服务来调查虚拟货币交易,
这些公司通过分析BTC虚拟货币交易背后的数据,创建⼤型数据库,在数据库中进⾏数据关联推导,最终追踪溯源到某国⿊客的盗窃⾏为和资⾦流向。”“诉讼书中表⽰,执法⼈员是通过分析区块链来识别特定BTC/ETH地址的所有者。例如,⿊客可能会创建多个BTC地址来接收来⾃不同地址的BTC,当⿊客想要处理它接收到的BTC 时,这些收款地址就会发⽣聚集和关联。执法部门利⽤⼏家不同的区块链分析公司提供的商业服务来调查虚拟货币交易,这些公司通过分析BTC虚拟货币交易背后的数据,创建⼤型数据库,在数据库中进⾏数据关联推导,最终追踪溯源到某国⿊客的盗窃⾏为和资⾦流向。”
五、结尾
不管是通过⽹络层的宙斯盾流量安全分析还是主机层的洋葱EDR,我们在检测挖矿⽊马的检测⽅⾯都做了⼤量的⼯作,既保护了⾃⾝业务的安全和稳定,也通过安全产品能⼒输出为云客户提供安全保障(⽐如上述能⼒已整合到腾讯云主机
既保护了⾃⾝业务的安全和稳定,也通过安全产品能⼒输出为云客户提供安全保障(⽐如上述能⼒已整合到腾讯云主机安全产品“云镜”),挖矿治理是需要全⾏业的合作,欢迎与⼤家⼀起探讨合作解决。
参考
[6]腾讯主机安全(云镜)兵器库:斩杀挖矿⽊马的利剑-BinaryAI引擎
[7] 云端博弈——⽊马屠城
[8] BORG :⼀个快速进化的僵⼫⽹络
[9] 国家升级“挖矿”整治⼒度,腾讯御界NDR助⼒反制“挖矿”⽊马
作者:[腾讯洋葱HIDS团队] xti9er、七夜、[腾讯宙斯盾流量检测系统] Pav1

本文发布于:2024-09-22 13:30:23,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/307162.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:挖矿   检测   协议   矿池   货币   虚拟   矿机   漏洞
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议