基于流标特征的DdoS攻击检测技术

本文探讨了在移动互联网和新一代信息技术背景下,SDN网络面临的DDoS威胁及其挑战。提出了一种利用深度学习和流表特征的系统,通过Mininet模拟和Floodlight控制器实现对SYN泛洪攻击的快速检测和防御,显著提高了网络安全性。
摘要由CSDN通过智能技术生成

研究背景:

近几年来,随着移动互联网、大数据、云计算、人工智能等新一代信息的快速发展,围绕网络和数据的服务与应用呈现爆发式增长,丰富的应用场景下也暴露出越来越多的安全问题,并在全球范围内产生了深远的影响。如近年来发生的勒索病毒攻击、跨国电信诈骗、数据泄露、网络暴力等热点事件,给各国的互联网发展和治理带来巨大挑战。信息安全已经威胁到国家的政治、经济、军事、文化意识形态等各个领域,成为网络发展中越来越重要的话题。

随着互联网的不断发展和网络规模的急速膨胀,网络承载的业务种类和数量也日趋庞大、类型日益复杂,而传统网络由于部署慢、更新速度迟钝等缺点难以满足云计算、大数据以及其相关业务提出的灵活的资源需求,软件定义网络(SDN)便应运而生。

与传统的网络不同,SDN网络将控制逻辑与转发平面解耦,简化了协议的设计和优化了网络服务的实现;集中式控制平面负责所有网络资源﹐使得管理者可以快速部署智能灵活的网络,后期维护和扩容也变得方便。然而,Parashar等人通过对SDN的现有攻击和安全性的分析,发现SDN网络易受分布式拒绝服务攻击(DDoS)。

DDoS攻击是一种协同攻击模型,比一般的分布式攻击规模更大、攻击力更强。攻击者使用控制的大量受感染的计算机同时向目标发起拒绝服务(DoS)攻击,通过发送大量的假报文来耗尽受害者的资源,并使用大量不同的欺骗IP地址源对受害者进行泛洪攻击,从而导致信息的大规模中断和网络拥塞。最终使系统资源或网络带宽耗尽,甚至崩溃。自1999年第一次DDoS攻击发生以来,它已在全球范围内成为一个致命、广泛传播且快速增长的威胁。据调查,DDoS是目前组织面临的最大威胁(调查中占50%),由图2-1也可以充分地体现。目前DDoS攻击的主要攻击载体有UDPflood、HTTPflood、SYNflood、ICMP、DNS等,对系统和网络都构成了严重的影响,形式十分严峻。

因此,针对SDN网络体系结构的特点,建立高效合理的安全防御机制,确保网络用户的正常信息安全,是设计和部署整个SDN网络架构时必须认真考虑的关键问题之一。而目前针对DDoS攻击检测和防御的研究还尚不成熟,所以,关于如何有效保护SDN网络免受DDoS攻击这一问题,当前已成为SDN安全领域的研究热点。虽然网络管理员可以识别潜在的攻击,但要持续实时、有效地识别发生的攻击非常困难。因此,进一步研究快速检测和有效抵御SDN中DDoS攻击的方法具有非常重要的理论和实践意义。

综上所述,本系统主要针对传统网络中预防DDoS攻击配置复杂、设备昂贵等问题,尝试在SDN环境中实现DDoS的预防和处理,保证网络安全。将模拟创建以控制器为中心的SDN网络,利用深度学习算法针对DDoS攻击流量建立预测模型,使得在新流量到达时能够及时做出准确判断,然后通过开源控制器实现流量调度,从而增强整个网络环境的安全性。

研究价值:

DDoS攻击一直是SDN网络面临的最大威胁之一,也是互联网上最具破坏性的攻击之一但目前针对SDN网络中DDoS攻击检测和防御的研究还尚不成熟。

因此,有必要设计并实现一个在SDN环境中利用深度学习算法检测DDoS攻击,并利用回溯策略和使用控制器下发策略来抵御攻击的面向客户端的网络管理系统。系统后端提供DDoS攻击检测及抵御服务,前端借助RESTAPI展示全局网络信息。使用Mininet模拟创建以控制器为中心的SDN网络,利用上述算法针对DDoS攻击流量建立预测模型,使得在新流量到达时能够及时做出准确判断,然后通过开源控制器Floodlight实现流量调度,增强整个网络环境的安全性。最终使用Hping3工具模拟DDoS攻击来验证系统能够进行实时且有效的防御。本系统利用SDN架构具有的优势特点,针对传统DDoS攻击检测与抵御策略中存在的配置复杂、设备昂贵且检测精度低、反应时间慢、抵御效果差等问题,提出了一套面向SDN的DDoS深度防御方案。通过搭建以控制器为中心的SDN网络,利用深度学习算法建立预测模型,使得在新流量到达时能够及时做出准确判断,通过开源控制器实现流量调度﹐利用回溯策略下发控制方案对恶意流量区别处理,实现对DDoS攻击的检测与防御功能,增强整个网络环境的安全性。同时,网络拓扑的设备信息、路径信息、流量信息等可以通过RESTAPI在图形化界面进行显示,方便用户操作。本系统主要针对传统DDoS攻击检测与抵御策略中配置复杂、设备昂贵且检测精度低、反应时间慢、抵御效果差等问题,尝试在SDN环境中实现DDoS的预防和处理,保证网络的安全。将使用深度学习算法,依据训练集自动建立模型,在实际流量经过时实现实时动态应对,缩短应对时间,使设备受到攻击的时间进一步缩短,减少网络资源的损失。

