一种结合主动与被动探测技术的挖矿行为检测方法与流程

未命名 09-08 阅读:322 评论:0


1.本发明涉及虚拟货币挖矿检测方法,具体涉及一种在工控设备上实现对涉及挖矿行为的网络流量进行检测与识别的实现方法。


背景技术:

2.自2008年以来,在比特币与区块链的基础上,数种基于密码学原理,通过加密技术保护的数字货币或虚拟货币被创造,这种虚拟货币也被称为“加密货币(cryptocurrency)”。加密货币除了可以在交易平台与法定货币通过汇率买卖之外,还能通过利用计算机或其他设备完成某个“计算任务”获得。通过完成“计算任务”获得加密货币这一行为过程称作“挖矿(mining)”,进行挖矿行为的用户称作“矿工”,矿工用于挖矿的设备则称为“矿机”。“计算任务”也被称为“工作量证明”。中本聪提出比特币的同时,提出了一种称为“工作量证明(proofofwork)”的共识机制,矿工们在挖矿过程中需要利用矿机设备进行大量的计算任务,直到计算出一个符合条件的结果,才能获得一定量的比特币作为奖励。
3.因此,许多用户囤积了挖矿设备,建立矿场,消耗大量的水力、电力资源进行挖矿。一轮又一轮的炒币热潮使得各种加密货币的市值随之上涨,部分恶意黑客目光转向加密货币市场,利用挖矿脚本来实现流量变现,使得挖矿病毒成为这类黑客利用最为频繁的攻击方式之一。加密货币的挖矿活动不仅能源消耗和碳排放量大,对国民经济发展贡献度低,而且在其生产、交易环节衍生的风险越发突出,其盲目无序发展对推动经济社会高质量发展和节能减排带来不利影响。
4.从宏观层面考虑挖矿行为的危害:挖矿活动将导致行业和社会整体电力损耗大幅飙升,电力能源供应脱实向虚,而且碳排放量增大,不利于节能减排。同时,虚拟货币交易扰乱正常金融秩序。
5.从微观层面考虑挖矿行为的危害:恶意挖矿行为将大量消耗主机设备的计算资源,导致现有业务主机性能急剧下降,干扰正常业务的运行。长时间的挖矿行为会增加企业电力成本,降低主机设备所有其他进程的运行速度,缩短系统的使用寿命,甚至可能使主机设备崩溃,造成数据丢失。
6.挖矿行为本质上是完成一系列计算任务,这些任务在整个联合挖矿活动中通常是由“矿池(pool)”下发的。一个矿池会与多个矿工进行通信连接,给其下发挖矿任务,接受其提交的挖矿结果并进行验证。因此,目前已有的许多挖矿行为识别技术都是从网络流量着手,针对挖矿行为过程中流量通信特有的协议特征进行判断与识别。但是随着挖矿活动技术的提升,许多挖矿行为逐渐开始使用加密隧道、加密通信等技术,使得传统的流量特征识别无法准确检测。


技术实现要素:

