1.本技术属于计算机技术领域,具体涉及一种网络模型训练方法、字符串检测方法、装置及电子设备。
背景技术:2.近年来,使用加密字符串进行通信的恶意攻击流量数量有所增加。这对安全分析人员构成了挑战,大多数情况下看起来像正常的字符串,其可能包含恶意攻击代码。因此,有必要发现新的特性和方法来检测加密字符串。
3.目前检测加密字符串的主要方式有两种,基于正则表达式进行检测和基于加解密对比进行检测。基于正则表达式的方式只能检测已知的加密字符串,无法检测自定义加密字符串。基于加解密对比方式进行检测,需要罗列全部加密方式对待检测加密字符串进行解密后再加密,并和原始加密字符串(也即待检测加密字符串)对比来判断,该种方式开销大且不能检测未知加密方式。
技术实现要素:4.鉴于此,本技术的目的在于提供一种网络模型训练方法、字符串检测方法、装置及电子设备,以改善现有检测加密字符串的方式所存在的开销大、只能检测已知加密字符串的问题。
5.本技术的实施例是这样实现的:
6.第一方面,本技术实施例提供了一种网络模型训练方法,包括:获取用于模型训练的字符串数据集,所述字符串数据集包括加密字符串样本集和非加密字符串样本集;对所述字符串数据集中的每一条字符串进行特征预处理;利用对所述字符串数据集中的每一条字符串进行特征预处理后得到的特征向量对预设神经网络模型进行训练,得到用于预测字符串是否加密的字符串检测模型。本技术实施例中,通过训练用于预测字符串是否加密的字符串检测模型,通过机器学习来检测加密字符串,利用机器学习来发现加密字符串间的共性,并以此为依据检测加密字符串,从而可以大大减少安全从业人员的工作量。
7.结合第一方面实施例的一种可能的实施方式,对所述字符串数据集中的每一条字符串进行特征预处理,包括:针对所述字符串数据集中的每一条字符串,对该条字符串做特征提取处理,以提取模型训练所需的n种不同特征,n为大于等于2的正整数;将所述字符串数据集中所有字符串各自的n种不同特征,组成n维的特征向量矩阵;对所述特征向量矩阵中的元素进行特征规范化处理,得到规范化处理后的特征向量矩阵。本技术实施例中,通过提取每条字符串的多种不同特征,以及对提取的特征进行特征规范化处理,使得训练出来的模型的更准确性,检测效果更好。
8.结合第一方面实施例的一种可能的实施方式,对所述特征向量矩阵中的元素进行特征规范化处理,包括:若所述特征向量矩阵为m*n的特征向量矩阵时,针对所述特征向量矩阵的每一列,选取出该列元素中的最大值,并将该列中的每个元素除以该最大值,使得该
列中的每个元素的值在(0,1]之间,m为所述字符串数据集中字符串的数量,m为大于n的正整数;若所述特征向量矩阵为n*m的特征向量矩阵时,针对所述特征向量矩阵的每一行,选取出该行元素中的最大值,并将该行中的每个元素除以该最大值,使得该行中的每个元素的值在(0,1]之间。本技术实施例中,在进行特征规范化处理时,选取特征向量矩阵的每一列(或每一行)元素中的最大值,并将该列(或行)中的每个元素除以该最大值,从而可以快速使得该列(或行)中的每个元素的值在(0,1]之间。
9.结合第一方面实施例的一种可能的实施方式,该条字符串提取的n种不同特征,包括:预设有效字符占比、数字占比、英文字符占比、不重复数字占比、不重复英文字符占比、连续数字占比、连续英文字符占比、该条字符串的正样本3gram占比与其负样本3gram占比的比值中的至少两种特征。本技术实施例中,在训练时,从上述最能体现加密字符串与非加密字符串的8种特征中选择至少2种以上的特征,以此来让机器学习加密字符串间的共性,可以提高检测效果。
10.结合第一方面实施例的一种可能的实施方式,所述加密字符串样本集,包括多条base64加密字符串、多条md5加密字符串、多条自定义加密字符串;和/或,所述非加密字符串样本集包括多条英文短句、多条原始代码、所述多条原始代码清洗后剩余的多条字符串。本技术实施例中,在选取样本时,选取涵盖各自不同场景的样本,使得最终训练出来的检测效果更好,实用性更好。
11.第二方面,本技术实施例还提供了一种字符串检测方法,包括:获取待检测字符串;对所述待检测字符串进行特征预处理,以得到模型预测所需的n种不同特征,n为大于等于2的正整数;将所述n种不同特征构成的特征向量输入事先训练好的字符串检测模型,得到预测结果。
12.第三方面,本技术实施例还提供了一种网络模型训练装置,包括:获取模块、处理模块、训练模块;获取模块,用于获取用于模型训练的字符串数据集,所述字符串数据集包括加密字符串样本集和非加密字符串样本集;处理模块,用于对所述字符串数据集中的每一条字符串进行特征预处理;训练模块,用于利用对所述字符串数据集中的每一条字符串进行特征预处理后得到的特征向量对预设神经网络模型进行训练,得到用于预测字符串是否加密的字符串检测模型。
13.第四方面,本技术实施例还提供了一种字符串检测装置,包括:获取模块、处理模块;获取模块,用于获取待检测字符串;处理模块,用于对所述待检测字符串进行特征预处理,以得到模型预测所需的n种不同特征,n为大于等于2的正整数,以及将所述n种不同特征构成的特征向量输入事先训练好的字符串检测模型,得到预测结果。
14.第五方面,本技术实施例还提供了一种电子设备,包括:存储器和处理器,所述处理器与所述存储器连接;所述存储器,用于存储程序;所述处理器,用于调用存储于所述存储器中的程序,以执行上述第一方面实施例和/或结合第一方面实施例的任一种可能的实施方式提供的方法。
15.第六方面,本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行上述第一方面实施例和/或结合第一方面实施例的任一种可能的实施方式提供的方法。
16.本技术的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得
显而易见,或者通过实施本技术实施例而了解。本技术的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。
附图说明
17.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本技术的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本技术的主旨。
18.图1示出了本技术实施例提供的一种网络模型训练方法的流程示意图。
19.图2示出了本技术实施例提供的一种字符串检测方法的流程示意图。
20.图3示出了本技术实施例提供的一种字符串检测方法的整体原理示意图。
21.图4示出了本技术实施例提供的一种网络模型训练装置的模块框图。
22.图5示出了本技术实施例提供的一种字符串检测装置的模块框图。
23.图6示出了本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
24.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
25.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中诸如“第一”、“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
26.再者,本技术中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。
27.鉴于现有检测加密字符串的方式所存在的开销大、只能检测已知加密字符串,无法检测未知加密字符串的缺点。本技术实施例提供了一种加密字符串检测方法,通过机器学习来检测加密字符串,利用机器学习来发现加密字符串间的共性,并以此为依据检测加密字符串,从而可以大大减少安全从业人员的工作量。
28.为了更好的理解,下面将结合图1,对本技术实施例提供的网络模型训练方法进行说明。
29.s1:获取用于模型训练的字符串数据集,所述字符串数据集包括加密字符串样本集和非加密字符串样本集。
30.训练网络模型时,需要获取用于模型训练的字符串数据集,该字符串数据集包括
加密字符串样本集和非加密字符串样本集。
31.其中,加密字符串样本集,包括多条base64加密字符串(即利用base64加密算法加密的字符串)、多条md5(message digest 5,信息摘要算法第五版)加密字符串(即利用md5加密算法加密的字符串)、多条自定义加密字符串(即利用除base64加密算法、md5加密算法外的其他加密算法加密的字符串)。例如,加密字符串样本集有105万条加密字符串样本集,其中,包含35万条base64加密字符串、35万条md5加密字符串、35万条自定义加密字符串。
32.可选地,非加密字符串样本集包括多条英文短句、多条原始代码(可以是java、aspx、jsp(java server pages,java服务器页面)等语言的代码)、多条原始代码清洗(如去除注释、无效字符等)后剩余的多条字符串。例如,非加密字符串样本集有105万条非加密字符串,其中,包含35万条英文短句、35万条原始代码、这35万原始代码清洗后只保留字符串的非加密字符串。
33.需要说明的是,不能将上述示例的加密字符串、非加密字符串的具体条数,理解成是对本技术的限制,不过,样本数量越大,训练的模型预测的效果越准确,效果越好。
34.训练时,上述的加密字符串样本集和非加密字符串样本集对应正、负训练样本,可以是加密字符串样本集作为正训练样本,相应地,非加密字符串样本集作为负训练样本;当然,也可以反过来,即加密字符串样本集作为负训练样本,相应地,非加密字符串样本集作为正训练样本。
35.其中,可以将字符串数据集中的20%的字符串(包含加密字符串21万条和非加密字符串21万条)作为测试集使用,将待检测的字符串数据对应的特征向量,导入训练阶段已经训练好的模型中,识别出待检测的字符串是加密字符串,还是非加密字符串。
36.s2:对所述字符串数据集中的每一条字符串进行特征预处理。
37.在获取到用于模型训练的字符串数据集后,对字符串数据集中的每一条字符串进行特征预处理,以得到模型训练所需的特征向量。
38.一种可选实施方式下,对字符串数据集中的每一条字符串进行特征预处理的过程可以是:针对字符串数据集中的每一条字符串,对该条字符串做特征提取处理,以提取模型训练所需的n种不同特征,n为大于等于2的正整数,之后,将字符串数据集中所有字符串各自的n种不同特征,组成n维的特征向量矩阵,然后,对特征向量矩阵中的元素进行特征规范化处理,得到规范化处理后的特征向量矩阵。
39.其中,每条字符串提取的n种不同特征,包括:预设有效字符占比(valid_ratio)、数字占比(digit_ratio)、英文字符占比(letter_ratio)、不重复数字占比(unique_digit_ratio)、不重复英文字符占比(unique_letter_ratio)、连续数字占比(consec_digit_ratio)、连续英文字符占比(consec_alphas_ratio)、该条字符串的正样本3gram占比与其负样本3gram占比的比值(tri_gram_ratio)中的至少两种特征。也即,提取的特征可以是上述valid_ratio、digit_ratio、letter_ratio、unique_digit_ratio、unique_letter_ratio、unique_digit_ratio、unique_letter_ratio、consec_digit_ratio、consec_alphas_ratio、tri_gram_ratio这8种特征中的至少2种。其中,提取的特征越多,训练出来的模型的准确性越高,例如,一种可选实施方式下,可以是提取上述8种特征。上述每种特征的含义,可以参阅表1所示。
40.表1
[0041][0042]
其中,上述8种特征中的前7种都比较好理解,此处就不再进行说明,下面对tri_gram_ratio这一特征进行说明,所谓3gram就是将字符串按照3个字符进行分段,使得分段后的子字符串的字符均为3。为了便于理解,结合例子进行说明,假设字符串为“abcdef”,则可以分为4个子字符串:“adc”、“bcd”、“cde”、“def”。之后分别计算每个子字符串在正样本(假设有100条)、负样本(假设有100条)中的出现的频次。假设“adc”、“bcd”、“cde”、“def”这4个子字符串在100条正样本中分别出现了10次、20次、13次、35次、则该条字符串的正样本3gram占比为(10+20+13+35)/100=78/100。假设“adc”、“bcd”、“cde”、“def”这4个子字符在100条负样本中分别出现了18次、15次、17次、10次、则该条字符串的负样本3gram占比为(18+15+17+10)/100=60/100,则正样本3gram占比与负样本3gram占比的比值为78/60。当然,也可以计算负样本3gram占比与正样本3gram占比的比值,此时,比值为60/78。
[0043]
此外,还可以分别计算每个3gram字符串的正、负样本的比值,例如,上述“adc”在正样本中出现了10次,在负样本中出现了18次,则“adc”的正、负样本的比值为10/100:18/100=10/18,以便于后续在检测阶段,获取待检测字符串的tri_gram_ratio特征时使用。
[0044]
针对字符串数据集中的每一条字符串,对该条字符串做特征提取处理,以提取模型训练所需的上述8种特征中的n种(如n为8),将提取出的n种特征组成n维的特征向量。假
设字符串数据集有300条字符串,则可以构成一个300*8的特征向量矩阵,或者8*300的特征向量矩阵。之后,便可对向量矩阵中的元素进行特征规范化处理,得到规范化处理后的特征向量矩阵。
[0045]
其中,在对特征向量矩阵中的元素进行特征规范化处理,得到规范化处理后的特征向量矩阵时,其过程可以是对特征向量矩阵中的元素进行归一化处理,也即将每个元素除以一预设的数值,得到归一化处理后的特征向量矩阵。例如,若特征向量矩阵为m*n的特征向量矩阵时,针对特征向量矩阵的每一列,选取出该列元素中的最大值,并将该列中的每个元素除以该最大值,使得该列中的每个元素的值在(0,1]之间,m为字符串数据集中字符串的数量,m为大于n的正整数;若特征向量矩阵为n*m的特征向量矩阵时,针对特征向量矩阵的每一行,选取出该行元素中的最大值,并将该行中的每个元素除以该最大值,使得该行中的每个元素的值在(0,1]之间。
[0046]
或者,对特征向量矩阵中的元素进行特征规范化处理,得到规范化处理后的特征向量矩阵时,其过程可以是,利用高斯函数对特征向量矩阵中每一行或每一列的元素进行高斯分布处理,使其呈现出高斯分布的特性。
[0047]
s3:利用对所述字符串数据集中的每一条字符串进行特征预处理后得到的特征向量对预设神经网络模型进行训练,得到用于预测字符串是否加密的字符串检测模型。
[0048]
在对字符串数据集中的每一条字符串进行特征预处理后,便可利用对字符串数据集中的每一条字符串进行特征预处理后得到的特征向量对预设神经网络模型进行训练,从而得到用于预测字符串是否加密的字符串检测模型。
[0049]
在训练时,可以对多种模型(即算法)进行训练,之后利用测试集去测试不同模型的预测效果,选取效果最优的模型作为最终的字符串检测模型,例如,可以对支持向量机、神经网络、随机森林和xgboost等模型进行训练,之后使用交叉验证方式来评估模型优劣性,最终根据准确性和运行效率综合评估。例如,本技术实施例中,通过对支持向量机、神经网络、随机森林和xgboost等模型进行训练,之后经过比较选取随机森林作为最终模型。
[0050]
需要说明的是,具体的模型训练过程已经为本领域技术人员所熟知,在此不再进行说明。
[0051]
在训练得到用于预测字符串是否加密的字符串检测模型后,可以将训练好的字符串检测模型存储在本地,用于后续检测阶段使用。
[0052]
基于同样的发明构思,本技术实施例还提供了一种字符串检测方法,下面结合图2对其进行说明。
[0053]
s10:获取待检测字符串。
[0054]
s20:对所述待检测字符串进行特征预处理,以得到模型预测所需的n种不同特征,n为大于等于2的正整数。
[0055]
在获取到待检测字符串后,对待检测字符串进行特征预处理,以得到模型预测所需的n种不同特征。例如,对待检测字符串进行特征提取处理,以提取预设有效字符占比(valid_ratio)、数字占比(digit_ratio)、英文字符占比(letter_ratio)、不重复数字占比(unique_digit_ratio)、不重复英文字符占比(unique_letter_ratio)、连续数字占比(consec_digit_ratio)、连续英文字符占比(consec_alphas_ratio)、该条字符串的正样本3gram占比与其负样本3gram占比的比值(tri_gram_ratio)中的至少两种特征。一种实施方
式下,可以提取valid_ratio、digit_ratio、letter_ratio、unique_digit_ratio、unique_letter_ratio、unique_digit_ratio、unique_letter_ratio、consec_digit_ratio、consec_alphas_ratio、tri_gram_ratio这8种特征,之后将提取的n种特征组成特征向量。
[0056]
其中,在提取待检测字符串中的第8种特征(tri_gram_ratio)时,可以直接基于之前统计的值得出,比如“abc”在正样本出现50w次,在负样本出现10w次,“abc”的tri_gram_ratio就是50/10。需要说明的是,在训练模型的时候会提前计算每个3gram字符串的正、负样本的比值,并把所有的结果统计保存下来,以便于之后使用。因为本技术实施例中,数据库样本已经足够大(如正样本为105万条、负样本为105万条),这样基本可以找到每个3gram子字符串的在正、负样本中出现的次数。如果没有的话,直接使用默认值,默认值为各种3gram子字符串的正、负样本比值的平均值。
[0057]
在提取到模型预测所需的n种不同特征后,还可以进一步对提取到的特征进行特征规范化处理,例如,每个特征除以预设阈值。需要说明的是,不同特征的预设阈值可以不同,例如,valid_ratio特征对应的预设阈值为模型训练阶段时,所有字符串对应的valid_ratio特征中的最大值;同理,digit_ratio对应的预设阈值也为模型训练阶段时,所有字符串对应的digit_ratio特征中的最大值。同理,letter_ratio、unique_digit_ratio、unique_letter_ratio、unique_digit_ratio、unique_letter_ratio、consec_digit_ratio、consec_alphas_ratio、tri_gram_ratio对应的预设阈值也是如此,均为模型训练阶段时,所有字符串对应特征中的最大值。
[0058]
s30:将所述n种不同特征构成的特征向量输入事先训练好的字符串检测模型,得到预测结果。
[0059]
将提取得到n种不同特征构成的特征向量输入事先训练好的字符串检测模型中进行处理,便可得到预测结果。检测结果为加密字符串可疑概率p,p为0到1取值。概率p越大表示结果可信赖程度越高。
[0060]
在获取到预测结果后,一种实施方式下,还可以将预测结果以及提取的n种不同特征一起进行前端展示。例如,将待检测字符串的valid_ratio、digit_ratio、letter_ratio、unique_digit_ratio、unique_letter_ratio、unique_digit_ratio、unique_letter_ratio、consec_digit_ratio、consec_alphas_ratio、tri_gram_ratio,以及预测结果一起在前端进行展示。
[0061]
其中,一种实施方式下,可以基于上述的网络模型训练方法来训练字符串检测模型,也即在将所述n种不同特征构成的特征向量输入事先训练好的字符串检测模型,得到预测结果之前,该字符串检测方法还包括训练字符串检测模型。其中,具体的训练过程此处不再说明,具体可以参见上述的网络模型训练方法中的内容。
[0062]
为了更好的理解本技术字符串检测的整体逻辑,可以结合图3对其进行说明。可以看出在训练阶段以及检测阶段,对每条字符串进行特征预处理的过程相同,都包括特征提取处理以及特征规范化处理。
[0063]
基于同样的发明构思,本技术实施例还提供了一种网络模型训练装置100,如图4所示。该网络模型训练装置100包括:获取模块110、处理模块120、训练模块130。
[0064]
获取模块110,用于获取用于模型训练的字符串数据集,所述字符串数据集包括加密字符串样本集和非加密字符串样本集。
[0065]
处理模块120,用于对所述字符串数据集中的每一条字符串进行特征预处理。
[0066]
训练模块130,用于利用对所述字符串数据集中的每一条字符串进行特征预处理后得到的特征向量对预设神经网络模型进行训练,得到用于预测字符串是否加密的字符串检测模型。
[0067]
可选地,处理模块120用于针对所述字符串数据集中的每一条字符串,对该条字符串做特征提取处理,以提取模型训练所需的n种不同特征,n为大于等于2的正整数;将所述字符串数据集中所有字符串各自的n种不同特征,组成n维的特征向量矩阵;对所述特征向量矩阵中的元素进行特征规范化处理,得到规范化处理后的特征向量矩阵。
[0068]
可选地,处理模块120用于若所述特征向量矩阵为m*n的特征向量矩阵时,针对所述特征向量矩阵的每一列,选取出该列元素中的最大值,并将该列中的每个元素除以该最大值,使得该列中的每个元素的值在(0,1]之间,m为所述字符串数据集中字符串的数量,m为大于n的正整数;若所述特征向量矩阵为n*m的特征向量矩阵时,针对所述特征向量矩阵的每一行,选取出该行元素中的最大值,并将该行中的每个元素除以该最大值,使得该行中的每个元素的值在(0,1]之间。
[0069]
本技术实施例所提供的网络模型训练装置100,其实现原理及产生的技术效果和前述网络模型训练方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述网络模型训练方法实施例中相应内容。
[0070]
基于同样的发明构思,本技术实施例还提供了一种字符串检测装置200,如图5所示。该字符串检测装置200包括:获取模块210、处理模块220。获取模块210,用于获取待检测字符串。处理模块220,用于对所述待检测字符串进行特征预处理,以得到模型预测所需的n种不同特征,n为大于等于2的正整数,以及将所述n种不同特征构成的特征向量输入事先训练好的字符串检测模型,得到预测结果。
[0071]
本技术实施例所提供的字符串检测装置200,其实现原理及产生的技术效果和前述字符串检测方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述字符串检测方法实施例中相应内容。
[0072]
如图6所示,图6示出了本技术实施例提供的一种电子设备300的结构框图。所述电子设备300包括:收发器310、存储器320、通讯总线330以及处理器340。
[0073]
所述收发器310、所述存储器320、处理器340各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线330或信号线实现电性连接。其中,收发器310用于收发数据。存储器320用于存储计算机程序,如存储有图4、图5中所示的软件功能模块,即图4的网络模型训练装置100或图5的字符串检测装置200。其中,网络模型训练装置100或字符串检测装置200包括至少一个可以软件或固件(firmware)的形式存储于所述存储器320中或固化在所述电子设备300的操作系统(operating system,os)中的软件功能模块。所述处理器340,用于执行存储器320中存储的可执行模块。
[0074]
例如,处理器340在执行字符串检测装置200对应的软件功能模块时,处理器340用于:获取模型训练的字符串数据集,所述字符串数据集包括加密字符串样本集和非加密字符串样本集;对所述字符串数据集中的每一条字符串进行特征预处理;利用对所述字符串数据集中的每一条字符串进行特征预处理后得到的特征向量对预设神经网络模型进行训
练,得到用于预测字符串是否加密的字符串检测模型。
[0075]
例如,处理器340在执行网络模型训练装置100对应的软件功能模块时,处理器340用于:获取待检测字符串;对所述待检测字符串进行特征预处理,以得到模型预测所需的n种不同特征,n为大于等于2的正整数;将所述n种不同特征构成的特征向量输入事先训练好的字符串检测模型,得到预测结果。
[0076]
其中,存储器320可以是,但不限于,随机存取存储器(random access memory,ram),只读存储器(read only memory,rom),可编程只读存储器(programmable read-only memory,prom),可擦除只读存储器(erasable programmable read-only memory,eprom),电可擦除只读存储器(electric erasable programmable read-only memory,eeprom)等。
[0077]
处理器340可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器340也可以是任何常规的处理器等。
[0078]
其中,上述的电子设备300,包括但不限于计算机、服务器等。
[0079]
本技术实施例还提供了一种非易失性的计算机可读取存储介质(以下简称存储介质),该存储介质上存储有计算机程序,该计算机程序被计算机如上述的电子设备300运行时,执行上述所示的环形网络配置方法。
[0080]
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0081]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0082]
另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0083]
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个计算机可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,笔记本电脑,服务器,或者电子设备等)执行本技术各个实施例所述方
法的全部或部分步骤。而前述的计算机可读存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0084]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应所述以权利要求的保护范围为准。
技术特征:1.一种网络模型训练方法,其特征在于,包括:获取用于模型训练的字符串数据集,所述字符串数据集包括加密字符串样本集和非加密字符串样本集;对所述字符串数据集中的每一条字符串进行特征预处理;利用对所述字符串数据集中的每一条字符串进行特征预处理后得到的特征向量对预设神经网络模型进行训练,得到用于预测字符串是否加密的字符串检测模型。2.根据权利要求1所述的方法,其特征在于,对所述字符串数据集中的每一条字符串进行特征预处理,包括:针对所述字符串数据集中的每一条字符串,对该条字符串做特征提取处理,以提取模型训练所需的n种不同特征,n为大于等于2的正整数;将所述字符串数据集中所有字符串各自的n种不同特征,组成n维的特征向量矩阵;对所述特征向量矩阵中的元素进行特征规范化处理,得到规范化处理后的特征向量矩阵。3.根据权利要求2所述的方法,其特征在于,对所述特征向量矩阵中的元素进行特征规范化处理,包括:若所述特征向量矩阵为m*n的特征向量矩阵时,针对所述特征向量矩阵的每一列,选取出该列元素中的最大值,并将该列中的每个元素除以该最大值,使得该列中的每个元素的值在(0,1]之间,m为所述字符串数据集中字符串的数量,m为大于n的正整数;若所述特征向量矩阵为n*m的特征向量矩阵时,针对所述特征向量矩阵的每一行,选取出该行元素中的最大值,并将该行中的每个元素除以该最大值,使得该行中的每个元素的值在(0,1]之间。4.根据权利要求2所述的方法,其特征在于,该条字符串提取的n种不同特征,包括:预设有效字符占比、数字占比、英文字符占比、不重复数字占比、不重复英文字符占比、连续数字占比、连续英文字符占比、该条字符串的正样本3gram占比与其负样本3gram占比的比值中的至少两种特征。5.根据权利要求1-4中任一项所述的方法,其特征在于,所述加密字符串样本集,包括多条base64加密字符串、多条md5加密字符串、多条自定义加密字符串;和/或,所述非加密字符串样本集包括多条英文短句、多条原始代码、所述多条原始代码清洗后剩余的多条字符串。6.一种字符串检测方法,其特征在于,包括:获取待检测字符串;对所述待检测字符串进行特征预处理,以得到模型预测所需的n种不同特征,n为大于等于2的正整数;将所述n种不同特征构成的特征向量输入事先训练好的字符串检测模型,得到预测结果。7.一种网络模型训练装置,其特征在于,包括:获取模块,用于获取用于模型训练的字符串数据集,所述字符串数据集包括加密字符串样本集和非加密字符串样本集;处理模块,用于对所述字符串数据集中的每一条字符串进行特征预处理;
训练模块,用于利用对所述字符串数据集中的每一条字符串进行特征预处理后得到的特征向量对预设神经网络模型进行训练,得到用于预测字符串是否加密的字符串检测模型。8.一种字符串检测装置,其特征在于,包括:获取模块,用于获取待检测字符串;处理模块,用于对所述待检测字符串进行特征预处理,以得到模型预测所需的n种不同特征,n为大于等于2的正整数,以及将所述n种不同特征构成的特征向量输入事先训练好的字符串检测模型,得到预测结果。9.一种电子设备,其特征在于,包括:存储器和处理器,所述处理器与所述存储器连接;所述存储器,用于存储程序;所述处理器,用于调用存储于所述存储器中的程序,以执行如权利要求1-5中任一项所述的方法,或者,执行如权利要求6所述的方法。10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器运行时,执行如权利要求1-5中任一项所述的方法,或者,执行如权利要求6所述的方法。
技术总结本申请涉及一种网络模型训练方法、字符串检测方法、装置及电子设备,属于计算机技术领域。网络模型训练方法包括:获取用于模型训练的字符串数据集,所述字符串数据集包括加密字符串样本集和非加密字符串样本集;对所述字符串数据集中的每一条字符串进行特征预处理;利用对所述字符串数据集中的每一条字符串进行特征预处理后得到的特征向量对预设神经网络模型进行训练,得到用于预测字符串是否加密的字符串检测模型。通过机器学习来检测加密字符串,利用机器学习来发现加密字符串间的共性,并以此为依据检测加密字符串,从而可以大大减少安全从业人员的工作量。少安全从业人员的工作量。少安全从业人员的工作量。
技术研发人员:徐钟豪 陈伟 谢忱 刘伟
受保护的技术使用者:上海斗象信息科技有限公司
技术研发日:2022.04.08
技术公布日:2022/7/5