一种基于混合策略的物联网ddos检测系统
技术领域
1.本发明涉及物联网技术领域,尤其涉及一种基于混合策略的物联网ddos检测系统。
背景技术:
2.自首次报告ddos攻击事件以来,网络研究界一直在探索ddos检测和缓解技术。按照检测方法区分主要可分为基于统计的方法和基于机器学习的方法。测量网络
流量的统计属性是ddos检测的常用方法,ddos攻击会导致某些流量属性的分布产生变化,通常通过设定阈值与之比较来识别ddos攻击。基于机器学习的方法在网络异常检测中的应用已得到了广泛的研究,包括支持向量机(svm)、k-最近邻(k-nn)、随机森林、朴素贝叶斯等传统机器学习方法已被应用在ddos检测领域中,具有较高的精度与低误报率。此外,长期短期记忆(lstm)网络、
卷积神经网络(cnn)等深度学习模型被用于ddos检测,拥有更高的攻击检测与分类精度。
3.背景技术的缺陷:
4.前物联网ddos检测和缓解方法许多依赖于远程云服务器,并非所有物联网设备都具备这一类设施,物联网设备本身的资源受限导致许多防御手段难以直接应用。此外,当前已有工作主要针对单一类别的ddos攻击(例如udp泛洪攻击)进行检测与缓解,而对当今越来越多的混合ddos攻击应对不足,而物联网设备的大规模增长也会增加此类攻击的攻击面。针对ddos攻击的检测结果也仅限于识别是否受到攻击,或者仅区分恶意流量与良性流量而没有具体恶意流量的识别结果。在物联网设备数量急速增长的今天,ddos攻击的种类和规模也在不断的变化,已有的相关技术不能很好地应对这些攻击,还有很大的提升空间。
技术实现要素:
5.本发明提供了一种基于混合策略的物联网ddos检测系统,包括位于网关处的基于统计的检测
模块、位于边缘服务器的基于机器学习的检测模块、流量处理模块,
6.与外界交互的网络流量首先会被基于统计的检测模块收集并提取流量
特征,通过基于统计的方法区分良性网络流和恶意流,检测潜在的ddos攻击威胁;
7.对于基于统计的检测模块无法判断的疑似恶意流量,基于机器学习的检测模块会负责进一步的精确识别和分类ddos攻击流;
8.所述流量处理模块:对良性流量予以放行,对恶意流量进行防御。
9.作为本发明的进一步改进,基于机器学习的检测模块的识别结果反馈到基于统计的检测模块,以更新恶意流量的特征值。
10.作为本发明的进一步改进,基于统计的检测模块在物联网网络的网关处收集流量,并利用流量分析工具进行处理,提取流量特征;通过规则过滤表记录常见的已知ddos流量的特征值,通过与规则过滤表中的已知ddos流量特征进行比较来识别恶意流量。
11.作为本发明的进一步改进,规则过滤表中常见的已知ddos流量特征包括流量速
率、正向流量数据包长度、数据包间隔标准差,如果流的特征值与已知ddos攻击的各项特征值偏差在设定范围内,则认为该流量是恶意流量。
12.作为本发明的进一步改进,在所述基于统计的检测模块中,流量分析工具为cicflowmeter,使用cicflowmeter为每个流生成多个特征,针对生成的多个特征,采用方差过滤技术进行特征选择。
13.作为本发明的进一步改进,在所述基于统计的检测模块中,拟定表示时刻t时的流量t(t),构成如下:
14.t(t)=s(t)+a(t)
15.其中,s(t)表示稳定的流量速率与噪声之和,a(t)表示由未知来源引起的异常,
16.对网络流量进行预测,得到预测的流量速率s'(t),通过计算t(t)与s'(t)的差值d(t),即d(t)=t(t)-s'(t),来作为判断攻击的标志,当d(t)在某个时间间隔δt内低于阈值δ时,随机选择一部分流并发送它们到基于机器学习的检测模块进行进一步分析;如果d(t)在δt中频繁地高于δ,将所有流引导至基于机器学习的检测模块。
17.作为本发明的进一步改进,在所述基于机器学习的检测模块中,采用流量分析工具对流量进行处理,生成双向流并提取流量特征,对于生成的所有特征,采取结合了交叉验证的递归式特征消除进行特征选择,得到的多个特征用于机器学习模型的训练。
18.作为本发明的进一步改进,所述机器学习模型采用cnn-lstm模型,通过cnn-lstm模型进行流量分类识别,所述cnn-lstm模型包括用于特征提取和融合的卷积神经网络和用于处理序列问题的长短期记忆网络;所述卷积神经网络由卷积层和池化层组成,卷积层用于提取特征,池化层采用最大池化,池化层能降低中间隐含层的维度,减少接下来各层的运算量。
19.作为本发明的进一步改进,在所述基于机器学习的检测模块中,输入层会将处理好的输入数据传入卷积神经网络,其中数个卷积层相连,采取不同尺寸的卷积核提取输入特征,激活函数采用relu,padding采用same模式;多个相连的卷积层之后连接最大池化层,池化层之后还使用了dropout来减轻网络的过拟合,最后通过全连接层输出特征信息,并使用l2正则和dropout的trick进行优化;
20.所述长短期记忆网络提取卷积神经网络输出的深层次序列特征,每层使用sigmoid函数进行非线性运算,使用dropout层进行处理,最后通过全连接层,使用softmax作为激活函数进行多分类;
21.最终输出形状为n的特征,其中n是数据集具有的流量类别的数量;
22.识别完成后,若识别到是恶意攻击,则会根据攻击的特征生成更新数据发送至基于统计的检测模块,用于规则过滤表中匹配特征值的添加与更新;对于检测到的每一种ddos攻击,会首先使用聚类算法根据特征值向量进行聚类,每一个类的聚类中心作为该ddos攻击的更新数据。
23.作为本发明的进一步改进,在所述流量处理模块中,对于识别完成的流量,如果是良性流量,则按照原本的路径将其转发至目的地;如果是恶意流量,根据严重程度采取不同的必要手段进行限制;同时,在检测到网络内部的物联网设备流量疑似攻击或者异常时,通过流量处理模块限制其对外通信,生成报告。
24.本发明的有益效果是:本发明通过基于统计的检测模块、基于机器学习的检测模
块和流量处理模块,高效准确的检测网络通信中可能遭受到的ddos攻击。
附图说明
25.图1是本发明的系统架构图;
26.图2是本发明的工作流程图;
27.图3是cnn-lstm模型图。
具体实施方式
28.如图1所示,本发明公开了一种基于混合策略的物联网ddos检测系统,包括位于网关处的基于统计的检测模块、位于边缘服务器的基于机器学习的检测模块、流量处理模块。
29.基于统计的检测模块包括经过网关的物联网设备流量收集、特征提取与过滤、流量预测与检测、根据机器学习分类结果更新特征匹配值等。
30.基于机器学习的检测模块包括卷积神经网络模型、流量分类与预测、反馈恶意流量特征等。
31.流量处理模块用于对良性流量予以放行,对恶意流量采取丢弃、关闭会话、拉黑等手段进行防御。
32.如图2所示,在本系统的使用场景下,物联网网络内有多台物理网设备,与外界通信的流量都要经过网关。与外界交互的网络流量首先会被基于统计的检测模块收集并提取流量特征,通过基于统计的方法区分良性网络流和恶意流,检测潜在的ddos攻击威胁。对于基于统计的检测模块处无法判断的疑似恶意流量,基于机器学习的检测模块会负责进一步的精确识别和分类ddos攻击流。对于良性网络流会予以放行,而对恶意网络流量则会予以限制,例如丢弃数据包、关闭网络会话等。同时,基于机器学习的检测模块的识别结果还会被进一步反馈到基于统计的检测模块以更新恶意流量的特征值。
33.一.基于统计的检测模块
34.基于统计的检测模块在物联网网络的网关处收集流量,并利用流量分析工具进行处理,提取流量特征。同时维护了一个规则过滤表,用来记录常见的已知ddos流量的特征值。通过与规则过滤表中的已知ddos流量特征(例如流量速率、正向流量数据包长度、数据包间隔标准差等)进行比较来识别恶意流量。如果流的特征值与已知ddos攻击的各项特征值偏差都较小,例如多项特征值的差值都在1%内,则认为该流量是恶意流量。对于恶意流量做相应处理,例如丢弃、关闭会话等,对良性流量予以放行。
35.具体来说,我们使用cicflowmeter对流量进行处理,cicflowmeter是一个开源工具,可以从pcap文件生成双向流,并从这些流中提取、计算相关特征。我们使用cicflowmeter为每个流生成包括流持续时间(flow duration)、前向数据包总数(total fwd packet)、每秒流字节数(flow bytes/s)等在内的83个特征。对于生成的83个特征,全部用于特征值匹配并不现实,也不够效率。因此,我们采用方差过滤技术来进行特征选择。方差过滤就是过滤掉那些特征方差较小的特征。比如一个特征本身的方差很小,就表示样本在这个特征上基本没有差异,可能特征中的大多数值都一样,甚至整个特征的取值都相同,那这个特征对于样本区分没有什么作用。所以可以设置一个过滤的阈值,过滤掉那些方差小的特征,从而达到特征筛选的目的。方差计算公式如下:
[0036][0037]
其中,其中μ是该特征所有值的平均值,xi代表特定属性的单个样本值,n是样本总数。
[0038]
对于典型的物联网任务来说,大多数物联网设备以静态方式感知和上传数据。通过网关的流量,无论是来自物联网网络还是来自因特网,在正常条件下的固定时间段内都应该保持稳定。因此,通过网关的实时流量的突然增加可能是由ddos攻击引起的。我们拟定表示时刻t时的流量t(t),构成如下:
[0039]
t(t)=s(t)+a(t)
[0040]
其中s(t)表示稳定的流量速率与方差(噪声)之和,a(t)表示由未知来源引起的异常。我们使用自回归综合移动平均(arima)对网络流量进行预测,得到预测的流量速率s'(t)。通过计算t(t)与s'(t)的差值d(t),即d(t)=t(t)-s'(t),来作为判断攻击的标志。当d(t)在某个时间间隔δt内低于阈值δ时,我们随机选择一部分流并发送它们到基于机器学习的检测模块进行进一步分析;如果d(t)在δt中频繁地高于δ,我们将所有流引导至基于机器学习的检测模块。因为当d(t)很大时,说明预测值与真实值差异较大,此时流一般都是恶意的;虽然当d(t)很小时,流量在很大程度上是良性的,但我们仍然随机检测其中的一小部分以发现潜在的攻击。
[0041]
二.基于机器学习的检测模块
[0042]
基于统计的方法检测效率高、响应延迟低,但是相应的精度可能会有欠缺,因此,对于可疑流量,流量提取至边缘服务器,采用机器学习方法对可疑流量进行识别,机器学习模型相对统计方法识别效果往往更好,但需要的计算资源更多,因此运行在边缘服务器上。
[0043]
当边缘服务器接收到来自外部世界或内部物联网设备的流量时,它们将被基于机器学习的检测模块利用。该模块旨在从接收到的所有流量中区分出良性流量和恶意流量,并将良性流量传递到它们的目的地。识别出的恶意流按照与基于统计的检测中特征匹配的相同的方式处理,例如丢弃数据包、关闭会话等。最后,根据识别结果与流量特征生成过滤规则更新信息,并将其发送到基于统计的检测模块以增强其过滤强度。
[0044]
具体来说,我们依旧采用cicflowmeter对流量进行处理,生成双向流并提取流量特征。对于生成的所有特征,我们采取结合了交叉验证的递归式特征消除(rfecv)进行特征选择,通过删除区分度较低的特征,减小模型的输入和计算量。递归式特征消除(recursive feature elimination)通过不断训练模型,每次训练完成后根据特征的重要程度删除n个重要性较低的特征,然后使用新的特征集合进行训练,不断递归重复上述步骤,直到剩余特征数量满足所需。同时,我们还使用交叉验证(cross validation)来保留最优的特征数量,如果在递归过程中,减少的特征会造成模型的性能损失,则不会删除该特征。在ref的基础上对不同的特征组合进行交叉验证,学习器本身不变,通过计算其决策系数之和,最终得到不同特征对于score的重要程度,然后保留最佳的特征组合。
[0045]
通过rfecv的使用,最终我们筛选得到了包括流持续时间(flow duration)、前向
数据包最大长度(fwd packet length max)、前向子流中的平均字节数(subflow fwd bytes)等在内的多个特征用于机器学习模型的训练。对于得到的特征,还要进行归一化与标准化处理,消除奇异样本数据和量纲差别导致的不良影响。
[0046]
机器学习模型采用深度学习模型,使用cnn-lstm模型进行流量分类识别。主要功能结构包括用于特征提取和融合的卷积神经网络(convolutional neural network,cnn)和用于处理序列问题的长短期记忆网络(long short-term memory,lstm),如图3所示。cnn主要由卷积层(convolutional layer)和池化层(pooling layer)组成。卷积层的主要功能是提取特征。池化层采用最大池化(max-pooling),池化层能降低中间隐含层的维度,减少接下来各层的运算量。
[0047]
lstm是一类特殊的循环神经网络(recurrent neural network,rnn)擅长处理序列数据,因为它在计算当前输出时会考虑过往时间片的信息,可以学习序列数据的时序特征,而网络流量尤其是ddos攻击流量的识别显而易见地具有时序性。同时,相较于普通rnn,lstm不仅可以有效解决长期依赖的问题,还可以更好地处理梯度消失和梯度爆炸的问题。
[0048]
具体地,输入层会将处理好的输入数据传入cnn网络。卷积部分主要包含卷积层和池化层。其中数个卷积层相连,采取不同尺寸(2
×
2,3
×
3等)的卷积核提取输入特征,激活函数采用relu(rectified linear unit,relu),padding采用same模式,以防止边界信息丢失。这样的多个相连的卷积层之后连接最大池化层,池化层之后还使用了dropout来减轻网络的过拟合。上述结构重复多次构成了cnn部分,最后通过全连接层输出特征信息,并使用l2正则和dropout等trick进行优化。lstm提取cnn输出的深层次序列特征,每层使用sigmoid函数进行非线性运算,同样使用dropout层进行处理,最后通过全连接层,使用softmax作为激活函数进行多分类。
[0049]
最终输出形状为n的特征,其中n是数据集具有的流量类别的数量(包括良性流量、udp泛洪攻击、http慢响应攻击等)。
[0050]
识别完成后,若识别到是恶意攻击,则会根据攻击的特征生成更新数据发送至基于统计的检测模块,用于规则过滤表中匹配特征值的添加与更新,以增强统计方法对ddos攻击的检测能力。对于检测到的每一种ddos攻击,会首先使用聚类算法根据特征值向量进行聚类,每一个类的聚类中心作为该ddos攻击的更新数据。
[0051]
对于规则过滤表中已知ddos攻击的特征值,若机器学习模块识别到的ddos攻击的特征值与之相差较小(例如以二者欧氏距离计算结果衡量),则采取加权平均的方式重新计算此类ddos攻击的特征值,并在规则匹配表中更新;若二者相差较大,则认为新检测到的ddos攻击为该类型下的另一形式的ddos攻击,将其特征值也作为该类ddos攻击的特征值添加到规则匹配表中而不是更新原来的值,即规则匹配表中同一类攻击可能对应多个匹配值。
[0052]
三.流量处理模块
[0053]
对于识别完成的流量,如果是良性流量,则按照原本的路径将其转发至目的地;如果是恶意流量,根据严重程度采取不同的必要手段进行限制,例如丢弃该数据包、关闭与流量来源的会话通信、甚至将目标ip拉黑等。同时,因为处理提取的网络流量为双向流,即系统可以同时检测来自外界因特网的流量以及来自内部物联网设备的流量。因此,还可以在检测到网络内部的物联网设备流量疑似攻击或者异常时,限制其对外通信,生成报告等待
进一步处理。
[0054]
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
技术特征:
1.一种基于混合策略的物联网ddos检测系统,其特征在于:包括位于网关处的基于统计的检测模块、位于边缘服务器的基于机器学习的检测模块、流量处理模块,与外界交互的网络流量首先会被基于统计的检测模块收集并提取流量特征,通过基于统计的方法区分良性网络流和恶意流,检测潜在的ddos攻击威胁;对于基于统计的检测模块无法判断的疑似恶意流量,基于机器学习的检测模块会负责进一步的精确识别和分类ddos攻击流;所述流量处理模块:对良性流量予以放行,对恶意流量进行防御。2.根据权利要求1所述的物联网ddos检测系统,其特征在于:基于机器学习的检测模块的识别结果反馈到基于统计的检测模块,以更新恶意流量的特征值。3.根据权利要求1所述的物联网ddos检测系统,其特征在于:基于统计的检测模块在物联网网络的网关处收集流量,并利用流量分析工具进行处理,提取流量特征;通过规则过滤表记录常见的已知ddos流量的特征值,通过与规则过滤表中的已知ddos流量特征进行比较来识别恶意流量。4.根据权利要求3所述的物联网ddos检测系统,其特征在于:规则过滤表中常见的已知ddos流量特征包括流量速率、正向流量数据包长度、数据包间隔标准差,如果流的特征值与已知ddos攻击的各项特征值偏差在设定范围内,则认为该流量是恶意流量。5.根据权利要求3所述的物联网ddos检测系统,其特征在于:在所述基于统计的检测模块中,流量分析工具为cicflowmeter,使用cicflowmeter为每个流生成多个特征,针对生成的多个特征,采用方差过滤技术进行特征选择。6.根据权利要求3所述的物联网ddos检测系统,其特征在于:在所述基于统计的检测模块中,拟定表示时刻t时的流量t(t),构成如下:t(t)=s(t)+a(t)其中,s(t)表示稳定的流量速率与噪声之和,a(t)表示由未知来源引起的异常,对网络流量进行预测,得到预测的流量速率s'(t),通过计算t(t)与s'(t)的差值d(t),即d(t)=t(t)-s'(t),来作为判断攻击的标志,当d(t)在某个时间间隔δt内低于阈值δ时,随机选择一部分流并发送它们到基于机器学习的检测模块进行进一步分析;如果d(t)在δt中频繁地高于δ,将所有流引导至基于机器学习的检测模块。7.根据权利要求1所述的物联网ddos检测系统,其特征在于:在所述基于机器学习的检测模块中,采用流量分析工具对流量进行处理,生成双向流并提取流量特征,对于生成的所有特征,采取结合了交叉验证的递归式特征消除进行特征选择,得到的多个特征用于机器学习模型的训练。8.根据权利要求7所述的物联网ddos检测系统,其特征在于:所述机器学习模型采用cnn-lstm模型,通过cnn-lstm模型进行流量分类识别,所述cnn-lstm模型包括用于特征提取和融合的卷积神经网络和用于处理序列问题的长短期记忆网络;所述卷积神经网络由卷积层和池化层组成,卷积层用于提取特征,池化层采用最大池化,池化层能降低中间隐含层的维度,减少接下来各层的运算量。9.根据权利要求8所述的物联网ddos检测系统,其特征在于:在所述基于机器学习的检测模块中,输入层会将处理好的输入数据传入卷积神经网络,其中数个卷积层相连,采取不同尺寸的卷积核提取输入特征,激活函数采用relu,padding采用same模式;多个相连的卷
积层之后连接最大池化层,池化层之后还使用了dropout来减轻网络的过拟合,最后通过全连接层输出特征信息,并使用l2正则和dropout的trick进行优化;所述长短期记忆网络提取卷积神经网络输出的深层次序列特征,每层使用sigmoid函数进行非线性运算,使用dropout层进行处理,最后通过全连接层,使用softmax作为激活函数进行多分类;最终输出形状为n的特征,其中n是数据集具有的流量类别的数量;识别完成后,若识别到是恶意攻击,则会根据攻击的特征生成更新数据发送至基于统计的检测模块,用于规则过滤表中匹配特征值的添加与更新;对于检测到的每一种ddos攻击,会首先使用聚类算法根据特征值向量进行聚类,每一个类的聚类中心作为该ddos攻击的更新数据。10.根据权利要求1至9任一项所述的物联网ddos检测系统,其特征在于:在所述流量处理模块中,对于识别完成的流量,如果是良性流量,则按照原本的路径将其转发至目的地;如果是恶意流量,根据严重程度采取不同的必要手段进行限制;同时,在检测到网络内部的物联网设备流量疑似攻击或者异常时,通过流量处理模块限制其对外通信,生成报告。
技术总结
本发明提供了一种基于混合策略的物联网DDoS检测系统,包括位于网关处的基于统计的检测模块、位于边缘服务器的基于机器学习的检测模块、流量处理模块,与外界交互的网络流量首先会被基于统计的检测模块收集并提取流量特征,通过基于统计的方法区分良性网络流和恶意流,检测潜在的DDoS攻击威胁;对于基于统计的检测模块无法判断的疑似恶意流量,基于机器学习的检测模块会负责进一步的精确识别和分类DDoS攻击流;所述流量处理模块:对良性流量予以放行,对恶意流量进行防御。本发明的有益效果是:本发明通过基于统计的检测模块、基于机器学习的检测模块和流量处理模块,高效准确的检测网络通信中可能遭受到的DDoS攻击。检测网络通信中可能遭受到的DDoS攻击。检测网络通信中可能遭受到的DDoS攻击。
技术研发人员:
张伟哲 尹书君 冯禹铭
受保护的技术使用者:
哈尔滨工业大学(深圳)
技术研发日:
2022.11.24
技术公布日:
2023/3/24