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

一种基于P4-MSC的DRDoS攻击检测与缓解系统

文献发布时间:2023-06-19 19:28:50


一种基于P4-MSC的DRDoS攻击检测与缓解系统

技术领域

本发明属于计算机网络安全领域,具体涉及到一种基于P4-MSC的DRDoS攻击检测与缓解系统。

背景技术

DRDoS(Distributed Reflection Denial of Service,分布式反射拒绝服务)攻击是一种特殊的网络攻击。攻击者事先锁定互联网上的一部分可用服务器作为反射器,其控制的僵尸主机向这些服务器发送特定的请求报文。因为请求报文的源IP地址被修改为受害主机的IP地址,所以当服务器收到这些经由IP欺骗的请求报文后,会将响应报文发送给受害主机。这些特定服务的特点是其传输层协议为无需建立连接的UDP,且响应报文远超请求报文。在受害主机端,各个服务器反射出来的响应报文纷涌而至,很快就能将其链路压垮,DRDoS攻击因此实现了以小博大的效果。基于这样的攻击机理,DRDoS攻击表现出来的优越性在于原本用于攻击的大量数据流经由成百上千的服务器稀释后,最终在受害者处汇聚成颇具威力的洪水,更难以被隔离和阻挡。由于服务器端接收到的请求报文的源IP地址为伪造地址,且受害主机处的数据包都是由真实服务器发送的,进一步加大了对攻击者的溯源和定位难度。

现有SDN(Software Define Network,软件定义网络)中的DRDoS攻击检测方法将流量数据采集、特征提取分析、检测缓解功能全部都部署在控制器上,造成了较大的通信负担,且由于控制器扮演着中心化的角色,一旦崩溃,整个网络都会处于危险之中。可编程数据平面的出现解决了这一窘境,完全解耦的网络架构允许控制器下放一部分工作到数据平面。P4(Programming Protocol-Independent PacketProcessors,可编程协议无关包处理)是数据平面特定领域编程语言,其协议无关、现场可重构、目标无关的特性使开发人员可以轻松地在数据平面探索和部署新的网络功能。

本发明针对SDN中的DRDoS攻击威胁,以有效发挥数据平面的作用并减少控制平面的参与为主要目标,提出了一种基于P4-MSC(Multiple Switches Cooperating,多台交换机合作)的DRDoS攻击检测与缓解系统,选取可以代表DRDoS攻击特点的反射特征和可以反映DRDoS攻击效果的流量特征结合进行攻击检测与缓解。流量信息的捕获和特征提取的工作被部署在数据平面,减轻了控制器的负担。其中反射端交换机利用“后窗协助前窗”的存储方式和P4近似除法工具模块收集计算一个窗口内的包负载最大反射倍数作为反射特征,受害端交换机统计一个窗口内流经该处的数据包的TCP总负载和UDP总负载作为流量特征。上述特征被上报至控制器后,若反射特征超过事先设定的阈值,并且最近一段时间的流量特征呈现UDP带宽大于TCP带宽的特点,控制器认定出现了DRDoS攻击,下发一条带有攻击流身份信息的缓解表项,指挥交换机丢弃攻击流,在网络瘫痪前及时实现有效的缓解。

发明内容

针对由于控制器在SDN中扮演中心化角色而造成的单点故障风险,本发明要解决的技术问题是在DRDoS攻击检测场景下,如何利用新兴的可编程数据平面承担更多的任务,从而减轻数控平面的通信开销以及控制器的负担。

为实现上述目的,本发明提供一种基于P4-MSC的DRDoS攻击检测与缓解系统,所述检测与缓解系统包括反射特征提取模块、流量特征提取模块、攻击判定与缓解模块和P4近似除法工具模块。

1.反射特征提取模块:部署在可编程数据平面的反射端交换机上,即反射服务器的网关处。将连续进入交换机的一定数量的数据包划分为一个窗口,反射端交换机采用“后窗协助前窗”的存储方式,设置两套用于记录双向流包负载的寄存器并交换使用,将前一个窗口的信息保留至后一个窗口中进行处理,并使用P4近似除法工具模块完成包负载反射倍数的计算,反射端交换机向控制器上报每个窗口内的最大反射倍数和其对应的流索引。

2.流量特征提取模块:部署在可编程数据平面的受害端交换机上,即受害主机的网关。受害端交换机设置两个寄存器TCP_payload和UDP_payload,记录一个窗口内流经该交换机处TCP数据包的总负载和UDP数据包的总负载作为受害主机端的流量特征,并将其上报给控制器。

3.攻击判定与缓解模块:部署在控制器上,接收数据平面中反射端交换机上报的反射特征和受害端交换机上报的流量特征,并缓存最近若干个窗口受害端交换机上报的流量特征,若反射端交换机上报的反射倍数高于阈值,且缓存的所有窗口的流量特征都满足UDP总负载大于TCP总负载时,判定DRDoS攻击发生,并为交换机安装一条缓解表项,该缓解表项以攻击窗口中反射端交换机上报的流索引作为匹配域,会使交换机丢弃所有匹配到该流索引的数据包,从而实现屏蔽攻击流的效果。