7.发明目的:针对现有技术存在的问题,本发明的目的是提供一种基于流量侧和主机侧,结合主动与被动探测技术,在对挖矿行为流量特征以及其行为所造成设备资源占用
监控的同时,亦能主动探测矿池地址的技术方案。
8.技术方案:一种结合主动与被动探测技术的挖矿行为识别方法,包括流量侧识别,所述流量侧识别包括被动探测与主动探测,具体步骤如下:
9.通过被动探测获取矿池矿机通信的报文特征;
10.构造报文发给矿池,对返回的数据进行分析判断;
11.通过被动探测的方法获取已知矿池的ip地址,使用jarm获取该矿池服务器指纹,利用空间绘测产品搜索相同指纹的ip地址,再构造数据包主动发送请求,分析响应结果,判断ip的归属矿池。
12.进一步的,根据挖矿协议的通用特征、ioc、不同币种的特征关键字与加密识别指纹,所述被动探测包括静态检测、指纹识别、动态检测中的一种或多种,所述静态检测针对明文挖矿通信,所述指纹识别和/或动态检测针对加密挖矿通信。
13.其中,所述静态检测包括如下内容:
14.所述矿池与矿机在挖矿活动中遵循特定的挖矿协议,使得网络通信的数据以某些特定的格式进行封装传输。根据挖矿协议部署挖矿环境,进行挖矿测试并抓取流量包,分析矿池与矿机在通信过程中的流量特征,提取关键字作为静态规则。可选的,所述挖矿协议为stratum协议,在遵循stratum协议的挖矿活动中,数据的存储及传输以json-rpc格式进行。json-rpc有几个特定的字段:id、jsonrpc(版本)、error、results等,在这些字段名中,可能会存储着币种名称、使用的协议。另外在抓取流量包后,也可以查看通信过程中的握手信息,是否存在有ssl证书等。
15.所述指纹识别针对使用了https的加密通信过程,对其clienthello内有关tls元数据的部分进行提取生成哈希指纹进行识别。
16.所述动态检测包括如下内容:
17.考量矿池与矿机间的通信流量特征,从数据流维度出发,通过收集不同环境下的数据,对通信流特征进行提取,构建特征工程,搭建机器学习模型,将数据集分为训练集、测试集与验证集三部分,进行二分类识别。
18.所述挖矿行为识别方法还包括主机侧识别,所述主机侧识别通过对矿机固件做逆向分析,阅读矿机固件在通信功能中的代码,分析矿机固件的通信方式和特征,然后利用流量侧的方法来获取矿池的地址。进一步的,所述主机侧识别在各个硬件终端利用工具监测系统资源占用,识别相关进程、服务,以及使用文件检测、沙箱工具,对挖矿脚本进行检测。
19.有益效果
20.和现有技术相比,本发明将被动探测和主动探测相结合,具有如下显著进步:
21.1、对已有的公有协议与私有协议进行深度分析,针对不同币种的结构特点、通信特点等选取合适的被动探测方法,或将多个被动探测方法结合应用进行特征提取,以准确获取矿池矿机通信的报文特征。2、主动探测基于被动探测获取的报文特征来构造报文,对返回的数据进行分析判断,从而达到资产、服务识别,同时结合jarm与空间绘测,自主探测可能存在的矿机矿池与挖矿行为,在更深一层面阻断了隐藏较深的高威胁挖矿行为;3、在主机侧上对设备的资源占用、进程资源进行监测。
附图说明
22.图1为本发明所述的一种结合主动与被动探测技术的挖矿行为识别方法的框架图;
23.图2为挖矿数据流的部分截图(含协议特征);
24.图3为挖矿通信过程(针对https加密通信的指纹识别);
25.图4为jarm的代码图;
26.图5(a)-5(b)为成果案例图。
具体实施方式
27.以下实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。
28.一种结合主动与被动探测技术的挖矿行为识别方法,包括流量侧识别,流量侧识别包括被动探测与主动探测。优选的,该挖矿行为识别方法还包括主机侧识别,通过在主机侧上对设备的资源占用、进程资源进行监测,进一步完善和加强挖矿行为识别力度。
29.下面对被动探测、主动探测、主机侧识别的内容进行详细的介绍。
30.1.流量侧识别
31.1.1被动探测
32.(1)明文通信的静态检测
33.挖矿活动过程中矿池与矿机之间的通信需要遵循特定的协议,通过部署挖矿环境,进行挖矿测试并抓取流量包,分析其通信过程中的一些特定的流量特征,对其中的关键字提取作为静态规则,从而达到检测识别的目的,这种识别方式称为被动探测中的静态检测。
34.比特币在p2p网络中进行区块数据同步时遵循的bitcoin协议,有着特定的一套网络消息类型和固定的字符串。而基于比特币开发的其他加密货币,如达世币(dash)、莱特币(litecoin)等,其核心钱包应用也保留了bitcoin协议的大部分特征,仅在bitcoin协议基础上做了一些简单的修改用以与比特币区分。加密货币的核心客户端并非全部借鉴于比特币,象征着区块链进入2.0阶段的以太坊(ethereum),其以太币则有着另一套通信规则,同时采用了rlp(递归线性前缀,recursivelinearprefix)对通信数据进行编码,因此无法直接通过抓包分析提取关键字作静态识别。门罗币(monero)以及在其基础上开发的electroneum、oxen、sumokoin等加密货币也是有他们自己的一套通信协议,因为通信过程不加密,同样可以通过抓包及源码分析提取特征关键字作静态检测。
35.矿机在挖矿过程中与矿池之间的通信目前主要遵循stratum协议,stratum协议严格规定了矿机和矿池交互的接口数据结构和交互逻辑,矿机启动订阅任务、验证授权、接收任务、提交结果都需要遵循stratum协议规定的特定结构。stratum协议是基于json-rpc2.0封装的tcp通信协议,其内容为json数据格式,存在多个固定的特征字段,即矿池与矿机通信过程中是有一套固定的数据结构和特征关键字。根据这一特性,通过抓包及源码分析提取规则作静态检测。
36.如图2所示,附图标记1-3为主要识别特征。1所指表示该币种使用的是“bitcoin”协议,2所指为协议版本号,3所指为该币种通信中携带的固定字符串,可以用作识别该币种
的字符串特征之一。
37.(2)加密通信的指纹识别检测
38.在上述环境部署、抓包分析过程中,通信流量并不都是明文传输的,一些币种在挖矿过程中可以使用tls对通信过程进行加密,这一类挖矿行为无法通过匹配静态规则进行识别。但是由于tls协议本身的特性,传输数据内容加密,但是其在建立连接、握手交换证书的过程中,存在明文传输过程。理论上对于同一类大型矿池或者币种,其使用的https的加密证书以及相关的使用的密码套件关键字应当是一致的。因此,对于这类加密通信的挖矿行为,可以针对其clienthello内有关tls元数据的部分进行提取,生成哈希指纹进行识别。
39.(3)加密通信的动态检测
40.针对静态检测无法有效识别加密通信的问题,指纹识别能够起到很好的识别效果。但是由于现在大部分加密货币都是开源的,拥有编程能力的矿工可以通过修改源码中的关键字从而绕过静态检测和指纹识别;又或者矿工在连接矿机与矿池时使用了vpn或其他代理手段,这类场景无论是静态检测还是指纹识别都是不适用的。对此,采用动态检测的方法考量矿池与矿机间的通信流量特征,以此维度出发,对不同通信行为进行识别。针对于矿池与矿机的通信活动具有的长连接、固定频率交互等特点,可以从数据流维度出发,通过收集不同环境下的数据,对通信流特征进行提取,构建特征工程,利用各种不同的机器学习模型(决策树、knn等分类模型)搭建模型,将数据集分为训练集、测试集与验证集三部分,进行二分类识别。
41.为了能够有效地识别挖矿活动,本发明针对不同的挖矿活动灵活地使用对应的手段。简单来说,明文挖矿通信可以使用静态检测,加密了的挖矿通信若通过前述静态检测无法识别,则可以使用指纹识别,当指纹识别无法起作用时,则使用动态检测。
42.对于特征提取方法,大部分币种的提取方式都是相似的,通常将其按照通信是否加密、币种使用的协议、币种的代码框架等进行分类,对于符合上述不同分类的币种采取不同的特征提取方法。
43.例如,加密通信是使用提取加密通信中tls元数据生成哈希指纹,不加密通信则直接分析其明文中的关键字。币种使用通用stratum协议的则可以筛选stratum协议的通信字段来分析其特征(币种名、可能会有的矿池地址等)。某些币种是在bitcoin基础框架上拓展开发的,会有类似于bitcoin中的特征,则可以用分析bitcoin的方法来分析该币种。
44.上述所说的三个分类之间并不是互斥的,即某个币种可能采用了bitcoin的代码框架,使用了stratum通信协议,但可能是加密的,那么既会采用加密通信的识别方法来识别,也会使用针对stratum协议的方法来识别。针对不同币种的结构特点、通信特点,将各特征提取方法结合应用。
45.1.2主动探测
46.被动探测是在矿机挖矿过程中通过与矿池通信进行抓包分析和识别的方法。在此基础上,可以知道矿池矿机通信的报文特征。主动探测则是以此构造报文,对返回的数据进行分析判断,从而达到识别效果(即资产、服务识别);同时结合jarm与空间绘测的技术,自主探测可能存在的矿机矿池与挖矿行为,从而在更深一层面阻断了隐藏较深的高威胁挖矿行为。jarm是一个主动发包进行tls层服务器指纹识别的工具,主要用于快速地探测在一个集群内的所有服务器是否具有相同的tls配置,识别服务器可能隶属的组织,识别默认应用
程序或基础架构。先通过被动探测的方法获取已知矿池的ip地址,使用jarm工具获得其服务器指纹,并利用空间绘测产品搜索jarm值相同的ip地址,再构造矿机数据包主动发送请求,根据响应结果及数据判断其是否为同个矿池归属下的ip池。
47.2.主机侧识别
48.无论是被动探测还是主动探测,均属于流量侧的挖矿行为检测识别方法。对于一些专用矿机,如蚂蚁矿机等asic矿机,因为其内部使用的是专用的固件,可以使用逆向分析技术,分析其通信方式及特征,构造远程识别或被动静态识别(即利用上文流量侧的方法,通过构造通信包主动发起与矿池的连接进行远程识别,或者被动的静态识别来获取矿池的地址,从而进行封禁或其他操作)。
49.此外还可以在各个硬件终端利用工具监测系统资源占用,识别相关进程、服务,以及使用文件检测、沙箱工具等,对挖矿脚本进行检测。
50.主机侧与流量侧的不同点在于,挖矿主机的内部通常有专用固件,其中的通信特征会和挖矿软件的通信特征有所不同。它们的共同点是,因为挖矿活动都会有网络通信,因此都离不开流量侧的方法。
51.下面以图1作为一个优选实施例,对本发明的挖矿活动检测方案作进一步的描述:
52.步骤1,挖矿活动被动探测中的静态检测和指纹识别,主要通过对加密货币币种、协议、ioc以及加密指纹(图1中未示意指纹识别)进行关键字识别,提取规则。
53.步骤2,启动流量分析引擎,对流量进行分析,对检测设备的网络通信流量进行过滤,同时启用主机侧探测引擎,监控设备的资源占用与进程信息,对高cpu、高内存占比的进程文件进行告警。
54.步骤3,对一些具有长连接、频繁通信、传输报文较长等特征的加密通信,使用动态检测,通过其通信过程中可能存在的登录鉴权、任务下发的tcp长连接进行分析,以进一步确定是否为挖矿行为。
55.步骤4,对已经检测出来并确定为矿池地址的ip,使用jarm工具,获取矿池地址的服务器指纹,并利用空间绘测产品搜索jarm值相同的ip地址,再构造矿机数据包对可疑ip主动发送请求,根据响应结果及数据判断其是否为同个矿池归属下的ip池。
56.以上所述实施例仅表达了本发明的可选和/或优选实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

