首页> 中国专利> 一种SDN中基于MCA-KMeans算法的分布式拒绝服务攻击检测方法

一种SDN中基于MCA-KMeans算法的分布式拒绝服务攻击检测方法

摘要

本发明提供一种SDN中基于MCA‑KMeans算法的分布式拒绝服务攻击检测方法,包括:步骤3,获取到流表信息后,计算得到T周期内的特征数值,形成计算得到的数据集;所述的特征数值包括源端口熵值、目的IP地址熵值和数据包的平均值;步骤4,针对每一个交换机,使用步骤3计算得到的数据集作为输入数据,然后将数据用于聚类算法分类模型进行训练,通过t次迭代直到质心不再发生变化后得到多元数据分析和聚类算法的分布式拒绝服务攻击模型。本发明能够快速、实时、准确检测攻击,并定位攻击主机删除攻击数据,尽可能的保护软件定义网络的安全,减少网络资源的消耗,减少检测攻击所需的时间,提高攻击检测的准确率。

著录项

  • 公开/公告号CN114844679A

    专利类型发明专利

  • 公开/公告日2022-08-02

    原文格式PDF

  • 申请/专利权人 西北大学;

    申请/专利号CN202210367801.6

  • 申请日2022-04-08

  • 分类号H04L9/40(2022.01);G06K9/62(2022.01);

  • 代理机构西安恒泰知识产权代理事务所 61216;

  • 代理人王孝明

  • 地址 710069 陕西省西安市太白北路229号

  • 入库时间 2023-06-19 16:14:25

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-08-19

    实质审查的生效 IPC(主分类):H04L 9/40 专利申请号:2022103678016 申请日:20220408

    实质审查的生效

  • 2022-08-02

    公开

    发明专利申请公布

说明书

技术领域

本发明属于计算机网络安全技术领域,涉及软件定义网络,具体涉及一种SDN中基于MCA-KMeans算法的分布式拒绝服务攻击检测方法。

背景技术

随着网络技术的不断发展,在大数据的时代,互联网领域出现了一种新的网络架构——软件定义网络(Software Defined Networks,SDN)。它将控制平面和数据平面解耦,以及通过运行在控制器上的指定应用程序集中网络管理,尽管有许多优点,但SDN网络中心的安全问题仍然是研究界关注的问题之一。

分布式拒绝服务攻击(Distributed Denial of Service,DDoS)就是SDN网络安全中最大威胁的攻击之一,它是指处于不同位置的多个攻击者同时向一个或多个目标发出攻击,其攻击方式众多、破坏力强,伪造源IP地址迷惑防御系统,导致检测难度增大,随着数据的变化多端,传统攻击检测方法难以检测攻击数据,导致网络系统瘫痪。

发明内容

针对现有技术存在的不足,本发明的目的在于,提供一种SDN中基于MCA-KMeans算法的分布式拒绝服务攻击检测方法,以解决现有技术中攻击检测的准确率有待进一步提升的技术问题。

为了解决上述技术问题,本发明采用如下技术方案予以实现:

一种SDN中基于MCA-KMeans算法的分布式拒绝服务攻击检测方法,该方法包括步骤:

步骤1,获取包含T周期内源端口熵值、T周期内目的IP地址熵值和T周期内数据包的平均值的特征数据集,对数据进行特征标准化,然后通过多元数据分析得到一组新的数据集,使用聚类算法训练分类模型,构建软件定义网络拓扑架构;

步骤2,使用软件定义网络拓扑结构连接控制器,通过在控制平面获取数据层的交换机中的流表信息进行数据的采集;

步骤3,通过步骤2获取到流表信息后,计算得到T周期内的特征数值,,形成计算得到的数据集;

所述的特征数值包括源端口熵值、目的IP地址熵值和数据包的平均值;

步骤4,针对每一个交换机,使用步骤3计算得到的数据集作为输入数据,然后将数据用于聚类算法分类模型进行训练,通过t次迭代直到质心不再发生变化后得到多元数据分析和聚类算法的分布式拒绝服务攻击模型;

步骤5,采用步骤4训练得到的多元数据分析和聚类算法的分布式拒绝服务攻击模型进行检测和判断,若判断结果为恶意流量,控制器定位攻击目标,删除流表中的攻击流表项并返回给交换机当前的流表信息。

本发明还具有如下技术特征:

