一种基于加密流量分析的挖矿行为实时检测方法技术

技术编号:36451095 阅读:14 留言:0更新日期:2023-01-25 22:47
本发明专利技术涉及一种基于加密流量分析的挖矿行为实时检测方法,属于区块链加密网络流量处理技术领域。本方法从被加密的流量中提取数据包长度、数据包数量、数据包到达时间间隔和流量持续时间作为特征,进而与机器学习模型相结合,实现挖矿行为精准识别。在网络流量被加密场景下,能够对加密货币挖矿行为进行检测,实现对恶意挖矿流量的及时阻断,保障设备资源免受侵犯。本发明专利技术只需要部署在网关处,减小网络管理员实施所需成本,同时仅需被动监听流量,不会对网络正常工作产生干扰。不会对网络正常工作产生干扰。不会对网络正常工作产生干扰。

【技术实现步骤摘要】
一种基于加密流量分析的挖矿行为实时检测方法


[0001]本专利技术涉及一种基于加密流量分析的挖矿行为实时检测方法,属于区块链加密网络流量处理


技术介绍

[0002]区块链是一种共享的分布式数据库,由多个保存信息的区块连接而成。其中,每一个区块包含时间戳、交易记录和前一个区块的哈希等信息。区块链通常由P2P网络维护,被保存在多个服务器中。这些服务器被称为区块链网络中的节点,所有节点共同遵守区块链的一个协议,以保持相互通信和验证新区块的产生。由于每个区块都包含上一个区块的信息,对任意区块的修改都会影响到后续区块的正确性,因此,区块链信息难以被篡改,这使得它在不依赖第三方的情况下保证了数据的可信性。
[0003]加密货币是一种作为交换媒介而被创建的虚拟资产,用于维护区块链中匿名和去中心化的交易记录。常见的加密货币包括以太坊、门罗币等,它们的发行并不是依赖于某个集中的货币发行机构,而是通过复杂的数学计算产生,从而保证区块链网络分布式账本的一致性。加密货币产生过程,被称为“挖矿”,通过加密哈希计算率先解决一个计算难题的节点获得交易记账权力,并获得加密货币作为奖励。
[0004]由于加密货币奖励的激励,近年来,多种具有强大计算能力的计算机被恶意利用进行挖矿,例如个人电脑和公司服务器等。加密货币挖矿可按照用户是否知情分为两种,分别是被动挖矿和主动挖矿。常见的被动挖矿是网页劫持,即用户访问被嵌入恶意挖矿代码的网页,导致其设备在用户不知情的情况下被用来挖矿,挖矿获得的收益被攻击者获得。主动挖矿则是用户利用挖矿软件直接连接矿池并获得收益,一些公司员工可能会非法占用公司的公共资源进行挖矿活动,为公司造成资源消耗和经济损失。
[0005]为了检测加密货币挖掘,目前的大部分方法主要集中在主机端识别,例如,分析主机CPU的占用率、匹配恶意代码中的关键字符串等。然而,CPU利用率的限制和代码混淆技术的应用,使得这类方法失效。同时,基于主机端的检测方法要求被部署在每台主机上,这增加了挖矿检测所需的人力和财力成本。而在网络端的检测方法,通常依赖于通信流量中的挖矿关键字匹配,随着流量加密技术的应用,数据包负载字段被隐藏,导致基于流量明文的检测方法失效。因此,需要设计一种更加高效、容易部署的挖矿行为检测方法。

技术实现思路

