一种面向软件定义网络的DDoS攻击防御系统与方法技术方案

技术编号:15189509 阅读:30 留言:0更新日期:2017-04-19 18:52
本发明专利技术属于网络安全技术领域,特别涉及一种软件定义网络安全防御技术领域。其技术方案是:一种面向软件定义网络的DDoS攻击防御系统,包括:数据采集模块、训练模块、识别模块、流表下发模块。其防御方法是:对SDN网络中交换机上的OpenFlow流表数据进行采集,将不同种类的流量进行训练分类,把DDoS攻击流量进行识别标记,并以OpenFlow阻拦流表下发的形式进行流量拦截。本发明专利技术可以很好地在SDN网络环境中部署,对DDoS攻击流量拦截的有效性高,对伪造源IP地址类型的攻击同样能够有效拦截。

【技术实现步骤摘要】

本专利技术属于网络安全
,特别涉及一种软件定义网络安全防御

技术介绍
近年来,软件定义网络(SDN,SoftwareDefinedNetwork)作为新一代网络架构成为新兴的研究热点。SDN网络架构的出现弥补了传统网络架构中的很多缺陷,SDN网络区别于传统网络的分布式控制,是由统一的控制器来控制SDN网络交换机转发行为,同时,SDN网络具有可编程性,网络管理员可以更加灵活地管理网络。不可忽视的是,在实际应用中,SDN网络虽然提供了网络管理上极大的便利性,但是在SDN网络环境中安全问题同样不能忽视。传统网络针对DDoS攻击的实时防御方案大多围绕流量清洗和防火墙阻拦,针对SDN网络除了提出一些和传统网络相同原理的防御方案之外,还可以研究其他防御方法。
技术实现思路
提供一种面向软件定义网络的DDoS攻击防御系统和方法,实现在SDN网络环境中对DDoS攻击流量进行实时识别、拦截。为了实现上述目的,本专利技术采用如下技术方案:一种面向软件定义网络的DDoS攻击防御系统,其特征是包括:数据采集模块、训练模块、识别模块、流表下发模块;所述数据采集模块控制器定时采集SDN交换机上OpenFlow流表信息,形成训练数据、实时数据,并将所述数据传递给所述训练模块与所述识别模块;所述训练模块接收所述数据采集模块输出的数据,进行K-Means聚类训练,获得用于质心判断的质心信息,并将所述质心信息向所述识别模块输出;所述识别模块接收所述数据采集模块的实时数据和所述训练模块的质心信息,对每个交换机每个目的主机划分多个并发进程进行身份识别,当异常身份在下一个采集时刻点得到二次确认的时候,对该进程上的信息展开分析,提取异常主机信息,将异常主机信息向所述流表下发模块,进行DDoS攻击拦截;所述流表下发模块接收来自识别模块异常主机信息,下发对来自攻击者的阻拦流表,采取了溯源下发的方式,利用OpenFlow流表的特点,将攻击包裹来源逐级确定,在攻击包裹到达控制器所控制的网络时立即拦截。一种面向软件定义网络的DDoS攻击防御方法,其特征是采用如上所述的一种面向软件定义网络的DDoS攻击防御系统,并包括以下步骤:A.数据采集步骤数据采集模块从OpenFlow流表中进行数据采集,采集的数据信息包括:相邻时刻字节计数差值、相邻时刻包裹计数差值、新增流表主机个数与交换机个数比值、记录时刻双向字节差值、相邻时刻双向字节差值的差值,将所述数据信息传递给所述训练模块与所述识别模块;;B.训练步骤所述训练模块对接收的所述数据信息进行K-means聚类训练,获得用于质心判断的质心信息,并将所述质心信息向所述识别模块输出;并对数据采集模块数据采集量作出反馈;C.识别步骤采用了K-means聚类算法训练后的质心信息对网络内实时的数据流身份进行判断,将攻击者主机地址HSource,受害主机地址HDest告知流表下发模块;D.流表下发步骤使用溯源下发OpenFlow阻拦流表的方式,对DDoS攻击数据流进行拦截。可选的,如上所述的一种面向软件定义网络的DDoS攻击防御方法,其特征是步骤D所述流表下发步骤为:D1:流表下发模块以主机地址HDest为起点,向其周围SDN交换机发送OpenFlow阻拦流表,ACTION=drop,所述流表内容包含攻击者主机地址HSource,受害主机地址HDest,当有攻击包裹匹配了这两条信息,即将其丢弃;D2:在下一个时刻点,对步骤D1中下发的阻拦OpenFlow流表信息进行数据提取,如果发现在某一SDN交换机上面的阻拦OpenFlow流表packett字段不为0,则认定该SDN交换机处于此DDoS攻击流量的攻击路径之上,设此SDN交换机地址为S1;D3:删除步骤D1中除了S1上其余SDN交换机上下发的多余OpenFlow阻拦流表;D4:再以SDN交换机S1为起点,重复步骤D2-D3类似的过程,直至最后控制交换机Sp周围SDN交换机上的OpenFlow阻拦流表packett字段全部为0,且控制交换机Sp的控制器只有一个,则认为攻击主机HSource不通过周围交换机将包裹传递给控制交换机Sp,实现了仅在控制交换机Sp下发对攻击主机HSource的OpenFlow阻拦流表达到最快速地拦截攻击流量;D5:若控制交换机Sp还受其他控制器控制,则将控制交换机Sp、主机地址HSource、受害主机地址HDest信息传递给所述其他控制器;D6:所述其他控制器执行步骤D1-D4,直至其他控制交换机Sq周围SDN交换机上的OpenFlow阻拦流表packet-count字段全部为0,且控制交换机Sq的控制器只有一个,则认为攻击主机HSource不通过周围交换机将包裹传递给交换机Sq,实现了仅在Sq下发对攻击主机HSource的OpenFlow阻拦流表而最快速地拦截攻击流量。可选的,如上所述的一种面向软件定义网络的DDoS攻击防御方法,其特征是包括以下步骤:A.数据采集步骤A1.模块初始化:设初始时刻t=0,生成SDN网络拓扑并启动控制器,向网络中所有的SDN交换机指定控制器;依据OpenFlow1.3协议对网络中转发规则进行设定,针对数据包裹给SDN交换机下发OpenFlow转发流表;A2.导入背景流量:导入背景流量,所述背景流量模拟向SDN网络中指定主机随机产生HTTP网络请求,最大程度上模拟正常用户上网行为;控制器会依据用户对指定主机的请求,在其传输链路上下发OpenFlow流表;A3.采集前6项正常流量训练数据:将SDN网络中交换机上存在的因正常用户请求而下发的OpenFlow流表,开始训练数据采集工作;通过REST方法进行流表数据信息提取,提取的信息包括OpenFlow流表的统计数据字段(flow-statistics)中的字节计数(byte-count)、包裹计数(packet-count),把这些信息存储到Dt中,Dt为一种数据格式为DataFrame的数据表格(见表1),行数据存储记录时刻t,列数据分为12项,第1列存储记录时间;2-4项列数据分别存储(Si,HDest,HSource)信息,其中Si为流表所在交换机ID,HDest为流表所匹配的目的主机IP地址,HSource为流表所匹配的源主机IP地址;第5项列数据为字节计数bytet,第6项列数据为包裹计数packett;前6项数据为直接获得的数据;A4.采集第7项正常流量训练数据:相隔相同时间Δt,对步骤A3所述数据重新采集,得到此时新的数据Dt+Δt;并在Dt+Δt中对每一条行数据添加第7项列训练数据,标签数据label,其中label为流表所对应的数据流量身份,定义Label=Normal;A5.采集第8、9项正常流量训练数据:对比前后两个记录时间点的数据Dt和Dt+Δt,对(Si,HDest,HSource)相同的每一行记录,计算字节计数、包裹计数在时间间隔Δt产生的变化,将字节计数的变化量byteDifft+Δt、包裹计数的变化量为packetDifft+Δt存储在Dt+Δt第8项、第9项列数据中:其中:其中bytet+Δt代表t+Δt记录时刻字节计数,byteDifft+Δt代表t+Δt记录时刻与t记录时刻字节计数的差值,packett+Δt代表t+Δt本文档来自技高网...