技术特征:
1.一种结合主动与被动探测技术的挖矿行为识别方法,其特征在于,包括流量侧识别,所述流量侧识别包括被动探测和主动探测,具体步骤如下:通过被动探测获取矿池矿机通信的报文特征;构造报文发给矿池,对返回的数据进行分析判断;通过被动探测获取已知矿池的ip地址,使用jarm获取该矿池服务器指纹,利用空间绘测产品搜索相同指纹的ip地址,再构造数据包主动发送请求,分析响应结果,判断ip的归属矿池。2.根据权利要求1所述的挖矿行为识别方法,其特征在于,所述被动探测包括静态检测、指纹识别、动态检测中的一种或多种,所述静态检测针对明文挖矿通信,所述指纹识别和/或动态检测针对加密挖矿通信。3.根据权利要求2所述的挖矿行为识别方法,其特征在于,所述静态检测包括如下内容:所述矿池与矿机在挖矿活动中遵循挖矿协议,根据挖矿协议部署挖矿环境,进行挖矿测试并抓取流量包,分析矿池与矿机在通信过程中的流量特征,提取关键字作为静态规则。4.根据权利要求3所述的挖矿行为识别方法,其特征在于,通过抓包及源码分析提取关键字。5.根据权利要求3所述的挖矿行为识别方法,其特征在于,在抓取流量包后,查看通信过程中的握手信息。6.根据权利要求3所述的挖矿行为识别方法,其特征在于,所述挖矿协议为stratum协议,数据的存储及传输以json-rpc格式进行,所述json-rpc格式的字段包括id、jsonrpc、error、results。7.根据权利要求2所述的挖矿行为识别方法,其特征在于,所述指纹识别针对使用了https的加密通信过程,对其client hello内有关tls元数据的部分进行提取生成哈希指纹进行识别。8.根据权利要求2所述的挖矿行为识别方法,其特征在于,所述动态检测包括如下内容:考量矿池与矿机间的通信流量特征,从数据流维度出发,通过收集不同环境下的数据,对通信流特征进行提取,构建特征工程,搭建机器学习模型,将数据集分为训练集、测试集与验证集三部分,进行二分类识别。9.根据权利要求1-8任一所述的挖矿行为识别方法,其特征在于,还包括主机侧识别,所述主机侧识别通过对矿机固件做逆向分析,阅读矿机固件在通信功能中的代码,分析矿机固件的通信方式和特征,然后利用流量侧的方法来获取矿池的地址。10.根据权利要求9所述的挖矿行为识别方法,其特征在于,所述主机侧识别在各个硬件终端利用工具监测系统资源占用,识别相关进程、服务,以及使用文件检测、沙箱工具,对挖矿脚本进行检测。

技术总结
本发明公开了一种结合主动与被动探测技术的挖矿行为识别方法,包括流量侧识别,所述流量侧识别包括被动探测与主动探测,具体包括如下内容:通过被动探测获取矿池矿机通信的报文特征;构造报文发给矿池,对返回的数据进行分析判断;通过被动探测的方法获取已知矿池的IP地址,使用JARM获取该矿池服务器指纹,利用空间绘测产品搜索相同指纹的IP地址,再构造数据包主动发送请求,分析响应结果,判断IP的归属矿池。本发明结合主动与被动探测技术,在对挖矿行为流量特征以及其行为所造成设备资源占用监控的同时,能够自主探测可能存在的矿机矿池与挖矿行为,阻断了隐藏较深的高威胁挖矿行为。行为。行为。


技术研发人员:孙浩 潘兵 顾欢欢 刘泽钶 邓志情 杨帆 糜靖峰 汤永田
受保护的技术使用者:南京中新赛克科技有限责任公司
技术研发日:2023.03.29
技术公布日:2023/9/7
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