4.P4近似除法工具模块:为计算双向流的包负载反射倍数而设计的工具模块,借助移位运算得到两个数的近似除法结果,突破P4不支持变量除法的限制。

有益效果

本发明将流量信息采集和特征提取的工作部署至数据平面,可使特征提取从流级别细粒度化为包级别,并且控制器只需接收来自数据平面上报的特征即可,减轻了控制器进行数据采样和特征计算的负担。本发明提出的DRDoS攻击检测与缓解系统在实现时与协议无关,即不受限于已经发现的可以被放大攻击利用的存在漏洞的服务,具有通用性。受害端交换机处的流量信息佐证反射端交换机处提供的反射特征,二者结合使攻击检测的评判更科学、全面,并且在检测到攻击时能快速定位攻击流进行丢包,及时缓解DRDoS攻击,防止对网络造成危害。

附图说明

图1为“后窗协助前窗”存储方式的窗口n示意图。

图2为“后窗协助前窗”存储方式的窗口n+1示意图。

图3为P4近似除法工具模块示意图。

图4为除法运算操作数的示意图。

图5为除法结果的近似值估计示意图。

图6为反射端交换机流水线示意图。

图7为受害端交换机流水线示意图。

图8为基于P4-MSC的DRDoS攻击检测与缓解系统运行流程图。

具体实施方式

下面结合附图对本发明进一步说明。

如图8所示为本发明系统的运行流程图,当系统开始运行后,嵌入在可编程数据平面不同位置的反射特征提取模块和流量特征提取模块展开各自的工作,将收集的特征信息通过digest通信机制上报给位于控制器的攻击检测缓解模块。

反射特征提取模块被部署在反射端交换机以检测DRDoS攻击的反射特征。DRDoS攻击最显著的特点就是攻击流和反射流的放大关系,具体表现为包负载的放大。如果存在DRDoS攻击,网络中的一些服务器会被选中作为反射器,其请求报文和响应报文都会经由反射端交换机进行转发,因此可以在反射端交换机处统计双向流的反射特征。

其中,双向流指源IP地址和目的IP地址相反的两条流,并定义源IP地址字段值小于目的IP地址字段值的一条流为前向流,源IP地址字段值大于目的IP地址字段值的一条流为后向流。

反射端交换机使用两套完全一致的寄存器记录前向流和后向流的包负载,两套寄存器运作的方式为“后窗协助前窗”,即前一个窗口的信息会保留至后一个窗口中进行处理。反射端交换机调用P4近似除法工具模块完成包负载反射倍数的计算,一个窗口结束时会上报前一个窗口的反射特征,即前一个窗口内双向流的包负载最大反射倍数。

如图6所示,反射端交换机流水线的工作步骤包括:

1.确定流索引:提取包首部的源IP地址和目的IP地址作为散列函数的关键字,得到的散列值为该包所属双向流的流索引,也是其在包负载寄存器中的存储索引;

2.记录本窗口信息:提取包IP首部的总长度字段,确定该数据包属于前向流或后向流,并根据流索引定位本窗口包负载寄存器存储该双向流信息的寄存器单元,将总长度字段的数值累加至该寄存器单元;

3.协助处理前窗信息:以该数据包在窗口内的到达次序为索引处理上一个窗口对应位置的寄存器单元,即调用P4近似除法工具计算该索引处记录的双向流的包负载的反射倍数、清空该寄存器并更新当前反射倍数的最大值;

4.上报前窗最大反射倍数:若该数据包为本窗口内最后一个包,则上报前一个窗口的包负载反射最大倍数和该最大反射倍数对应的流索引;

5.决定转发动作:默认转发,若该数据包的流索引匹配到了控制器为之安装的缓解表项,则丢弃该数据包。

流量特征提取模块被部署在受害端交换机以检测DRDoS攻击的攻击效果。DRDoS攻击本质上也是一种资源消耗型攻击,攻击发生时在受害链路处UDP攻击流会挤占正常TCP流的带宽,因此表现为UDP流量的带宽大于TCP流量的带宽。

受害端交换机设置两个寄存器TCP_payload和UDP_payload,记录一个窗口内流经该交换机处TCP数据包的总负载和UDP数据包的总负载并上报至控制器。

如图7所示,受害端交换机流水线的工作步骤包括:

1.判断协议类型:提取IPv4首部,通过协议号字段判断其是TCP报文还是UDP报文;

2.更新相应寄存器:若为TCP报文,将首部总长度字段的值累加至寄存器TCP_payload,若为UDP报文,将首部总长度字段的值累加至寄存器UDP_payload;

