一种SDN下基于条件生成对抗网络的IPv6网络中DDoS攻击检测方法与流程

文档序号:28383536发布日期:2022-01-07 23:28阅读:359来源:国知局
一种SDN下基于条件生成对抗网络的IPv6网络中DDoS攻击检测方法与流程
一种sdn下基于条件生成对抗网络的ipv6网络中ddos攻击检测方法
技术领域
1.本发明涉及入侵检测技术领域,特别是涉及一种sdn下基于条件生成对抗网络的ipv6网络中ddos攻击检测方法。


背景技术:

2.针对sdn网络中的ddos攻击检测,目前已有一系列的研究和成果。如基于knn的ddos攻击检测方法,选取和构建流量特征集矩阵,并进行正常样本训练和异常样本训练,通过分类算法knn来区分异常流量和正常流量。该方法具有良好的检测率及较低的误报率,但是其增加了sdn控制器的负载并占用一定的带宽。还有基于深度学习混合模型ddos攻击检测方法。该检测模型输入特征为流表特征和自定义的特征,然后通过训练好的深度学习模型将流量进行分类,该方法检测准确率较高同时对计算资源需求不高。另外还有将从流表项中提取六元组作为特征向量与svm相结合来检测ddos攻击,该算法有一定的检测效果,但实验中模拟的正常流量不够全面且存在一些偶然性。


技术实现要素:

