一种在SDN架构下基于机器学习的网络攻击防御方法和系统技术方案

技术编号:21146143 阅读:35 留言:0更新日期:2019-05-18 06:41
本发明专利技术公开一种基于机器学习的网络攻击防御方法和系统,利用机器学习训练一个网络攻击识别模型,然后将该模型部署在SDN控制器上,对由交换机的上传的报文利用机器学习模型进行检测,根据检测结果做出相应的防御措施,最终达到了对99.97%网络攻击的成功防御的效果。

【技术实现步骤摘要】
一种在SDN架构下基于机器学习的网络攻击防御方法和系统
本专利技术属于网络安全
,尤其涉及一种在SDN架构下基于机器学习的网络攻击防御方法和系统。
技术介绍
随着网络技术的发展,互联网让人们的生活越来越便捷,但是随之而来的网络安全问题暴露在人们眼前。在传统网络中都将防火墙作为安全的第一道的防线,但是由于网络攻击者的技术和手段的快速提升,网络攻击更加难以防御,对网络的防卫也必须采用一种细粒度、适应性强的手段。SDN是一种新型的网络架构,设计理念是将网络的控制平面与数据转发层面分离,并实现可编程化控制。SDN架构通常分为三层,最上层为应用层,包括不同的业务和应用;控制层主要负责处理数据资源的编排,维护网络拓扑,信息状态等;数据转发层负责基于流表的数据处理,转发和状态收集。在SDN架构下可以通过深层次的数据包分析,实现更加灵活的更新流量策略,在复杂的网络环境中可以实现更高级的网络监控,为细粒度的网络攻击识别提供了基础,并且SDN的可编程性为在网络攻击识别中应用机器学习模块提供了良好的接口。在网络攻击防御系统中,至关重要的一步是对网络攻击的检测,已有的检测方案为:采用SDN控制器流表分析和KNN算法,来完成异常流量的检测。流量进入OVS交换机时首先查看交换机上的流表,有匹配项执行相应的行动,比如转发操作;如果没有匹配的表项,则将报文发送给SDN控制器,由SDN控制器生成流表并发送给交换机。SDN控制器还可以随时获取交换机上的流表信息,通过分析流表信息,可以得知网络该段时间内有没有遭到DDoS攻击。现有的技术方案下,在进行网络攻击检测时,是基于网络流量的平均每个流中的报文数,平均每个流中的字节数,平均每个流表项的持续时间,交互流的比率,非交互流的增速,不同端口的增速等特征对网络流量进行分类,判定哪些网络流量属于网络攻击。但是这些特征的获取都是在网络流结束以后,得出的检测结果无法在真实网络中应用。因此,在目前的技术方案中,即使是依据上述网络流量特征判断出哪些网络流量属于网络攻击,但是所检测的网络流已经结束,检测结果已经没有意义了。于是,研究一种能够实时检测网络流量的系统方法是十分必要的。
技术实现思路
本专利技术主要在SDN架构下设计了一套基于机器学习的网络攻击防御方法和系统,解决在复杂网络下的网络攻击问题。在本专利技术中,首先利用机器学习训练一个网络攻击识别模型,然后将该模型部署在SDN控制器上,对由交换机的上传的报文利用机器学习模型进行检测,根据检测结果做出相应的防御措施,最终达到了对99.97%网络攻击的成功防御的效果。为了解决网络流量检测的实时性问题,本专利技术在特征选取时并不使用只有当网络流量结束时才能获取的特征,同时为了提高对网络攻击识别的准确率,本专利技术设计了一个报文信息库,用来存储历史报文信息,并且通过历史报文和当前报文的联系作为新的特征对网络攻击进行识别,这样既解决了对网络攻击识别的实时性问题,又通过新的统计特征的加入而缓解了特征不足的问题。为实现上述目的,本专利技术采用如下的技术方案:一种基于机器学习的网络攻击防御方法,利用机器学习训练一个网络攻击识别模型,然后将该模型部署在SDN控制器上,对由交换机的上传的报文利用机器学习模型进行检测,根据检测结果做出相应的防御措施,具体为:首先,构造一个深度全连接网络来作为网络攻击检测模型,并在此模型中设置接收的统计特征的数量(即输入维度值)和输出参数数量(即输出维度值);设置输入维度为17,代表当前报文所具有的17个特征,包含报文基本属性特征和当前报文与历史报文的统计特征两类,如协议类型、目标主机网络服务类型、连接正常或错误的状态;设置输出维度为11,代表1种正常报文和10种攻击报文;同时模型中的激活函数使用“sigmoid”,隐藏层数设为3;使用L2正则化损失函数并使用反向传播算法更新神经网络参数;使用NSL-KDD数据集作为训练集来训练该模型;网络攻击防御方法具体处理流程包含:1)报文进入OVS交换机时,首先查看交换机上的流表,有匹配项执行相应的行动,比如转发操作;如果没有匹配的表项,则将报文发送PacketIn消息给SDN控制器;2)SDN控制器接受到消息后,判断是否为PacketIn消息,如果是PacketIn消息则解析报文的数据域,解析出源、目的IP、MAC、端口号信息;3)根据解析出的源、目的设备信息,在设备管理器中查询是否存在源、目的设备,若都存在则将报文信息录入报文信息库中,若至少有一个设备不存在则下发流表丢弃该报文;4)根据报文信息库里的信息得出当前报文的6个基础特征和11个统计特征;5)将基础特征和统计特征输入网络攻击检测模型中判断是否为攻击报文;6)若判断当前报文为攻击报文则下发流表丢弃报文,并对该报文的发送主机进行违规计数,若违规次数超过设定阈值下发流表屏蔽该主机;7)若判断当前报文为正常报文,则查询该报文目的地址所连接的交换机端口,下发流表转发报文。一种基于机器学习的网络攻击防御系统包括:伪造报文检测模块、网络攻击检测模块、网络攻击处理模块;其中,伪造报文检测模块工作流程为:1)设备管理器从Packet-in报文中获取设备信息,通过设备的IP、MAC、VLAN和与交换机相连的端口来唯一确定一台设备;设备管理器将设备的信息维护在实时设备表中,并设置一个过期时间,在设备信息过期后则将设备信息从实时设备表中删除;2)对控制器收到解析出的源、目的设备信息,在设备管理器中查询是否存在源、目的设备,若都存在则将报文信息录入报文信息库中,若至少有一个设备不存在则下发流表丢弃该报文;网络攻击检测模块工作流程为:1)根据报文信息库里的信息得出当前报文的6个基础特征和11个统计特征;2)将基础特征和统计特征输入网络攻击检测模型中判断是否为攻击报文;网络攻击处理模块工作流程为:1)当前报文为攻击报文则下发流表丢弃报文,并对该报文的发送主机进行违规计数;2)当主机的违规次数超过设定阈值下发流表屏蔽该主机。附图说明图1网络攻击防御处理流程;图2伪造报文检测流程;图3网络攻击检测流程;图4网络攻击处理流程。具体实施方式本专利技术针对现有的网络安全问题,设计了一套基于机器学习的网络攻击防御方法和系统,通过机器学习训练的网络攻击识别模型对网络中存在的攻击行为进行有效的识别并对网络攻击做出相应的防御措施。首先,构造一个深度全连接网络来作为网络攻击检测模型,并在此模型中设置接收的统计特征的数量(即输入维度值)和输出参数数量(即输出维度值)。本专利技术设置输入维度为17,代表当前报文所具有的17个特征,包含报文基本属性特征和当前报文与历史报文的统计特征两类,如协议类型、目标主机网络服务类型、连接正常或错误的状态等,具体见表2所示。设置输出维度为11,代表1种正常报文和10种攻击报文。同时,本模型中的激活函数使用“sigmoid”,隐藏层数设为3。为了避免过拟合,使用L2正则化损失函数并使用反向传播算法更新神经网络参数。使用NSL-KDD数据集作为训练集来训练该模型。网络攻击防御方法具体处理流程如图1所示:8)报文进入OVS交换机时,首先查看交换机上的流表,有匹配项执行相应的行动,比如转发操作;如果没有匹配的表项,则将报文发送PacketIn消息给SDN控制器。9)SDN控制器接受本文档来自技高网
...