即分布式拒绝服务攻击,其攻击种类和攻击方式复杂多样。本系统主要针对的是基于SYN泛洪攻击的检测和防御。SYN泛洪攻击是一种协议DDoS攻击,攻击者利用TCP三次握手协议的漏洞,使用伪造的IP地址向目标服务器攻击者发送TCPSYN,SYN是TCP三次握手中的第一个数据包,而当服务器返回ACK后,该攻击者就不对其进行再确认,那这个TCP连接就处于挂起状态,也就是所谓的半连接状态,如图所示。服务器收不到再确认的话,还会重复发送ACK给攻击者。这样就会进一步地浪费服务器的资源。攻击者对服务器发送非常大量的这种TCP连接,系统就需要在内存中维护一个庞大的等待队列,以维护所有半开连接,最终导致连接超时。在连接超时之前,恶意数据包达到积压队列限制,导致所有新来的SYN请求都将被丢弃,合法用户也会被拒绝服务,即服务器无法为用户提供正常的服务。

SYN泛洪攻击在一般情况下检测和防御较为困难,因为它们伪装成来自多个地址的正常流量,通过组织单个来源的方式无法真正的做到对SYN泛洪攻击的防御。SYN泛洪攻击如图所示:

实践理论依据:

针对SDN网络中的DDoS攻击,目前也已经有了很多的研究成果。主要分为基于信息熵和基于流表特征的检测技术。基于信息熵的DDoS攻击检测技术。熵是信息论中用来表征随机程度的概念,可以用熵值来衡量网络中的随机性;基于流表特征的DDoS攻击检测技术,由于SDN网络将数据的转发和控制分离,数据的转发规则是由控制器指定并下发到交换机中,再由交换机按照规则进行流量的匹配转发。因此交换机流表项中保存着非常丰富的信息,其中包括了传统网络一层至三层网络的详细信息。因此可以通过设置流表项的匹配规则来对经由交换机的数据流量进行统计计数,从中提取出一组流量特征来检测DDoS攻击。我们选择的技术便是在基于流表特征进行检测的基础之上考虑了熵值带来的影响,从而达到更优的准确率和时效性。

总体架构本系统的整体架构主要由四部分组成,分别是仿真网络环境、深度学习模型、Floodlight控制器和客户端,如图所示。

通过Mininet网络仿真器来搭建SDN网络环境,模拟真实环境生成流量,进行主机间的流量传输;Mininet是一个基于LinuxContainer架构开发的轻量级网络仿真和测试平台,也是目前研究SDN架构的首选仿真平台。该网络仿真平台可以在单一的操作系统上模拟主机、交换机、路由器等网络设备,这些网络设备是真实的实体,只是使用软件来实现,但大多数情况下使用软件定义的网络设备的行为特征均与硬件元素相似,而且还可以将在Mininet上进行的仿真实验,无缝的迁移至实际的应用场景中。利用深度学习算法建立预测模型,将训练好的模型转换为PMML文件,封装成一个类,控制器在提取相关流量特征后,调用该类来实时检测网络中是否出现DDoS攻击。使用Floodlight控制器进行流量控制,实现了动态调整的攻击抵御方案;Floodlight控制器基于Java语言开发,具有极高的性能和可靠性,是业界最受认可的商业控制器软件。Floodlight控制器通过模块化设计思路来实现相关应用的目的。Floodlight由控制器核心服务模块、普通应用模块和REST应用模块三部分组成。其架构如图所示:

客户端通过控制器提供的接口展示全局网络信息,查询设备信息,并可以通过下发流表等操作进行网络流量管理。

系统架构:

深度学习训练模块

