一种基于极限学习机的僵尸网络识别方法与流程

文档序号:20947120发布日期:2020-06-02 19:56阅读:235来源:国知局
一种基于极限学习机的僵尸网络识别方法与流程
本发明涉及信息安全和僵尸网络检测
技术领域
,特别是一种基于极限学习机的僵尸网络识别方法。
背景技术
:僵尸网络的检测方法主要分为两大类:传统入侵检测系统检测和深度学习模型检测。传统入侵检测系统检测僵尸网络的技术主要包括误用检测和异常检测。其中,误用检测基于通信特征码,使用事先配置的特征匹配规则对网络流量进行筛选。误用检测技术虽然对已知的僵尸网络的准确率较高,但是对加密流量的识别能力较弱,而且无法检测未知攻击。异常检测假设僵尸网络中命令与控制服务器与僵尸主机之间的通信模式与正常用户之间的通信模式有显著差异,因此可通过流量分析来对僵尸网络产生的异常流量进行检测,典型的异常特征包括高网络时延、非常规端口流量等。近年来,一些研究学者将cnn,lstm,svm等方法应用到僵尸网络的检测方法中,并取得了相对不错的检测结果。神经网络和深度学习的发展给僵尸网络的检测提供了新的手段,但也带来了新的问题。无论是cnn还是lstm方法来检测僵尸网络时,都需要将网络流量转化为模型需要的数据格式。例如,通过cnn建立模型检测僵尸网络,需要将获取的网络流量转化并保存为图片,然后再输入到模型进行训练,这会带来两个弊端。首先,我们需要消耗一定的系统资源来处理并保存这些图片;其次,在训练模型时,又需要将图片转化为张量,这无疑增量了时间和空间的开销。随着5g网络和物联网的发展,越来越多的物联网设备也将接入到互联网中,但物联网设备的处理器很多时候并不能满足当前深度学习模型的运算需求。因此,需要使用高效的机器学习方法建立僵尸网络检测模型来应对当前阶段物联网设备运算能力不足的缺点。由此可见,机器学习方法在僵尸网络检测的应用中还存在一定的提升空间。为了适应现阶段物联网环境下,物联网设备运算能力不足的缺点,本发明提出了一种基于极限学习机的模型用来对僵尸网络进行有效的检测。技术实现要素:有鉴于此,本发明的目的是提供一种基于极限学习机的僵尸网络识别方法,针对现有深度学习模型检测僵尸网络需要消耗大量运算资源,训练时间长,需要强大的运算平台作为训练基础的问题,本发明利用极限学习机算法建立僵尸网络检测模型,仅需要少量的运算资源,少量的运算时间就能达到现有的基于深度学习的僵尸网络检测模型的识别准确率。本发明采用以下方案实现:一种基于极限学习机的僵尸网络识别方法,包括以下步骤:步骤s1:依据不同僵尸网络的特征,对网络流量数据进行解析,提取网络流量数据,采集得到包含僵尸网络特征的僵尸网络数据集;步骤s2:采用k折交叉验证方法,将僵尸网络特征数据集划分为训练数据集和验证数据集;步骤s3:将训练数据集和验证数据集输入极限学习机分类器进行训练,得到初始僵尸网络检测模型;步骤s4:将获取的k组测试数据集输入到训练好的僵尸网络模型中,用以测试模型的拟合能力和泛化能力,并根据混淆矩阵对测试结果进行统计,根据混淆矩阵的检测结果计算得到k组测试数据集的召回率(recall,r)、精确率(precision,p)、准确率即accuracy=和f值即f-measure指标;步骤s5:判断步骤s4中计算得到的k组测试数据集的(recall,r)、(precision,p)、accuracy和f-measure是否符合要求;若不符合要求即若步骤s4中计算得到的k组测试数据集的(recall,r)、(precision,p)、accuracy和f-measure的平均结果均低于预设值,则调整僵尸网络检测模型隐含层神经元个数,所述调整神经元个数的范围为100—200,直到平均结果不低于预设值为止;重新执行步骤s3至步骤s4训练僵尸网络模型;其中,所述预设值为80%;若符合要求则得到步骤s4中测试完拟合能力和泛化能力后的模型,并继续执行步骤s6;步骤s6:将待检测的网络流量数据进行数据预处理得到符合模型输入的数据集,并将数据集输入到步骤s5得到的僵尸网络检测模型中,若僵尸网络模型输出为1,则判定该网络流量中是包含僵尸网络,若僵尸网络模型输出为0,则判定该网络流量中不包含僵尸网络。进一步地,步骤s1所述对网络流量数据进行解析,提取网络流量数据的具体内容为:提取得到的网络流量是以pcap文件方式存储,一条网络流前面的数据主要包括连接信息和少部分的内容交换;在处理每条网络流量时,截取其前256字节的数据,对于不足256字节的网络流量,则在其末尾补充0x00;然后把每字节数据转换为十进制数得到该条网络流量的特征和其对应的标签一起存入.csv文件,该文件共有257列数据,前256列表示一条网络流量的256个特征值,第257列为类别标签,正常网络流量的标签为0,僵尸网络流量的标签为1。进一步地,步骤s2所述的将僵尸网络特征数据集划分为训练数据集和验证数据集的具体内容是,将不同网络流量提取出的僵尸网络特征数据集分别记作botnet(1),botnet(2),…,botnet(i),...botnet(k),对数据集进行k种组合分组,并进行k次实验;其中,第i次分组的情况是将botnet(i)作为验证数据集,其余的k-1个特征数据集组合为训练数据集。进一步地,步骤s4中所述计算recall(r)、precision(p)、accuracy和f-measure指标的具体计算公式如下:precision(p)=tp/(tp+fp)recall(r)=tp/(tp+fn)accuracy=(tp+tn)/(tp+fn+fp+tn)f-measure=2p*r/(p+r)其中,tp表示的是僵尸网络被正确检测为僵尸网络的个数;fp表示正常网络被错误检测为僵尸网络的个数;fn表示僵尸网络被错误检测为正常网络的个数;tn表示正常网络被正常识别为正常网络的个数;计算f-measure公式中的p表示精确率(precision,p),r表示召回率(recall,r)。与现有技术相比,本发明具有以下有益效果:本发明能够较好的在网络传输过程中对僵尸网络进行检测,相比于现有的基于深度学习的僵尸网络检测方法,本发明不需要对网络流量进行繁琐的处理,仅通过将提取得到的网络流量二进制数据转化为模型所需要的十进制输入格式的数据来训练模型。本发明不依赖大量的运算单元,仅需要少量的运算资源即可进行模型训练,并且模型训练也只需要少量的时间,在保证识别准确率的同时大大提高了僵尸网络的检测效率。附图说明图1为本发明实施例的僵尸网络检测流程图。图2为本发明实施例的混淆矩阵图。具体实施方式下面结合附图及实施例对本发明做进一步说明。应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属
技术领域
的普通技术人员通常理解的相同含义。需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。如图1所示,本实施例还提供一种基于极限学习机的僵尸网络识别方法,包括以下步骤:步骤s1:依据不同僵尸网络的特征,对网络流量数据进行解析,提取网络流量数据,采集得到各种特征的僵尸网络数据集;步骤s2:采用k折交叉验证方法,将僵尸网络特征数据集划分为训练数据集和验证数据集;步骤s3:将训练数据集和验证数据集输入极限学习机分类器进行训练,得到初始僵尸网络检测模型;步骤s4:将获取的k组测试数据集输入到训练好的僵尸网络模型中,用以测试模型的拟合能力和泛化能力,并根据图2的混淆矩阵对测试结果进行统计,根据混淆矩阵的检测结果计算得到k组测试数据集的召回率recall,r、精确率precision,p、准确率即accuracy和f值即f-measure指标;步骤s5:判断步骤s4中计算得到的k组测试数据集的(recall,r)、(precision,p)、accuracy和f-measure是否符合要求;若不符合要求即若步骤s4中计算得到的k组测试数据集的(recall,r)、(precision,p)、accuracy和f-measure的平均结果均低于预设值,则调整僵尸网络检测模型隐含层神经元个数,所述调整神经元个数的范围为100—200,直到平均结果不低于预设值为止;重新执行步骤s3至步骤s4训练僵尸网络模型;其中,所述预设值为80%;若符合要求则得到步骤s4中测试完拟合能力和泛化能力后的模型,并继续执行步骤s6;步骤s6:将待检测的网络流量数据进行数据预处理得到符合模型输入的数据集,并将数据集输入到步骤s5得到的僵尸网络检测模型中,若僵尸网络模型输出为1,则判定该网络流量中是包含僵尸网络,若僵尸网络模型输出为0,则判定该网络流量中不包含僵尸网络。在本实施例中,步骤s1所述对网络流量数据进行解析,提取网络流量数据的具体内容为:提取得到的网络流量是以pcap文件方式存储,一条网络流前面的数据主要包括连接信息和少部分的内容交换;在处理每条网络流量时,截取其前256字节的数据,对于不足256字节的网络流量,则在其末尾补充0x00;然后把每字节数据转换为十进制数得到该条网络流量的特征和其对应的标签一起存入.csv文件,该文件共有257列数据,前256列表示一条网络流量的256个特征值,第257列为类别标签,正常网络流量的标签为0,僵尸网络流量的标签为1。在本实施例中,步骤s2所述的将僵尸网络特征数据集划分为训练数据集和验证数据集的具体内容是,将不同网络流量提取出的僵尸网络特征数据集分别记作botnet(1),botnet(2),…,botnet(i)...botnet(k),对数据集进行k种组合分组,并进行k次实验;其中,第i次分组的情况是将botnet(i)作为验证数据集,其余的k-1个特征数据集组合为训练数据集。在本实施例中,步骤s4中所述计算recall(r)、precision(p)、accuracy和f-measure指标的具体计算公式如下:precision(p)=tp/(tp+fp)recall(r)=tp/(tp+fn)accuracy=(tp+tn)/(tp+fn+fp+tn)f-measure=2p*r/(p+r)其中,tp表示的是僵尸网络被正确检测为僵尸网络的个数;fp表示正常网络被错误检测为僵尸网络的个数;fn表示僵尸网络被错误检测为正常网络的个数;tn表示正常网络被正常识别为正常网络的个数;计算f-measure公式中的p表示精确率(precision,p),r表示召回率(recall,r)。在本实施例中,具体的实验模拟过程如下:第一步,采集网络流量中僵尸网络流量训练样本。对iscx-bot-2014提供的网络流量训练样本进行解析,采集僵尸网络的特征数据集。表1列出了不同僵尸网络名称,类别以及在网络流量训练样本中所占的比例。网络流量是以pcap文件方式存储的,因此对pcap文件进行处理得到模型需要的输入数据。通常,一条网络流前面的数据主要包括连接信息(tcp连接的三次握手、tls连接的密钥交换)和少部分的内容交换,可以比较好的反应整条数据的主要特征。因此,在处理每条网络流量时,截取其前256字节的数据,对于不足256字节的网络流量,则在其末尾补充0x00。然后把每字节数据转换为十进制数得到该条网络流量的特征和其对应的标签一起存入.csv文件。该文件共有257列数据,前256列表示一条网络流量的256个特征值,第257列为类别标签,正常网络流量的标签为0,僵尸网络流量的标签为1。iscx-bot-2014共提供了200000条网络流量用来训练模型,因此,将每20000条网络流量划分为一个特征数据集,一共得到10个特征数据集.csv文件。每个.csv文件包含20000行样本数据(正常网络流量和僵尸网络流量的总和),每行样本数据包含256个特征值和1个类标签。第二步,训练集和验证集的划分。对表1中的10个特征数据集利用k折交叉验证方法进行训练集和验证集的划分。例如,当botnet0作为验证集时,其余的9个数据集组合为一个训练集进行模型训练。每个特征数据集轮流当作验证集,共进行10次模型训练,最后对10次实验结果求取平均值,得到模型对僵尸网络检测的结果,如表2所示。第三步,训练极限学习机分类器,并依据recall、precision、accuracy和f-measure四个评价指标对分类器的参数进行调整。通过多次实验的调整,得到在极限学习机的隐含层神经元个数取值为200时,得到最佳检测模型。第四步,测试模型的泛化能力,从iscx-bot-2014提供的测试集中提取40000条不含僵尸网络的流量,并划分为botnet10和botnet11测试集,输入模型得到测试结果。表2和表3分别列出了本实施例针对含僵尸网络的网络数据流量和针对不含僵尸网络的网络数据流量的检测效果。可以看出本实施例针对含僵尸网络的网络数据流量可以取得95.68%recall,97.64%precision,96.65%f-measure以及96.67%accuracy的检测效果。本实施例针对不含僵尸网络的数据集可以得到99.78%accuracy的检测结果。表1iscx-bot-2014网络流量样本中僵尸网络种类和在数据集中的占比僵尸网络名称僵尸网络种类在数据集中的占比nerisirc21159(12%)rbotirc39316(22%)viruthttp1638(0.94%)nsisp2p4336(2.48%)smtpspamp2p11296(6.48%)zeusp2p31(0.01%)zeuscontrol(c&c)p2p20(0.01%)表2针对包含僵尸网络的网络流量数据集的检测结果数据集tptnfpfnrecallf-measureprecisionaccuracybotnet066211263538336194.83%94.68%94.53%96.28%botnet168181250136631595.58%95.24%94.91%96.60%botnet268231254933729195.91%95.60%95.29%96.86%botnet367081255742630995.60%94.81%94.03%96.33%botnet467711255638428995.91%95.27%94.63%96.64%botnet566941263835631295.55%95.25%94.95%96.66%botnet667071251842535095.04%94.54%94.04%96.13%botnet768621255928929095.95%95.95%95.96%97.11%botnet867691266231925096.44%95.97%95.50%97.16%botnet967071268433227796.03%95.66%95.28%96.96%平均值————95.68%95.30%94.91%96.67%表3针对不含僵尸网络的网络流量数据集的检测结果数据集tptnfpfnrecallf-measureprecisionaccuracybotnet10019997030.00%0.00%0.00%99.99%botnet110199110890.00%0.00%0.00%99.56%平均值———————99.78%以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1