【技术保护点】
1.一种在SDN架构下基于机器学习的网络攻击防御方法,其特征在于,利用机器学习训练一个网络攻击识别模型,然后将该模型部署在SDN控制器上,对由交换机的上传的报文利用机器学习模型进行检测,根据检测结果做出相应的防御措施,具体为:首先,构造一个深度全连接网络来作为网络攻击检测模型,并在此模型中设置接收的统计特征的数量(即输入维度值)和输出参数数量(即输出维度值);设置输入维度为17,代表当前报文所具有的17个特征,包含报文基本属性特征和当前报文与历史报文的统计特征两类,如协议类型、目标主机网络服务类型、连接正常或错误的状态;设置输出维度为11,代表1种正常报文和10种攻击报文;同时模型中的激活函数使用“sigmoid”,隐藏层数设为3;使用L2正则化损失函数并使用反向传播算法更新神经网络参数;使用NSL‑KDD数据集作为训练集来训练该模型;网络攻击防御方法具体处理流程包含:1)报文进入OVS交换机时,首先查看交换机上的流表,有匹配项执行相应的行动,比如转发操作;如果没有匹配的表项,则将报文发送PacketIn消息给SDN控制器;2)SDN控制器接受到消息后,判断是否为PacketIn消息,如果是PacketIn消息则解析报文的数据域,解析出源、目的IP、MAC、端口号信息;3)根据解析出的源、目的设备信息,在设备管理器中查询是否存在源、目的设备,若都存在则将报文信息录入报文信息库中,若至少有一个设备不存在则下发流表丢弃该报文;4)根据报文信息库里的信息得出当前报文的6个基础特征和11个统计特征;5)将基础特征和统计特征输入网络攻击检测模型中判断是否为攻击报文;6)若判断当前报文为攻击报文则下发流表丢弃报文,并对该报文的发送主机进行违规计数,若违规次数超过设定阈值下发流表屏蔽该主机;7)若判断当前报文为正常报文,则查询该报文目的地址所连接的交换机端口,下发流表转发报文。...

