CN111614627B - 一种面向sdn的跨平面协作ddos检测与防御方法与系统 - Google Patents
一种面向sdn的跨平面协作ddos检测与防御方法与系统 Download PDFInfo
- Publication number
- CN111614627B CN111614627B CN202010346194.6A CN202010346194A CN111614627B CN 111614627 B CN111614627 B CN 111614627B CN 202010346194 A CN202010346194 A CN 202010346194A CN 111614627 B CN111614627 B CN 111614627B
- Authority
- CN
- China
- Prior art keywords
- flow
- detection
- data
- source
- plane
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1458—Denial of Service
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种面向SDN的跨平面协作DDOS检测与防御方法与系统,该方法包括以下步骤:1)在数据平面进行流量监控;提取流量特征相关指标;2)捕获上述六个指标的变化,初步判断当前流是否为DDOS攻击造成的异常流量。3)数据平面的流量监控中检测到异常流,数据平面将发送报警消息通知控制平面;4)控制平面接收到报警消息后,将异常流状态存储在数据库中,触发事件通知基于控制器的DDOS机器学习细粒度检测,对特定的异常流进行深度检测;5)修正细粒度检测模块建立的源IP黑名单和源IP白名单。本发明通过数据平面的粗粒度检测和控制平面的细粒度检测对异常流执行两级粒度过滤过程,提高了检测性能,减小了控制器系统开销和南向接口通信负荷。
Description
技术领域
本发明涉及网络安全技术,尤其涉及一种面向SDN的跨平面协作DDOS检测与防御方法与系统。
背景技术
DDOS是一种易发起,高破坏性的网络攻击行为。DDOS攻击者通过多个分布式攻击源伪造海量虚拟IP地址对服务器发起访问式攻击,大量消耗服务器资源,导致受害服务器崩溃而无法响应正常用户的服务请求。这种在互联网发展初期便存在的网络安全威胁,时至今日仍然是互联网上最流行,效率最高的攻击方式。国内外针对DDOS攻击的主要防御方法是实时的网络监控,当DDOS攻击发生时,启动攻击流量清洗设备屏蔽DDOS攻击源,从而避免网络遭受DDOS攻击的侵害,达到安全防御的目的。
SDN(软件定义网络)作为一种新兴的网络模式引起了学界和工业界的极大兴趣。在SDN中,控制平面和数据平面是解耦的,网络的状态在逻辑上是集中的,控制器被从底层的网络设施中抽象出来。SDN的出现,大大提高了网络的可管理性、可扩展性、可控性和动态性。然而,随着SDN应用的普及,SDN的安全性问题也成为SDN领域关键的研究课题之一。
现有的DDOS攻击检测机制大多都只有检测部分,缺少具体防御策略。每次攻击流量到达控制器都会产生大量的南北接口负荷以及控制平面系统开销,且普遍存在着检测时延长、检测精度低、误报率较高、对新型DDOS攻击检测能力较弱等诸多问题。
发明内容
本发明要解决的技术问题在于针对现有技术中的缺陷,提供一种面向SDN的跨平面协作DDOS检测与防御方法与系统。
本发明解决其技术问题所采用的技术方案是:一种面向SDN的跨平面协作DDOS检测与防御方法,包括以下步骤:
1)在数据平面进行流量监控;
利用OpenFlow交换机中的计数器提取流量特征相关指标,包括:单位时间平均数据分组量、单位时间平均字节数、对流所占比例、单流增长率、流平均持续时间和端口增长率;
具体如下:
指标1:单位时间平均数据分组量(average packets per second at time Tn)
指标2:单位时间平均字节数(average bytes per second at time Tn)
指标3:对流所占比例(Percentage of pair-flow)
其中,flow_numsT表示在时间周期T内采集的流数量,T表示采集周期,nums_single_flows表示每个周期T内采集到的流中单流的数量,nums_pair_flows表示每个周期T内采集到的流中单流的数量。
指标4:单流增长率(growth rate of single flow)
指标5:流平均持续时间(average durations per flow)
其中,durationsi表示每条流表的持续时间。
指标6:端口增长率(growth rate of different port)
其中,nums_different_port表示每个周期T内采集到的流表中不同端口号的流数量;
2)捕获上述六个指标的变化,如果六个指标下一个周期的实际值都落入预测范围内,则判断当前流正常;否则,预测值与观测值之间的偏差代表了网络行为的变化,如果所有六个指标偏差值都超出预设范围,初步判断当前流为DDOS攻击造成的异常流量。
3)数据平面的流量监控中检测到异常流,数据平面将发送报警消息通知控制平面;
4)控制平面接收到报警消息后,将异常流状态存储在数据库中,触发事件通知基于控制器的DDOS机器学习细粒度检测,对特定的异常流进行深度检测;
4.1)收到警报消息,控制平面从特定的异常流中缓冲数据包,并将其发送到控制器并存储在数据库中;
4.2)进行细粒度分析;
在控制平面,利用聚类算法K-means结合提取的相关特征进行细粒度的检测;建立数据平面白名单库和黑名单库;所述提取的特征为每个数据包的五元组信息:目的地址、目的端口、源地址、包大小、流的持续时间;
提取每个数据包的五元组信息(目的地址、目的端口、源地址、包大小、流的持续时间),计算五元组的熵值;
其中,S是数据包的总数,N是不同IP地址或端口的数目,ni表示某IP地址出现的次数;特征分布越集中,H(X)值越低。
另外,由于正常的突发大流量也会改变分组大小的熵,因此我们对分组大小熵进行了如下改进,以区别于DDOS业务。
这里的imax是数据包大小级别,大多数数据包都包含在这些级别里。
使用上述特征组成的特征矩阵作为K-means的输入,进行聚类,聚类完成后,滤去噪声,方法是去除稀疏的簇,根据统计中常用的规则,如果训练数据总共有n个点,则剔除那些不足0.05n个点的簇;
对于每个簇,我们记录检验数据的中心C和半径r,C由所有点的平均值决定,半径r由C与集群中任意点之间距离的最大值决定;
熵向量X计算X与所有簇中心Ci之间的欧式距离,并将结果记录为di;选择最小距离dt=min{di},然后将样本X分配给相应的簇;将dt和聚类半径rt作比较,如果dt<rt,则样本X被判定为正常数据,即此流量被判定为正常流量,我们保存这些流的源地址,以更新流表的形式更新数据平面的白名单库;否则,样本被判定为异常数据,我们认为此流量为DDOS攻击流量,同样保存这些源地址,经过防误判模块检验后,若确定没有被误判的正常业务流,更新数据平面黑名单库。
5)修正细粒度检测模块建立的源IP黑名单和源IP白名单,若在一个设定的时间段内相同源IP的业务流有间隔的出现两次或两次以上,判断这个源IP的流量是正常业务流量,保存这个源IP并将其加入白名单。
一种面向SDN的跨平面协作DDOS检测与防御系统,包括:
初步筛查模块,用于根据数据平面进行流量监控,提取流量特征指标,并根据指标的变化完成异常流量粗粒度的筛查;所述流量特征指标包括:单位时间平均数据分组量、单位时间平均字节数、对流所占比例、单流增长率、流平均持续时间和端口增长率;
异常流量粗粒度的筛查具体如下:捕获上述六个指标的变化,如果六个指标下一个周期的实际值都落入预测范围内,则判断当前流正常;否则,预测值与观测值之间的偏差代表了网络行为的变化,如果所有六个指标偏差值都超出预设范围,初步判断当前流为DDOS攻击造成的异常流量;
报警模块,用于根据初步筛查模块的筛查结果,进行报警,若数据平面的流量监控中筛查检测到异常流,数据平面将发送报警消息通知控制平面;
细粒度检测模块,用于控制平面接收到报警消息后,将异常流状态存储在数据库中,触发事件通知基于控制器的DDOS机器学习细粒度检测,对特定的异常流进行深度检测;并根据检测结果建立源IP黑名单和源IP白名单;
防误判模块,用于修正细粒度检测模块建立的源IP黑名单和源IP白名单,若在一个设定的时间段内相同源IP的业务流有间隔的出现两次或两次以上,判断这个源IP的流量是正常业务流量,保存这个源IP并将其加入白名单。
本发明产生的有益效果是:
1、提出了一种创新的基于SDN的跨平面协作DDOS攻击检测框架CPCS,通过数据平面的粗粒度检测和控制平面的细粒度检测对异常流执行两级粒度过滤过程,大大提高了检测性能,克服了控制器系统开销和南向接口通信负荷方面的挑战;
2、提出了一种适用于数据平面的轻量级流量监控算法,该算法利用OpenFlow交换机计数器在控制平面细粒度DDOS攻击检测之前过滤异常流,CPCS相对原有的控制平面检测方法性能大大提高,降低了检测延迟和控制器系统开销;
3、设计的系统是一个端到端系统,在检测出DDOS流量后立刻执行防御策略,并添加了黑白名单机制,对于大型网络场景很有意义。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明实施例的方法流程示意图;
图2是本发明实施例的数据平面流监控器工作流程示意图;
图3是本发明实施例的DDOS流量的不对称特征示意图;
图4是本发明实施例的控制面细粒度检测示意图;
图5是本发明实施例的防误判机制示意图;
图6是本发明实施例的实验平台结构图;
图7是本发明实施例的实验流程示意图;
图8是本发明实施例的DDOS攻击前后数据平面特征指标的变化情况示意图;
图9是本发明实施例的正常巨型业务流量下指标的特征变化情况示意图;
图10是本发明实施例的两种方法控制器需监控流数的变化示意图;
图11是本发明实施例的南向接口通信量示意图;
图12是本发明实施例的控制器CPU利用率示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明的目的是提供一种面向SDN网络的跨平面协作DDOS检测与防御方法,通过提取更多的适合数据平面计算的DDOS流量特征,将一些轻量级的DDOS检测机制下放给数据平面,设计了一个具有检验加防御功能的跨平面协作式闭环系统,不仅包括DDOS检验,而且包括后续的防御策略以及长期有效的黑白名单机制,保证高检测率,减少误判:首先在数据平面做一次粗粒度的筛查,如果数据平面产生告警,则在控制平面做一次基于机器学习的细粒度的检验以确定该流量是否为DDOS流量,大大减小了系统开销以及南向通信负荷。
2.1系统结构
在SDN架构中,由于数据包在被控制平面捕获之前在数据平面上进行转发,为了提高DDOS攻击检测的性能和减少检测延迟,应该考虑在数据平面上部署一定的过滤功能。然而,典型的基于SDN的DDOS攻击检测方法要求交换机不断提供轮询统计信息,以维护控制器上网络的整体视图,存在较大的南向接口通信开销以及检测延迟。在我们的跨平面协作DDOS检测及防御机制下,控制平面检测是基于事件触发的。
整体系统架构如图1所示。我们卸载预检测功能到数据平面,执行粗粒度检测。据我们所知,大多数支持OpenFlow规范的OpenFlow交换机或混合交换机都由一个或多个正在运行的CPU组成,这些CPU具有丰富的计算资源,目前还远远没有得到充分利用。我们利用交换机CPU的计算能力来执行轻量级流量监视,因此在数据平面上进行一次粗粒度的攻击检测。此外,由于在数据平面已经经过一次粗粒度的筛查,所以控制平面的检测方法应该具有更高的准确度和检测效率,我们选择聚类算法k-means对DDOS进行更细粒度的检测,该算法具有检测速度快,准确度高的特点。
本发明还添加了黑白名单机制以及在控制平面检测之后加入了防误判模块;本发明技术方案控制平面的检测由于采用由事件触发而非轮询机制,大大降低了南向接口的通信负荷以及系统开销。下面我们详细介绍系统的主要模块以及粗粒度和细粒度检验分别是如何进行的。
2.2数据平面
当DDOS攻击流量到达数据平面时,数据平面粗粒度检验的任务是把漏警率降到最低,对虚警率有一定的容忍度,因为还有控制平面的更细粒度的检测。注意,只有在数据平面产生报警时,流量才会被发送到控制平面进行第二道检测。
OpenFlow交换机的计数器通常计算通过的数据包和字节数。从OpenFlow协议1.0“Design and implementation of software defined hardware counters for SDN”起,OpenFlow协议为每条流入口、流表和交换机端口等定义了一组计数器。在该系统中,计数器读取模块依次从硬件中轮询计数器值,并将这些值设置为流监控器模块的输入。然后,在流监控器模块,通过流量监测算法对这些计数器值进行处理,过滤异常流。
模块主要负责根据DDOS攻击流量的大流量和不对称特性对异常流进行初步过滤。它由三个部分组成:1)元组解析器,它从三元组中提取计数器;2)监控线程,利用特定的计数器值对异常流进行过滤。3)流状态采集器,负责对检测到的异常流状态进行管理。我们在图2中给出了流监控器的工作过程。
首先,由元组解析器不断的接收计数器Reader模块发送的三元组。然后,包含在3元组中的计数器值根据它们所属的流(或端口)被传递给特定的监视器线程。接下来,这些监控线程利用流量监控算法,进行异常流检验。
在这一部分中,我们提出了一种轻量级的流量监控算法,该算法用于数据平面的流量监控模块,检测DDOS攻击引起的异常流。与许多其他流监控算法不同,这种轻量级算法的目的是通过从普通OpenFlow交换机中的轮询计数器值来提取DDOS攻击流量的关键特性。
2.2.1.用于轻量级算法的特征提取
在这一部分中,我们将详细介绍DDOS攻击的体积特征和不对称性特征,以及利用OpenFlow交换机中的计数器提取DDOS攻击流量特征相关指标的方法,如图3所示。
大规模流量在短时间到来是DDOS攻击的一个重要特征,DDOS攻击下单位时间的数据分组量以及平均字节数都是远高于正常流量的。其次,攻击期间,进入受害者服务器的流与从服务器流出的流之间通常存在巨大的速率差异。对于给定的两条流,如果A流的目的地址等于B流的源地址,B流的目的地址等于A流的源地址,我们称这两条流为对流。相反,如果只有一条流,找不到它的对流,我们称之为单流。DDOS常以IP欺骗的方式发起攻击,因为它们使用假IP地址发送数据分组,所以当DDOS攻击发生时,单流增长率迅速增大,对流所占比例很小,其原理如图3所示。第三,DDOS泛洪攻击发生时,不同IP对应的流持续时间较短,因此流平均持续时间也是一个重要特征。第四,与DDOS攻击产生的IP欺骗相同,攻击者也可以通过随机生成端口进行扫描攻击,因此DDOS流量中端口的增长率远高于正常流量。通过轮询OpenFlow交换机计数器值,上述的四个DDOS流量特性可以由以下的六个指标反应,具体的表示方法如下:
指标1.单位时间平均数据分组量(average packets per second at time Tn)
指标2.单位时间平均字节数(average bytes per second at time Tn)
指标3.对流所占的比例(Percentage of pair-flow)
其中,flow_numsT表示在时间周期T内采集的流数量,T表示采集周期,nums_single_flows表示每个周期T内采集到的流中单流的数量,nums_pair_flows表示每个周期T内采集到的流中单流的数量。
指标4.单流增长率(growth rate of single flow)
指标5.流平均持续时间(average durations per flow)
其中,durationsi表示每条流表的持续时间。
指标6.端口增长率(growth rate of different port)
其中,nums_different_port表示每个周期T内采集到的流表中不同端口号的流数量。
上述的六个指标中,指标1、2分别从流量的体积特征判断,3、4从DDOS流量的不对称特性入手,5、6特征分别展现了DDOS流量短时多流以及伪造端口的特点。
2.2.2.数据面轻量级算法描述
在此部分中,我们提出了一种轻量级算法,可用于捕获上述六个指标的变化。该算法利用一段时间流量的这六个指标的值来估计未来值,如果六个指标下一个周期的实际值都落入预测范围内,则表示当前流正常。否则,预测值与观测值之间的偏差代表了网络行为的变化。如果所有六个指标观测值都超出可接受范围,我们将其确定为DDOS攻击造成的异常流量。
我们根据这六个指标分别维护一个长度为n的记录列表,用于下一个指标值预测,它由表示(包括),这些指标在下一个周期T中的预测值由表示,为了消除流量尖峰对DDOS攻击检测的影响,我们使用加权移动平均(WMA)定义了每个Vi a的λ。
公式中的两个参数avga和stda分别代表在前n次记录中的平均值和标准偏差。
如果六个比率度量指标中的一个或多个落入可接受的范围,则表示当前特定流中没有DDOS攻击。相反,如果这六种指标都超出了可接受的范围,则表明这是由DDOS攻击引起的异常流。一旦在流监控模块的监视线程中检测到异常流,数据平面将发送报警消息通知控制器进行细粒度DDOS攻击检测。
2.3控制平面
控制平面接收到报警消息后,将异常流状态存储在数据库中,触发事件通知基于控制器的DDOS机器学习细粒度检测模块,对特定的异常流进行深度检测。在系统中,一旦收到警报消息,控制器将向特定的交换机发出标准的OFPT_FLOW_MOD消息(从OpenFlow1.0规范开始定义)。该消息可以指示OpenFlow交换机从特定的异常流中缓冲数据包,并将其发送到控制器并存储在数据库中进行细粒度分析。
在控制平面,我们利用聚类算法K-means结合提取的相关特征进行细粒度的检测,该方法的流程如下图4所示,虚线表示训练过程,实线表示检测过程。
可以从数据平面发过来的数据包中提取各种特征用于聚类算法,由于DDOS流量最显著的特征就是发出大量伪造源IP和端口的数据包,五元组包含了绝大多数的DDOS特征信息,因此我们提取每个数据包的五元组信息。
由于熵很好的表示了不确定度,基于DDOS攻击随机伪造源IP和端口的特点,我们将这些字段分别算熵作为输入的特征值。根据相关工作,我们使用熵作为度量来帮助构造特征以检测DDOS流量。样本熵的定义为:
这里S是数据包的总数,N是不同IP地址或端口的数目,ni表示特定的指标,比如某IP地址出现的次数。特征分布越集中,H(X)值越低。我们发现DDOS流量对以下五元组(目的地址、目的端口、源地址、包大小、流的持续时间)的熵值有很强的影响,这是由DDOS的特性决定的。同时,我们使用SYN/SYN+ACK来描述DDOS引起的半连接状态。考虑到在高速网络中难以记录所有数据包大小,本发明重新定义了如表1所示的数据包大小级别方案。
另外,由于正常的突发大流量也会改变分组大小的熵,因此我们对分组大小熵进行了如下改进,以区别于DDOS业务。这里的imax是数据包大小级别,大多数数据包都包含在这些级别里。值得注意的是,所选特性代表了DDOS的基本特征。因此,我们可以相信,虽然实验数据集只包含DDOS种类的一部分,但我们的模式可以用于检测各种类型的DDOS。
表1数据包大小级别定义
表2包头信息和特征对应关系
2.3.1.机器学习算法K-means分类及检测
在训练过程中,采用聚类方法对流量进行建模,确定检测阈值。需要说明一下,我们所有的训练数据只包含正常流量。
我们使用k-means来满足实时检测的要求,因为它比其他机器学习分类算法要快得多。使用欧氏距离来量化两个熵向量的相似性。我们使用上述特征组成的特征矩阵作为K-means的输入,输入处的m个节点表示。
具有m个特征的记录,如X={x1,x2,…,xm}。聚类完成后,我们希望滤去噪声,方法是去除稀疏的簇,根据统计中常用的规则,如果训练数据总共有n个点,则剔除那些不足0.05n个点的簇。对于每个簇,我们记录检验数据的中心C和半径r。C由所有点的平均值决定,r由C与集群中任意点之间距离的最大值决定。
2.3.2DDOS攻击在控制平面的细粒度检测模块的步骤
首先,对于在单位时间内检测到的在线业务流,计算熵值,得到预处理模块中的熵向量X计算X与所有簇中心Ci之间的欧式距离,并将结果记录为di;选择最小距离dt=min{di},然后将样本X分配给相应的簇;将dt和聚类半径rt作比较,如果dt<rt,则样本X被判定为正常数据,即此流量被判定为正常流量,我们保存这些流的源地址,以更新流表的形式更新数据平面的白名单库;否则,样本被判定为异常数据,我们认为此流量为DDOS攻击流量,同样保存这些源地址,经过防误判模块检验后,若确定没有被误判的正常业务流,更新数据平面黑名单库。
根据我们之前的数据平面粗过滤以及控制平面聚类方法的细粒度检测,可以大大提高系统的检测准确度并减少系统总开销。但是由于我们的细粒度检验方法都是基于多条流的,也就是说,当正常流量也混杂在DDOS流量中的时候,我们很难将其挑选出来,我们检测的结果只是对一个时间段的内的流量是否包含DDOS攻击判断。因此,我们在聚类算法得出检测结果后,加入防误判模块,可以将混在DDOS流中的正常业务流区别开来,并加入白名单。需要特别提出的是,我们的防误判模块是基于概率统计的,数据流量越大,效果越好,下面详细介绍其原理。
如图5所示,我们知道,DDOS具有伪造源IP的特性,并且这些伪造的源IP是随机的,那么在一个很短的时间段Δt内,同一个源IP的流不会有间隔的出现两次,或者说,这种概率是极小的,可以忽略不计。然而当流量包含正常业务流的时候,这种在短时间内相同源IP的业务流有间隔的出现两次甚至是多次,是很正常的。此时,我们有理由认为这个源IP的流量是正常业务流量,而非DDOS攻击流,我们保存这个源IP并将其加入白名单,从而达到防误判的效果。我们利用DDOS攻击流的这一特性开发了防误判模块。需要说明的一点是,我们这里相同IP的流指的是有间隔的两条流,而不是连续的数据包或者数据分组。
根据上述方法,我们容易获得对应的系统。
一个具体验证实验:
实验环境与设置
本实验的网络试验台由校园网络中心的3个openflow交换机组成。拓扑如图6所示,客户机和攻击主机连接在交换机S1上,服务器连接在S3上,3台交换机与控制器相连,同时源端交换机S1上连接着收集模块,计算服务器配备英特尔e5-2620v3 CPU、64GB内存和GeForce GTX titan x。操作系统的版本为ubuntu16.04,我们选择onos1.13作为SDN控制器。
实验前收集实验数据,分为正常数据流和DDOS攻击数据流。DDOS攻击流量利用攻击工具Hping3产生,设置random-source参数产生随机性的源ip地址,设置flood参数进入洪水攻击模式。并将训练集中的正常流量用标签0表示,攻击流量用标签1表示,tcpreplay工具用于重放捕获的数据包跟踪文件,将生成的流量注入特定的以太网端口。正常流量是通过tcp dump和镜像端口,对实验室局域网中的网管交换机流量进行收集。在前面对K-means算法的介绍提到,我们的训练集只包括正常数据流,不包括DDOS攻击流量,训练阶段是为了确定聚类半径的阈值。其中训练集与测试集流量条数如表3所示:
表3训练集和测试集流量条数
训练集 | 测试集 | |
正常流量 | 50000 | 20000 |
攻击流量 | 0 | 30000 |
(2)数据平面算法效率评估
实验流程如图7所示,为了评估部署在数据平面上的算法的效率。首先,我们使用hping3在20s内发送从H2到H3的DDOS攻击流量,同时H1到H3发送正常的背景流量。图8中描述了在DDOS攻击发生时我们所提出的算法中的六个度量指标的变化。图8的这些结果表明,在DDOS攻击发生后,我们算法中的六个度量指标能够捕获异常流的变化特征,证明了该算法的有效性。
当DDOS攻击发生时,数据平面粗粒度检测算法中所用到的六个特征的变化情况,其中红色的线表示,在DDOS攻击环境下,没有使用任何检测和防御方法这些指标的变化;蓝色的线表示在攻击环境下,使用CPCS方法后指标的变化,各指标变化如图8所示。
另外,为了证明我们的数据平面算法对正常的业务流量很少误判,当巨大的正常业务流量到来时,不会因为满足上述六个特征中的某些特征就被误判,我们做了以下实验:
我们以4Gbps的速率将正常业务流量从H1传输到H3。下图中显示出了六个度量指标的变化。我们发现尽管算法中的四个度量指标发生了显著的变化,但是代表分组不对称性的特征几乎没有改变。这是因为在数据传输期间,接收机H3一直向H1发送ACK分组,这确保了两种方式的分组计数的粗略等价性。此解释可以通过使用wireshark捕获H3到H1的数据包来验证。上述结果说明,数据平面算法中六个特征的全面性使得该算法能够降低异常流量检测的误判率,很好的将巨型的正常流量与DDOS攻击区分开来。正常巨型业务流量下指标的特征变化情况如图9所示。
(3)系统评价指标比较
为了验证我们的方法在DDOS检测的各项评价指标以及控制器CPU消耗、南向接口负载等方面优于现有的方法,我们用现在最常用的基于熵的检测方法以及基于SVM的机器学习检测算法作为对比组,做了下面的对比试验。
首先,我们利用以下四个评价标准对我们的方法与其他方法进行比较。
表4检测性能指标及定义
下表分别是在三种方法下四种评价指标的大小,可以看到我们的方法准确度优于对比组,这是因为跨平面的检测方法经过粗细粒度两次检验。我们发现精确度和召回率相比于传统方法大大提高,这是因为我们添加了防误判模块,防止正常数据分组被误判为DDOS流量,使得假阳性的概率大大降低。
表5检测方法比较
(4)跨平面方法优越性证明
1)控制器需要监控的流条数的变化
为了说明在我们的跨平面架构下,基于控制器的细粒度DDOS攻击检测方法需要检测的流减少了,我们设计了一个如图7所示的场景。我们获取了数据库中的异常流状态记录,并说明在20s同样的DDOS攻击中,不同方法控制器中需要监控的异常流数目。很明显,在我们的架构下,经过数据平面粗粒度筛查,控制器需要监控的流的数目大大减少,这说明我们方法在减少控制面压力的有效性。两种方法控制器需监控流数的变化如图10所示。
2)南向接口负荷(柱状图)/控制器CPU消耗
图11表示在一个攻击周期内,南向接口通信量的变化。在攻击还没有发生时,SVM的方法已经开始轮询,并将数据包发送给控制面,故南向接口负荷较高。然而,我们的方法只在数据平面检测到异常流时发送警告消息给控制器并开始控制面检测,故此时南向接口通信量接近为零;当数据平面检测粗粒度方法检测到DDOS攻击后,控制平面细粒度检测开始,此时两种方法南向接口通信量都骤增,并持续一段时间,在检测结束后南向接口通信量恢复到大致为零。这得益于我们的方法是基于事件触发机制的主动push,在网络中没有异常流量时,不会向控制面发送流量。我们以控制平面的CPU利用率来评价计算资源的开销,其中CPCS是本文方法,SVM方法代表对照组。右图显示了在一个攻击周期内,在攻击到来之前,本文的方法所消耗的CPU处于一个较低的水平,为10%左右,低于对比组的CPU消耗,这是我们将粗粒度流监控机制卸载到数据平面上带来的明显优势,此时控制器主机仅进行着常规运算;另外两种方法由于需要利用openflow轮询或者利用SFlow等方法进行采样,所以CPU维持在40%左右。当攻击流量来临,需要处理的数据包单位时间内瞬时增多,分析引擎进入高负荷工作状态,三种方案的CPU都处于满负荷运转。控制器CPU利用率如图12所示。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (3)
1.一种面向SDN的跨平面协作DDOS检测与防御方法,其特征在于,包括以下步骤:
1)在数据平面进行流量监控,提取流量特征相关指标,包括:单位时间平均数据分组量、单位时间平均字节数、对流所占比例、单流增长率、流平均持续时间和端口增长率;
2)捕获上述六个指标的变化,如果六个指标下一个周期的实际值都落入预测范围内,则判断当前流正常;否则,预测值与观测值之间的偏差代表了网络行为的变化,如果所有六个指标偏差值都超出预设范围,初步判断当前流为DDOS攻击造成的异常流量;
3)数据平面的流量监控中检测到异常流,数据平面将发送报警消息通知控制平面;
4)控制平面接收到报警消息后,将异常流状态存储在数据库中,触发对异常流进行基于控制器的DDOS机器学习细粒度检测;
4.1)收到警报消息,控制平面从特定的异常流中对异常流的数据包进行缓冲保存,并将其发送到控制器并存储在数据库中;
4.2)进行细粒度分析;
在控制平面,利用聚类算法K-means结合提取的特征进行细粒度的检测,建立数据平面白名单库和黑名单库;所述提取的特征为每个数据包的五元组信息:目的地址、目的端口、源地址、包大小、流的持续时间;
所述步骤4.2)中利用聚类算法K-means结合提取的相关特征进行细粒度的检测,具体如下:
4.2.1)提取每个数据包的五元组信息,计算五元组的熵向量值;所述训练数据只包含正常流量;
4.2.2)使用上述熵向量特征组成的特征矩阵作为K-means的输入,进行聚类,聚类完成后,滤去噪声,方法是去除稀疏的簇,根据统计中常用的规则,如果训练数据总共有n个点,则剔除那些不足0.05n个点的簇;
4.2.3)对于每个簇,记录检验数据的中心C和聚类半径r,其中C由所有点的平均值决定,聚类半径r由C与集群中任意点之间距离的最大值决定;
4.2.4)对于存储在数据库中的异常流,计算熵值,得到熵向量X,计算熵向量X与所有簇中心Cm之间的欧式距离,并将结果记录为dm;其中,m表示簇的序号;选择最小距离dt=min{dm},然后将样本X分配给相应的簇;将dt和对应簇的聚类半径rt作比较,如果dt<rt,则样本X被判定为正常数据,即此流量被判定为正常流量,保存这些流的源地址,以更新流表的形式更新数据平面的白名单库;否则,样本被判定为异常数据,判断此流量为DDOS攻击流量,同样保存这些源地址,经过防误判模块检验后,若确定没有被误判的正常业务流,更新数据平面黑名单库;
5)修正细粒度检测模块建立的源IP黑名单和源IP白名单,若在一个设定的时间段内相同源IP的业务流有间隔的出现两次或两次以上,判断这个源IP的流量是正常业务流量,保存这个源IP并将其加入白名单。
3.一种面向SDN的跨平面协作DDOS检测与防御系统,其特征在于,包括:
初步筛查模块,用于根据数据平面进行流量监控,提取流量特征指标,并根据指标的变化完成异常流量粗粒度的筛查;所述流量特征指标包括:单位时间平均数据分组量、单位时间平均字节数、对流所占比例、单流增长率、流平均持续时间和端口增长率;
报警模块,用于根据初步筛查模块的筛查结果,进行报警,若数据平面的流量监控中筛查检测到异常流,数据平面将发送报警消息通知控制平面;
细粒度检测模块,用于控制平面接收到报警消息后,将异常流状态存储在数据库中,触发对异常流基于控制器的DDOS机器学习细粒度检测;并根据检测结果建立源IP黑名单和源IP白名单;
所述细粒度检测模块中DDOS机器学习细粒度检测具体如下:
在控制平面,利用聚类算法K-means结合提取的特征进行细粒度的检测,建立数据平面白名单库和黑名单库;所述提取的特征为每个数据包的五元组信息:目的地址、目的端口、源地址、包大小、流的持续时间;
1)提取每个数据包的五元组信息,计算五元组的熵向量值;所述训练数据只包含正常流量;
2)使用上述熵向量特征组成的特征矩阵作为K-means的输入,进行聚类,聚类完成后,滤去噪声,方法是去除稀疏的簇,根据统计中常用的规则,如果训练数据总共有n个点,则剔除那些不足0.05n个点的簇;
3)对于每个簇,记录检验数据的中心C和聚类半径r,其中C由所有点的平均值决定,聚类半径r由C与集群中任意点之间距离的最大值决定;
4)对于存储在数据库中的异常流,计算熵值,得到熵向量X,计算熵向量X与所有簇中心Cm之间的欧式距离,并将结果记录为dm;其中,m表示簇的序号;选择最小距离dt=min{dm},然后将样本X分配给相应的簇;将dt和对应簇的聚类半径rt作比较如果dt<rt,则样本X被判定为正常数据,即此流量被判定为正常流量,保存这些流的源地址,以更新流表的形式更新数据平面的白名单库;否则,样本被判定为异常数据,判断此流量为DDOS攻击流量,同样保存这些源地址,经过防误判模块检验后,若确定没有被误判的正常业务流,更新数据平面黑名单库;
防误判模块,用于修正细粒度检测模块建立的源IP黑名单和源IP白名单,若在一个设定的时间段内相同源IP的业务流有间隔的出现两次或两次以上,判断这个源IP的流量是正常业务流量,保存这个源IP并将其加入白名单。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010346194.6A CN111614627B (zh) | 2020-04-27 | 2020-04-27 | 一种面向sdn的跨平面协作ddos检测与防御方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010346194.6A CN111614627B (zh) | 2020-04-27 | 2020-04-27 | 一种面向sdn的跨平面协作ddos检测与防御方法与系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111614627A CN111614627A (zh) | 2020-09-01 |
CN111614627B true CN111614627B (zh) | 2022-03-25 |
Family
ID=72201224
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010346194.6A Active CN111614627B (zh) | 2020-04-27 | 2020-04-27 | 一种面向sdn的跨平面协作ddos检测与防御方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111614627B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112929369B (zh) * | 2021-02-07 | 2023-04-07 | 辽宁科技大学 | 一种分布式实时DDoS攻击检测方法 |
CN112866281B (zh) * | 2021-02-07 | 2023-04-07 | 辽宁科技大学 | 一种分布式实时DDoS攻击防护系统及方法 |
CN113961438B (zh) * | 2021-10-25 | 2024-04-16 | 哈尔滨工业大学 | 一种基于多粒度多层级的历史行为异常用户检测系统、方法、设备及存储介质 |
CN114422235B (zh) * | 2022-01-18 | 2023-03-24 | 福州大学 | 基于p4的工业互联网隐蔽攻击防御方法 |
CN114584392B (zh) * | 2022-03-29 | 2023-11-17 | 江苏省未来网络创新研究院 | 一种基于源端流量染色的工业互联网平台接入侧防护方法 |
CN114745170B (zh) * | 2022-04-07 | 2023-08-18 | 鹏城实验室 | 物联网异常实时检测方法、装置、终端及可读存储介质 |
CN114760212A (zh) * | 2022-05-10 | 2022-07-15 | 深圳大学 | 一种基于SDN的DDoS攻击检测和缓解方法及系统 |
CN115134265B (zh) * | 2022-05-16 | 2023-06-20 | 北京璇星科技有限公司 | 流程的实时监控预警方法、装置、设备及存储介质 |
CN115065519B (zh) * | 2022-06-09 | 2023-08-15 | 河北大学 | 分布式边端协同的DDoS攻击实时监测方法 |
CN115225368A (zh) * | 2022-07-15 | 2022-10-21 | 北京天融信网络安全技术有限公司 | 一种报文处理方法、装置、电子设备及存储介质 |
EP4254876A1 (en) * | 2023-03-21 | 2023-10-04 | Ovh | Methods and systems for detecting denial of service attacks on a network |
CN116506225A (zh) * | 2023-06-27 | 2023-07-28 | 武汉中科通达高新技术股份有限公司 | 协作式DDoS攻击检测方法、系统、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108123931A (zh) * | 2017-11-29 | 2018-06-05 | 浙江工商大学 | 一种软件定义网络中的DDoS攻击防御装置及方法 |
CN108183917A (zh) * | 2018-01-16 | 2018-06-19 | 中国人民解放军国防科技大学 | 基于软件定义网络的DDoS攻击跨层协同检测方法 |
CN108805002A (zh) * | 2018-04-11 | 2018-11-13 | 杭州电子科技大学 | 基于深度学习和动态聚类的监控视频异常事件检测方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8001601B2 (en) * | 2006-06-02 | 2011-08-16 | At&T Intellectual Property Ii, L.P. | Method and apparatus for large-scale automated distributed denial of service attack detection |
-
2020
- 2020-04-27 CN CN202010346194.6A patent/CN111614627B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108123931A (zh) * | 2017-11-29 | 2018-06-05 | 浙江工商大学 | 一种软件定义网络中的DDoS攻击防御装置及方法 |
CN108183917A (zh) * | 2018-01-16 | 2018-06-19 | 中国人民解放军国防科技大学 | 基于软件定义网络的DDoS攻击跨层协同检测方法 |
CN108805002A (zh) * | 2018-04-11 | 2018-11-13 | 杭州电子科技大学 | 基于深度学习和动态聚类的监控视频异常事件检测方法 |
Non-Patent Citations (1)
Title |
---|
基于软件定义网络的DDoS防护系统;杨慧文;《中国优秀硕士学位论文》;20190515;1-50 * |
Also Published As
Publication number | Publication date |
---|---|
CN111614627A (zh) | 2020-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111614627B (zh) | 一种面向sdn的跨平面协作ddos检测与防御方法与系统 | |
CN109005157B (zh) | 一种软件定义网络中DDoS攻击检测与防御方法与系统 | |
CN111935170B (zh) | 一种网络异常流量检测方法、装置及设备 | |
Cui et al. | Towards DDoS detection mechanisms in software-defined networking | |
CN111541661A (zh) | 基于因果知识的电力信息网络攻击场景重构方法及系统 | |
Alseiari et al. | Real-time anomaly-based distributed intrusion detection systems for advanced Metering Infrastructure utilizing stream data mining | |
Zhe et al. | DoS attack detection model of smart grid based on machine learning method | |
Jalili et al. | Detection of distributed denial of service attacks using statistical pre-processor and unsupervised neural networks | |
CN113206860B (zh) | 一种基于机器学习和特征选择的DRDoS攻击检测方法 | |
CN104899513A (zh) | 一种工业控制系统恶意数据攻击的数据图检测方法 | |
Amoli et al. | A real time unsupervised NIDS for detecting unknown and encrypted network attacks in high speed network | |
CN109194608B (zh) | 一种基于流的DDoS攻击与闪拥事件检测方法 | |
CN113660209B (zh) | 一种基于sketch与联邦学习的DDoS攻击检测系统及应用 | |
CN113271303A (zh) | 一种基于行为相似性分析的僵尸网络检测方法及系统 | |
KR20210115991A (ko) | 시계열 데이터 분석을 이용한 네트워크 이상징후 탐지 방법 및 장치 | |
Milan et al. | Reducing false alarms in intrusion detection systems–a survey | |
Li et al. | DDoS attack detection algorithms based on entropy computing | |
Upadhyaya et al. | Hybrid approach for network intrusion detection system using k-medoid clustering and Naïve Bayes classification | |
Hai et al. | A practical comparison of deep learning methods for network intrusion detection | |
Wang et al. | Abnormal traffic detection system in SDN based on deep learning hybrid models | |
CN115695041B (zh) | 基于sdn的ddos攻击检测与防护的方法及应用 | |
Giacinto et al. | Network intrusion detection by combining one-class classifiers | |
Cao et al. | A cross-plane cooperative DDoS detection and defense mechanism in software-defined networking | |
Singh et al. | Detection and Mitigation of DDoS Attacks on SDN Controller in IoT Network using Gini Impurity | |
Zhao-hui et al. | Research on DDoS attack detection in software defined network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |