一种基于深度学习的DDOS检测方法与流程

文档序号:12789535阅读:476来源:国知局
一种基于深度学习的DDOS检测方法与流程

本发明涉及网络通信技术领域,具体涉及一种基于深度学习的DDOS检测方法。



背景技术:

伴随着全球信息化进程的飞速发展,网络中的攻击者利用网络的系统架构以及网络中的服务器系统存在的安全漏洞,或窃取网络用户的个人信息,或破坏正常网络环境,或阻止目标主机的正常交互通信,网络环境正遭遇日益严重的安全问题挑战。随着近年来互联网用户数目呈现的爆炸式的增长,新型的网络应用,诸如社交网络、高清在线视频,以及创新性的服务模式,例如云计算、大数据的出现,都对传统网络提出了新的需求,传统的网络体系架构在网络的可控性、可扩展性以及安全性等方面的发展也逐渐出现瓶颈,一些新型的网络体系架构在此背景下相继被提出。

2006年,美国斯坦福大学Clean Slate课题组提出了软件定义网络(Software Defined Network,SDN)的概念。软件定义网络(Software Defined Networking,SDN)作为一种新型的网络体系架构,具有控制平面与数据平面分离、集中控制以及软件可编程的特征,为解决当前传统网络面临的瓶颈,研发网络新型应用以及未来互联网新技术提供了一种创新性的解决方案。SDN新型网络体系架构,其设计思想,决定了其具备数据与控制分离和集中控制两个主要特点,其中,集中控制主要是使用软件控制器对网络数据转发规则进行集中化管理,因此,在SDN网络体系架构中,由于集中化的控制管理,让计算机网络数据转发更加快捷高效,控制器与转发设备之间通过安全通道的连接,某种程度也增强了SDN网络架构的安全性。然而,从另一个角度说,正是由于SDN网络体系架构集中控制和转发分离的特点,因而让攻击者的攻击目标更加明确,某种程度也让SDN网络体系架构变得更加脆弱。

OpenFlow技术的概念最早是由来自斯坦福大学的Ni ck McKeown教授提出的,进过多年的发展,随着OpenFlow协议标准化的制定与推广,OpenFlow协议目前已成为SDN网络体系架构的主流的南向接口协议之一。然而,SDN在带来网络体系架构方面革新的同时,也在安全防御体系方面带来了新的挑战。

分布式拒绝服务攻击(Distributed Denial of Service,DDoS)则是基于拒绝服务攻击(Denial of Service,DoS)的基础上产生的一种特殊形式的拒绝服务攻击方式,它采用的是一种分布式、协作式的大规模网络攻击方式,主要的攻击目标瞄准为比较大的站点,例如商业公司,搜索引擎或者是政府部门的站点。由于DDoS不同于DoS攻击只需要一个电脑终端和一个调制解调器就可以实现,DDoS的攻击则是利用一批已经受控的机器向一个固定站点同时发起攻击,这样的攻击来势凶猛,令人难以防备,具有更强的破坏性。在SDN新型网络架构中,针对SDN网络体系架构数据控制分离、集中控制的特点,SDN网络体系架构对DDoS攻击的防御也是一个需要考虑的问题。

2006年,机器学习领域的学界泰斗、加拿大多伦多大学的教授Geoffrey Hinton与他的学生Ruslan Salakhutdinov在世界顶级学术刊物《科学》上发表了一篇文章,开启了深度学习在学术界和工业界的浪潮。深度学习技术可通过学习一种深层的非线性的网络结构,来实现对复杂函数逼近,用以表征输入数据分布式表示,并且展现出了强大的从少数样本集中学习数据集本质特征的能力。深度学习技术的本质,是通过构建一种具有大量隐藏层的机器学习模型,以及通过海量的训练数据,来学习客体更有用的特征,从而达到最终能提升分类或预测准确性的目的。深度学习技术这种具有大量隐藏层的好处,是可以通过用较少的参数来表示出复杂的函数客体。由于深度学习的这些特点,近年来,深度学习技术的运用领域越来越广泛。

防御DDOS攻击是保证网络安全的一个重要前提,因此本发明将深度学习技术运用于网络安全,提出了一种基于深度学习的DDOS防御方法。基于深度学习的DDoS检测方法具有高检测精度、对软硬件设备依赖小、深度学习网络模型易于更新等优点,弥补了现有DDoS攻击检测方案的不足。



技术实现要素:

现有的DDoS攻击入侵检测方法对DDoS攻击行为存在相对较高的漏报率。与此同时,如今网络规模越来越庞大,网络环境愈来愈复杂化,复杂网络环境下的不确定因素或者网络用户的一些不确定性的错误操作,最终也可能会引起DDoS攻击检测系统的报警,进而产生误报,因此不可避免地存在较高的误报率,同时现有DDoS攻击检测系统对数据规模庞大的网络流量进行检测时,很难生效。

本发明为了克服以上不足,提出了一种基于深度学习的DDOS检测方法。该方法采用深度学习作为DDoS检测方法,具有高检测精度、对软硬件设备依赖小、深度学习网络模型易于更新等优点,弥补了现有DDoS攻击检测方案的不足。该方法包含如下步骤:

(1)对输入的m个数据包分别提取n个报文字段,作为特征值字段,并将这n个特征值字段,划分为文本类型字段、数值类型字段和布尔类型字段三种类型;

(2)将布尔类型特征值字段转换为二进制值的格式后作为输入数据格式,将文本类型的特征值字段,通过BoW(Bag of Word,词汇假设)的方法进行格式转换后作为输入数据格式,数值类型特征值字段作为输入数据格式,转换后的特征值个数为n′;

(3)将特征转换后的m*n的二维特征矩阵,用一系列连续的窗口尺寸为T的时间窗进行切割,并为每个时间窗设置标签值y,标签值y为0,表示该时间窗口内数据包为正常包,标签值y为1,表示该时间窗口内数据包为DDOS攻击包;

(4)对切割后的特征进行维度重构,得到(m-T)*T*n′的三维特征矩阵;

(5)构建包含输入层,前向递归神经网络层,反向递归神经网络层,全连接隐层和输出层的深度学习网络模型;

(6)将经过特征处理后的三维特征矩阵,输入到深度学习网络模型的输入层,输入层将处理的结果,同时输入到深度学习网络模型的前向递归神经网络层和反向递归神经网络层;

(7)前向递归神经网络层和反向递归神经网络层将处理的结果同时输入到全连接隐层的输入层,并在全连接隐层的输入层对处理的结果进行合并;

(8)全连接隐层处理完数据后通过输出层进行预测输出,检测是否为DDOS攻击。

进一步地,所述文本类型的特征值字段格式转换过程中,将散列法运用到BoW(Bag of Word,词汇假设)转换法当中,并将各个特征值字段进行标准化规范。

进一步地,所述时间窗口T的尺寸是根据输入的m个数据包中DDOS攻击数据包,和正常数据包的分布统计信息确定的。

进一步地,所述深度学习网络模型中前向递归神经网络层和反向递归神经网络层中采用LSTM网络模型,前向递归网络层和反向递归网络层相互独立。

进一步地,所述深度学习网络模型中在输入层后面加入一个一维CNN网络层,在前向递归神经网络层,反向递归神经网络层和全连接层隐层后面分别加入一个批处理正规化层。

本发明的有益效果是:该方法采用深度学习进行DDOS检测,包含特征处理和模型检测两个阶段,特征处理阶段对输入的数据包进行特征提取,格式转换和维度重构,模型检测阶段将处理后的特征输入到深度学习网络模型进行检测,判断输入的数据包是否为DDOS攻击包。采用了深度学习抽象化高层数据、自动学习、模型易于更新的特点,相比于传统DDOS检测方法,在检测精度、软硬件设备依赖性方面更具有优势。

附图说明

图1是基于深度学习的DDOS检测流程图;

图2是深度学习特征处理分析图;

图3是深度学习网络模型架构图。

具体实施方式

下面结合附图详细说明本发明,本发明的目的和效果将更加明显。

本发明提供了一种基于深度学习的DDOS检测方法。如图1所示,该方法包含如下步骤:

(1)对输入的m个数据包分别提取n个报文字段,作为特征值字段,并将这n个特征值字段,划分为文本类型字段、数值类型字段和布尔类型字段三种类型;