此模块主要包括数据预处理模块、特征处理模块和模型训练模块三个部分。数据预处理模块主要负责初步处理用于训练的原始数据集。过滤数据,删除一些明显无意义的数据,插补缺失值,数值化处理非数值类型数据等。特征处理模块主要负责特征筛选。通过筛选关键特征,减少噪声对模型的干扰,同时尽可能避免过拟合。模型训练模块主要负责通过调整关键参数来构建DNN分类模型和进行模型训练,以使模型在获得尽可能高的准确率,最后将训练好的深度学习模型的关键参数保存到PMML文件中。

DDoS攻击检测模块

该模块基于Java语言开发,主要是流量获取模块,负责通过中央控制器Floodlight获取流量分类所需的关键特性,例如MAC地址、IP地址、数据包长度、Seq字段和ACK字段等。将这些已获取到的流量特征作为调用分类预测模块时的输入,最终输出该流量是否为DDoS攻击流的预测结果。

DDoS攻击防御模块

该模块基于Java语言开发,主要是针对DDoS攻击检测模块的结果,利用中国高校计算机大赛-网络技术挑战赛选拔赛阶段作品设计文档13/39中央控制器Floodlight通过南向接口OpenFlow协议实现相应的控制处理。如果检测到某流量为正常流,则会按照原规则安全转发。如果检测到某流量为攻击流,则会自动将防火墙规则设置为阻塞对应IP,并通过控制器下发流表来设置相应的丢弃策略。在此基础上,我们实现了基于网络流量自适应调度的DDoS攻击防御算法,充分利用受害者相邻的交换机来缓解DDoS攻击恶意流量。并实现回溯动态调度,根据过滤器更新评分机制实现流表项动态把控。

数据介绍:

数据预处理数据集采用的是CICDS2017和CICDDoS2019,总流量条数超过200万。使用Scapy库中的rdpacp()方法将其数据格式转换为csv格式,为流量分类并打上标签,0表示正常流量,1表示SYNflood流量。使用sklearn的preproccessing库处理训练使用的原始数据集。

在这样较大的数据集中难免会出现一些错误的数据,因此要进行数据清洗,删除一些明显无意义的特征列或特征值缺失大于2/3的数据。可以采用Imputer的热卡填充法缺失的数据,即从数据集中找到一个与该条流最相似对象的值来完成填充。将非数值数据量化成数值型数据,方便后续输入。

特征处理

在利用机器学习算法对高维数据进行处理分析时,合理的选取数据的特征对算法的实现效果具有极大的影响。通过简化数据可以使得数据集更易使用,并且具有去除噪声和降低算法的计算开销等诸多优点。原数据存在大量特征,因此我们要对此进行特征降维,在保证不影响结果的前提下降低数据集中特征的数目,选取关键的特征进行分析。这样不仅能够减少噪声对模型的干扰,还能提高模型的准确率,并能够尽可能的避免过拟合。特征处理常用的方法包括时间戳处理、离散型变量的独热编码、交叉特征、特征缩放、特征选择和特征提取。这里主要采用特征缩放和特征选择方法进行特征处理。

特征缩放

对于数据特征的量纲不同的数据,不能放在一起比较。因此我们考虑将数据归一化,将其取值范围映射到区间[0,1],使其不再受取值范围的影响,从而提高分类的精度。对此,我们采用MinMaxScaler最大最小值归一化方法,如下式所示,其中x为变量,min为最小值,max为最大值。

特征选择

从原始特征数据集中找出可以使分类达到效果最优的特征子集作为关键特征,删减掉冗余的特征,降低特征之间的不相关或者冗余信息,从而使模型评估达到最优。使用随机森林算法对特征的重要性进行排序,如图所示。

从上图我们能够看出重要性前6位的特征分别是:tcp.seq(TCP)的seq字段)、ip.len(IP数据包的长度字段)、tcp.ack(TCP的ACK字段)、tcp.hdr_len(TCP的头部长度)、tcp.tsval(IP数据包的生存时间字段)。按上述结果删除数据集中对模型性能提升影响较小的特征,既能保证准确率,又可提高模型的训练速度。

使用Sklearn库的MLPclassifier来实现DNN模型,Sklearn是机器学习领域著名的python模块。Sklearn包含了很多种机器学习的方式,包括分类、回归、数据降维和模型回归等模块。核心代码如图:

DDoS攻击检测模块DDoS攻击检测模块又分为两个子模块:流量获取模块和分类预测模块。

流量获取模块

在基于OpenFlow协议的SDN网络中,当交换机在某端口上接收到一个数据包后,会将当前数据包与默认流表的流表项匹配,如果匹配成功则执行流表项中的相应动作,若失败则触发下发流表模式。交换机将该数据包头部封装为Packet_IN消息交给控制器决策,其余部分存储在TCAM中,Packet_IN消息信息结构如表所示。:

