本发明专利技术涉及一种基于极限学习机的僵尸网络识别方法,首先,采集得到各种特征的僵尸网络数据集;采用K折交叉验证方法,将僵尸网络特征数据集划分为训练数据集和验证数据集;接着,将训练数据集和验证数据集输入极限学习机分类器进行训练,得到初始僵尸网络检测模型;然后,将测试数据集输入到僵尸网络模型中,并根据混淆矩阵对测试结果进行统计并计算得到四个指标;步骤S5:若四个指标的平均结果偏低,则对僵尸网络检测模型进行参数调整优化;最后,将待检测的网络流量数据进行数据预处理得到符合模型输入的数据集,并将数据集输入到僵尸网络检测模型中,判定该网络流量中是否包含僵尸网络。本发明专利技术可大大提高僵尸网络的检测效率。
A botnet recognition method based on limit learning machine
【技术实现步骤摘要】
一种基于极限学习机的僵尸网络识别方法
本专利技术涉及信息安全和僵尸网络检测
,特别是一种基于极限学习机的僵尸网络识别方法。
技术介绍
僵尸网络的检测方法主要分为两大类:传统入侵检测系统检测和深度学习模型检测。传统入侵检测系统检测僵尸网络的技术主要包括误用检测和异常检测。其中,误用检测基于通信特征码,使用事先配置的特征匹配规则对网络流量进行筛选。误用检测技术虽然对已知的僵尸网络的准确率较高,但是对加密流量的识别能力较弱,而且无法检测未知攻击。异常检测假设僵尸网络中命令与控制服务器与僵尸主机之间的通信模式与正常用户之间的通信模式有显著差异,因此可通过流量分析来对僵尸网络产生的异常流量进行检测,典型的异常特征包括高网络时延、非常规端口流量等。近年来,一些研究学者将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.一种基于极限学习机的僵尸网络识别方法,其特征在于:包括以下步骤:/n步骤S1:依据不同僵尸网络的特征,对网络流量数据进行解析,提取网络流量数据,采集得到包含僵尸网络特征的僵尸网络数据集;/n步骤S2:采用K折交叉验证方法,将僵尸网络特征数据集划分为训练数据集和验证数据集;/n步骤S3:将训练数据集和验证数据集输入极限学习机分类器进行训练,得到初始僵尸网络检测模型;/n步骤S4:将获取的K组测试数据集输入到训练好的僵尸网络模型中,用以测试模型的拟合能力和泛化能力,并根据混淆矩阵对测试结果进行统计,根据混淆矩阵的检测结果计算得到K组测试数据集的召回率(Recall,R)、精确率(Precision,P)、准确率即Accuracy和F值即F-measure指标;/n步骤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;/n步骤S6:将待检测的网络流量数据进行数据预处理得到符合模型输入的数据集,并将数据集输入到步骤S5得到的僵尸网络检测模型中,若僵尸网络模型输出为1,则判定该网络流量中是包含僵尸网络,若僵尸网络模型输出为0,则判定该网络流量中不包含僵尸网络。/n...
【技术特征摘要】
1.一种基于极限学习机的僵尸网络识别方法,其特征在于:包括以下步骤:
步骤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,则判定该网络流量中不包含僵尸网络。
2.根据权利要求1所述的一种基于极限学习机的僵尸网络识别方法,其特征在于:步骤S1所述对网络流量数据进行解析,提...
【专利技术属性】
技术研发人员:董晨,董旭东,郭文忠,程烨,何辉,杨旸,
申请(专利权)人:福州大学,
类型:发明
国别省市:福建;35
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。