一种基于特征选择的僵尸网络检测方法与流程

文档序号:20947087发布日期:2020-06-02 19:56阅读:523来源:国知局
一种基于特征选择的僵尸网络检测方法与流程

本发明涉及一种网络检测方法,具体的说是一种基于特征选择的僵尸网络检测方法,属于网络安全呢技术领域。



背景技术:

僵尸网络(botnet)是由大量被攻击者控制的联网设备构成的,其中受控的联网设备被称作僵尸主机(bot),攻击者(botmaster)通过预先设置好的命令与控制信道(commandandcontrol,c&c)操控僵尸主机进行ddos攻击、挖矿、恶意软件分发等恶意行为。其中最具有代表性的是2016年10月21日攻击者利用mirai,感染和控制了数以万计的物联网设备,组成了僵尸网络,对美国域名解析服务提供商dyn公司发动了ddos攻击,致使美国东部大面积网络瘫痪,包括twitter、facebook在内的多家美国网站无法通过域名访问。根据绿盟发布的《2018botnet趋势报告》,2018年总共监控到攻击命令111472条,其中有效攻击目标数量为451187次,相较2017年增长了66.4%,而botnet攻击的受害者中,中国占据了39.78%。

僵尸网络的检测主要有3类方法:基于蜜罐的检测方法、基于主机行为的检测方法以及基于网络流量的检测方法。蜜罐是被精心构造用作陷阱的工具,可以通过蜜罐收集僵尸程序的信息和活动并对这些数据进行分析,从而进行僵尸网络的检测。基于主机行为的检测是通过在联网设备上部署检测程序,收集设备的行为信息并加以分析,从而实现僵尸网络的检测。基于网络流量的检测方法主要分为2类:误用检测和异常检测。误用检测基于通信特征码,使用事先配置的特征匹配规则对网络流量进行筛选;异常检测通过流量分析来对僵尸网络产生的异常流量进行检测,多采用机器学习和深度学习技术。

机器学习的核心理念是利用数学和统计学相关知识,通过公式计算和过往经验逐步优化模型性能的学科,随机森林是其中一种典型的算法。随机森林是由一组决策树组成的集合分类器。随机森林中每棵树都有划分的节点和叶节点,划分的节点评估每个输入数据,并根据数据的特性将其传递到左侧或右侧的次要叶子,每个叶节点都存储输入数据的统计信息。随机森林构造过程分为四步:随机样本的选取、随机选择特征、构建决策树、随机森林投票分类。随机森林具有如下特点:(1)在大数据集上有良好表现;(2)可以处理高维度数据;(3)可以评估特征在分类问题上的重要性;(4)训练速度快,具有较高准确性。

深度学习是机器学习的一个子领域,是近年来机器学习的重大突破和研究热点之一,它是一种以人工神经网络(ann)为架构的对数据进行表征学习的一种算法。通过引入卷积神经网络(convolutionalneuralnetwork,cnn)和循环神经网络(recurrentneuralnetworks,rnn),深度学习的实用性和适用性得到了巨大的提升。

卷积神经网络是一种多层人工神经网络。网络中的每一层由多个特征面组成,每个特征面由多个独立的神经元组成,相邻的两层神经元相互连接,并且在同一层神经元之间没有连接。cnn使用权值共享的网络结构,通过改变网络的深度和广度来调整模型的容量。因此,卷积神经网络可以有效的降低网络模型的复杂度。



技术实现要素:

本发明的目的是提供一种基于特征选择的僵尸网络检测方法,通过特征选择剔除无关和不重要的特征,充分保留有效特征,提高神经网络的训练速度和检测准确率,提高神经网络的泛化性能。

本发明的目的是这样实现的:一种基于特征选择的僵尸网络检测方法,步骤如下:

s1使用公开的僵尸网络数据集,解析网络流量提取流量特征;

s2采用随机森林算法计算流量特征的重要性并进行排序,从而选择出合适的特征进行学习;

s3采用改进的卷积神经网络对流量特征进行学习,生成僵尸网络检测模型;

s4对网络流量进行捕获,使用训练好的僵尸网络检测模型检测是否被感染。

作为本发明的进一步限定,步骤s1的具体步骤为:

s101.下载僵尸网络数据集,包括僵尸网络流量和正常流量,文件格式为pcap;

s102.对pcap文件进行分割,采用基于流的分割方法,将具有相同五元组(源ip、源端口、目的ip、目的端口、传输协议)的数据包聚合成数据流,以此为粒度将大容量的pcap文件分割成小容量的pcap文件;

s103.使用cicflowmeter提取流量特征。

作为本发明的进一步限定,步骤s2的具体步骤为:

s201.对提取到的特征使用随机森林算法计算特征重要性,采用基尼系数作为评价指标;

s202.计算结果进行排序,选择前20的特征进行学习。

