一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据检测方法、模型训练方法、装置及电子设备与流程

2022-05-08 07:48:11 来源:中国专利 TAG:


1.本技术涉及涉及互联网技术领域,具体而言,涉及一种数据检测方法、模型训练方法、装置及电子设备。


背景技术:

2.僵尸网络(botnet)是指采用一种或多种传播手段,将大量主机感染bot程序(僵尸程序)病毒,从而在控制者和被感染主机之间所形成的一个可一对多控制的网络。由于僵尸网络行为在大多数情况下看起来像正常的网络行为,若使用僵尸网络行为进行通信的恶意攻击,这种情况对安全分析人员构成了挑战。传统检测僵尸网络的方式,通常是人工分析网络数据,或者是在僵尸网络形成、攻击阶段,利用僵尸主机存在的行为特征,采用单一模型分析通信的网络数据内容,以进行网络数据的检测,存在漏检误检的情况。


技术实现要素:

3.本技术的目的在于提供一种数据检测方法、模型训练方法、装置及电子设备,能够提高僵尸网络数据检测的准确性与检测效率。
4.为了实现上述目的,本技术提供的技术方案如下:
5.第一方面,本技术实施例提供一种数据检测方法,所述方法包括:以i个不同时间长度的时间窗口,从原始流量数据采集得到与i个时间窗口对应的流量数据,i为大于1的整数;通过预设处理算法对所述流量数据进行预处理,得到与每个所述时间窗口的流量数据对应的特征向量;将与所述原始流量数据中的每条流量对应的所述特征向量输入经过训练测试的监督学习模型,得到由所述监督学习模型输出的表征所述每条流量是否为僵尸网络流量的检测结果;其中,所述监督学习模型包括m类机器学习模型及n类深度学习模型,所述m类机器学习模型及所述n类深度学习模型均用于对每个所述时间窗口所对应的所述特征向量进行检测,以得到m n个初检结果,当在所述m n个初检结果中,超过预设数量的初检结果均表示同一条待测流量数据为僵尸网络流量,则所述监督学习模型输出表征所述待测流量数据为僵尸网络流量的检测结果,m、n均为大于或等于1的整数。
6.在上述的实施方式中,由m类机器学习模型及n类深度学习模型均对流量数据进行检测,然后再对得到的m n个初检结果进行分析,以确定待测流量数据是否为僵尸网络流量,如此,可以替换人工进行检测,有利于提高检测效率。另外,采用多类模型进行并联检测,有利于提高检测的准确性与可靠性,改善因检测模型单一而出现漏检误检的问题。
7.结合第一方面,在一些可选的实施方式中,通过预设处理算法对所述流量数据进行预处理,得到与每个所述时间窗口的流量数据对应的特征向量,包括:针对i个时间窗口中的每个时间窗口,提取每个所述时间窗口所采集到的流量数据在多个维度下的流量特征的特征集合;滤除每个所述时间窗口的所述特征集合中满足预设过滤条件的流量特征,得到过滤后的特征集合;基于预设的流量特征与特征向量的映射关系,将所述过滤后的特征集合中的流量特征转换为与每个所述时间窗口对应的特征向量。
8.在上述的实施方式中,经过过滤后的流量特征,可以降低数据的噪声,提高检测的准确性。另外,通过过滤操作,可以避免对不必要数据进行检测,以降低运算量。
9.结合第一方面,在一些可选的实施方式中,所述方法还包括:当在所述m n个初检结果中,表征同一条所述待测流量数据为僵尸网络流量的初检结果的数量小于或等于所述预设数量时,从所述过滤后的特征集合中选取指定类别的流量特征,作为对所述待测流量数据的聚类特征;根据所述聚类特征,通过预设聚类算法对所述待测流量数据进行聚类,得到聚类结果,所述聚类结果用于表示所述待测流量数据为僵尸网络流量或为非僵尸网络流量。
10.在上述的实施方式中,原始流量数据在经过监督学习模型的检测后,利用预设聚类算法对原始流量数据作进一步检测,如此,有利于提高检测的可靠性与准确性。
11.结合第一方面,在一些可选的实施方式中,在以i个不同时间长度的时间窗口,从原始流量数据采集得到与i个时间窗口对应的流量数据之前,所述方法还包括:获取用于模型训练测试的流量数据集,所述流量数据集包括表征非僵尸网络流量的第一类数据集,以及表征僵尸网络流量的第二类数据集,所述第一类数据集和所述第二类数据集中预设占比的流量数据作为训练数据集,所述第一类数据集和所述第二类数据集中除去所述训练数据集之外的流量数据作为测试数据集;通过所述训练数据集中的流量数据,对m类机器学习模型及n类深度学习模型进行训练;通过所述测试数据集中的流量数据,对经过训练的m类机器学习模型及n类深度学习模型进行测试,得到经过训练测试的m类机器学习模型及n类深度学习模型以形成所述监督学习模型。
12.结合第一方面,在一些可选的实施方式中,所述方法还包括:当所述检测结果表征所述待测流量数据为僵尸网络流量时,发出警告提示。
13.在上述的实施方式中,在检测出僵尸网络流量时,通过发出警告提示,有利于相关人员及时发现僵尸网络行为,进而及时进行相应的维护。
14.结合第一方面,在一些可选的实施方式中,所述m类机器学习模型分别为朴素贝叶斯模型、k近邻模型、逻辑回归模型、决策树模型和随机森林模型;所述n类深度学习模型分别为卷积神经网络模型、递归神经网络模型及长短时记忆网络模型。
15.第二方面,本技术还提供一种模型训练方法,所述方法包括:获取用于模型训练测试的流量数据集,所述流量数据集包括表征非僵尸网络流量的第一类数据集,以及表征僵尸网络流量的第二类数据集,所述第一类数据集和所述第二类数据集中预设占比的流量数据作为训练数据集,所述第一类数据集和所述第二类数据集中除去所述训练数据集之外的流量数据作为测试数据集;通过所述训练数据集中的流量数据,对m类机器学习模型及n类深度学习模型进行训练;通过所述测试数据集中的流量数据,对经过训练的m类机器学习模型及n类深度学习模型进行测试,得到经过训练测试的m类机器学习模型及n类深度学习模型以形成监督学习模型,其中,所述监督学习模型用于对待测流量数据进行检测,以确定所述待测流量数据是否为僵尸网络流量。
16.第三方面,本技术还提供一种数据检测装置,所述装置包括:采集单元,用于以i个不同时间长度的时间窗口,从原始流量数据采集得到与i个时间窗口对应的流量数据,i为大于1的整数;预处理单元,用于通过预设处理算法对所述流量数据进行预处理,得到与每个所述时间窗口的流量数据对应的特征向量;检测单元,用于将与所述原始流量数据中的
每条流量对应的所述特征向量输入经过训练测试的监督学习模型,得到由所述监督学习模型输出的表征所述每条流量是否为僵尸网络流量的检测结果。
17.其中,所述监督学习模型包括m类机器学习模型及n类深度学习模型,所述m类机器学习模型及所述n类深度学习模型均用于对每个所述时间窗口所对应的所述特征向量进行检测,以得到m n个初检结果,当在所述m n个初检结果中,超过预设数量的初检结果均表示同一条待测流量数据为僵尸网络流量,则所述监督学习模型输出表征所述待测流量数据为僵尸网络流量的检测结果,m、n均为大于或等于1的整数。
18.第四方面,本技术还提供一种模型训练装置,所述装置包括:数据获取单元,用于获取用于模型训练测试的流量数据集,所述流量数据集包括表征非僵尸网络流量的第一类数据集,以及表征僵尸网络流量的第二类数据集,所述第一类数据集和所述第二类数据集中预设占比的流量数据作为训练数据集,所述第一类数据集和所述第二类数据集中除去所述训练数据集之外的流量数据作为测试数据集;训练单元,用于通过所述训练数据集中的流量数据,对m类机器学习模型及n类深度学习模型进行训练;测试单元,用于通过所述测试数据集中的流量数据,对经过训练的m类机器学习模型及n类深度学习模型进行测试,得到经过训练测试的m类机器学习模型及n类深度学习模型以形成监督学习模型,其中,所述监督学习模型用于对待测流量数据进行检测,以确定所述待测流量数据是否为僵尸网络流量。
19.第五方面,本技术还提供一种电子设备,所述电子设备包括相互耦合的处理器及存储器,所述存储器内存储计算机程序,当所述计算机程序被所述处理器执行时,使得所述电子设备执行上述的数据检测方法,或执行上述的模型训练方法。
20.第六方面,本技术还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行上述的数据检测方法,或执行上述的模型训练方法。
附图说明
21.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
22.图1为本技术实施例提供的数据检测方法的流程示意图。
23.图2为本技术实施例提供的数据检测装置的框图。
24.图3为本技术实施例提供的模型训练方法的流程示意图。
25.图4为本技术实施例提供的模型训练装置的框图。
26.图标:200-数据检测装置;210-采集单元;220-预处理单元;230-检测单元;400-模型训练装置;410-数据获取单元;420-训练单元;420-测试单元。
具体实施方式
27.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。需要说明的是,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要
性。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
28.本技术提供一种电子设备,可以用于对网络流量数据进行检测,以判断网络流量是否为僵尸网络流量。其中,在对网络流量数据进行检测之前,电子设备上部署或安装有经过训练测试的监督学习模型,利用该监督学习模型进行数据检测,有利于提高僵尸网络数据检测的准确性与检测效率。
29.在本实施例中,电子设备可以包括处理模块及存储模块。存储模块内存储计算机程序,当计算机程序被所述处理模块执行时,使得电子设备能够执行下述数据检测方法以及模型训练方法中的各步骤。
30.电子设备可以是但不限于个人电脑、服务器、主机设备等。在其他实施方式中,电子设备可以是由多个分布式服务器组成的集群。
31.请参照图1,本技术还提供一种数据检测方法,可以应用于上述的电子设备中,由电子设备执行或实现方法中的各步骤。方法可以包括如下步骤:
32.步骤110,以i个不同时间长度的时间窗口,从原始流量数据采集得到与i个时间窗口对应的流量数据,i为大于1的整数;
33.步骤120,通过预设处理算法对所述流量数据进行预处理,得到与每个所述时间窗口的流量数据对应的特征向量;
34.步骤130,将与所述原始流量数据中的每条流量对应的所述特征向量输入经过训练测试的监督学习模型,得到由所述监督学习模型输出的表征所述每条流量是否为僵尸网络流量的检测结果;其中,所述监督学习模型包括m类机器学习模型及n类深度学习模型,所述m类机器学习模型及所述n类深度学习模型均用于对每个所述时间窗口所对应的所述特征向量进行检测,以得到m n个初检结果,当在所述m n个初检结果中,超过预设数量的初检结果均表示同一条待测流量数据为僵尸网络流量,则所述监督学习模型输出表征所述待测流量数据为僵尸网络流量的检测结果,m、n均为大于或等于1的整数。
35.在上述的实施方式中,由m类机器学习模型及n类深度学习模型均对流量数据进行检测,然后再对得到的m n个初检结果进行分析,以确定待测流量数据是否为僵尸网络流量,如此,可以替换人工进行检测,有利于提高检测效率。另外,采用多类模型进行并联检测,有利于提高检测的准确性与可靠性,改善因检测模型单一而出现漏检、误检的问题。
36.下面将对方法的各步骤进行详细阐述,如下:
37.在步骤110中,时间窗口的数量i及每个时间窗口对应的时间长度均可以根据实际情况灵活设置。示例性地,电子设备可以使用5个时间窗口作为分析窗口,5个时间窗口的时间长度可以分别为100毫秒、500毫秒、1.5秒、10秒和1分钟等时长。其中,时间长度可理解为采集数据的周期。
38.原始流量数据指待测数据集,可以为实时从其他设备的端口采集的数据,或者为历史网络数据,可以根据实际情况灵活确定。在原始流量数据中,每条网络数据为基于时间序列的数据,即,每条网络数据具有采集到该网络数据的时间戳。在利用时间窗口从原始流量数据采集流量数据期间,可以周期性地从原始流量数据中采集得到与每个时间窗口对应的流量数据。
39.例如,在利用1分钟时长的时间窗口采集数据时,若原始流量数据为实时数据,则电子设备以1分钟为采集周期,周期性地从端口采集实时数据,并将每个周期采集到的数据
作为该时间窗口对应的流量数据,每个周期的流量数据作为一份待测数据。在采用其他时长的时间窗口采集数据时,采集数据的方式与上述1分钟时长的时间窗口的采集方式相类似,这里不再赘述。
40.在本实施例中,时间窗口的时间长度可看做窗口的尺寸,通过不同时间长度的时间窗口从原始流量数据进行数据采集,有利于丰富采集方式以及丰富被采集到的数据所具有的特征信息,从而有利于提高僵尸网络检测的准确性,避免因采集的时间长度单一而遗漏与时间相关的特征信息或遗漏其他特征信息。
41.在步骤120中,预设处理算法可以根据实际情况灵活确定,用于将网络数据转换为用于僵尸网络检测的特征向量。在数据预处理期间,每个时间窗口所采集到的流量数据,可以相对独立地转换成特征向量。例如,针对100毫秒的时间窗口,电子设备可以通过预处理算法,将每100毫秒采集的流量数据转换成相应的特征向量,每100毫秒对应的特征向量可以作为一个需要进行僵尸网络检测的数据单元。
42.示例性地,步骤120可以包括:
43.步骤121,针对i个时间窗口中的每个时间窗口,提取每个所述时间窗口所采集到的流量数据在多个维度下的流量特征的特征集合;
44.步骤122,滤除每个所述时间窗口的所述特征集合中满足预设过滤条件的流量特征,得到过滤后的特征集合;
45.步骤123,基于预设的流量特征与特征向量的映射关系,将所述过滤后的特征集合中的流量特征转换为与每个所述时间窗口对应的特征向量。
46.在步骤121中,电子设备可以按照期望提取的数据的特征维度(或特征类别),从每个时间窗口采集的流量数据中,进行特征提取。其中,期望提取的特征维度可以根据实际情况灵活确定。
47.例如,电子设备可以利用argus工具统计流量包特征。针对每个时间窗口的流量数据,利用argus工具可以提取到期望获取多类流量特征,以作为特征集合。所提取的流量特征包括但不限于流量的五元组、源机器中目标ip存活时间、目标到源的包个数等。其中,相同五元组的流量数据作为元数据并标识为一条流量。另外,argus工具为一种常规的流量监视器,具有流量特征提取的功能。
48.在步骤122中,预设过滤条件可以根据实际情况灵活确定。示例性地,预设过滤条件为:
49.(flow['dir']==”)or(int(flow['srcpkts']) int(flow['dstpkts'])==0
[0050]
上述过滤条件可理解为:在一条流量数据中,当特征dir为空或者srcpkts与dstpkts之和等于0时,则满足预设过滤条件。流量数据满足过滤条件后,便删除该流量数据,如此,可以得到经过过滤后的特征集合。其中,经过过滤后的流量特征,可以降低数据的噪声,提高检测的准确性。另外,通过过滤操作,可以避免对不必要数据进行检测,以降低运算量。
[0051]
在步骤123中,在过滤后的特征集合中,部分流量特征的取值为字符串型(dir、state),需映射为数值型,以便于进行检测。其中,流量特征与特征向量的映射关系可以根据实际情况灵活设置。通过该映射关系,可以将每个时间窗口的流量特征转换为相应的特征向量。
[0052]
示例性地,映射关系可以包括:
[0053]
argus_dir={'-》':0,'?》':1,'《-':2,'《?':3,'《-》':4,'《?》':5,'who':6}
[0054]
即,针对流量特征dir中的字符,可以将字符
“‑
》”映射为数字0,将字符“?》”映射为数字1,将字符“《
‑”
映射为数字2,将字符“《?”映射为数字3,将字符“《-》”映射为数字4,将字符“《?》”映射为数字5,将字符“who”映射为数字6。
[0055]
在步骤130中,在经过训练测试的监督学习模型中,m类机器学习模型及n类深度学习模型均可以通过对每个时间窗口的特征向量进行检测,进而检测原始流量数据是否为僵尸网络流量,每个模型均可以输出相应的检测结果以作为初检结果。
[0056]
机器学习模型的类别数量m、深度学习模型的类别数量n及预设数量,均可以根据实际情况灵活确定。
[0057]
例如,m类机器学习模型可以包括但不限于朴素贝叶斯(bayes,nb)模型、k近邻(k-nearest neighbor,knn)模型、逻辑回归(logistic regression,lr)模型、决策树(decision tree,dt)模型和随机森林(random forest,rf)模型。
[0058]
n类深度学习模型可以包括但不限于卷积神经网络(convolutional neural networks,cnn)模型、递归神经网络(recursive neural network,rnn)模型及长短时记忆网络(long short term memory network,lstm)模型。
[0059]
若机器学习模型为上述的5类模型,深度学习模型为上述的3类模型,针对机器学习模型和深度学习模型而言,预设数量可以不同。比如,在5类模型机器学习模型中,大于等于3类模型的初检结果均表示所述原始流量数据为僵尸网络流量;或者,在3类深度学习模型中,大于等于2类模型的初检结果均表示所述原始流量数据为僵尸网络流量,则监督学习模型输出表征原始流量数据为僵尸网络流量的检测结果。
[0060]
或者,预设数量可以为一个总数4。在8个模型中,超过4个(例如5个)的模型的初检结果均表示所述原始流量数据为僵尸网络流量,则监督学习模型输出表征原始流量数据为僵尸网络流量的检测结果。
[0061]
在检测过程中,可以采用无监督学习,并且可以检查主机的特性,而不是基于流的特性(在模型的前期训练过程中,模型的分类器首先用于识别潜在的僵尸网络流量)。内部主机可以定义:如果主机的ip是一个僵尸网络的源ip或目的ip,则涉及僵尸网络通信,该主机输出的网络数据被分类器预测为僵尸网络流量。
[0062]
在步骤110之前,方法可以包括对监督学习模型中的各类模型进行训练测试的步骤。例如,在步骤110之前,方法还可以包括:
[0063]
获取用于模型训练测试的流量数据集,所述流量数据集包括表征非僵尸网络流量的第一类数据集,以及表征僵尸网络流量的第二类数据集,所述第一类数据集和所述第二类数据集中预设占比的流量数据作为训练数据集,所述第一类数据集和所述第二类数据集中除去所述训练数据集之外的流量数据作为测试数据集;
[0064]
通过所述训练数据集中的流量数据,对m类机器学习模型及n类深度学习模型进行训练;
[0065]
通过所述测试数据集中的流量数据,对经过训练的m类机器学习模型及n类深度学习模型进行测试,得到经过训练测试的m类机器学习模型及n类深度学习模型以形成所述监督学习模型。
[0066]
在本实施例中,非僵尸网络流量即为正常的网络数据。预设占比、第一类数据集和第二类数据集的数据量均可以根据实际情况灵活确定。例如,在第一类数据集中,所包括的正常的网络数据可以为100万条。在第二类数据集中,所包括的僵尸网络数据可以为100万条。若预设占比为80%,则80万条正常的网络数据,以及80万条僵尸网络数据组成训练数据集;剩余的20万条正常的网络数据,以及剩余的20万条僵尸网络数据组成测试数据集。
[0067]
在进行训练测试之前,需要将流量数据转换为特征向量,如此,可以得到与训练数据集对应的特征向量,以及与测试数据集对应的特征向量。其中,将网络数据转换成特征向量的转换方式可以参见步骤120的预处理过程,这里不再赘述。
[0068]
然后,利用80万条正常的网络数据以及80万条僵尸网络数据对应的特征向量,对m类机器学习模型及n类深度学习模型进行训练;再利用20万条正常的网络数据以及20万条僵尸网络数据对应的特征向量,对训练后的m类机器学习模型及n类深度学习模型进行测试,如此,便可以得到经过训练测试后的m类机器学习模型及n类深度学习模型,以作为监督学习模型。此时,在监督学习模型中,每个模型便可以具有对待测流量数据进行僵尸网络数据的识别功能。
[0069]
在本实施例中,方法还可以包括:
[0070]
当在所述m n个初检结果中,表征同一条所述待测流量数据为僵尸网络流量的初检结果的数量小于或等于所述预设数量时,从所述过滤后的特征集合中选取指定类别的流量特征,作为对所述待测流量数据的聚类特征;
[0071]
根据所述聚类特征,通过预设聚类算法对所述待测流量数据进行聚类,得到聚类结果,所述聚类结果用于表示所述待测流量数据为僵尸网络流量或为非僵尸网络流量。
[0072]
在本实施例中,用于聚类检测的指定类别的流量特征可以根据实际情况进行选择,可以是但不限于7种特征'count','srcpkts','dstpkts','srcbytes','dstbytes','avg_len_unique_ports','len_unique_dsts',7种特征的含义如下:
[0073]
count,指预测该主机参与的僵尸网络流(条数)总数;
[0074]
srcpkts,指发生僵尸网络攻击的主机发出的报文总数;
[0075]
dstpkts,指发生僵尸网络攻击的主机接收的报文总数;
[0076]
srcbytes,指从参与僵尸网络流的主机接收的总字节数;
[0077]
dstbytes,指从僵尸网络中流出的主机总字节数;
[0078]
avg_len_unique_ports,指主机正在通信的不同目标端口的总数;
[0079]
len_unique_dsts,指主机通信的不同目的ip的总数。
[0080]
预设聚类算法可以是层次聚类(agglomerative clutsering)算法,层次聚类算法是一种“自下而上”的聚类分析方式,每个数据点从它自己的集群开始,逐渐合并到层次结构中更高层的其他集群知道待测流量数据中只剩下两类(指僵尸网络流量、非僵尸网络流量)为止。
[0081]
假设,网络上的大多数主机未被感染,只有一小部分被感染了僵尸病毒,此时,在聚类过程中,对于待测流量数据而言,可以将较小的集群标识为异常/僵尸网络集群,较大的集群标识为良性(non-botnet)集群。对于每个窗口,假设僵尸网络集群中的主机为在该时间范围内被感染,然而,单个窗口通常是不够来确定僵尸网络行为的存在,此时,可以检查主机集群的时间特性会员人数,以作为检测僵尸网络行为的一个更准确的指标。
[0082]
申请人发现,在实际僵尸网络中存在的现象:
[0083]
(1)在许多僵尸网络架构中,宿主机要设法向多个ip地址发起连接来寻找可以介入网络节点,因此,在连接过程中出现大量源ip相同,目标不同的tcpsyn包;
[0084]
(2)如果在一段时间内,从某一ip的一个确定端口向多个不同的目标ip发起了udp(user datagram protocol,用户数据报协议)连接,且同时保持和许多ip地址的tcp(transmission control protocol,传输控制协议)包或udp包交互;
[0085]
(3)在一段短时间内,某一个{源ip,目标ip}对之间交替出现tcp包和udp包(即同时使用tcp和udp作为传输协议),并且交替次数超过某个预先设定的阈值,则该{源ip,目标ip)对之间的通信流就很有可能属于僵尸网络流量。
[0086]
在本技术中,电子设备可以在tcp协议中,针对原始流量数据使用20分钟时长的时间窗口滑窗,查询ip(源ip)和端口与ip(目标ip)和端口保持连接的所有记录,然后统计每个源ip连接的不同目标ip数,和与不同目标ip的交替连接次数,过滤掉目标ip数小于10的样本且交替数小于某个预先设定的阈值,得到的样本(网络数据)即为可疑的样本宿主机。若得到的可疑宿主机样本与通过预设聚合算法得到的较小的僵尸网络集群中,有重合的主机,则重合的主机被视为被感染病毒的主机,并予以报警。
[0087]
在本实施例中,方法还可以包括:当所述检测结果表征所述待测流量数据为僵尸网络流量时,发出警告提示。
[0088]
在检测出僵尸网络流量时,通过发出警告提示,有利于相关人员及时发现僵尸网络行为,进而及时进行相应的维护,以降低因僵尸网络行为造成的数据及经济损失。
[0089]
在本实施例中,电子设备可以将检测结果返回到前端界面,方便数据的展示与查询,以体现模型可解释性。其中,前端展示分为监督学习模型和原始数据两部分,可以展示模型与原始数据。
[0090]
为了便于理解对僵尸网络流量的检测过程,下面将对检测过程进行举例阐述,如下:
[0091]
首先,五元组相同的流量作为一条待测流量数据。电子设备可以采用5个时间窗口(时间长度可以分别为100ms、500ms、1.5s、10s和1分钟)作为采集窗口。每个窗口可以作为一个统计单元,从而可以统计到每个窗口内针对一条待测流量采集到的所有流量数据信息。然后,使用argus工具统计流量包特征,示例性地,所统计的流量特征可以为下表1中的41个维度特征。其中,电子设备可以同时对多条流量进行检测。
[0092]
表1:
[0093]
[0094]
[0095][0096]
然后,符合如下预设过滤条件的流量数据,将被抛弃。如此,可以得到过滤后的特征集合。示例性地,预设过滤条件可以为:
[0097]
(flow['dir']==”)or(int(flow['srcpkts']) int(flow['dstpkts'])==0
[0098]
在表1中,部分流量特征取值为字符串型(dir、state),需映射为数值型,即,需要通过映射关系,将流量特征转换为特征向量。示例性地,映射关系可以为:
[0099]
argus_dir={'-》':0,'?》':1,'《-':2,'《?':3,'《-》':4,'《?》':5,'who':6}
[0100]
argus_states={'sta':0,'rst':1,'con':2,'fin':3,'int':4,'eco':5,'
urhpro':6,'urp':7,'red':8,'req':9,'urn':10,'urh':11,'acc':12,'rsp':13,'ecr':14,'txd':15,'nns':16,'urfil':17,'nrs':18,'clo':19,'urf':20,'uro':21,'src':22,'dce':23,'urnpro':24}
[0101]
然后,将每条流量的特征向量分别输入至5类机器学习模型(分别为朴素贝叶斯模型、k近邻模型、逻辑回归模型、决策树模型和随机森林模型),以及3类深度学习模型(分别为卷积神经网络模型、递归神经网络模型及长短时记忆网络模型),由每个模型对5个时间窗口通过采集每条流量得到的特征向量进行检测,并得到针对每条流量的8个检测结果作为初检结果。如果有大于或等于3个机器模学习模型,或者有大于或等于2个深度学习模型都检测出为该条流量属于攻击类型,就将此条流量归入僵尸网络流量集中,此时监督学习模型便输出表征该条待测流量数据为僵尸网络流量的检测结果。
[0102]
如果有小于3个机器模学习模型,且有小于2个深度学习模型检测出为该条流量属于攻击类型,则将此条流量归入可疑流量集中。然后,利用每条流量的7种特征('count','srcpkts','dstpkts','srcbytes','dstbytes','avg_len_unique_ports','len_unique_dsts'),通过预设聚类算法对待测流量数据进行聚类。聚类结果为两类,分别指待测流量数据为僵尸网络流量(异常网络流量)、非僵尸网络流量(正常网络流量)。
[0103]
然后,统计僵尸网络流量、非僵尸网络流量两类聚簇的方差。例如,模型假定异常簇有更高的方差,通过方差对比进一步确认僵尸网络流量。比如,方差大于或等于设定值,则确认待测流量最终为僵尸网络流量;若方差小于设定值,则确认待测流量为正常网络流量,设定值可以根据实际情况灵活设置。
[0104]
请参照图2,本技术实施例还提供一种数据检测装置200,可以应用于上述的电子设备中,用于执行方法中的各步骤。数据检测装置包括至少一个可以软件或固件(firmware)的形式存储于存储模块中或固化在电子设备操作系统(operating system,os)中的软件功能模块。处理模块用于执行存储模块中存储的可执行模块,例如数据检测装置所包括的软件功能模块及计算机程序等。
[0105]
数据检测装置200可以包括采集单元210、预处理单元220及检测单元230,各单元具有的功能可以如下:
[0106]
采集单元210,用于以i个不同时间长度的时间窗口,从原始流量数据采集得到与i个时间窗口对应的流量数据,i为大于1的整数;
[0107]
预处理单元220,用于通过预设处理算法对所述流量数据进行预处理,得到与每个所述时间窗口的流量数据对应的特征向量;
[0108]
检测单元230,用于将与所述原始流量数据中的每条流量对应的所述特征向量输入经过训练测试的监督学习模型,得到由所述监督学习模型输出的表征所述每条流量是否为僵尸网络流量的检测结果;其中,所述监督学习模型包括m类机器学习模型及n类深度学习模型,所述m类机器学习模型及所述n类深度学习模型均用于对每个所述时间窗口所对应的所述特征向量进行检测,以得到m n个初检结果,当在所述m n个初检结果中,超过预设数量的初检结果均表示同一条待测流量数据为僵尸网络流量,则所述监督学习模型输出表征所述待测流量数据为僵尸网络流量的检测结果,m、n均为大于或等于1的整数。
[0109]
可选地,预处理单元220可以用于:针对i个时间窗口中的每个时间窗口,提取每个所述时间窗口所采集到的流量数据在多个维度下的流量特征的特征集合;滤除每个所述时
间窗口的所述特征集合中满足预设过滤条件的流量特征,得到过滤后的特征集合;基于预设的流量特征与特征向量的映射关系,将所述过滤后的特征集合中的流量特征转换为与每个所述时间窗口对应的特征向量。
[0110]
可选地,数据检测装置200还可以包括特征选取单元及聚类单元。特征选取单元用于当在所述m n个初检结果中,表征同一条所述待测流量数据为僵尸网络流量的初检结果的数量小于或等于所述预设数量时,从所述过滤后的特征集合中选取指定类别的流量特征,作为对所述待测流量数据的聚类特征;聚类单元用于根据所述聚类特征,通过预设聚类算法对所述待测流量数据进行聚类,得到聚类结果,所述聚类结果用于表示所述待测流量数据为僵尸网络流量或为非僵尸网络流量。
[0111]
可选地,数据检测装置200还可以包括数据获取单元、训练单元及测试单元。数据获取单元用于获取用于模型训练测试的流量数据集,所述流量数据集包括表征非僵尸网络流量的第一类数据集,以及表征僵尸网络流量的第二类数据集,所述第一类数据集和所述第二类数据集中预设占比的流量数据作为训练数据集,所述第一类数据集和所述第二类数据集中除去所述训练数据集之外的流量数据作为测试数据集;训练单元用于通过所述训练数据集中的流量数据,对m类机器学习模型及n类深度学习模型进行训练;测试单元用于通过所述测试数据集中的流量数据,对经过训练的m类机器学习模型及n类深度学习模型进行测试,得到经过训练测试的m类机器学习模型及n类深度学习模型以形成所述监督学习模型。
[0112]
可选地,数据检测装置200还可以包括提示单元,用于当所述检测结果表征所述待测流量数据为僵尸网络流量时,发出警告提示。
[0113]
请参照图3,本技术还提供一种模型训练方法,可以应用于上述的电子设备中,由电子设备执行方法中的各步骤。其中,方法可以包括如下步骤:
[0114]
步骤310,获取用于模型训练测试的流量数据集,所述流量数据集包括表征非僵尸网络流量的第一类数据集,以及表征僵尸网络流量的第二类数据集,所述第一类数据集和所述第二类数据集中预设占比的流量数据作为训练数据集,所述第一类数据集和所述第二类数据集中除去所述训练数据集之外的流量数据作为测试数据集;
[0115]
步骤320,通过所述训练数据集中的流量数据,对m类机器学习模型及n类深度学习模型进行训练;
[0116]
步骤330,通过所述测试数据集中的流量数据,对经过训练的m类机器学习模型及n类深度学习模型进行测试,得到经过训练测试的m类机器学习模型及n类深度学习模型以形成监督学习模型,其中,所述监督学习模型用于对待测流量数据进行检测,以确定所述待测流量数据是否为僵尸网络流量。
[0117]
可理解地,模型训练方法的各步骤具体的实现过程,可以参见上述的在步骤110之前对监督学习模型进行训练测试的过程,这里不再赘述。
[0118]
请参照图4,本技术实施例还提供一种模型训练装置400,可以应用于上述的电子设备中,用于执行方法中的各步骤。模型训练装置包括至少一个可以软件或固件(firmware)的形式存储于存储模块中或固化在电子设备操作系统(operating system,os)中的软件功能模块。处理模块用于执行存储模块中存储的可执行模块,例如模型训练装置所包括的软件功能模块及计算机程序等。
[0119]
模型训练装置400可以包括数据获取单元410、训练单元420及测试单元430,各单元具有的功能可以如下:
[0120]
数据获取单元410,用于获取用于模型训练测试的流量数据集,所述流量数据集包括表征非僵尸网络流量的第一类数据集,以及表征僵尸网络流量的第二类数据集,所述第一类数据集和所述第二类数据集中预设占比的流量数据作为训练数据集,所述第一类数据集和所述第二类数据集中除去所述训练数据集之外的流量数据作为测试数据集;
[0121]
训练单元420,用于通过所述训练数据集中的流量数据,对m类机器学习模型及n类深度学习模型进行训练;
[0122]
测试单元430,用于通过所述测试数据集中的流量数据,对经过训练的m类机器学习模型及n类深度学习模型进行测试,得到经过训练测试的m类机器学习模型及n类深度学习模型以形成监督学习模型,其中,所述监督学习模型用于对待测流量数据进行检测,以确定所述待测流量数据是否为僵尸网络流量。
[0123]
在本实施例中,电子设备上的处理模块可以是一种集成电路芯片,具有信号的处理能力。上述处理模块可以是中央处理器(central processing unit,cpu)、图形处理器(graphics processing unit,gpu)、网络处理器(network processor,np)等,可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。
[0124]
存储模块可以是,但不限于,随机存取存储器,只读存储器,可编程只读存储器,可擦除可编程只读存储器,电可擦除可编程只读存储器等。在本实施例中,存储模块可以用于存储原始流量数据、与时间窗口对应的流量数据、监督学习模型及预设聚类算法等。当然,存储模块还可以用于存储程序,处理模块在接收到执行指令后,执行该程序。
[0125]
需要说明的是,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的电子设备、数据检测装置200及模型训练装置400的具体工作过程,可以参考前述方法中的各步骤对应过程,在此不再过多赘述。
[0126]
本技术实施例还提供一种计算机可读存储介质。计算机可读存储介质中存储有计算机程序,当计算机程序在计算机上运行时,使得计算机执行如上述实施例中所述的数据检测方法、模型训练方法。
[0127]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本技术可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现,基于这样的理解,本技术的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施场景所述的方法。
[0128]
综上所述,在本方案中,由m类机器学习模型及n类深度学习模型均对流量数据进行检测,然后再对得到的m n个初检结果进行分析,以确定待测流量数据是否为僵尸网络流量,如此,可以替换人工进行检测,有利于提高检测效率。另外,采用多类模型进行并联检测,有利于提高检测的准确性与可靠性,改善因检测模型单一而出现漏检误检的问题。
[0129]
在本技术所提供的实施例中,应该理解到,所揭露的装置、系统和方法,也可以通过其它的方式实现。以上所描述的装置、系统和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程
序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0130]
以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献