优选的,步骤3中,所述的特征数值是根据以下公式计算得到:

式中:

P(x

sum(P(x))表示在T周期内源端口的总数量;

S(x

sum(S(x))表示在T周期内源端口的总数量;

packet_i表示在T周期内第i个数据包的大小;

SPE表示源端口熵值;

DAE表示目的IP地址熵值;

APS表示数据包的平均值。

优选的,步骤5中,多元数据分析和聚类算法的分布式拒绝服务攻击模型进行检测的具体过程包括:

步骤501,多元数据相关性分析:

利用公开的入侵检测评估数据集提取得到数据集X={x

式中:

x

n表示数据集的总行数;

进行多元数据分析,利用几何相关性公式:

式中:

TAS

n表示表示数据集的总行数;

j表示第j个特征值;

k表示第k个特征值;

i表示第i个数据行;

步骤502,聚类算法模型具体步骤如下:

步骤50201,从输入的数据点集合中随机选择k个点作为k个聚类中心{μ

步骤50202,将簇划分C初始化为

步骤50203,对于数据集中的每一个点x

步骤50204,一轮计算结束后利用均值计算公式计算每个簇的均值并使其作为次簇的新质心;

步骤50205,继续重复上述步骤50203和步骤50204的操作,经过t次迭代直到k个质心向量都都没有发生变化,输出分类模型;具体使用公式如下:

式中:

SCM表示计算的是两个向量的相似性系数;

μn

μ

n表示数据集的总行数;

i表示第i个数据行;

j表示第j个质心。

优选的,所述的软件定义网络拓扑结构包括一台RYU控制器、4台交换机和25台主机。

优选的,所述的交换机均采用软件定义网络中的OpenFlow交换机。

本发明与现有技术相比,具有如下技术效果:

(Ⅰ)本发明在软件定义网络环境下,使用多元数据分析和聚类算法分类训练检测模型,使得模型适用于多种情况,能够快速、实时、准确检测攻击,并定位攻击主机删除攻击数据,尽可能的保护软件定义网络的安全,减少网络资源的消耗,减少检测攻击所需的时间,提高攻击检测的准确率。

(Ⅱ)本发明在软件定义网络下,建立数据之间的相互联系,然后利用算法快速、实时检测攻击并防御。

(Ⅲ)本发明还具有很好的适用性,利用多种公开数据集进行测试发现结果符合要求。

附图说明

图1为本发明设计的基于多元数据分析和聚类算法的分布式拒绝服务攻击检测系统架构图。

图2为软件定义网络拓扑结构示意图。

图3为基于多元数据分析和聚类算法的分布式拒绝服务攻击检测模型的检测攻击步骤示意图。

图4(a)为拓扑结构中OpenFlow交换机的流表中多个周期内计算的SPE示意图。

图4(b)为拓扑结构中OpenFlow交换机的流表中多个周期内计算的DAE示意图。

图4(c)为拓扑结构中OpenFlow交换机的流表中多个周期内计算的APS示意图。

图5为基于多元数据分析和聚类算法的分布式拒绝服务攻击检测模型、支持向量机模型(SVM)与决策树模型(DecisionTree)检测攻击所需时间的示意图。

图6为基于多元数据分析和聚类算法的分布式拒绝服务攻击检测模型、支持向量机模型(SVM)、神经网络分类模型(NeuralNetwork)、K近邻分类模型(KNN)与熵值检测模型(Entropydetection)检测分布式拒绝服务攻击的性能评估示意图。

图7为基于多元数据分析和聚类算法的分布式拒绝服务攻击检测模型、对比例1MCA分析方法和对比例2基于K-means聚类算法的DDoS攻击检测方法性能对比图。

图8为对比例3基于支持向量机算法的DDoS攻击检测方法和基于多元数据分析和聚类算法的分布式拒绝服务攻击检测模型检测率对比图。

图9为对比例4基于K-Means聚类和K近邻算法结合的DDoS攻击检测新框架和基于多元数据分析和聚类算法的分布式拒绝服务攻击检测模型两种混合模型检测性能对比图。

以下结合实施例对本发明的具体内容作进一步详细解释说明。

具体实施方式

需要说明的是,本发明中的所有的设备、模型和算法,如无特殊说明,全部均采用现有技术中已知的设备、模型和算法。例如聚类算法分类模型采用已知的聚类算法分类模型。例如RYU控制器和OpenFlow交换机均采用已知的RYU控制器和OpenFlow交换机。

需要说明的是,本发明中:

SDN,即Software Defined Networks,指的是软件定义网络。

MCA-KMeans算法,即Multivariate Correlation Analysis and Improved k-means clustering algorithm,指的是多元数据分析和聚类算法。

DDoS,即Distributed Denial of Service,指的是分布式拒绝服务攻击。

SPE,即Source Port Entropy,指的是源端口熵值。

DAE,即Destination IP Address Entropy,指的是目的IP地址熵值。

APS,即Average Packet Size,指的是数据包的平均值。

SCM,即Similarity coefficient measurement,,指的是计算的是两个向量的相似性系数。

本发明的整体技术构思为:本发明给出一种软件定义网络(SDN)中基于多元数据分析和聚类算法的分布式拒绝服务攻击(DDoS)检测算法,该算法的实施环境在SDN网络环境下。通过控制器监控获取交换机上的流表,提取流表项中的多个特征数据,使用多元数据分析和聚类算法训练得到检测模型,在SDN网络架构下实时监控网络状态,对可疑流量进行DDoS攻击检测,定位受到攻击的OpenFlow交换机并删除攻击流表项,从而保证SDN网络的安全通信,避免造成资源耗尽、网络瘫痪等问题。目前存在的检测方法在SDN网络中不适用于流量较大的网络,例如基于熵值检测和基于K近邻分类算法检测等只适用于较少数据集的情况。本发明提出了一种软件定义网络中基于多元数据分析和聚类算法的分布式拒绝服务攻击检测算法不仅适应当今的网络流,而且检测时间短,计算复杂度低,满足软件定义网络攻击检测的需求。

本发明通过公开数据集CIC DoS dataset(2017)作为训练数据,利用特征选择算法提取所需特征,构造新的数据集使得数据之间产生联系,然后利用聚类算法训练分类模型。在测试阶段,利用分类模型对测试集进行分类,判断分类结果是否为恶意流量,若判断结果为恶意流量,则处理流表并返回给交换机处理后的结果,从而保证网络的安全通信,不仅检测时间少、准确率高,而且适用性强。

遵从上述技术方案,以下给出本发明的具体实施例,需要说明的是本发明并不局限于以下具体实施例,凡在本申请技术方案基础上做的等同变换均落入本发明的保护范围。

实施例:

本实施例给出一种SDN中基于MCA-KMeans算法的分布式拒绝服务攻击检测方法,该方法包括步骤:

步骤1,如图1所示,获取包含T周期内源端口熵值(SPE)、T周期内目的IP地址熵值(DAE)和T周期内数据包的平均值(APS)的特征数据集,对数据进行特征标准化,然后通过多元数据分析得到一组新的数据集,使用聚类算法训练分类模型,构建软件定义网络(SDN)拓扑架构;

本实施例中,SPE代表源端口在相同周期内的信息熵值,DAE代表目的IP地址在相同周期内的信息熵值,APS代表在相同周期内数据包的平均大小。

步骤2,如图2所示,使用软件定义网络拓扑结构连接控制器,通过在控制平面获取数据层的交换机中的流表信息进行数据的采集;

本实施例中,所述的软件定义网络拓扑结构包括一台RYU控制器(一款开源软件定义网络控制器)、4台交换机和25台主机。

本实施例中,所述的交换机均采用软件定义网络中的OpenFlow交换机。

步骤3,通过步骤2获取到流表信息后,计算得到T周期内的特征数值,,形成计算得到的数据集;

所述的特征数值包括源端口熵值、目的IP地址熵值和数据包的平均值;

其中,每个交换机的流表有多个流表项,每条流表项由三个要素组成:用于数据包匹配的包头域(Header Fields),用于统计匹配数据包个数的计数器(Counters),用于展示匹配的数据包如何处理的动作(Actions)。流表的包头域包含源端口、源MAC(MediaAccessControlAddress)地址、目的MAC地址、IP协议、源IP地址和目的IP地址等12个元组。OpenFlow流表的计数器是对交换机中的每张流表、每个数据流、每个设备端口、每个转发队列进行维护,用于统计数据流量的相关信息。例如:针对每张流表,统计当前活动的表项数、数据包查询次数、数据包匹配次数等;针对每个数据流,统计接收到的数据包数、字节数、数据流持续时间等;OpenFlow流表的动作用于指示交换机在收到匹配的数据包后应该如何对其进行处理。

本次发明获取的是交换机流表中的源端口、目的IP地址和数据包的大小,利用计数器计算各个数值的数量,然后在模型中检测特征变化,以此来检测攻击是否存在,若发生攻击,利用流表的删除动作删除流表项。

步骤3中,所述的特征数值是根据以下公式计算得到:

式中:

P(x

sum(P(x))表示在T周期内源端口的总数量;

S(x

sum(S(x))表示在T周期内源端口的总数量;

packet_i表示在T周期内第i个数据包的大小;

SPE表示源端口熵值;

DAE表示目的IP地址熵值;

APS表示数据包的平均值。

步骤4,如图3所示,针对每一个交换机,使用步骤3计算得到的数据集作为输入数据,然后将数据用于聚类算法分类模型进行训练,通过t次迭代直到质心不再发生变化后得到多元数据分析和聚类算法的分布式拒绝服务攻击模型;

步骤5,采用步骤4训练得到的多元数据分析和聚类算法的分布式拒绝服务攻击模型进行检测和判断,若判断结果为恶意流量,控制器定位攻击目标,删除流表中的攻击流表项并返回给交换机当前的流表信息。

步骤5中,多元数据分析和聚类算法的分布式拒绝服务攻击模型进行检测的具体过程包括:

步骤501,多元数据相关性分析:

利用公开的入侵检测评估数据集提取得到数据集X={x

式中:

x

n表示数据集的总行数;

进行多元数据分析,利用几何相关性公式:

式中:

TAS

n表示表示数据集的总行数;

j表示第j个特征值;

k表示第k个特征值;

i表示第i个数据行;

步骤502,聚类算法模型具体步骤如下:

步骤50201,从输入的数据点集合中随机选择k个点作为k个聚类中心{μ

步骤50202,将簇划分C初始化为

步骤50203,对于数据集中的每一个点x

步骤50204,一轮计算结束后利用均值计算公式计算每个簇的均值并使其作为次簇的新质心;

步骤50205,继续重复上述步骤50203和步骤50204的操作,经过t次迭代直到k个质心向量都都没有发生变化,输出分类模型;具体使用公式如下:

式中:

SCM表示计算的是两个向量的相似性系数;

μn

μ

n表示数据集的总行数;

i表示第i个数据行;

j表示第j个质心。

应用例1:

本应用例基于上述实施例给出的SDN中基于MCA-KMeans算法的分布式拒绝服务攻击检测方法。如图1所示,为本发明设计的基于多元数据分析和聚类算法的分布式拒绝服务攻击攻击检测模型,本应用例用于测试模型检测时间。

获取包含SPE、DAE和APS的特征数据集,SPE代表源端口在相同周期内的信息熵值,DAE代表目的IP地址在相同周期内的信息熵值,APS代表在相同周期内数据包的平均大小。为了更清楚的观察数据的变化,首先对OpenFlow流表进行实时的周期性检测,统计得到SPE、DAE和APS的检测结果如图4(a)至图4(c)所示,可观察到主机受到攻击时SPE值(图4(b))和APS值(图4(c))迅速上升,DAE值(图4(a))会迅速下降,通过实时数据可以清楚的看到主机正常状态和受到攻击的状态不同。然后利用数据集进行特征标准化,其目的是缩小特征尺度,减小数据偏差。通过多元数据相关性分析得到一组新的数据集,其优点在于增强特征属性之间的相关性,将其用于聚类算法训练分类模型;

如图2所示,使用由一些虚拟的终端节点(end-hosts)、交换机、路由器连接而成的一个网络仿真器Mininet工具构建软件定义网络(SDN)拓扑结构,将SDN网络拓扑中的每个交换机和控制器相连,整个网络拓扑结构由一个RYU控制器、四台交换机和25台主机组成,主机的IP地址在10.1.1.1~10.1.1.25之间,通过控制器获取每个交换机的流表信息来采集数据;

在拓扑结构创建和模型训练完成后,将时间检测模块嵌入分类模型中用于获取检测时间,除此之外,采用SVM和DecisionTree两个分类攻击检测模型并嵌入时间检测模块,用于和此发明进行对比来评估模型。

如图3所示,启动控制器和Mininet使得SDN网络正常通信,控制器检测周期为2秒。随机对网络发起攻击,模型自动检测并返回结果,通过多次检测得到各个模型的检测时间,然后绘制对比图如图5所示,经过对比发现其效果更优。

应用例2:

本应用例基于上述实施例给出的SDN中基于MCA-KMeans算法的分布式拒绝服务攻击检测方法。为了更好了体现模型的优势,使用更多的模型评估参数进行对比。利用公开数据集提取所需特征数据集,对数据进行预处理,将其按照比例分为训练集和测试集,训练集用于训练模型确定模型参数,测试集用于评估模型,评估模型使用混淆矩阵来评判,混淆矩阵是能够比较全面的反映模型的性能,从混淆矩阵能够衍生出很多的指标。其中TP(TruePositive):真正例,实际为正预测为正;FP(FalsePositive):假正例,实际为负但预测为正;FN(FalseNegative):假反例,实际为正但预测为负;TN(TrueNegative):真反例,实际为负预测为负。

首先针对准确率(Accuracy)来评估模型,准确率(Accuracy)的定义是:对于给定的测试集,分类模型正确分类的样本数与总样本数之比,其计算公式如下。通过测试得到如图6所示,通过比较得出,此发明方法检测的准确率比其他几种方法更优。

利用召回率(Recall)和误报率(False alarm rate,简称FAR)评估模型,召回率定义为查全率,即正确预测为正的占全部实际为正的比例;误报率定义为负样本被预测为正样本占总的负样本的比例,反映分类器或者模型正确预测正样本纯度的能力,计算公式如下。

对比例1:

本对比例给出一种基于多元数据分析的DDoS攻击检测方法,该方法的步骤与具体实施方式的多元数据分析类似,不同之处在于分类模型(2)。

步骤50201,分类模型(2)从输入的数据点集合中随机选择k个点作为k个聚类中心{μ

步骤50202,将簇划分C初始化为

步骤50203,对于数据集中的每一个点x

步骤50204,一轮计算结束后利用均值计算公式计算每个簇的均值并使其作为次簇的新质心。

步骤50205,继续重复上述步骤50203和步骤50204的操作,经过t次迭代直到k个质心向量都都没有发生变化,输出分类模型。

对比例2:

本对比例给出一种基于K-means聚类算法的DDoS攻击检测方法,该方法的其它步骤与具体实施方式的改进的聚类算法相似,不同之处在于多元数据分析(1)。

多元数据分析(1)利用公开的入侵检测评估数据集提取得到数据集X={x

对实施例2、对比例1和对比例2进行对比分析,按照所提算法构建了检测模型,利用相同数据集,对准确率、误报率和召回率进行了对比测试,对比结果如图7所示。由图可知,所提出的基于多元数据分析和聚类算法的DDoS攻击检测方法在测试集上有较好的结果,表明所提出的检测模型可行。

对比例3:

本对比例给出一种基于支持向量机算法的DDoS攻击检测方法,该方法采用SVM算法对DDoS攻击进行检测,不同之处在于两者的算法。

对实施例1和对比例3进行对比分析,利用公开数据集进行训练模型,对准确率、误报率和召回率进行了对比测试,对比结果如图8。由图可知,所提出的基于多元数据分析和聚类算法的DDoS攻击检测方法在测试集上有较高的准确率和较低的误报率,表明所提出的检测模型可行。

对比例4:

本对比例给出一种基于K-Means聚类和K近邻算法结合的DDoS攻击检测新框架,该方法利用特征标准化对数据进行预处理,然后利用K-Means算法进行分类,如果存在无法分类的数据,利用K近邻算法进行分类。

对比例5:

本对比例给出一种基于聚类分析的配电房多元数据异常检测方法,此方法针对数据进行标准化,然后利用聚类算法生成聚簇,利用时间滑动窗口模型对每个时间滑动窗口模型得到异常值。

对实施例2与对比例4和对比例5进行对比分析,首先共同点是针对聚类算法进行结合得出模型,不同之处在于数据预处理和结合方法,利用数据集进行对比得出结果如图9所示,对比结果进一步验证了所提方法的准确性,此发明的优点在于利用多元数据分析增强了属性之间的相关性,解决了属性线性变化引起的模型分类不准确的问题,而且在利用聚类模型分类时用相似度量距离计算准确率较高。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号