(2)将布尔类型特征值字段转换为二进制值的格式后作为输入数据格式,其中,TCP,UDP等布尔类型特征值字段,在输入到深度学习网络模型时,将其转换为二进制值的格式作为输入数据格式,TCP,UDP,HTTP等端口号,定义了一个16bit位的二进制列表,用于存储TCP,UDP,HTTP等端口号转换后的二进制值,将Frame.Protocols等文本类型的特征值字段,通过BoW(Bag of Word,词汇假设)的方法进行格式转换后作为输入数据格式,Tcp.Len,Udp.Len等数值类型特征值字段作为输入数据格式,转换后的特征值个数为n′;

(3)将特征转换后的m*n′的二维特征矩阵,用一系列连续的窗口尺寸为T的时间窗进行切割,并为每个时间窗设置标签值y,标签值y为0,表示该时间窗口内数据包为正常包,标签值y为1,表示该时间窗口内数据包为DDOS攻击包;

(4)对切割后的特征进行维度重构,得到(m-T)*T*n′的三维特征矩阵;

(5)构建包含输入层,前向递归神经网络层,反向递归神经网络层,全连接隐层和输出层的深度学习网络模型;

(6)将经过特征处理后的三维特征矩阵,输入到深度学习网络模型的输入层,输入层将处理的结果,同时输入到深度学习网络模型的前向递归神经网络层和反向递归神经网络层;

(7)前向递归神经网络层和反向递归神经网络层将处理的结果同时输入到全连接隐层的输入层,并在全连接隐层的输入层对处理的结果进行合并;

(8)全连接隐层处理完数据后通过输出层进行预测输出,检测是否为DDOS攻击。

进一步地,所述文本类型的特征值字段格式转换过程中,将散列法运用到BoW转换法当中,并将各个特征值字段根据公式进行标准化规范,其中,x表示具体特征值,μ和δ分别为特征值的期望和标准差,z则为数据特征的标准化计算分数。

如图2所示是深度学习特征处理分析图。特征的输入方式根据当前网络状态下的数据流量状态信息,以及历史阶段T-1时间段内的网络数据流量状态信息,以时间窗口T作为报文的输入方式。

如图3所示是深度学习网络模型架构图。深度学习网络模型中前向递归神经网络层和反向递归神经网络层中采用LSTM网络模型,前向递归网络层和反向递归网络层相互独立。

实施例

下面结合实施例对本发明作进一步说明。

本发明中涉及到的DDOS检测具体过程可以描述如下:

采用网络开源的网络数据集ISCX2012(Information Security Centre of Excellence 2012)作为基于深度学习的DDoS攻击检测方案中的深度学习网络模型的样本。ISCX2012记录的是7天时间的真实网络环境中的流量信息,其中包含合法的网络流量以及多种类型的恶意DDoS攻击流量。

(1)特征处理阶段具体体现

(1.1)从ISCX2012数据集提取20个数据报文字段作为特征值,并定义了字段相应的数据类型,具体内容如表1所示,同时给出了一组关于这20个字段的具体实例。

表1 数据特征字段类型

(1.2)对提取的特征字段进行格式转换,其中定义了包含port_to_array,ip_to_array,code_to_array,str_list_to_array接口,将布尔类型特征值字段转换为二进制值的格式后作为输入数据格式,将文本类型的特征值字段,通过BoW(Bag of Word,词汇假设)的方法进行格式转换后作为输入数据格式,数值类型特征值字段作为输入数据格式。

(1.3)对格式转换后的特征矩阵进行维度重构,其中定义了reshaper_features接口,将特征转换后的二维特征矩阵,用一系列连续的窗口尺寸为T的时间窗进行切割,对切割后的特征进行维度重构,构建满足深度学习网络模型输入要求的三维矩阵。

(2)模型检测阶段具体体现

(2.1)深度学习网络模型中前向递归神经网络层和反向递归神经网络层中采用LSTM网络模型,前向递归网络层和反向递归网络层相互独立。采用了LSTM网络模型作为深度学习网络的核心训练层。其中,LSTM网络模型的神经元中设置了一个记忆单元用于存储历史时间状态的时间戳,LSTM网络模型每一层中包含64个神经元,定义神经元的输出门f和输入门x的函数关系为一个非线性激活函数模型,即

f(x)=tanh(x)

(2.2)深度学习网络模型中在输入层后面加入一个一维CNN网络层,对高维度的数据特征进行降维,同时,为了加快深度学习网络模型的检测过程,在前向递归神经网络层,反向递归神经网络层和全连接层隐层后面分别加入一个批处理正规化层。

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