【技术保护点】
一种面向软件定义网络的DDoS攻击防御系统,其特征是包括:数据采集模块、训练模块、识别模块、流表下发模块;所述控制器定时采集网络中的训练数据、实时数据,并将所述数据信息传递给所述训练模块与所述识别模块;所述训练模块接收所述数据采集模块输出的数据,进行K‑Means聚类训练,获得用于质心判断的质心信息,并将所述质心信息向所述识别模块输出;所述识别模块接收所述数据采集模块的实时数据和所述训练模块的质心信息,对每个交换机每个目的主机划分多个并发进程进行身份识别,当异常身份在下一个采集时刻点得到二次确认的时候,对该进程上的信息展开分析,提取异常主机信息,将异常主机信息向所述流表下发模块输出;所述流表下发模块接收来自识别模块异常主机信息,下发对攻击者的阻拦流表,模块采取了溯源下发的方式,利用OpenFlow流表的特点,对攻击包裹来源逐级确定,在攻击包裹到达控制器所控制的网络时进行DDoS攻击拦截。

【技术特征摘要】
1.一种面向软件定义网络的DDoS攻击防御系统,其特征是包括:数据采集模块、训练模块、识别模块、流表下发模块;所述控制器定时采集网络中的训练数据、实时数据,并将所述数据信息传递给所述训练模块与所述识别模块;所述训练模块接收所述数据采集模块输出的数据,进行K-Means聚类训练,获得用于质心判断的质心信息,并将所述质心信息向所述识别模块输出;所述识别模块接收所述数据采集模块的实时数据和所述训练模块的质心信息,对每个交换机每个目的主机划分多个并发进程进行身份识别,当异常身份在下一个采集时刻点得到二次确认的时候,对该进程上的信息展开分析,提取异常主机信息,将异常主机信息向所述流表下发模块输出;所述流表下发模块接收来自识别模块异常主机信息,下发对攻击者的阻拦流表,模块采取了溯源下发的方式,利用OpenFlow流表的特点,对攻击包裹来源逐级确定,在攻击包裹到达控制器所控制的网络时进行DDoS攻击拦截。2.一种面向软件定义网络的DDoS攻击防御方法,其特征是采用如权利要求1所述的一种面向软件定义网络的DDoS攻击防御系统,并包括以下步骤:A.数据采集步骤数据采集模块从OpenFlow流表中进行数据采集,采集的数据信息包括:相邻时刻字节计数差值、相邻时刻包裹计数差值、新增流表主机个数与交换机个数比值、记录时刻双向字节差值、相邻时刻双向字节差值的差值,将所述数据信息传递给所述训练模块与所述识别模块;;B.训练步骤所述训练模块对接收的所述数据信息进行K-means聚类训练,获得用于类别判断的质心信息,并将所述质心信息向所述识别模块输出;并对数据采集模块数据采集量作出反馈;C.识别步骤采用了K-means聚类算法训练后的质心信息对网络内实时的数据流身份进行判断,将攻击者主机地址HSource,受害主机地址HDest告知流表下发模块;D.流表下发步骤使用溯源下发OpenFlow阻拦流表的方式,对DDoS攻击数据流进行拦截。3.如权利要求2所述的一种面向软件定义网络的DDoS攻击防御方法,其特征是:步骤D所述流表下发步骤为:D1:流表下发模块以主机地址HDest为起点,向其周围SDN交换机发送OpenFlow阻拦流表,ACTION=drop,所述流表内容包含攻击者主机地址HSource,受害主机地址HDest,当有攻击包裹匹配了这两条信息,即将其丢弃;D2:在下一个时刻点,对步骤D1中下发的阻拦OpenFlow流表信息进行数据提取,如果发现在某一SDN交换机上面的阻拦OpenFlow流表packett字段不为0,则认定该SDN交换机处于此DDoS攻击流量的攻击路径之上,设此SDN交换机地址为S1;D3:删除步骤D1中除了S1上其余SDN交换机上下发的多余OpenFlow阻拦流表;D4:再以SDN交换机S1为起点,重复步骤D2-D3类似的过程,直至最后控制交换机Sp周围SDN交换机上的OpenFlow阻拦流表packett字段全部为0,且控制交换机Sp的控制器只有一个,则认为攻击主机HSource不通过周围SDN交换机将包裹传递给控制交换机Sp,实现了仅在控制交换机Sp下发对攻击主机HSource的OpenFlow阻拦流表,达到最快速地拦截攻击流量;D5:若控制交换机Sp还受其他控制器控制,则将控制交换机Sp、主机地址HSource、受害主机地址HDest信息传递给所述其他控制器;D6:所述其他控制器执行步骤D1-D4,直至其他控制交换机Sq周围SDN交换机上的OpenFlow阻拦流表packet-count字段全部为0,且控制交换机Sq的控制器只有一个,则认为攻击主机HSource不通过周围交换机将包裹传递给交换机Sq,实现了仅在Sq下发对攻击主机HSource的OpenFlow阻拦流表而最快速地拦截攻击流量。4.如权利要求3所述的一种面向软件定义网络的DDoS攻击防御方法,其特征是:A.数据采集步骤A1.模块初始化:设初始时刻t=0,生成SDN网络拓扑并启动控制器,向网络中所有的SDN交换机指定控制器;依据OpenFlow1.3协议对网络中转发规则进行设定,针对数据包裹给SDN交换机下发OpenFlow转发流表;A2.导入背景流量:导入背景流量,所述背景流量模拟向SDN网络中指定主机随机产生HTTP网络请求,最大程度上模拟正常用户上网行为;控制器会依据用户对指定主机的请求,在其传输链路上下发OpenFlow流表;A3.采集前6项正常流量训练数据:将SDN网络中交换机上存在的因正常用户请求而下发的OpenFlow流表,开始训练数据采集工作;通过REST方法进行流表数据信息提取,提取的信息包括OpenFlow流表的统计数据字段中的字节计数bytet、包裹计数packett,把这些信息存储到Dt中,Dt为一种数据格式为DataFrame的数据表格,行数据存储记录时刻t,列数据分为12项,第1列存储记录时间;2-4项列数据分别存储(Si,HDest,HSource)信息,其中,Si为流表所在交换机ID,HDest为流表所匹配的目的主机IP地址,HSource为流表所匹配的源主机IP地址;第5项列数据为字节计数bytet,第6项列数据为包裹计...

【专利技术属性】
技术研发人员:阳小龙张乾
申请(专利权)人:北京科技大学
类型:发明
国别省市:北京;11

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

1