基于队列诊断的拥塞相关攻击的防御方案

    专利2026-05-06  15


    本发明属于计算机网络安全领域,具体涉及一种基于队列诊断的拥塞相关攻击的防御方案。


    背景技术:

    1、现代网络对性能的追求越来越高,而网络拥塞是网络性能问题的一个重要原因,攻击者可能会利用网络拥塞来制造破坏,损害和降低网络性能。将恶意制造网络链路拥塞的攻击,称为拥塞相关攻击(congestion-related attacks)。拥塞相关攻击一般可以分为两类,一类是直接操纵协议缺陷来制造拥塞的攻击,如optimistic ack攻击;另一类是生成攻击数据流来制造网络链路拥塞,同时进一步触发协议缺陷以增强效果的攻击,如shrew攻击。

    2、软件定义网络(software-defined networking,sdn)是一种克服传统网络架构缺点的新兴网络范式,解耦了控制平面和数据平面,具有灵活性、抽象性、可编程性和虚拟化等优点。sdn主要包括三个平面:应用平面、控制平面和数据平面。应用平面由定义网络行为、策略和数据包转发方案的应用组成,这些应用包括入侵检测、安全监控、防火墙、路由选择、访问控制和虚拟化等。应用平面通过北向接口(northbound interface)和控制平面通信,以管理整个网络。控制平面由众多sdn控制器组成,它们作为整个sdn网络的大脑,负责控制流量、建立数据处理准则和收集网络数据等工作。控制器将网络逻辑抽象,以处理各种网络管理任务,并使网络能够灵活地通过编程接口添加新功能。数据平面由负责数据包处理和转发的转发设备组成,这些转发设备包括sdn硬件交换机和sdn软件交换机。sdn硬件交换机有基于asic芯片的交换机、基于np的交换机和基于fpga的交换机等,sdn软件交换机有open vswitch交换机、bmv2交换机等。数据平面通过南向接口(southbound interface)与控制平面通信,目前使用最广泛的南向通信协议是openflow协议。

    3、sdn的最新趋势是引入可编程数据平面,将可编程能力卸载到交换机数据平面中,从而提供在交换机中防御拥塞相关攻击的机会。可编程数据平面支持使用特定领域的语言(domain-specific language,dsl)进行编程,如p4(programming protocol-independentpacket processors)语言,从而允许在交换机中,使用用户定义的逻辑进行数据包处理。此外,程序可在控制平面和数据平面之间协同运行,从而实现灵活且复杂的数据包处理。在可编程交换机的流水线(pipeline)中,网络数据包首先进入解析器(parser),以进行数据包标头解析,然后进入入口流水线(ingress pipeline)和出口流水线(egress pipeline),执行多个匹配/动作(match/action)进行数据包操作,最后到达逆解析器(deparser)进行数据包序列化。

    4、在检测和缓解拥塞相关攻击时,现有方案在有效性、灵活性、可扩展性和实时性等方面仍存在不足。拥塞相关攻击利用了网络协议和拥塞控制中的漏洞,因此要实现对拥塞相关攻击的有效防御,具有一定程度的挑战性。一种防御方案是修改协议规范和实现,但实际上这种方案很难部署,而且协议总是存在未知缺陷。并且,拥塞相关攻击通常以远离客户端的网络链路为目标,部署在主机端的防御系统无法获得准确的网络视图。即使部署在主机端的系统能有效地检测和缓解攻击,恶意流量仍会流经网络,损害网络性能。另外,可能存在多种原理的拥塞相关攻击,每种拥塞相关攻击的发起方式都不尽相同,针对特定攻击的系统可能很难有效对抗其他原理和发起方式的拥塞相关攻击。此外,大多数防御系统都部署在控制平面或中间盒上,这不可避免地会带来通信和处理延迟,无法实现对攻击的及时响应。

    5、本发明提出一种基于队列诊断的拥塞相关攻击的防御方案。该方案部署在可编程交换机上,能够实时监控网络队列和网络流量,以抵御拥塞相关攻击。方案分为控制平面预配置、基于队列诊断的网络流监测、可疑流上报、控制平面决策和恶意流缓解五个部分。控制平面预配置使用runtime api或者thrift api,向数据平面预先设置本方案要用到的阈值。基于队列诊断的网络流监测在可编程交换机的egress pipeline中执行队列诊断,监测经过网络队列的流量,包括拥塞责任流监测、拥塞活跃流监测和可疑流数据包再循环。可疑流上报在可编程交换机的ingress pipeline中使用digest消息,将可疑流的流id(flow_id)和标记信息(flow_label)上报给控制平面。控制平面根据拥塞责任流列表和拥塞活跃流列表的内容,决策拥塞相关攻击的恶意流,如果可疑流的flow_id同时属于拥塞责任流列表和拥塞活跃流列表,则认为该可疑流是拥塞相关攻击的恶意流。恶意流缓解根据控制平面向数据平面下发的丢包规则,在可编程交换机的ingress pipeline中拦截恶意流的数据包,以缓解拥塞相关攻击,实现对攻击的防御。


    技术实现思路

    1、针对目前拥塞相关攻击防御方案的不足,提出一种基于队列诊断的拥塞相关攻击的防御方案。该方案无需借助额外的设备或者修改网络协议,直接部署在可编程交换机中,具有较好的有效性、灵活性、可扩展性和实时性。因此该方案可普适于拥塞相关攻击的实时检测与快速缓解。

    2、本发明为实现上述目标所采用的技术方案为,基于队列诊断的拥塞相关攻击的防御方案主要包括五个步骤:控制平面预配置、基于队列诊断的网络流监测、可疑流上报、控制平面决策以及恶意流缓解。

    3、1.控制平面预配置。基于队列诊断的拥塞相关攻击的防御方案在数据平面中诊断网络队列和监测网络流量,用到了数据包积压贡献阈值δ、活跃性阈值α、以及判定拥塞状态的阈值τ和γ。在运行基于队列诊断的拥塞相关攻击的防御方案前,控制平面使用p4runtime api或者p4 thrift api,向数据平面设置要用到的上述阈值,其中数据平面使用寄存器来存储控制平面配置的这些阈值。p4 runtime api是一种控制平面规范,用于控制由p4程序定义的设备或程序的数据平面元素,允许控制器应用程序与p4交换机进行通信,以便配置和管理p4编程和固有功能。p4 thrift api是一种用于与p4交换机进行通信的api,可以通过thrift协议与p4交换机进行通信,用于配置和管理p4编程和固有功能。

    4、2.基于队列诊断的网络流监测。实现对拥塞相关攻击的检测并非易事,为此,提出拥塞责任流和拥塞活跃流,分别用来监测和追踪应为网络拥塞形成负责的网络流以及在拥塞时异常活跃的网络流。依据攻击会造成网络拥塞的这一事实,本方案实时监控网络队列,监测造成网络队列中数据包积压的责任流,以识别出网络拥塞的重要肇事者。进一步,依据攻击制造拥塞的意图和行为,本方案测量网络流在拥塞状态下的活跃性,那些在网络拥塞时仍表现活跃的流,有可能是试图加剧拥塞的恶意流。在可编程交换机的egress pipeline中执行队列诊断,监控网络流量,包括三步:

    5、(1)拥塞责任流监测,当网络流经过网络队列时,如果网络流的入队速率大于出队速率,网络流的数据包就会积压在网络队列中,从而造成网络拥塞,监测网络流经过网络队列过程中的数据包积压贡献,从而识别拥塞责任流。

    6、拥塞责任流的定义为:给定数据包积压贡献阈值δ,在时间范围(ts,te]内,如果流flowi的数据包积压贡献contributioni大于阈值δ,就认为流flowi是时间范围(ts,te]内的拥塞责任流。

    7、数据包积压贡献的定义为:在时间范围(ts,te]内,共有n条流经过了网络队列,每条流flowi由mi个数据包组成,对于时间范围(tj,tj+1]内,tj和tj+1满足tj∈(ts,te)和tj+1∈(ts,te],总共有xj个数据包经过了网络队列,在这xj个数据包中,每条流flowi的占比为rij,满足时间范围(tj,tj+1]内的队列深度变化为δq_depthj,则flowi的数据包积压贡献为rij×δq_depthj;在时间范围(ts,te]内,flowi的数据包积压贡献contributioni为:

    8、

    9、网络队列中的数据包积压是反映网络拥塞的一个重要指标,而拥塞相关攻击的目的是拥塞目标链路,因此攻击的恶意流往往是造成网络队列中数据包积压的重要贡献者。因此,可以通过测量网络流对网络队列中数据包积压的贡献程度,来实现对拥塞相关攻击恶意流的检测。在正常情况下,网络流量中也可能存在突发,造成数据包积压在网络队列中。因此存在少部分良性流量,其数据包积压贡献会是较大的值,从而被识别为拥塞责任流。因此,需要从其他方面对网络流进行测量,以进一步提高检测的准确性。

    10、(2)拥塞活跃流监测,攻击者使用拥塞相关攻击来拥塞目标链路,相比于网络中的良性流,攻击的恶意流在网络拥塞时会表现出更强的活跃性,本方案从攻击的意图和行为表现出发,对网络流量在拥塞状态下的活跃性进行测量,以识别拥塞活跃流。

    11、拥塞活跃流的定义为:给定活跃性阈值α,在时间范围(ts,te]内,如果流flowi在拥塞状态下的活跃性activityi大于阈值α,就认为流flowi是时间范围(ts,te]内的拥塞活跃流;

    12、网络流在拥塞状态下的活跃性定义为:在时间范围(ts,te]内,共有n条流经过了网络队列,每条流flowi由mi个数据包组成,给定判定拥塞状态的阈值τ和γ,如果流flowi的数据包在经过网络队列时,其排队时间大于阈值τ,或者网络队列的队列深度大于阈值γ,则认为数据包在经过网络队列时,网络处于拥塞状态,在时间范围(ts,te]内,对于每条流flowi,其在拥塞状态下的活跃性activityi为:

    13、

    14、

    15、拥塞活跃流监测实现对网络流在拥塞状态下活跃性的测量。对于良性tcp流,由于其受到拥塞控制算法(如cubic算法)的调整,发送方在感知到网络发生拥塞后(如重传超时,冗余确认包等),会减小拥塞窗口,降低发送速率,在网络拥塞时,tcp流的活跃程度会降低;对于良性udp流,由于其不存在恶意拥塞网络的行为,在网络拥塞时,其活跃程度也并不会明显;而拥塞相关攻击产生的恶意流,往往是网络拥塞的重要肇事者,其目的是拥塞目标链路,在网络发生拥塞时,会表现的异常活跃。因此,可以通过测量网络流在拥塞状态下的活跃程度,以进一步提高检测的准确性。

    16、(3)可疑流数据包再循环,在egress pipeline中监测到拥塞责任流和拥塞活跃流后,防御方案认为拥塞责任流和拥塞活跃流是拥塞相关攻击的可疑流,对拥塞责任流和拥塞活跃流的数据包进行标记,并再循环至ingress pipeline。使用@field_list(index)标记的用户元数据字段将与数据包一起发送给parser,从而实现对拥塞责任流和拥塞活跃流的标记。flow_label为0或者1,0表示再循环数据包所属流为拥塞责任流,1表示再循环数据包所属流为拥塞活跃流。值得注意的是,@field_list仅支持用户定义的元数据字段。使用p4提供的extern function,在egress pipeline中调用再循环操作void recirculate_preserving_field_list(bit<8>index),实现可疑流数据包再循环。

    17、3.可疑流上报。在ingress pipeline中利用可编程交换机提供的标准元数据,判断进入ingress pipeline的数据包是否是再循环的数据包,使用标准元数据提供的instance_type,可用于区分数据包是刚从端口到达的新数据包,还是再循环的数据包。若是再循环的数据包,则说明该数据包所属的网络流是拥塞相关攻击的可疑流,可疑流即拥塞责任流或者拥塞活跃流。

    18、在ingress pipeline中使用digest消息,将可疑流的flow_id和flow_label上报给控制平面,其中flow_id为可疑流数据包首部的五元组<srcip,dstip,srcport,dstport,protocol>,ipsrc表示源ip地址,ipdst表示目的ip地址,portsrc表示源端口号,portdst表示目的端口号,protocol表示协议字段。在simple switch架构中,digest消息是通过套接字库nanomsg实现的,digest消息上报的数据是一个结构体,其中包含要发送到控制器的所有变量、标头或元数据。

    19、4.控制平面决策。控制平面维护两个列表,分别是拥塞责任流列表和拥塞活跃流列表,初始时这两个列表都是空列表,控制平面收到digest消息上报的可疑流flow_id和flow_label后,根据flow_label将可疑流的flow_id分别添加到拥塞责任流列表和拥塞活跃流列表中,并做出决策。由于网络的突发性,良性流也可能成为拥塞责任流。因此,本方案仅认定同时是拥塞责任流和拥塞活跃流的可疑流,才是拥塞相关攻击的恶意流。即如果可疑流的flow_id同时属于拥塞责任流列表和拥塞活跃流列表,则认为该可疑流是拥塞相关攻击的恶意流。

    20、5.恶意流缓解。数据平面维护一个访问控制列表(access control list,acl),用来缓解拥塞相关攻击的恶意流。控制平面识别出拥塞相关攻击的恶意流后,向数据平面的acl下发丢包规则,拦截恶意流的数据包,以实现对拥塞相关攻击的防御。

    21、有益效果

    22、基于队列诊断的拥塞相关攻击的防御方案具有较好的有效性、灵活性、可扩展性和实时性,能在网络中准确且快速地检测出拥塞相关攻击的恶意流,并实现对攻击的快速缓解。另外,该方案在运行时开销较少,无需借助额外的设备或者修改网络协议,在可编程交换机中部署容易。


    技术特征:

    1.基于队列诊断的拥塞相关攻击的防御方案,其特征在于,将恶意制造网络链路拥塞的攻击,称为拥塞相关攻击,可以分为两类,一类是直接操纵协议缺陷来制造拥塞的攻击,另一类是生成攻击数据流来制造网络链路拥塞,同时进一步触发协议缺陷以增强效果的攻击,所述拥塞相关攻击的防御方案包括以下几个步骤:

    2.根据权利要求1中所述的防御方案,其特征在于,步骤2.1中数据包积压贡献的定义为:在时间范围(ts,te]内,共有n条流经过了网络队列,每条流flowi由mi个数据包组成,对于时间范围(tj,tj+1]内,tj和tj+1满足tj∈(ts,te)和tj+1∈(ts,te],总共有xj个数据包经过了网络队列,在这xj个数据包中,每条流flowi的占比为rij,满足时间范围(tj,tj+1]内的队列深度变化为δq_depthj,则flowi的数据包积压贡献为rij×δq_depthj;在时间范围(ts,te]内,flowi的数据包积压贡献contributioni为:

    3.根据权利要求1中所述的防御方案,其特征在于,步骤2.2中网络流在拥塞状态下的活跃性定义为:在时间范围(ts,te]内,共有n条流经过了网络队列,每条流flowi由mi个数据包组成,给定判定拥塞状态的阈值τ和γ,如果流flowi的数据包在经过网络队列时,其排队时间大于阈值τ,或者网络队列的队列深度大于阈值γ,则认为数据包在经过网络队列时,网络处于拥塞状态,在时间范围(ts,te]内,对于每条流flowi,其在拥塞状态下的活跃性activityi为:


    技术总结
    本发明公开了一种基于队列诊断的拥塞相关攻击的防御方案,属于计算机网络安全领域。其中所述方案包括:首先,控制平面预配置设置队列诊断中要用到的阈值。然后,基于队列诊断的网络流监测在可编程交换机的出口流水线中执行队列诊断,在监测到拥塞责任流和拥塞活跃流后,将数据包标记并再循环至入口流水线。接着,在入口流水线中使用digest消息,将可疑流的信息上报给控制平面。最后,控制平面根据可疑流信息进行决策,在识别出拥塞相关攻击的恶意流后,向数据平面下发丢包规则,拦截恶意流的数据包。本发明提出的防御方案具有较好的有效性、灵活性、可扩展性和实时性,能在网络中准确且快速地检测出拥塞相关攻击,并快速缓解攻击造成的影响。

    技术研发人员:代锐,汤澹,秦拯,谭佩,梁伟,徐慧
    受保护的技术使用者:湖南大学
    技术研发日:
    技术公布日:2024/4/29
    转载请注明原文地址:https://wp.8miu.com/read-96731.html

    最新回复(0)