一种基于词素特征的挖矿行为识别方法及系统

文档序号:32442436发布日期:2022-12-06 22:36阅读:176来源:国知局
一种基于词素特征的挖矿行为识别方法及系统

1.本技术涉及网络空间安全技术领域,特别是涉及一种基于词素特征的挖矿行为识别方法及系统。


背景技术:

2.本部分的陈述仅仅是提到了与本技术相关的背景技术,并不必然构成现有技术。
3.近年来随着加密货币价格的暴涨,主机挖矿行为也在利益的驱使下更加普遍,且其中包含一些不法分子利用挖矿木马劫持主机,在使用者毫不知情的情况下悄悄榨取计算机资源的情况。
4.为了对挖矿行为进行有效的监管,研究者们提出了一些识别方案。其中主要有三个方向,其一是通过在主机上部署可以监测硬件状态或者检测系统调用的进程特征码的应用来推测该主机是否发生了挖矿行为。这种方案的弊端是需要管理者主动安装该应用,很容易逃避监管。其二是通过分析通信内容(如dpi分析),提取网络流量数据包中的负载信息进行相关的信息识别。由于该方法可以对流量负载内容中的矿池通信协议特征进行识别,因此可以准确地判断挖矿行为的存在。但是这种方案存在两个主要问题,一是提取负载信息会消耗大量的资源进而降低检测速度;二是在区块链匿名性的加强和多方维护的设计下,大多数加密货币都采用tls等协议进行加密通信,这导致基于分析通信内容的分析的方法不再有效。其三是通过收集大量挖矿通信流量提取特征后训练机器学习模型,然后利用该模型来判断网络数据中是否包含挖矿流量。这种解决方案由于其准确率高、可靠性强等优势而被广泛使用,但仍存在问题,一是识别过程中通常需要分析大量的样本才能做出可靠判断,进而很难在挖矿行为刚发生时的及时响应;二是该方法需要大量的数据对机器学习模型进行训练,而数据集的好坏直接决定了模型的优劣。


技术实现要素:

