掌桥专利:专业的专利平台
掌桥专利
首页

一种基于K-S检验的加密代理下的挖矿流量识别方法

文献发布时间:2023-06-19 19:28:50


一种基于K-S检验的加密代理下的挖矿流量识别方法

技术领域

本发明属于网络空间安全技术领域,涉及基于K-S检验的加密代理下的挖矿流量识别方法。

背景技术

区块链作为比特币的底层技术,本质上是一个去中心化的数据库,它能够实现账本中数据的一致存储、难以篡改、防止抵赖等功能。挖矿对于区块链来说是一个必不可少的过程,它不仅将交易验证并添加到区块链,还在去中心化组织中建立了共识。挖矿的利益也吸引了黑客们的注意。加密劫持,是指在违背用户的意愿或在用户不知情的情况下,操控其设备挖掘加密货币来为攻击者获取收益。自2018年以来,加密劫持已经成为一种类似于勒索软件的广泛攻击。黑客们开发恶意软件来攻击个人电脑、服务器、甚至是物联网设备,使它们替黑客们挖掘加密货币。

挖矿行为本身会消耗大量计算资源,使系统、软件、应用服务运行缓慢,甚至可能使系统崩溃,造成数据丢失;虚拟货币挖矿会造成大量的能源消耗和碳排放。而加密劫持会占用受害设备的资源,影响受害用户的正常使用,并给攻击者带来非法收益。因此,对挖矿行为进行检测不仅可以防范加密劫持攻击,也可以帮助治理虚拟货币挖矿的泛滥。

已经有一些基于主机的方法可以抵御加密劫持,它们通过监测软件操作、网站访问和硬件状态数据来识别设备是否被劫持挖矿。然而,这些方法需要在终端设备上安装软件,涉及用户的私人数据,并需要及时更新,这一点被许多用户所拒绝。此外,基于主机的方法只保护单一的终端设备,保护一个被管理的网络需要在每个设备上安装和维护监测软件。因此,近年来研究人员更多地通过网络流量分析来检测加密劫持。原始的挖矿流量遵循Stratum协议,通过明文传输,因此可以通过IP封锁和深度数据包检查来防御。然而,攻击者仍然可以通过配置加密代理来加密、混淆和转发挖矿流量,以此来躲避监管。现有的流量分析方法在使用了加密代理挖矿的场景下的表现并不理想,或是要求数据集相对平衡,又或是需要较长的检测时间。

因此,本发明通过搭建加密代理转发、加密并混淆数据包,加入矿池挖矿来采集挖矿流量;然后将流量预处理,提取挖矿流量和待测流量的特征分布;最后运用K-S检验来对特征分布进行比对,根据K-S检验结果完成对挖矿流量的识别。

发明内容

为了对挖矿行为进行有效监管,实现对使用了加密代理的挖矿流量的识别,本发明提出了一种基于K-S检验的加密代理下的挖矿流量识别方法。针对使用了加密代理的挖矿流量难以检测的问题,提出了基于K-S检验来对特征分布函数进行比对的高效挖矿流量识别方法。方法首先依据挖矿流量的协议特征,对初始流量进行组流并过滤。接着通过对挖矿流量的特征分析,提取数据包大小和时间间隔特征作为检测依据;随后将入度流量按每60个数据包为一个检测单位,出度流量按每40个数据包为一个检测单位,分别生成数据包大小和数据包时间间隔的特征分布函数;最后使用K-S检验对待检测流量和挖矿流量的特征分布进行比对,根据K-S检验的结果完成挖矿流量的识别。为了达到上述目的,本发明提供如下技术方案:

一种基于K-S(Kolmogorov-Smirnov test)检验的加密代理下的挖矿流量识别方法,包括如下步骤:

(1)通过加入矿池挖矿,使用加密代理来转发和混淆数据,收集挖矿流量;

(2)将初始流量按五元组<源IP,目的IP,源端口,目的端口,协议类型>组流,再过滤掉无关数据包,只保留带有PSH标志的TCP报文;

