IPv6网络的比特币流量检测方法、装置、设备及介质
文献发布时间:2023-06-19 19:30:30
技术领域
本公开涉及数字货币技术领域,尤其涉及一种IPv6网络的比特币流量检测方法、装置、电子设备及介质。
背景技术
IPv6(Internet Protocol Version 6)是下一代互联网。IPv6最为显著的优势是地址为128位,海量地址空间解决了IPv4地址日渐枯竭的问题。比特币是一种去中心化支付的虚拟货币,不依靠特定货币机构发行,而是通过特定算法的大量计算产生。挖矿在我国属于明令禁止的行为,挖矿行为检测的研究在业内也比较流行。比特币客户端早期版本采用IPv4地址通信,因此挖矿行为检测技术主要是针对IPv4网络。但是,目前比特币与IPv6融合应用的趋势日渐显现,本公开旨在探索在IPv6网络中检测比特币流量的技术思路。
发明内容
鉴于上述问题,本发明提供了一种IPv6网络的比特币流量检测方法。
本公开的一个方面提供了一种IPv6网络的比特币流量检测方法,包括:基于Dpdk框架抓取IPv6流量数据;基于比特币协议解析所述IPv6流量数据,识别所述IPv6流量数据中的比特币节点IPv6地址;将所述比特币节点IPv6地址与教育网NetFlow流量的地址匹配,识别教育网NetFlow流量中与所述比特币节点IPv6地址匹配的流量数据。
可选地,所述基于Dpdk框架抓取IPv6流量数据包括:基于Dpdk框架抓取TCP协议流量;解析所述TCP协议流量头部,获取所述TCP协议流量头部的源地址和目的地址;筛选源地址和目的地址为源IPv6地址和目的IPv6地址的TCP协议流,得到IPv6流量数据。
可选地,所述方法还包括:抓取抓取所述TCP协议流量后,将所述TCP协议流量存储为pacp文件。
可选地,所述基于比特币协议解析所述IPv6流量数据,识别所述IPv6流量数据中的比特币节点IPv6地址包括:基于比特币协议解析所述IPv6流量数据,识别报文负载符合所述比特币协议格式的IPv6流量数据;将所述报文负载符合所述比特币协议格式的IPv6流量数据的源地址和目标地址记为比特币节点IPv6地址。
可选地,所述方法还包括:识别所述IPv6流量数据中消息类型为addr的数据,解析其payload字段,获取比特币节点IPv6地址。
可选地,所述将所述比特币节点IPv6地址与教育网NetFlow流量的地址匹配,识别教育网NetFlow流量中与所述比特币节点IPv6地址匹配的流量数据包括:获取所述教育网NetFlow流量,识别所述教育网NetFlow流量的源IPv6地址和目的IPv6地址;筛选出源IPv6地址和目的IPv6地址匹配所述比特币节点IPv6地址的教育网NetFlow流量。
可选地,所述方法还包括:统计源IPv6地址和目的IPv6地址匹配所述比特币节点IPv6地址的教育网NetFlow流量的位置和流量带宽分布情况。
本公开另一方面提供了一种IPv6网络的比特币流量检测装置,包括:流量抓取模块,用于基于Dpdk框架抓取IPv6流量数据;地址识别模块,用于基于比特币协议解析所述IPv6流量数据,识别所述IPv6流量数据中的比特币节点IPv6地址;数据匹配模块,用于将所述比特币节点IPv6地址与教育网NetFlow流量的地址匹配,识别教育网NetFlow流量中与所述比特币节点IPv6地址匹配的流量数据。
本公开的另一个方面提供了一种电子设备,包括:存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现所述IPv6网络的比特币流量检测方法中的各个步骤。
本公开的另一个方面提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现所述IPv6网络的比特币流量检测方法中的各个步骤。
在本公开实施例采用的上述至少一个技术方案能够达到以下有益效果:
本公开提供的一种IPv6网络的比特币流量检测方法,利用NetFlow流量包含源IPv6地址、目的IPv6地址、输入流量、输出流量等数据,将NetFlow流量每条会话的源和目的IPv6地址与比特币节点IPv6地址集合进行比对,对于比对成功的会话,可以统计分析出比特流量带宽、比特币节点分布单位、潜在的矿机分布单位。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了本公开实施例提供的一种简化的比特币网络架构图;
图2示意性示出了本公开实施例提供的一种IPv6网络的比特币流量检测方法的示意图;
图3示意性示出了本公开实施例提供的另一种IPv6网络的比特币流量检测方法的示意图;
图4示意性示出了本公开实施例提供的一种IPv6网络的比特币流量检测装置的结构框图;
图5示意性示出了本公开实施例提供的一种电子设备的结构框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。
因此,本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本公开的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
在本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供、公开和应用等处理,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
在本公开的技术方案中,对数据的获取、收集、存储、使用、加工、传输、提供、公开和应用等处理,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
图1示意性示出了本公开实施例提供的一种简化的比特币网络架构图。
如图1所示,在挖矿利益的驱使下,比特币节点间互联互通构成的比特币网络拓展出了矿池网络,矿池网络中矿机上的挖矿程序并不运行比特币协议,但有可能和比特币节点通信。可见在和比特币节点通信的可能是比特币节点也可能是矿机,因此在NetFlow流量中匹配到比特币节点IPv6集合的会话的源或目的IPv6地址可以判定为比特币节点或者矿机。
表1
表1是比特币协议消息格式图,如图所示比特币协议消息具备通用格式,其中command是ASCII编码的字符串,用于标志消息类型,目前的消息类型有version、verack、addr、inv、getdata、notfound、getblocks、getheaders、tx、block、headers、getaddr、mempool、checkorder、submitorder、reply、ping、pong、reject、filterload、filteradd、filterclear、merkleblock、alert、sendheaders、feefilter、sendcmpct、cmpctblock、getblocktxn、blocktxn。比特币协议消息格式图中payload用于存储相应消息类型的实际内容。
图2示意性示出了本公开实施例提供的一种IPv6网络的比特币流量检测方法的示意图。
如图2所示,本公开实施例提供了一种IPv6网络的比特币流量检测方法,包括S210~S230。
S210,基于Dpdk框架抓取IPv6流量数据。
在本公开实施例中,抓取抓取所述TCP协议流量后,将所述TCP协议流量以pcap文件形式存储到存储设备。基于Dpdk框架抓取TCP协议流量;TCP流量报文头部包含从链路层协议帧头部到TCP协议报文头部,从存储设备读取TCP流量pcap文件,剥离出TCP报文载荷之外的头部信息,解析所述TCP协议流量头部,获取所述TCP协议流量头部的源地址和目的地址;筛选源地址和目的地址为源IPv6地址和目的IPv6地址的TCP协、议流,得到IPv6流量数据。
S220,基于比特币协议解析所述IPv6流量数据,识别所述IPv6流量数据中的比特币节点IPv6地址。
在本实施例中,基于比特币协议解析所述IPv6流量数据的负载,比特币协议数据作为TCP报文的负载,按照表1所示的比特币协议消息格式解析TCP报文负载。对于不符合比特币协议格式的报文直接丢弃,并将所述报文负载符合所述比特币协议格式的IPv6流量数据的源地址和目标地址记为比特币节点IPv6地址。
在本实施例中,识别比特币节点IPv6地址的方法还包括,识别所述IPv6流量数据中消息类型为addr的数据,对于消息类型为addr的比特币消息,获取已知比特币节点IPv6地址,解析其payload字段,以获取已知比特币节点的IPv6地址并加入比特币节点IPv6地址集合。
S230,将所述比特币节点IPv6地址与教育网NetFlow流量的地址匹配,识别教育网NetFlow流量中与所述比特币节点IPv6地址匹配的流量数据。
在本实施例中,获取所述教育网NetFlow流量,识别所述教育网NetFlow流量的源IPv6地址和目的IPv6地址;筛选出源IPv6地址和目的IPv6地址匹配所述比特币节点IPv6地址的教育网NetFlow流量。
基于识别到的与比特币源地址和目的地址相关的教育网NetFlow流量,可以统计源IPv6地址和目的IPv6地址匹配所述比特币节点IPv6地址的教育网NetFlow流量的位置和流量带宽分布情况。由于获取的和比特币节点IPv6地址通信的对端IPv6地址可能是比特币节点或者矿机,过滤出其中属于教育网的IPv6地址,然后分析出这些对端IPv6地址的单位分布、流量带宽等,作为教育网全网比特币流量分布数据。
图3示意性示出了本公开实施例提供的另一种IPv6网络的比特币流量检测方法的示意图。
如图3所示,在本公开实施例中,IPv6网络的比特币流量检测方法的方法具体如下。
S0,Dpdk抓取TCP流量,比特币协议采用TCP协议传输,因此只抓取TCP协议的流量,生成TCP流量pcap文件存储到存储设备。
S1,解析TCP流量头部,TCP流量报文头部包含从链路层协议帧头部到TCP协议报文头部,从存储设备读取TCP流量pcap文件,剥离出TCP报文载荷之外的头部信息并解析出源IPv6地址、目的IPv6地址。TCP报文负载部分由步骤S2处理。
S2,解析TCP流量负载,比特币协议数据作为TCP报文的负载,按照图二所示的比特币协议消息格式解析TCP报文负载,若符合则执行步骤S3。
S3,源和目的IPv6地址加入比特币节点IPv6地址集合,对于符合比特币协议流量的TCP流量,将S1步骤获取的源和目的IPv6地址加入比特币节点IPv6地址集合。则执行步骤S4。
S4,获取已知比特币节点IPv6地址,对于addr类型的比特币消息解析payload部分,以获取已知比特币节点的IPv6地址并加入比特币节点IPv6地址集合。
S5,匹配NetFlow流量源或目的IPv6地址,本步骤的前置条件是当前已经获取教育网全网的NetFlow流量,基于步骤S3和S4生成的比特币节点IPv6地址集合,匹配NetFlow流量的源或者目的IPv6地址,统计出和比特币节点IPv6地址通信的对端IPv6地址。
S6,统计全网比特币流量分布,步骤S5获取的和比特币节点IPv6地址通信的对端IPv6地址可能是比特币节点或者矿机,过滤出其中属于教育网的IPv6地址,然后分析出这些对端IPv6地址的单位分布、流量带宽等,作为教育网全网比特币流量分布数据。
图4示意性示出了本公开实施例提供的一种IPv6网络的比特币流量检测装置的结构框图。
如图4,本公开实施例提供了一种IPv6网络的比特币流量检测装置,包括流量抓取模块410、地址识别模块420和数据匹配模块430。
流量抓取模块410用于基于Dpdk框架抓取IPv6流量数据。
地址识别模块420用于基于比特币协议解析所述IPv6流量数据,识别所述IPv6流量数据中的比特币节点IPv6地址。
数据匹配模块430用于将所述比特币节点IPv6地址与教育网NetFlow流量的地址匹配,识别教育网NetFlow流量中与所述比特币节点IPv6地址匹配的流量数据。
可以理解的是,流量抓取模块410、地址识别模块420和数据匹配模块430可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本发明的实施例,流量抓取模块410、地址识别模块420和数据匹配模块430中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以以对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。或者,中的至少一个可以至少被部分地实现为计算机程序模块,当该程序被计算机运行时,可以执行相应模块的功能。
图5示意性示出了本公开实施例提供的一种电子设备的结构框图。
如图5所示,本实施例中所描述的电子设备,包括:电子设备500包括处理器510、计算机可读存储介质520。该电子设备500可以执行上面参考图3描述的方法,以实现对特定操作的检测。
具体地,处理器510例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器510还可以包括用于缓存用途的板载存储器。处理器510可以是用于执行参考图3描述的根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
计算机可读存储介质520,例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
计算机可读存储介质520可以包括计算机程序521,该计算机程序521可以包括代码/计算机可执行指令,其在由处理器510执行时使得处理器510执行例如上面结合图1所描述的方法流程及其任何变形。
计算机程序521可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序521中的代码可以包括一个或多个程序模块,例如包括521A、模块521B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器510执行时,使得处理器510可以执行例如上面结合图3~图4所描述的方法流程及其任何变形。
根据本发明的实施例,流量抓取模块410、地址识别模块420和数据匹配模块430中的至少一个可以实现为参考图5描述的计算机程序模块,其在被处理器510执行时,可以实现上面描述的相应操作。
本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。