【技术特征摘要】
1.一种在SDN架构下基于机器学习的网络攻击防御方法,其特征在于,利用机器学习训练一个网络攻击识别模型,然后将该模型部署在SDN控制器上,对由交换机的上传的报文利用机器学习模型进行检测,根据检测结果做出相应的防御措施,具体为:首先,构造一个深度全连接网络来作为网络攻击检测模型,并在此模型中设置接收的统计特征的数量(即输入维度值)和输出参数数量(即输出维度值);设置输入维度为17,代表当前报文所具有的17个特征,包含报文基本属性特征和当前报文与历史报文的统计特征两类,如协议类型、目标主机网络服务类型、连接正常或错误的状态;设置输出维度为11,代表1种正常报文和10种攻击报文;同时模型中的激活函数使用“sigmoid”,隐藏层数设为3;使用L2正则化损失函数并使用反向传播算法更新神经网络参数;使用NSL-KDD数据集作为训练集来训练该模型;网络攻击防御方法具体处理流程包含:1)报文进入OVS交换机时,首先查看交换机上的流表,有匹配项执行相应的行动,比如转发操作;如果没有匹配的表项,则将报文发送PacketIn消息给SDN控制器;2)SDN控制器接受到消息后,判断是否为PacketIn消息,如果是PacketIn消息则解析报文的数据域,解析出源、目的IP、MAC、端口号信息;3)根据解析出的源、目的设备信息,在设备管理器中查询是否存在源、目的设备,若都存在则将报文信息录入报文信息库中,若至少有一个设备不存在则下发流表丢弃...

【专利技术属性】
技术研发人员:霍如薛宁刘江黄韬鄂新华谢人超晁代崇刘韵洁
申请(专利权)人:北京工业大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1