掌桥专利:专业的专利平台
掌桥专利
首页

软件定义物联网下DDoS攻击检测方法

文献发布时间:2023-06-19 09:38:30


软件定义物联网下DDoS攻击检测方法

技术领域

本发明涉及网络安全技术领域,尤其涉及一种软件定义物联网下DDoS攻击检测方法。

背景技术

近年来,网络安全问题变得越来越重要。DDoS(Distributed Denial of Service,分布式拒绝服务)攻击对互联网安全构成了极大的威胁。DDoS攻击者有目的地向受害者发送大量恶意请求,目的是耗尽受害者的计算资源,如CPU和内存,迫使受害者拒绝向合法用户提供服务。随着雇佣攻击服务的激增和启用物联网(IoT,Internet of Things)的僵尸网络的出现,DDoS攻击在数量、频率、复杂程度和影响方面都有了显著地增长。它们已经演变成对服务提供商和网络运营商造成破坏性以及强大的附带损害。2016年10月,Mirai僵尸网络命令大量的物联网设备对动态域名服务器(Dyn DNS,Dynamic Domain Name Server)基础设施进行DDoS攻击,结果会导致许多流行的互联网服务在数小时内不可用,如亚马逊、推特和GitHub。这个攻击被认为是有史以来最大的DDoS攻击,峰值流量是1.35Tbps。随着不安全的物联网设备数量的快速增长,到2020年年底,估计将有500亿个连接设备,可以增强和促进大规模攻击的能力。目前,物联网设备已成为DDoS攻击增长的主要来源,图1为利用软件定义物联网的结构,攻击者开展对软件定义物联网架构的DDoS攻击示意图,参照图1,DDoS攻击发起者首先利用互联网用户的漏洞,收集大量的傀儡机,然后协同调度这些傀儡机同时伪造数据,发送非法请求导致目标主机瘫痪。DDoS攻击主要分为两种类型:带宽消耗型和资源消耗型,带宽消耗型攻击通过发送大量无用的数据包给受害主机或网络,占用网络带宽,从而使正常请求流量不可达;资源消耗型攻击通过消耗目标主机的资源,比如CPU、内存和硬盘等,使目标主机无法回应正常用户的请求。DDoS攻击发起简单且危害性大,由于软件定义物联网的特点,当发生DDoS攻击时不仅危害被攻击主机,还会引发交换机流表项大量增长,产生大量packet_in消息发送到控制器。在这个过程中,软件定义物联网的控制器、被攻击的主机及其所连接的交换机都会受到极大的影响,所以DDoS攻击对于软件定义物联网的危害是巨大的。因此,如何有效地检测DDoS攻击是物联网安全管理过程中迫切需要解决的问题。

新兴网络体系架构软件定义网络(SDN,Software-Defined Networking)的出现,为上述问题的解决提供了新的契机。鉴于SDN在网络管理和安全维护等方面的成功,越来越多的国内外研究学者尝试将其设计理念引入到物联网领域中,提出软件定义物联网(SD-IoT,Software-defined Internet of Things)的架构,SD-IoT的关键特性是将网络控制和转发功能解耦。控制层的SD-IoT控制器通常运行于性能强大的服务器平台,具有集中管理和实时监控的能力,可以将传统物联网、无线传感网络(WSN,Wireless Sensor Network)中难以实现的安全策略和检测机制方便地实现在控制器中,并利用全局拓扑视图实现灵活的攻击响应。交换机、基站、路由器和无线接入点等SD-IoT交换机作为物联网的数据层,仅进行流转发。利用统一南向接口,SD-IoT能够有效应对多种类型的物联网网络协议,简化物联网设备的配置和管理,降低业务实现与运维的成本。这种解耦避免了潜在的操作故障和服务中断,确保物联网设备的持续可用性,可防止未授权访问外围设备,监控和控制改变互联网的设备,在物联网设备上检测到合法和恶意流量模式,并最终降低了风险管理的物联网安全。SDN与物联网网络融合的研究仍处于起步阶段,仍存在许多问题,如网络框架和安全。