作为本发明的进一步限定,步骤s3的具体步骤为:

s301.将选择后的特征数据转换成二维灰度图像;

s302.构建卷积神经网络进行特征学习,以二维灰度图像作为输入,特征学习结束后使用softmax进行分类,输出检测结果。

作为本发明的进一步限定,步骤s4的具体步骤为:

s401.使用wireshark工具捕获网络流量;

s402.对捕获的流量进行分割,提取出20种特征并转换为二维灰度图像;

s403.使用步骤s3中训练好的模型进行僵尸网络检测。

本发明采用以上技术方案与现有技术相比,具有以下技术效果:

(1)本发明中使用采用机器学习方法进行特征选择,相比于直接将网络流量转化为二维灰度图像,充分保留了重要特征,剔除无效特征,同时尽可能避免流量裁剪损失重要特征,提高了神经网络的训练速度和检测准确率;

(2)本发明中对传统的卷积神经网络进行改进,使用批量归一化技术提高神经网络的训练速度,同时可以提高神经网络的泛化性能。

附图说明

图1为本发明的流程图。

具体实施方式

下面结合附图对本发明的技术方案做进一步的详细说明:

本发明提出了一个用于检测僵尸网络的模型。图1所示为整个模型的流程图。

整个僵尸网络检测模型的重要过程包括:数据集特征提取、特征选取、卷积神经网络特征学习。

一、数据集特征提取。

对于下载到的公开僵尸网络数据集,首先根据网络流进行pcap文件分割,将具有相同五元组(源ip、源端口、目的ip、目的端口、传输协议)的数据包聚合成数据流,将一个单独的大容量文件分割成众多小容量pcap文件,便于后续操作。

然后使用cicflowmeter提取网络流量特征,该软件可以提取85个流量统计特征,包括通信协议、通信端口、流持续时间、数据分组总数等。

二、特征选择。

从数据集中提取的特征众多,高维数据容易导致模型的过拟合,同时大量的数据会提高模型的复杂度,加大计算量,增加模型的训练时间。因此,有必要进行特征选择。

使用随机森林进行特征选择,就是对每一个特征在随机森林的每一颗决策树上的表现进行评估,然后进行比较,从中选择出表现较好的特征进行后续的特征学习。目前常用的评价标准主要有2种:基尼指数和袋外数据错误率。本发明采用基尼指数作为评价标准。每一个特征在随机森林每一个节点的重要性为节点分支前后基尼指数的变化量,然后对特征在随机森林中出现的所有节点的重要性求和,得到该特征的重要性评分。为便于比较,对重要性评分做归一化处理。

三、卷积神经网络特征学习。

通过此前的特征选择,得到特征重要性的排序,选择重要性前20的特征进行学习。

lenet-5是一种典型的卷积神经网络模型,在手写数字识别等领域被广泛应用。本发明采用的卷积神经网络的架构基于lenet-5,并做了针对性的改进。

神经网络的输入为20个特征数据转化得到的32*32的灰度图像,输出为流量分类结果,即正常流量和僵尸网络流量,因此输出层的神经元为2个,使用softmax分类器。

卷积层1:使用32个5*5的卷积核进行卷积操作,滑动步长为1,输出32个28*28的特征面。特征面大小的计算公式:

式中,omapn为输入特征面大小,cwindow为卷积核大小,cinterval为滑动步长;采用relu作为激励函数,在使用激励函数前增加批量归一化层。

池化层1:采用2*2的池化窗口,滑动步长为2,使用随机池化的方法进行池化操作,该方法在一定程度上可以同时保留图像的背景信息和纹理信息,减少误差,同时随机操作又能较好的避免过拟合的出现。输出为32个14*14的特征面。

卷积层2:使用64个3*3的卷积核进行卷积操作,滑动步长为1,输出64个12*12的特征面。采用relu作为激励函数,在使用激励函数前增加批量归一化层。

池化层2:与上一层池化层使用相同的参数,输出64个6*6的特征面。

全连接层1:由1024个神经元组成,与上一池化层全连接,输出为1024维向量。

全连接层2(输出层):由2个神经元组成,与上一层全连接,输出2维向量。

此外,使用dropout方法缓解过拟合,鉴于神经网络增加了批量归一化层,可以使用较小的dropout,参数设置为0.2。

当前,基于网络流的僵尸网络检测算法主要有朴素贝叶斯、c4.5、随机森林、神经网络等;其中,单纯使用卷积神经网络进行检测,可以达到94.5%的准确率。因为本发明增加了特征选择,减少有效特征额损失,同时改进了卷积神经网络的结构,因此,使用该方法对僵尸网络的检测准确率可达到96.8%,并且训练速度快于原先方法。

以上所述,仅为本发明中的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可理解想到的变换或替换,都应涵盖在本发明的包含范围之内,因此,本发明的保护范围应该以权利要求书的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1