3.为解决上述问题,本发明提供了一种sdn下基于条件生成对抗网络的ipv6网络中ddos攻击检测方法。
4.本发明的技术方案为:一种sdn下基于条件生成对抗网络的ipv6网络中ddos攻击检测方法,其特征在于:包括以下步骤:
5.步骤一:通过基于netflow方式获取ipv6网络在正常和受到攻击状态下的流量数据:
6.步骤二:对获取到的数据进行数据处理;保留流平均包数、流包平均比特、端口增速、流增长速率、源ip增速和流量类型数据特征;
7.步骤三:提出基于条件生成对抗网络的ipv6网络中ddos网络攻击检测算法;
8.步骤四:根据所提出算法构建条件生成对抗网络的模型参数,生成训练模型;
9.步骤五:根据上述提出的训练模型,对步骤二所得流量数据进行训练,得到训练好的生成器的神经网络参数;
10.步骤六:将需要检测的ipv6网络流量数据和经过步骤二所述的处理后数据流量输入步骤五所述的生成器中,判断ipv6网络是否受到ddos攻击。
11.所述的流平均包数、流包平均比特、端口增速、流增长速率、目的ip增速、流量类型数据特征根据以下公式计算:
[0012][0013]
其中si表示流包数;
[0014][0015]
其中pkt_byte表示每个包的比特数;
[0016]
端口增速=δports/t
[0017]
其中δports表示在固定时间t增长的端口数;
[0018]
流增长速率=δsflows/t
[0019]
其中δsflows表示在固定时间t内增长的流表数;
[0020]
目的ip增速=δip/t
[0021]
其中δip表示在固定时间t内增长的目的ip数。
[0022][0023]
所述的基于条件生成对抗网络的ipv6网络中ddos网络攻击检测算法为:
[0024]
1)将数据送入生成器中,然后通过神经网络计算得出分类结果;
[0025]
2)将分类结果进行整合然后送入判别器中,同时判断来自生成器生成的分类结果还是真实的样本分类结果;
[0026]
3)初始化神经网络各层结构中的权值,将分类结果作为向量输入模型;
[0027]
4)寻取神经网络中各参数的最优参数组合,计算隐藏层与输出层的期望输出值与实际输出值之间的误差,一步一步地调神经元间的权值,直到误差满足精度要求,停止学习;
[0028]
5)保存训练好的神经网络参数。
[0029]
所述的生成器作为分类模型,会给出是正常网络流量还是异常ddos攻击流量的的概率值(fake_labels)然后将生成器给出的结果与真实数据组合后共同送入判别器之中,然后将真实数据与真实的概率结果组合后也送入判别器中;
[0030]
fake_labels=generator(data)
[0031]
real_logits和fake_logits即为判别器给出的结果,为了训练判别器可以对于真实数据与概率组合后给出高分,对于生成器生成的概率值与真实数据的组合,给出低分需要给出一个参照标准,对于判别器来说,要使得对于来自数据与真实分类标签的组合尽可以与1相似,而对于数据与来自生成器生成的标签组合要与0尽可能相似;
[0032]
real_logits=discriminator(data,real_labels)
[0033]
fake_logits=discriminator(data,fake_labels)
[0034]
d_loss_r即为判别器对数据与真实标签组合后与1相接近的损失,d_loss_f即为判别器对数据与生成器生成标签组合后与0相接近的损失;两部分加和即为判别器的总损失d_loss;对判别器损失进行优化时,将生成器权重固定;
[0035]
[0036][0037]
d_loss_f=d_loss_r+d_loss_f
[0038]
而对于生成器损失g_loss来说,则希望自己的生成的分类标签与数据拟合的结果与1相近似;对于生成器损失进行优化时,将判别器权重固定。
[0039][0040]
所述的训练好的生成器的神经网络参数与结构基本一致,包含输入层,隐藏层和输出层;
[0041]
隐藏层每层神经元个数128,一共三层,每层隐藏层设置激活函数relu;每层隐藏层增加dropout层,将dropout的概率设置为50%,即每个神经元有50%的可能在本次训练过程中不参与神经元的优化;dropout层只在训练过程中使用,在对ipv6网络进行检测时则需要将dropout关闭;隐藏层最后接入sigmoid层输出概率值,sigmoid函数表达式为:
[0042]
f(x)=1/(1+e-x
)
[0043]
同时设置阈值为0.5,即概率大于0.5的情况下,判为1,小于0.5的情况下,判为0。
[0044]
步骤六所述的的需要检测的ipv6网络数据流量通过以下步骤进行检测:
[0045]
1)载入已经训练好的生成器的神经网络参数;
[0046]
2)关闭dropout层;
[0047]
3)将输入数据按照特征处理的方式处理后送入生成器之中;
[0048]
4)生成器输出结果,完成检测。
[0049]
与现有技术相比,本发明的有益效果为:通过基于条件生成对抗网络的ipv6网络中ddos攻击检测方法进行网络攻击检测时具有高准确精度、系统开销小、适用环境广等优点。
附图说明
[0050]
图1本发明一种sdn下基于条件生成对抗网络的ipv6网络中ddos攻击检测方法的流程图。
[0051]
图2本发明一种sdn下基于条件生成对抗网络的ipv6网络中ddos攻击检测方法基于条件生成对抗网络的ipv6网络中ddos网络攻击检测算法流程图。
具体实施方式:
[0052]
实施例1:
[0053]
如图所示:一种sdn下基于条件生成对抗网络的ipv6网络中ddos攻击检测方法,包括以下步骤:
[0054]
本实施例方案通过模拟大流量泛洪式ddos攻击,对sdn网络控制器进行分布式攻击,通过伪造不同ip地址,向目标站点发起攻击。通过模拟不同主机,同时向sdn控制器发起攻击。
[0055]
针对所给实施例,,该sdn下ipv6网络中ddos攻击检测方法包括以下步骤:
[0056]
步骤一:通过基于netflow方式获取ipv6网络在正常和受到攻击状态下的流量数据;
[0057]
步骤二:对获取到的数据进行数据处理;保留流平均包数、流包平均比特、端口增速、流增长速率、源ip增速和流量类型数据特征;
[0058]
步骤三:提出基于条件生成对抗网络的ipv6网络中ddos网络攻击检测算法;
[0059]
步骤四:根据所提出算法构建条件生成对抗网络的模型参数,生成训练模型;
[0060]
步骤五:根据上述提出的训练模型,对步骤二所得流量数据进行训练,得到训练好的生成器的神经网络参数;
[0061]
步骤六:将需要检测的ipv6网络流量数据和经过步骤二所述的处理后数据流量输入步骤五所述的生成器中,判断ipv6网络是否受到ddos攻击。
[0062]
所述的流平均包数、流包平均比特、端口增速、流增长速率、目的ip增速、流量类型数据特征根据以下公式计算:
[0063][0064]
其中si表示流包数;
[0065][0066]
其中pkt_byte表示每个包的比特数;
[0067]
端口增速=δports/t
[0068]
其中δports表示在固定时间t增长的端口数;
[0069]
流增长速率=δsflows/t
[0070]
其中δsflows表示在固定时间t内增长的流表数;
[0071]
目的ip增速=δip/t
[0072]
其中δip表示在固定时间t内增长的目的ip数。
[0073][0074]
具体格式如下:
[0075]
0.683333333333 202.3 5.5 6.4 1.5 0
[0076]
1.03076923077 302.461538462 5.6 6.0 1.5 0
[0077]
所述的基于条件生成对抗网络的ipv6网络中ddos网络攻击检测算法为:
[0078]
1)将数据送入生成器中,然后通过神经网络计算得出分类结果;
[0079]
2)将分类结果进行整合然后送入判别器中,同时判断来自生成器生成的分类结果还是真实的样本分类结果;
[0080]
3)初始化神经网络各层结构中的权值,将分类结果作为向量输入模型;
[0081]
4)寻取神经网络中各参数的最优参数组合,计算隐藏层与输出层的期望输出值与
实际输出值之间的误差,一步一步地调神经元间的权值,直到误差满足精度要求,停止学习;
[0082]
5)保存训练好的神经网络参数。
[0083]
所述的生成器作为分类模型,会给出是正常网络流量还是异常ddos攻击流量的的概率值(fake_labels)然后将生成器给出的结果与真实数据组合后共同送入判别器之中,然后将真实数据与真实的概率结果组合后也送入判别器中;
[0084]
fake_labels=generator(data)
[0085]
real_logits和fake_logits即为判别器给出的结果,为了训练判别器可以对于真实数据与概率组合后给出高分,对于生成器生成的概率值与真实数据的组合,给出低分需要给出一个参照标准,对于判别器来说,要使得对于来自数据与真实分类标签的组合尽可以与1相似,而对于数据与来自生成器生成的标签组合要与0尽可能相似;
[0086]
real_logits=discriminator(data,real_labels)
[0087]
fake_logits=discriminator(data,fake_labels)
[0088]
d_loss_r即为判别器对数据与真实标签组合后与1相接近的损失,d_loss_f即为判别器对数据与生成器生成标签组合后与0相接近的损失;两部分加和即为判别器的总损失d_loss;对判别器损失进行优化时,将生成器权重固定;
[0089][0090][0091]
d_loss_f=d_loss_r+d_loss_f
[0092]
而对于生成器损失g_loss来说,则希望自己的生成的分类标签与数据拟合的结果与1相近似;对于生成器损失进行优化时,将判别器权重固定。
[0093][0094]
所述的训练好的生成器的神经网络参数与结构基本一致,包含输入层,隐藏层和输出层;
[0095]
隐藏层每层神经元个数128,一共三层,每层隐藏层设置激活函数relu;每层隐藏层增加dropout层,将dropout的概率设置为50%,即每个神经元有50%的可能在本次训练过程中不参与神经元的优化;dropout层只在训练过程中使用,在对ipv6网络进行检测时则需要将dropout关闭;隐藏层最后接入sigmoid层输出概率值,sigmoid函数表达式为:
[0096]
f(x)=1/(1+e-x
)
[0097]
同时设置阈值为0.5,即概率大于0.5的情况下,判为1,小于0.5的情况下,判为0。
[0098]
步骤六所述的的需要检测的ipv6网络数据流量通过以下步骤进行检测:
[0099]
1)载入已经训练好的生成器的神经网络参数;
[0100]
2)关闭dropout层;
[0101]
3)将输入数据按照特征处理的方式处理后送入生成器之中;
[0102]
4)生成器输出结果,完成检测。
[0103]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1