(3)提取所剩报文的特征,按所设定的每个检测单位的数据包数目生成特征分布;

(4)通过K-S检验将待检测流量的特征分布和已标记的挖矿流量进行比对,根据检验结果实现对挖矿流量的识别。

进一步,所述步骤(1)具体包括如下子步骤:

(1.1)使用V2Ray工具搭建加密代理,来实现数据转发、加密和混淆;

(1.2)加入Poolin矿池,挖掘以太币(Ether)和以太经典(EthereumClassic)两种加密货币;

(1.3)采集使用了加密代理的挖矿流量;

(1.4)生成加密代理下的挖矿流量的特征分布;

(1.5)获取公开数据集ISCX VPN作为实验待测流量。

进一步,所述步骤(2)具体包括如下子步骤:

(2.1)将初始流量按五元组<源IP,目的IP,源端口,目的端口,协议类型>组流,这一步是为了区分开使用同一代理的不同应用。

(2.2)根据挖矿流量协议特征,过滤掉无关报文,只留下带有PSH标志的TCP报文,PSH标志位的作用是让接收端尽快将报文交付至应用层,而挖矿的收益与时间密切相关。

进一步,所述步骤(3)具体包括如下子步骤:

(3.1)提取数据预处理后剩余流量的特征,包括数据包大小和数据包时间间隔特征;

(3.2)入度流量按每60个数据包为一个检测单位,出度流量按每40个数据包为一个检测单位,分别生成数据包大小和数据包时间间隔的特征分布函数。

进一步,所述步骤(4)具体包括如下子步骤:

(4.1)将未识别的流量的特征分布函数输入到检测模型,使用双样本K-S检验来和已标记的挖矿流量的特征分布作比对,输出检验结果;

(4.2)根据K-S检验结果,如果未识别流量的数据包大小和时间间隔特征都与挖矿流量的特征来自同一分布,那么将该流量判定为挖矿流量,否则判定为正常流量。

(4.3)输出识别结果。

与现有技术相比,本发明具有如下优点:

(1)本发明能够有效地识别当前网络中存在的挖矿流量,监测效果精确率达到100%,召回率达到98.84%。便于网络管理者对挖矿行为进行监管并对加密劫持行为进行防御。

(2)本发明分析了使用了加密代理后的挖矿流量特征。配置加密代理的成本很低,使用它可以很好地避开监管,因此此场景与实际检测情况更相关也更有意义。

(3)本发明中通过对使用了加密代理前后的挖矿流量进行分析,发现了其数据包大小和时间间隔分布与其他流量明显不同的特点,结合K-S检验方法,仅需观测六分钟的挖矿流量即可完成检测,并实现零误报,有效提高了检测的速度和精确性。

(4)通过对抗性评估,本发明提出的基于K-S检验的加密代理下的挖矿流量识别方法可以一定程度上避免攻击者通过改变数据包特征来逃逸检测。对抗性评估具体表现如下两表所示

附图说明

图1检测器架构示意图;

图2挖矿和其他流量的时间间隔分布对比示意图;

图3挖矿和其他流量的数据包大小分布对比示意图,其中,(a)为入度方向流量数据包大小对比图,(b)为出度方向流量数据包大小对比图;

图4不同检测窗口大小下的模型检测表现。

具体实施方式

以下将结合具体实施例对本发明提供的技术方案进行详细说明,应理解下述具体实施方式仅用于说明本发明而不用于限制本发明的范围。