5.考虑到现有技术的不足,本技术提供了一种基于词素特征的挖矿行为识别方法及系统,根据通信模式通常需要先进行域名请求的特点,从域名检测的角度,引入词素的概念,将快速正则匹配方法与机器学习模型相结合,实现对加密货币挖矿行为的快速识别,进一步实现对挖矿行为的有效监管。
6.第一方面,本技术提供了一种基于词素特征的挖矿行为识别方法;
7.一种基于词素特征的挖矿行为识别方法,包括:
8.获取挖矿域名数据集和正常域名数据集,对挖矿域名数据集中的挖矿域名进行词素分割,构建挖矿域名词素库;
9.根据挖矿域名和挖矿域名词素,对挖矿域名的正则表达式进行分组;
10.根据挖矿域名数据集和正常域名数据集,划分训练数据和测试数据,训练挖矿行为识别模型;
11.提取dns请求数据包中的待测域名,通过正则表达式组和挖矿行为识别模型对待
测域名进行识别,输出待测域名的类别,判断发生dns请求的主机是否存在或即将开始挖矿行为。
12.第二方面,本技术提供了一种基于词素特征的挖矿行为识别系统;
13.一种基于词素特征的挖矿行为识别系统,包括:数据库构建及模型训练模块,被配置为:获取挖矿域名数据集和正常域名数据集,对挖矿域名数据集中的挖矿域名进行词素分割,构建挖矿域名词素库;根据挖矿域名和挖矿域名词素,对挖矿域名的正则表达式进行分组;根据挖矿域名数据集和正常域名数据集,划分训练数据和测试数据,训练挖矿行为识别模型;
14.挖矿行为识别模块,被配置为:提取dns请求数据包中的待测域名,通过含有挖矿域名语义词素的正则表达式组和挖矿行为识别模型对待测域名进行识别,输出待测域名的类别,判断发生dns请求的主机是否存在或即将开始挖矿行为。
15.第三方面,本技术提供了一种电子设备;
16.一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成上述基于词素特征的挖矿行为识别方法的步骤。
17.第四方面,本技术提供了一种计算机可读存储介质;
18.一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成上述基于词素特征的挖矿行为识别方法的步骤。
19.与现有技术相比,本技术的有益效果是:
20.1、本技术针对加密货币挖矿行为检测,提出了一种根据dns请求进行挖矿行为识别的方法,为挖矿行为提供了一种新的研究思路;
21.2、本技术在正则匹配中引入了词素的概念,为划分多组正则表达式提供了更为有效的语义性划分依据,提高了正则表达式的匹配速度;
22.3、本技术针对加密货币挖矿行为识别,提取了比传统域名特征更有意义的语义词素特征,提高了识别挖矿域名的准确率。
附图说明
23.构成本技术的一部分的说明书附图用来提供对本技术的进一步理解,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。
24.图1为本技术实施例提供的基于词素特征的挖矿行为识别方法的流程示意图;
25.图2为本技术实施例提供的将正则表达式存储到哈希表的流程示意图。
具体实施方式
26.应该指出,以下详细说明都是示例性的,旨在对本技术提供进一步的说明。除非另有指明,本技术使用的所有技术和科学术语具有与本技术所属技术领域的普通技术人员通常理解的相同含义。
27.需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本技术的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,术语“包括”和“具有”以及他们的任何变形,
意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
28.术语解释:
29.词素:域名字符串中具有一定语义或语法功能的最小单位(只考虑字符串长度大于2的词素)。
30.在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
31.实施例一
32.现有技术中的挖矿行为识别技术,在识别过程中通常需要分析大量的样本才能做出可靠判断,进而很难在挖矿行为刚发生时的及时响应;还需要大量的数据对机器学习模型进行训练,模型的性能优劣受数据集好坏的影响。因此,本技术提供了一种基于词素特征的挖矿行为识别方法。
33.一种基于词素特征的挖矿行为识别方法,包括:
34.获取挖矿域名数据集和正常域名数据集,对挖矿域名数据集中的挖矿域名进行词素分割,构建挖矿域名词素库;
35.根据挖矿域名和挖矿域名词素,对挖矿域名的正则表达式进行分组;
36.根据挖矿域名数据集和正常域名数据集,划分训练数据和测试数据,训练挖矿行为识别模型;
37.提取dns请求数据包中的待测域名,通过正则表达式组和挖矿行为识别模型对待测域名进行识别,输出待测域名的类别,判断发生dns请求的主机是否存在或即将开始挖矿行为。
38.进一步的,通过含有挖矿域名语义词素的正则表达式组和挖矿行为识别模型对待测域名进行识别包括:
39.对待测域名进行词素分割,获取词素集合;
40.根据词素集合和正则表达式组进行正则匹配,若匹配成功,则输出匹配结果;若匹配不成功,将待测域名输入挖矿行为识别模型;
41.挖矿行为识别模型提取待测域名的原始特征,根据原始特征对待测域名进行分类,输出待测域名的类别和置信度。
42.进一步的,若在挖矿行为识别模型中将待测域名识别为挖矿域名且置信度大于第一阈值,当大于第一阈值的挖矿域名数量达到第二阈值时,根据挖矿域名的词素,更新含有挖矿域名语义词素的正则表达式组和挖矿域名词素库。
43.进一步的,挖矿行为识别模型包括特征提取模块、特征整合模块、分类器和更新缓冲区;
44.特征提取模块用于提取待测域名的原始特征,原始特征包括网络特征、字符串特征和词素特征;
45.特征整合模块用于整合网络特征、字符串特征和词素特征;
46.分类器用于获取整合后的特征,根据整合后的特征和特征集输出待测域名类别和置信度;
47.更新缓冲区用于存储类别为挖矿域名且置信度小于第一阈值的待测域名,并在待
测域名的数量达到第二阈值时,对待测域名进行词素分割,更新含有挖矿域名语义词素的正则表达式组和挖矿域名词素库。
48.进一步的,特征集包括挖矿域名数据集中挖矿域名和正常域名数据集中正常域名的网络特征和字符串特征以及挖矿域名的词素特征。
49.进一步的,对挖矿域名数据集中的挖矿域名进行词素分割,构建挖矿域名词素库包括:
50.根据挖矿域名进行词素分割,根据每个词素统计结果,将词素划分为挖矿语义词素和普通词素;其中,当某个词素的出现频次大于阈值,该词素叫做挖矿语义词素;当某个词素出现频次小于或等于阈值,该词素叫普通词素;
51.根据挖矿语义词素,构建挖矿域名词素库。
52.进一步的,根据挖矿域名和挖矿域名词素,对挖矿域名的正则表达式进行分组包括:
53.根据挖矿域名,构建挖矿正则表达式库;
54.检测正则表达式中是否含有挖矿语义词素,将含有挖矿语义词素的正则表达式分为一组,将不含有挖矿语义词素的正则表达式分为一组。
55.接下来,结合图1-2对本实施例公开的一种于词素特征的挖矿行为识别方法进行详细说明。
56.本实施例提供了一种基于词素特征的挖矿行为识别方法。
57.一种基于词素特征的挖矿行为识别方法,包括:
58.s1、获取挖矿域名数据集和正常域名数据集,对挖矿域名数据集中的挖矿域名进行词素分割,构建挖矿域名词素库;具体步骤包括:
59.s101、获取挖矿域名数据集和正常域名数据集;
60.s102、对挖矿域名数据集中的挖矿域名进行词素分割,根据分割后的词素统计结果,将词素划分为挖矿语义词素和普通词素;其中,当某个词素的出现频次大于阈值a(a》0),该词素叫做挖矿语义词素;当某个词素出现频次小于或等于阈值a,该词素叫普通词素;当某个词素出现频次大于阈值a并且小于或等于阈值b(0《a《b),该词素叫做弱挖矿语义词素(简称弱语义词素);当某个词素出现频次大于阈值b,该词素叫做强挖矿语义词素(简称强语义词素);其中,a,b的值是根据收集的挖矿域名数据集中的挖矿语义词素点的数量,根据大量运行的实验结果获取合适的a和b的值;
61.s103、根据挖矿语义词素,构建挖矿域名词素库,将挖矿语义词素存储到哈希表中;
62.s104、提取正常域名数据集中的正常域名和挖矿域名数据集中的挖矿域名的网络特征、字符串特征和词素特征,构建特征集;其中,网络特征可以为域名解析出的ip地址数量(在公共域名服务器上)、域名解析ip地址的时间(在公共域名服务器上)、顶级域名的长度和顶级域名字符串ascll码之和等,字符串特征可以为域名字符串中分割符“.”的数量、域名字符串中分割符“.”的数量、域名字符串中字母和数字的变换次数、域名字符串中元音字母的占比和域名字符串的总长度等,词素特征可以为域名字符串中强挖矿语义词素的数量、域名字符串中强挖矿语义词素的长度占比、域名字符串中弱挖矿语义词素的数量、域名字符串中弱挖矿语义词素的长度占比和域名字符串进行词素切割后词素的数量等。
63.s2、根据挖矿域名和挖矿域名词素,对挖矿域名的正则表达式进行分组;具体步骤包括:
64.s201、根据挖矿域名数据集中的挖矿域名,构建挖矿正则表达式库;
65.s202、检测正则表达式中是否含有挖矿语义词素,如图2所示,如果其包含某挖矿语义词素,则将其包含的挖矿语义词素通过哈希函数计算出关键字,根据关键字找到该挖矿语义词素在哈希表中的位置,然后把该正则表达式存储到该挖矿语义词素所指向的顺序列表中,重复这个过程,直到所有包含挖矿语义词素的正则表达式存储至对应的顺序列表,然后把其余不包含挖矿语义词素的正则表达式划分为单独一组,存储到一个顺序列表中。
66.s3、根据挖矿域名数据集和正常域名数据集,划分训练数据和测试数据,训练挖矿行为识别模型;其中,挖矿识别行为模型包括特征提取模块、特征整合模块、分类器和更新缓冲区;特征提取模块用于提取待测域名的原始特征,原始特征包括网络特征、字符串特征和词素特征;特征整合模块用于整合网络特征、字符串特征和词素特征;分类器用于获取整合后的特征,根据整合后的特征和原始特征集输出待测域名类别和置信度,分类器是基于训练集的训练数据构建的用于判断待测域名是否属于挖矿域名的分类模型,其中,训练数据包括正常域名数据和挖矿域名数据,分类模型可以为随机森林分类模型,对于待检测的域名,将对应的整合特征输入分类模型,该分类模型的输出结果为待检测域名的类别和置信度;更新缓冲区用于存储类别为挖矿域名且置信度大于第一阈值的待测域名,并在待测域名的数量达到第二阈值时,对待测域名进行词素分割,更新含有挖矿域名语义词素的正则表达式组和挖矿域名词素库;其中,第一阈值和第二阈值根据任务需求和经验设置。
67.s4、提取dns请求数据包中的待测域名,通过含有挖矿域名语义词素的正则表达式组和挖矿行为识别模型对待测域名进行识别,输出待测域名的类别,判断发生dns请求的主机是否存在或即将开始挖矿行为;具体步骤包括:
68.s401、提取dns请求数据包中的域名字符串;
69.s402、将域名字符串进行词素分割,去除顶级域名词素和长度小于三的词素,获取词素集合;
70.s403、根据词素集合检索哈希表中可能匹配成功的正则表达式,即依次查询待测域名分割后的词素是否存在于哈希表中,若查询到可能匹配成功的正则表达式,则执行步骤s404;若未能检索到可能匹配成功的正则表达式,则将该待测域名与不包含任何挖矿语义词素的正则表达式列表进行匹配,若匹配成功,执行步骤s408,否则,执行步骤s405;
71.s404、将待测域名与检索到的可能匹配成功的正则表达式依次进行正则匹配,即将待测域名和待测域名分割后存在于哈希表中的词素所指向的正则表达式列表进行正则匹配;具体步骤如下:
72.s4041、根据待测域名分割后的词素集合中存在于哈希表中的第一个词素,将待测域名与该词素下的所有正则表达式依次进行正则匹配;若匹配成功,退出匹配算法,将待测域名识别为挖矿域名,执行步骤s208;
73.s4042、若待测域名与该词素下的所有正则表达式均匹配失败,就提取词素集合中的下一个词素重复执行步骤s4041;若待测域名与所有可能匹配成功的正则表达式均匹配失败,执行步骤s405;
74.s405、提取待测域名字符串特征(特征编号1-5)、网络特征(特征编号6-9),根据词
素库提取待测域名的词素特征(特征编号10-14),本实施例中最终选取的特征如下表所示;
75.表1:待测域名需要提取的特征列表
76.特征编码特征含义1域名字符串中分割符“.”的数量2域名字符串的信息熵3域名字符串中字母和数字的变换次数4域名字符串中元音字母的占比5域名字符串的总长度6域名解析出的ip地址数量(在公共域名服务器上)7域名解析ip地址的时间(在公共域名服务器上)8顶级域名的长度9顶级域名字符串ascll码之和10域名字符串中强挖矿语义词素的数量11域名字符串中强挖矿语义词素的长度占比12域名字符串中弱挖矿语义词素的数量13域名字符串中弱挖矿语义词素的长度占比14域名字符串进行词素切割后词素的数量
77.s406、将步骤s405中提取到的待测域名的特征整合到一起,共同输入分类器,通过分类器进行待测域名的识别;若输出为正常域名,则该待测域名识别为正常域名;若输出为真且置信度小于阈值n1,该待测域名识别为挖矿域名,执行步骤s208;若输出为真且置信度大于或等于阈值n1,该待测域名识别为挖矿域名,执行步骤s207;其中,置信度为分类器输出预测为挖矿域名的概率,阈值n1根据目标和经验获取,可动态调整;示例性的,通过python的sklearn库中的predict_proba获取置信度。
78.s407、将该待测域名添加存储至更新缓冲区,当更新缓冲区域名的数量达到阈值n2时,将缓冲区中的域名进行词素分割,根据分割后的词素统计结果对词素库进行更新,根据缓冲区的域名构建正则表达式,更新存储正则表达式的哈希表;
79.s408、识别结束。
80.实施例二
81.本实施例公开了一种基于词素特征的挖矿行为识别系统,包括:
82.数据库构建及模型训练模块,被配置为:获取挖矿域名数据集和正常域名数据集,对挖矿域名数据集中的挖矿域名进行词素分割,构建挖矿域名词素库;根据挖矿域名和挖矿域名词素,对挖矿域名的正则表达式进行分组;根据挖矿域名数据集和正常域名数据集,划分训练数据和测试数据,训练挖矿行为识别模型;
83.挖矿行为识别模块,被配置为:提取dns请求数据包中的待测域名,通过含有挖矿域名语义词素的正则表达式组和挖矿行为识别模型对待测域名进行识别,输出待测域名的类别,判断发生dns请求的主机是否存在或即将开始挖矿行为。
84.此处需要说明的是,上述数据库构建及模型训练模块、挖矿行为识别模块对应于实施例一中的步骤,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为系统的一部分可以在诸如一组计算
机可执行指令的计算机系统中执行。
85.实施例三
86.本发明实施例三提供一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,计算机指令被处理器运行时,完成上述基于词素特征的挖矿行为识别方法的步骤。
87.实施例四
88.本发明实施例四提供一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成上述基于词素特征的挖矿行为识别方法的步骤。
89.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
90.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
91.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
92.上述实施例中对各个实施例的描述各有侧重,某个实施例中没有详述的部分可以参见其他实施例的相关描述。
93.以上所述仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1