要想在Floodlight模块中获取到Packet_IN消息,只需对相应的消息类型进行监听即可,然后在receive方法中可以对监听到的Pa cket_IN消息的header和payload进行操纵和解释。通过基于Java的中央控制器Floodlight监听获取到Packet_IN消息,得到Ethernet对象后,可利用其内置的get和set方法来提取流量的相关特征信息。本模块提取的特征字段包括源/目的MAC地址、源/目的IP地址、TCP的Seq字段、TCP的ACK字段等。

分类预测模块将流量提取模块中提取到的流量特征作为分类预测模型的输入。流表特征信息如表所示:

DDoS攻击防御模块

主动下发调度流的DDoS攻击防御新流量到达OpenFlow交换机,进行流表项匹配,若成功则依据流表信息处理流量,否则将封装成Packet_IN消息交给Floodlight控制器决策,由控制器监听并提取特征,调用分类预测模块,使用训练好的深度学习模型。若该流量预测结果为0(正常流),则下发action为output的流表项,将数据包传送至目标服务器的端口,否则调用DDoS攻击防御模块,下发drop规则。系统整体处理流程图如图所示:

DDoS检测模块发现攻击流后,DDoS防御模块将被启动用于防御DDoS攻击。通过基于Java的中央控制器Floodlight向交换机下发相应流表项,避免再触发Packet_IN消息造成资源耗尽。下表为所设计的流表项内容,策略是丢弃到达被攻击端口的数据包,并把优先级设为最小可使现存流表项仍可匹配对应数据包,即用户的合法服务请求不会被禁止。用这种方法避免DDoS攻击者通过大量Packet_IN消息冲击中央控制器Floodlight,达到防御DDoS攻击的目的。

基于网络流量自适应调度的DDoS攻击防御在主动下发调度流规则技术的基础上,提出了一种基于网络流量自适应调度的DDoS攻击防御算法。将受害者交换机中的没有匹配到流表项的数据包调度到邻居交换机时,不是平均分配给每个邻居交换机,而是根据邻居交换机总的Packet-in报文实时上传速率,自适应地调整调度到每个邻居交换机的网络流量大小,使每个邻居交换机最后上传到控制器的Packet-in报文速率趋于相等。基于网络流量自适应调度的DDoS攻击防御算法流程图如图所示:

流量自适应调度模块用于调度受害者交换机的网络流量到邻居交换机;流表下发模块用于将网络流量调度模块定制的调度流规则下发到受害者交换机。在控制器主动下发调度流程规则可以实现将受害者交换机的网络流量调度到邻居交换机。基于网络流量自适应调度的DDoS攻击防御算法,在调度受害者交换机中的网络流量到邻居流量时,根据邻居交换机总的上传Packet-in报文情况,实时调整调度到每个邻居交换机的网络流量大小。系统整体处理流程图如图:

实验结果:

最终测试结果表明,系统可以在毫秒级时间内迅速检测到 DDoS 攻击,准确率在99.5%以上,并能及时自动下发缓解策略,实现防御 DDoS 攻击的效果。

  • 31
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
随着互联网的快速发展,网络安全问题日益突出,其中DDOS攻击是一种常见的网络安全威胁。SDN(软件定义网络)技术网络安全中的应用也越来越受到关注。下面将介绍基于SDN的DDOS攻击检测国内外的研究现状。 国外研究现状: 1. SDN-based DDoS attack detection and mitigation mechanism 该研究提出了一种基于SDN的DDOS攻击检测和缓解机制。通过SDN控制器监测网络流量并分析其特征,可以快速识别DDOS攻击流量,并将其流向专门的缓解模块进行处理。 2. SDN-based DDoS attack detection using machine learning 该研究提出了一种基于机器学习的SDN-DDOS攻击检测方法,通过SDN控制器收集网络流量数据,并使用机器学习算法进行分析,识别DDOS攻击流量。 国内研究现状: 1. 基于SDN的DDoS攻击检测与防御研究 该研究提出了一种基于SDN的DDOS攻击检测与防御方案,使用SDN控制器收集网络流量,并利用机器学习算法进行分析和识别,针对DDOS攻击流量采取相应的防御措施。 2. 基于SDN的DDoS攻击检测与防御系统设计 该研究提出了一种基于SDN的DDOS攻击检测与防御系统设计方案,通过SDN控制器实时收集网络流量,并使用特征提取算法对流量进行分析,以快速识别DDOS攻击流量,并通过流表控制技术进行防御。 总体而言,基于SDN的DDOS攻击检测国内外研究现状比较丰富,涵盖了机器学习、流量分析和流表控制等多种技术手段,这些研究对于网络安全的提升具有重要意义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值