实施例1:本发明提出了一种基于K-S检验的加密代理下的挖矿流量识别方法,识别框架如图1所示,分四个部分,第一部分为加密代理下的挖矿流量的采集,具体内容为通过使用V2Ray工具搭建加密代理,实现数据转发和混淆,加入Poolin矿池,挖掘以太币(Ether)和以太经典(EthereumClassic)两种加密货币,然后采集使用了加密代理的挖矿流量,并获取公开数据集ISCX VPN作为实验待测流量;第二部分为流量数据预处理,具体内容为通过分析挖矿流量协议特征,以此作为预处理阶段的依据,将初始流量按五元组组流,接着过滤掉无关报文,只留下带有PSH标志的TCP报文;第三部分为特征的提取,具体内容为提取数据预处理后剩余流量的特征,包括数据包大小和数据包时间间隔特征,然后入度流量按每60个数据包为一个检测单位,出度流量按每40个数据包为一个检测单位,分别生成数据包大小和数据包时间间隔的特征分布函数;第四部分为挖矿流量识别,具体内容为将未识别的流量的特征分布函数输入到检测模型,使用双样本K-S检验来和已标记的挖矿流量的特征分布作比对,然后根据检验结果输出识别结果。

具体地说,一种基于K-S检验的加密代理下的挖矿流量识别方法,包括如下步骤:

(1)通过加入矿池挖矿,使用加密代理来转发和混淆数据,收集挖矿流量。

本步骤的具体过程如下:

(1.1)使用V2Ray工具搭建加密代理,来实现数据转发、加密和混淆;

(1.2)加入Poolin矿池,挖掘以太币(Ether)和以太经典(EthereumClassic)两种加密货币;

(1.3)采集使用了加密代理的挖矿流量;

(1.4)生成挖矿流量的特征分布;

(1.5)获取公开数据集ISCX VPN作为实验待测流量。

(2)将初始流量按五元组<源IP,目的IP,源端口,目的端口,协议类型>组流,再过滤掉无关数据包,只保留带有PSH标志的TCP报文,该步骤可以过滤掉80%的初始流量,减少了模型后续的处理时间。

本步骤中具体过程如下:

(2.1)观察挖矿过程中矿工与矿池的通信行为,分析挖矿流量整体特征,发现挖矿过程中交互较少,且主要由任务下发、结果提交、结果反馈三个动作组成;因此挖矿流量较为稀疏,数据包间的时间间隔较长,流量特征在一定时间窗口内呈现出规律性;

(2.2)分析挖矿流量的数据包结构,获取挖矿流量协议类型以及TCP标志位特征,发现挖矿流量报文都使用TCP协议,且有负载的数据包都带有PSH标志,端口号在一段时间内固定,数据包大小均匀分布在固定区间内;

(2.3)根据步骤(2.1)与(2.2)获取的相关特征,作为预处理阶段的依据,将初始流量按五元组组流,接着过滤掉无关报文,只留下带有PSH标志的TCP报文。

(3)完成流量预处理后,提取所剩报文的特征,按所设定的每个检测单位的数据包数目生成特征分布。

本步骤中具体过程如下:

(3.1)使用步骤(2)中过滤后剩下的数据集,提取数据包大小和数据包时间间隔特征,从图2、图3可以看出使用了加密代理的挖矿流量的数据包大小和时间间隔的分布具有特殊性。

(3.2)对不同数量的检测单位大小的模型表现进行评估,根据结果选择将入度流量按每60个数据包为一个检测单位,出度流量按每40个数据包为一个检测单位,分别生成数据包大小和数据包时间间隔的特征分布函数。不同数量的检测单位的具体表现结果如图4。

(4)通过K-S检验将待检测流量的特征分布和已标记的挖矿流量进行比对,根据检验结果实现对挖矿流量的识别。

本步骤中具体过程如下:

(4.1)将未识别的流量的特征分布函数输入到检测模型,使用双样本K-S检验来和已标记的挖矿流量的特征分布作比对,输出检验结果。

(4.2)根据K-S检验结果,如果未识别流量的数据包大小和时间间隔特征都与挖矿流量的特征来自同一分布,那么将该流量判定为挖矿流量,否则判定为正常流量。

(4.3)输出识别结果,实验取得100%的精确率(Precision)和98.84%的召回率(Recall)。混淆矩阵结果如下表所示

本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

相关技术
  • 一种加密挖矿流量识别方法、系统、装置及存储介质
  • 一种基于加密流量分析的挖矿行为实时检测方法
技术分类

06120115921025