3.上报流量特征:若该数据包为本窗口内最后一个包,则上报本窗口的TCP总负载和UDP总负载,并将寄存器的值更新为零;

4.决定转发动作:默认转发,若该数据包的流索引匹配到了控制器为之安装的缓解表项,则丢弃该数据包。

攻击缓解模块接收来自数据平面的反射特征和流量特征,并保留最近若干个窗口的流量特征,判定有无DRDoS攻击发生以决定是否为交换机安装缓解表项。具体步骤包括:

1.攻击判断:若反射端交换机上报的反射倍数高于设定阈值,且缓存的所有窗口的流量特征都满足UDP总负载大于TCP总负载时,判定DRDoS攻击发生;

2.安装缓解表项:在判定DRDoS攻击发生时,控制器根据反射端交换机上报的最大反射倍数对应的流索引进行攻击流的定位,下发一条缓解表项。交换机中已预置了一个以流索引值为匹配域,丢包为动作域的缓解表。在后续的包处理和解析过程中,交换机根据源IP和目的IP的散列值计算数据包的流索引,若和刚刚安装的表项中的流索引值匹配,则执行丢包动作,从而屏蔽攻击流,达到缓解的目的。

在具体实施中,控制器可先收集一段时间的反射倍数,学习正常网络下反射倍数的分布,根据需要,设定的阈值可为高频正常反射倍数的1.5~2倍。

P4近似除法工具模块如图3所示,P4作为一门数据平面特定领域编程语言,本身受到底层硬件的限制,不支持循环逻辑和变量的除法。P4中的无符号整型是以一种“bitstring”的形式表示的,可以具备任意长度的比特位,比特位的左移和右移对应着二进制的乘法和除法,因此可以借助移位运算来实现除法的近似运算。

假设a和b是两个无符号整型数且a≥b,a/b的真实值为m,a/b的估计值为m',误差Δ可表示为:

Δ=m-m'

在P4中近似计算a/b的过程及误差分析如下:

1.二分法求a和b的最高位1所在的位次,分别记为h

二分法求一个数x的最高位1的位置的过程为:若x满足高位为0的条件,就对其进行左移操作去掉高位的0,每次把目标范围缩小一半,逐步锁定其最高位1的位置。

2.若h

此时误差Δ的大小不超过1。

3.若h

/>

a/b的真实值m可以表示为

令b'为

作出函数

因为b'等于

Δ的绝对值最大值不超过真实值m的16%,本发明针对的攻击检测场景可以接受这种误差。

“后窗协助前窗”的存储方式通过增加一套寄存器使交换机持有两份存储结构,避免了内存冲突的问题。即便前一个窗口所占用的寄存器还没有被清空,也不影响紧接着的后一个窗口中数据包的信息存储,因为每个窗口结束时,都有一套已被清空的寄存器可以使用。另外,一个窗口内计算反射倍数和清空寄存器的工作被分摊到了交换机处理各个数据包的流水线中,处理延迟被均摊缩小,不会影响数据包的正常转发。

以固定包数划分流量窗口,假设一个窗口内的包数为N,则规定用于记录双向流包负载的寄存器长度也为N。“后窗协助前窗”的存储方式中两套寄存器按如下过程运作:

1.如图1所示,假设第n-1个窗口的双向流信息已经存储在了第二套寄存器中。

2.处理第n个窗口时,计算进入交换机的数据包的流索引index

另外,交换机的流水线中还会做以下工作:记该数据包进入本窗口的次序为i(从零开始计数),调用除法模块计算f

在第n个窗口的最后一个包的流水线工作结束时,该窗口内的所有N个包的信息记录在了第一套寄存器,并且在每个包的流水线中还处理了第n-1个窗口遗留在第二套寄存器中的包负载信息,计算了其双向流的反射倍数并用擂台法的方式得到了最大值,逐个清空了第二套寄存器的存储单元,使其可以用于第n+1个窗口的信息统计。反射端交换机上报max

3.处理第n+1个窗口时,如图2所示,两套寄存器的情景互换,这时第一套寄存器中记录着第n个窗口的双向流信息,而第二套寄存器已被全部清空,可以用于第n+1个窗口的信息统计。计算进入交换机的数据包的流索引index

另外,交换机的流水线中还会做以下工作:记该数据包进入本窗口的次序为j(从零开始计数),调用除法模块计算f

在第n+1个窗口的最后一个包的流水线工作结束时,该窗口内的所有N个包的信息记录在了第二套寄存器,并且在每个包的流水线中还处理了第n个窗口遗留在第一套寄存器中的包负载信息,计算了其双向流的反射倍数并用擂台法的方式得到了最大值,逐个清空了第一套寄存器的存储单元,使其可以用于第n+2个窗口的信息统计。反射端交换机上报max

相关技术
  • 一种基于机器学习和特征选择的DRDoS攻击检测方法
  • 一种基于机器学习和特征选择的DRDoS攻击检测方法
技术分类

06120115924773