现有技术中对DDoS攻击进行检测的方法主要包括基于统计的方法和基于策略的方法。基于统计的方法使用统计相关数据的方法来分析SD-IoT网络流量,以区分正常数据流量和DDoS攻击流量。当SD-IoT交换机接收到用户发送的数据包,首先和交换机内的流表进行匹配,如果匹配成功,则按照流表指示进行下一步动作;如果匹配不成功,则SD-IoT交换机将数据包以Packet-in消息发送给SD-IoT控制器,等待控制器指示进行下一步动作。通过计算Packet-in消息中相应字段的熵值来判定DDoS攻击。如通过SD-IoT控制器计算消息中的目标IP地址的熵值,当目标IP地址的熵值小于阈值,则认为有DDoS攻击。其缺点在于:1)考虑到不同网络之间的流量类型和流量的变化,识别出在不同攻击场景中最小化的假阳性和假阴性率的适当检测阈值是一个很大的挑战;2)基于统计的方法检测信息单一,以及对阈值的不确定,导致检测结果错误率较高。基于策略的检测方案是对流量执行某些策略。如果数据符合这些策略或者规则,则将其视为合法数据,否则将报告为攻击数据。有的方案利用TCP连接状态信息对合法和恶意流量进行分类;有的方案中任何信任值小于指定阈值的源都被视为攻击者。其缺点在于:1)在软件定义物联网中,使用基于策略的方法对DDoS攻击进行检测之前,需要在SD-IoT控制器中安装所有的攻击包特征的策略,是一项巨大的工程;2)当网络中出现新的攻击模式时,系统必须重新提取数据特征,重新安装在SD-IoT控制器中,这种做法效率较低。

因此,亟需一种软件定义物联网下DDoS攻击检测方法。

发明内容

本发明提供了一种软件定义物联网中的DDoS攻击检测方法,以解决现有技术问题中的缺陷。

为了实现上述目的,本发明采取了如下技术方案。

本实施例提供一种软件定义物联网下DDoS攻击检测方法,包括:

通过软件定义物联网的控制器周期性的收集软件定义物联网交换机中的数据包头信息;

根据五元组对所述的数据包头信息进行数据预处理分成不同的网络流;

利用CNN算法对预处理后的数据进行检测,根据检测结果识别网络中的DDoS攻击。

优选地,利用CNN算法对预处理后的数据进行检测,根据检测结果识别网络中的DDoS攻击,包括:通过历史数据作为训练样本对CNN模型进行训练得到训练好的CNN模型,根据得到的不同的网络流选取网络流特征,并将所述网络流特征输入至训练好的CNN模型中,得到激活函数值,根据所述激活函数值识别网络中的DDoS攻击。

优选地,根据得到的不同的网络流选取网络流特征,并将所述网络流特征输入至训练好的CNN模型中,包括:把处理后的所有的网络流中的数据包头作为一个整体,以一定个数的数据包头作为一个窗口,如果一个窗口中的子网络流的条数如果小于CNN模型中输入网络流特征的条数,则提取每个子网络流的6个特征,剩余的网络流特征补零,作为CNN模型的输入;如果一个窗口中的子网络流的条数等于CNN模型中输入网络流特征的条数,则将一个窗口中的子网络流特征组成作为CNN模型的输入;如果一个窗口中的子网络流的条数大于CNN模型中输入网络流特征的条数,则将一个窗口中的子网络流特征分批次依次作为CNN模型的输入,直至窗口的网络流条数输入完毕。

优选地,通过软件定义物联网的控制器周期性的收集软件定义物联网交换机中的数据包头信息,包括:软件定义物联网控制器每6秒收集一次软件定义物联网交换机中的数据包头信息。

优选地,一定个数为250个。

优选地,五元组为源IP,源端口,目的IP,目的端口和协议。

优选地,提取每个子网络流的6个特征,包括提取每个子网络流的包数、每个子网络流的字节数、每个子网络流的字节数、流速率、源IP地址和目的IP地址。

优选地,CNN模型的结构为3C2P2F。

优选地,CNN模型中输入网络流特征的条数为20。

优选地,根据所述激活函数值识别网络中的DDoS攻击,包括:将激活函数值σ(x)限制为0到1之间的值,得到返回给定流为恶意DDoS攻击的概率p∈[0,1],当p>0.5时,网络流被识别为DDoS攻击流,否则为正常流,其中,p值是数据包头窗口中被检测为是DDoS攻击流与数据包头窗口中所有网络流的比值。

由上述本发明的软件定义物联网下DDoS攻击检测方法提供的技术方案可以看出,本发明通过软件定义物联网的控制器周期性的收集软件定义物联网交换机中的数据包头,具有较低的处理开销;根据五元组分成不同的网络流,提取每个网络流的流特征进行检测,相比于检测每个数据包,属于轻量级DDoS攻击检测;对收集到的数据包头进行数据预处理,然后利用CNN算法进行检测,识别网络中的DDoS攻击,为SD-IoT网络响应做出判定,为软件定义物联网提供安全保障,提高了软件定义物联网的安全性与可靠性,利用CNN来学习DDoS的行为和良性流量,比机器学习算法提高了检测准确性。

本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为利用软件定义物联网的结构,攻击者开展对软件定义物联网架构的DDoS攻击示意图;

图2为本实施例提供的软件定义物联网下DDoS攻击检测方法流程示意图;

图3为CNN模型示意图;

图4为范例1的场景示意图;

图5为范例2的4种CNN模型的混淆矩阵示意图。

具体实施方式

下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。

为便于对本发明实施例的理解,下面将结合附图以具体实施例为例做进一步的解释说明,且并不构成对本发明实施例的限定。

实施例

图2为本实施例提供的软件定义物联网下DDoS攻击检测方法流程示意图,参照图2,该方法包括:

S1通过软件定义物联网的控制器周期性的收集软件定义物联网交换机中的数据包头信息。

软件定义物联网的控制器通过设置会向交换机发送指令来收集数据包头。收集数据包头的时间间隔的选定非常重要。如果时间间隔过长,则检测到攻击将存在延迟,因此将减少可用于缓解的可用时间。另一方面,如果收集的时间间隔太短,则会增加请求数据包头的流量,这将导致检测机制的开销增加。本实施例优选软件定义物联网控制器每6秒收集一次软件定义物联网交换机中的数据包头信息。

S2根据五元组对所述的数据包头信息进行数据预处理分成不同的网络流。

其中,五元组为源IP,源端口,目的IP,目的端口和协议。

网络流通常被描述为共享相同信息的数据包序列<源IP,源端口,目的IP,目的端口,协议>。从形式上讲,由N个数据包组成的网络流可以被描述为一个序列:S={f

S3利用卷积神经网络(CNN,Convolutional Neural Networks)算法对预处理后的数据进行检测,根据检测结果识别网络中的DDoS攻击。

通过历史数据作为训练样本对CNN模型进行训练得到训练好的CNN模型,根据得到的不同的网络流选取网络流特征,并将所述网络流特征输入至训练好的CNN模型中,得到激活函数值,根据所述激活函数值识别网络中的DDoS攻击。

把处理后的所有的网络流中的数据包头作为一个整体,以一定个数的数据包头作为一个窗口,如果一个窗口中的子网络流的条数如果小于CNN模型中输入网络流特征的条数,则提取每个子网络流的6个特征,剩余的网络流特征补零,作为CNN模型的输入;如果一个窗口中的子网络流的条数等于CNN模型中输入网络流特征的条数,则将一个窗口中的子网络流特征组成作为CNN模型的输入;如果一个窗口中的子网络流的条数大于CNN模型中输入网络流特征的条数,则将一个窗口中的子网络流特征分批次依次作为CNN模型的输入,直至窗口的网络流条数输入完毕。示意性地,把处理后的所有的网络流中的数据包头作为一个整体,假设共有A个数据包头。在这A个数据包头中,以n个数据包头为一个窗口,一个窗口中有h个子网络流。本实施例中选择以250个数据包头为一个窗口,也就是n为250,如果hx,则将一个窗口中的子网络流特征分批次依次作为CNN模型的输入,直至窗口的网络流条数输入完毕。这里的x指的是CNN模型中输入网络流特征的条数。

本实施例优选250个数据包头作为一个窗口。CNN模型的结构为3C2P2F。CNN模型中输入网络流特征的条数为20。

DDoS攻击者可以使用多种攻击手段和方法,但大多数攻击流量都遵循某些规则,因此,可以使用流特征进行检测。例如,发生DDoS攻击时,主要的攻击方式是源IP地址欺骗,这会使源IP更加分散。根据攻击流量的特征,并针对SDN架构的网络特征。通过以上分析,本实施例提取每个子网络流的6个特征如下:

1)每个子流的包数(NPf)

2)每个子流的字节数(DNf)

3)每个子流的持续时间(DNf)

4)流速率(RNf)

5)源IP地址(SIP)

6)目的IP地址(DIP)

因为正常流量和攻击流量的特点不同。因此,攻击检测可以看作是检测当前网络是否正常的一个分类问题。

图3为CNN模型示意图,参照图3:CNN的基本结构包括输入层、卷积层、池化层、全连接层和输出层。输入层用于接收多维数据,卷积层从数据输入中提取特征。特征的数量可以通过改变卷积核、步骤和填充参数来控制;池化层通过改变池化大小、步长和填充参数来减少数据量,从而进一步简化了功能;全连接层对特征进行非线性组合和分类;最后输出层输出分类结果。