[0006]本专利技术的目的是为了解决现有基于主机端的挖矿行为检测方法难部署、基于流量明文的网络端检测方法失效等技术问题,根据挖矿客户端和服务器双方通信过程的特点,创造性地提出一种基于加密流量分析的挖矿行为实时检测方法。本方法从被加密的流量中提取统计特征,进而与机器学习模型相结合,实现挖矿行为精准识别。旨在网络流量被加密场景下,对加密货币挖矿行为进行检测,实现对恶意挖矿流量的及时阻断,保障设备资源免受侵犯。
[0007]本专利技术的创新点在于:通过分析客户端与矿池服务器之间的通信模式,观察到通信流量数据包特点反映了加密货币挖矿的机制。尽管数据包内容不可见,但其长度、数量、方向等依然暴露了流量特征。为抽象表达挖矿过程,提取数据包长度、数据包数量、数据包到达时间间隔和流量持续时间作为其特征,将所提取的特征与机器学习算法相结合,构建挖矿行为检测模型。由于基于加密流量分析的方法可以部署在网关上,便于检测整个网段的挖矿行为,从而降低了模型部署和维护的成本。
[0008]本专利技术采用以下技术方式实现。
[0009]一种基于加密流量分析的挖矿行为实时检测方法,包括以下步骤:
[0010]步骤1:收集挖矿流量数据。
[0011]由于没有公开的挖矿流量数据集,首先模拟客户端和矿池服务器通信过程,并收集流量。
[0012]具体地,步骤1可以包括以下步骤:
[0013]步骤1.1:收集包含恶意挖矿代码的网页和提供矿池服务的服务器地址。
[0014]现有研究表明,门罗币是最流行进行挖矿的加密货币,因此,本步骤中,收集门罗币挖矿网站和矿池服务器地址。
[0015]对于恶意挖矿网站,首先收集可能嵌入到网页中的代码关键字,然后利用一个网络搜索引擎(如https://fofa.info/)检索包含上述关键字的网站,最后,删除部分已失效挖矿网站。对于矿池服务器,可以从公开的矿池列表(如https://miningpoolstats.stream/monero)中收集常用的矿池地址。
[0016]步骤1.2:部署挖矿环境,收集网络流量。
[0017]用N台设备模拟矿工,编写脚本使其访问被注入恶意代码的网站,或主动连接矿池进行挖矿活动,这N台中有n1台设备直接连接矿池,其余n2台设备通过代理服务器跳转后连接矿池。同时,用M台设备模拟正常用户,进行正常的互联网访问活动(如发送电子邮件,使用即时通信软件和浏览合法网页等)。所有的设备均连接到一台交换机(网关),该交换机设置流量镜像功能,将通过该交换机的所有流量镜像到一台流量日志服务器,该服务器负责记录流量日志。
[0018]步骤2:数据处理。
[0019]对于一条流量T={p1,p2,

,p
i
,

,p
n
},提取每个数据包p
i
的信息,包括到达时间t
i
、源IP地址src
i
、目的IP地址dst
i
、传输协议q
i
、数据包长度l
i
。以源IP/目的IP是否为矿池IP为判断条件,为每条流量打标签,并以csv格式将流量日志保存。
[0020]步骤3:挖矿流量特征分析和提取。
[0021]客户端和矿池之间的通信通常使用stratum协议,它使用JSON

RPC格式编码。
[0022]在挖矿会话的开始,一个客户端首先“订阅”该矿池,并向其描述自己的计算能力。然后,矿池向其发送“订阅响应”(包含订阅ID等信息)。之后,客户端向矿池发送其用户名和密码以初始化矿工。当服务器对其身份进行成功认证后,将向客户端发送一个“困难性通知”并进入任务分发与提交阶段。在任务分发与提交阶段,服务器向客户端发送挖矿任务,客户端根据任务进行计算,完成计算后提交给服务器,如果服务器对该结果验证通过,则返回一个确认响应,并分发下一个任务,直到通信连接断开。
[0023]根据客户端和矿池的通信过程,可以提取以下4类特征:
[0024]上行数据包到达时间间隔。由于客户端收到一个挖矿任务时,将进行复杂的计算,这需要一定的时间,并且时间长短取决于问题的复杂性及其设备的性能。从流量交互过程中,可观测到数据包到达时间间隔很大程度上取决于客户端的计算速度,而复杂的计算会导致数据包到达时间间隔增大,这反映了挖矿流量交互的固有特性。因此,上行数据包到达时间间隔的平均值被提取作为一个关键特征,其中,上行数据包指从客户端发送到矿池的数据包,下行数据包指从矿池发送到客户端的数据包。
[0025]上行数据包长度。在任务分发和提交阶段,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于加密流量分析的挖矿行为实时检测方法,其特征在于,包括以下步骤:步骤1:收集挖矿流量数据;模拟客户端和矿池服务器通信过程,并收集流量;步骤2:数据处理;对于一条流量T={p1,p2,

,p
i
,

,p
n
},提取每个数据包p
i
的信息,包括到达时间t
i
、源IP地址src
i
、目的IP地址dst
i
、传输协议q
i
、数据包长度l
i
;以源IP/目的IP是否为矿池IP为判断条件,为每条流量打标签,并以csv格式将流量日志保存;步骤3:挖矿流量特征分析和提取;在挖矿会话的开始,一个客户端首先“订阅”该矿池,并向其描述自己的计算能力;然后,矿池向其发送“订阅响应”;之后,客户端向矿池发送其用户名和密码以初始化矿工;当服务器对其身份进行成功认证后,将向客户端发送一个“困难性通知”并进入任务分发与提交阶段;在任务分发与提交阶段,服务器向客户端发送挖矿任务,客户端根据任务进行计算,完成计算后提交给服务器,如果服务器对该结果验证通过,则返回一个确认响应,并分发下一个任务,直到通信连接断开;根据客户端和矿池的通信过程,对于每条流量截取前K秒的数据包,提取上行数据包到达时间间隔、上行数据包长度、流...

【专利技术属性】
技术研发人员:沈蒙叶珂车征祝烈煌
申请(专利权)人:北京理工大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1