输入层:如前所述,每个网络流都按照数据预处理方式进行处理,并被重塑成一个包含流特征的二维矩阵,从而创建了一个新的空间表示,使CNN能够学习流之间的相关性。因此,CNN的输入是h×f的矩阵F,F包含窗口中h个子网络流向量,F={flow

CNN层:每个输入矩阵F由一个卷积层操作,有k个大小为h×i的滤波器,其中h为每个滤波器的长度。滤波器也被称为内核或者滑动窗口,对F进行卷积,以提取和学习包含有用信息的局部特征,用于检测DDoS攻击和正常流。每一个滤波器生成一个大小为(f-i+1)的激活映射,使满足下式(1):

a

其中,W

ReLU(x)=max{0,x} (2)

对所有激活映射进行堆叠,创建大小为(f-i+1)×k的激活矩阵。

池化层:对于最大池化层,沿A的第一维进行下采样,该维表示输入的时间性质。一个q大小的池产生一个大小为(f-i+1)/q×k的输出矩阵q

分类层:v输入到相同大小的全连接层,输出层只有一个节点。这个输出x被传递给如下式(3)所示的sigmoid激活函数:

σ(x)=1/(1+e

将激活函数值σ(x)限制为0到1之间的值,得到返回给定流为恶意DDoS攻击的概率p∈[0,1],当p>0.5时,也就是σ(x)>0.5时,网络流被识别为DDoS攻击流,否则为正常流,其中,p值是数据包头窗口中被检测为是DDoS攻击流与数据包头窗口中所有网络流的比值。

以下为应用本实施例方法的范例:

范例1:图4为范例1的场景示意图,如图4所示,攻击者控制僵尸主机向网络中发送DDoS攻击,SD-IoT控制器间隔6秒周期性的提取SD-IoT交换机中的数据包头,进行数据预处理。数据包头根据五元组<源IP,源端口,目的IP,目的端口,协议>被分成不同的网络流。在A个数据包头中,以n个数据包头为一个窗口,一个窗口中有h个子流。我们择以250个数据包头为一个窗口。如果h<x,则提取每个流的6个特征,其余x-h个网络流特征补零,作为CNN的输入。如果h>x,则每h个网络流特征组成CNN的输入。本范例研究不同h值对DDoS检测模型性能的影响。本实施例用h∈{5,10,15,20,25,30}来训练所提出的模型。

通过对训练数据的分析,可以观察到数据包数量大的网络流通常是合法的流。模型可能已经学习了这个特殊的特性,并简单地做出相应的决定。

表1为给出了不同h值训练CNN模型的结果。Ave是平均值。从表1中可以看出,随着h值的增加,允许模型检查更多的网络流。随着h的增加,模型的性能逐渐下降,但下降的幅度不同。检查了25个网络流显著降低了方案的性能。在预定义的包窗口中,网络流较少的包窗口将用零填充。这些填充值可能会混淆系统并导致性能下降。表1的后两列显示了CNN算法在不同的h值下的训练时间(以分钟为单位)和CPU(%)利用率。随着h的增加,训练时间越来越短,CPU使用率越来越大。结合检测性能可以得出,当h为20时,CNN模型的性能最好。

表1不同h值下CNN的性能

范例2:图4中的DDoS检测模型用了不同深度的卷积层CNN模型进行实验。实验过程中建立了4种不同深度的CNN模型。采用3层卷积层的神经网络模型(3C2P2F、3C3P2F)效果明显优于采用2层卷积层的神经网络模型(2C2P2F、2C2P3F)。其中,F1分数表示精确度和召回率的调和平均值,能够更准确地评估模型性能,

表2为比较3C2P2F(3个卷积层,2个最大池化层和3个全连接层)模型和3C3P2F模型的检测效果,通过混淆矩阵分析4种模型。4种CNN模型的混淆矩阵如图5所示。采用2层卷积层的神经网络的模型在判断正常分组和攻击分组的能力上均弱于采用3层卷积层的神经网络的模型。同时3C2P2F模型判断攻击分组的能力(0.99)强于3C3P2F模型(0.98)。考虑到DDoS攻击可能会危害到整个系统的安全性,采用的检测模型必须要对攻击有很强的敏感性,综合考虑,CNN模型采用3C2P2F模型最佳。

表2不同深度的CNN模型

本领域技术人员应能理解,图3仅为简明起见而示出的各类网络元素的数量可能小于一个实际网络中的数量,但这种省略无疑是以不会影响对发明实施例进行清楚、充分的公开为前提的。

本领域技术人员应能理解,上述所举的根据用户信息决定调用策略仅为更好地说明本发明实施例的技术方案,而非对本发明实施例作出的限定。任何根据用户属性来决定调用策略的方法,均包含在本发明实施例的范围内。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

相关技术
  • 软件定义物联网下DDoS攻击检测方法
  • 基于软件定义网络的DDoS攻击检测方法
技术分类

06120112242258