一种报文处理方法、装置、设备及机器可读存储介质与流程

文档序号:26056912发布日期:2021-07-27 15:35阅读:84来源:国知局
一种报文处理方法、装置、设备及机器可读存储介质与流程

本公开涉及通信技术领域,尤其是涉及一种报文处理方法、装置、设备及机器可读存储介质。



背景技术:

mtu(maximumtransmissionunit,最大传输单元)用来通知对方所能接受数据服务单元的最大尺寸,说明发送方能够接受的有效载荷大小。

由于mtu的限制,ip报文需要经过分段处理,分段报文要在目的端才会进行重组。这种方式会带来不便,如,分段处理的方式会导致基于其特性的网络攻击ddos,如tinyfragment攻击、overlappingfragment、fragment-flood攻击等,这些网络攻击较难在传输中段进行防范;后片先到的情况会导致安全业务模块(ipsec、nat、防火墙等)都需要进行复杂处理;为了提高网络的稳定性、业务不中断,重要网络安全设备如防火墙等多按照双机热备组网,分段报文可能被随机分流到不同网络安全设备,导致网络安全设备无法对分段报文进行攻击防护。

综上,报文分段发送可能会导致基于这种报文发送方式的网络攻击,造成分段报文到达顺序混乱以增加处理资源消耗,并难以在多设备组网中进行攻击防护。



技术实现要素:

有鉴于此,本公开提供一种报文处理方法、装置及电子设备、机器可读存储介质,以至少改善上述技术问题之一。

具体地技术方案如下:

本公开提供了一种报文处理方法,应用于网络设备,所述方法包括:接收上一跳设备分段发送的分段报文并转存入缓冲池,对分段报文进行安全处理;将经过安全处理后被认为是安全的关联于同一报文的分段报文排序后转存入报文池,以使在报文池中关联于同一报文的分段报文被虚拟分段重组并进行关联的业务处理;将报文池中关联于同一报文的分段报文按照关联的规则分段发送至下一跳设备。

作为一种技术方案,所述接收上一跳设备分段发送的分段报文并转存入缓冲池,对分段报文进行安全处理,包括:若所述缓冲池中的分段报文的源地址匹配非信任列表,则丢弃该分段报文。

作为一种技术方案,所述接收上一跳设备分段发送的分段报文并转存入缓冲池,对分段报文进行安全处理,包括:若所述缓冲池中的分段报文为首报文,则对该分段报文进行小片段流量清洗;若所述缓冲池中的分段报文为非首报文,则对该分段报文进行重叠片段流量清洗。

作为一种技术方案,所述将报文池中关联于同一报文的分段报文按照关联的规则分段发送至下一跳设备,包括:根据报文信息,将关联于同一报文的分段报文从特定输出接口发送至下一跳设备。

本公开同时提供了一种报文处理装置,应用于网络设备,所述装置包括:安全模块,用于接收上一跳设备分段发送的分段报文并转存入缓冲池,对分段报文进行安全处理;处理模块,用于将经过安全处理后被认为是安全的关联于同一报文的分段报文排序后转存入报文池,以使在报文池中关联于同一报文的分段报文被虚拟分段重组并进行关联的业务处理;发送模块,用于将报文池中关联于同一报文的分段报文按照关联的规则分段发送至下一跳设备。

作为一种技术方案,所述接收上一跳设备分段发送的分段报文并转存入缓冲池,对分段报文进行安全处理,包括:若所述缓冲池中的分段报文的源地址匹配非信任列表,则丢弃该分段报文。

作为一种技术方案,所述接收上一跳设备分段发送的分段报文并转存入缓冲池,对分段报文进行安全处理,包括:若所述缓冲池中的分段报文为首报文,则对该分段报文进行小片段流量清洗;若所述缓冲池中的分段报文为非首报文,则对该分段报文进行重叠片段流量清洗。

作为一种技术方案,所述将报文池中关联于同一报文的分段报文按照关联的规则分段发送至下一跳设备,包括:根据报文信息,将关联于同一报文的分段报文从特定输出接口发送至下一跳设备。

本公开同时提供了一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,处理器执行所述机器可执行指令以实现前述的报文处理方法。

本公开同时提供了一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现前述的报文处理方法。

本公开提供的上述技术方案至少带来了以下有益效果:

在接收到分段发送的分段报文后,先将分段报文汇集转存入缓冲池,在缓冲池中集中对分段报文进行相应的安全处理,从至少过滤一部分网络攻击,并且在当前网络设备进行分段报文重新排序,以降低后续设备收到顺序混乱的分段报文,可从多接口接收不同上一跳设备发送的关联于同一报文的分段报文以进行相应的攻击防护。

附图说明

为了更加清楚地说明本公开实施方式或者现有技术中的技术方案,下面将对本公开实施方式或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开中记载的一些实施方式,对于本领域普通技术人员来讲,还可以根据本公开实施方式的这些附图获得其他的附图。

图1是本公开一种实施方式中的报文处理方法的流程图;

图2是本公开一种实施方式中的报文处理装置的结构图;

图3是本公开一种实施方式中的电子设备的硬件结构图。

具体实施方式

在本公开实施方式使用的术语仅仅是出于描述特定实施方式的目的,而非限制本公开。本公开和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本公开实施方式可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

本公开提供一种报文处理方法、装置及电子设备、机器可读存储介质,以至少改善上述技术问题之一。

具体地技术方案如后述。

在一种实施方式中,本公开提供了一种报文处理方法,应用于网络设备,所述方法包括:接收上一跳设备分段发送的分段报文并转存入缓冲池,对分段报文进行安全处理;将经过安全处理后被认为是安全的关联于同一报文的分段报文排序后转存入报文池,以使在报文池中关联于同一报文的分段报文被虚拟分段重组并进行关联的业务处理;将报文池中关联于同一报文的分段报文按照关联的规则分段发送至下一跳设备。

具体地,如图1,包括以下步骤:

步骤s11,接收上一跳设备分段发送的分段报文并转存入缓冲池,对分段报文进行安全处理。

这里的上一跳设备可以是一个上一跳设备,也可以是多个不同的上一跳设备,可以是从同一个接口获取关联于同一个报文的分段报文,也可以是从不同的多个接口获取关联于同一个报文的分段报文。

步骤s12,将经过安全处理后被认为是安全的关联于同一报文的分段报文排序后转存入报文池,以使在报文池中关联于同一报文的分段报文被虚拟分段重组并进行关联的业务处理。

步骤s13,将报文池中关联于同一报文的分段报文按照关联的规则分段发送至下一跳设备。

在接收到分段发送的分段报文后,先将分段报文汇集转存入缓冲池,在缓冲池中集中对分段报文进行相应的安全处理,从至少过滤一部分网络攻击,并且在当前网络设备进行分段报文重新排序,以降低后续设备收到顺序混乱的分段报文,可从多接口接收不同上一跳设备发送的关联于同一报文的分段报文以进行相应的攻击防护。

在一种实施方式中,所述接收上一跳设备分段发送的分段报文并转存入缓冲池,对分段报文进行安全处理,包括:若所述缓冲池中的分段报文的源地址匹配非信任列表,则丢弃该分段报文。

在一种实施方式中,所述接收上一跳设备分段发送的分段报文并转存入缓冲池,对分段报文进行安全处理,包括:若所述缓冲池中的分段报文为首报文,则对该分段报文进行小片段流量清洗;若所述缓冲池中的分段报文为非首报文,则对该分段报文进行重叠片段流量清洗。

在一种实施方式中,所述将报文池中关联于同一报文的分段报文按照关联的规则分段发送至下一跳设备,包括:根据报文信息,将关联于同一报文的分段报文从特定输出接口发送至下一跳设备。

在一种实施方式中,将多接口接收的分段报文汇集到缓冲池中,然后进行流量清洗及攻击防护,对清洗后正常的报文进行排序并转存入报文池中,根据需要对报文池中的报文进行业务处理,最后按照网络结构或者报文类型配置输出接口,将报文池中处理后的报文依序按照配置输出。

具体地,将从多接口接收的分段报文汇集至缓冲池中,并启动多线程对缓冲池中分段报文进行安全处理:首先获取分段报文的源地址,匹配非信任表,对于匹配上的分段报文作直接丢弃处理;然后对未匹配的分段报文判断其是否是首报文,对于首报文的分段报文进行tinyfragment流量清洗,将疑似tinyfragment攻击的报文作直接丢弃处理,对于正常首报文则建立新队列并设置定时器转存入处理池中;对于非首报文的分段报文进行overlappingfragment流量清洗,对于疑似overlappingfragment攻击的报文,从处理池中查找出相应报文队列,将此报文队列所有报文作直接丢弃处理,对于正常非首报文则插入处理池的相应报文队列中;对于处理池中的报文队列,进行fragment-flood流量清洗和incompletefragment流量清洗。处理池中报文队列收集完整后,认为完成了安全处理,对其进行排序,并转存入报文池中。根据需要对报文池中的分段报文进行虚拟重组及业务处理。按照网络结构或者报文类型配置输出接口,将报文池中的报文队列从某个或某几个输出接口完整、有序输出至下一级网络设备。

进一步说明,本公开所述的网络设备提供多接口输入。将多接口的分段报文汇集到同一个缓冲池中。对汇集的分段报文进行流量清洗,将疑似攻击的流量丢弃。流量清洗类型包括非信任地址报文清洗、tinyfragment流量清洗、overlappngfragment流量清洗、fragment-flood流量清洗、incompletefragment流量清洗等。经过非信任地址报文清洗后的报文存入处理池中进行后续处理。

(1)非信任地址报文清洗

接收到分段报文后,获取分段报文源地址。将源地址与非信任表进行匹配,匹配上则直接丢弃;匹配不上则判断是否是首报文,是首报文则转入tinyfragment流量清洗,不是首报文则转入overlappingfragment和fragment-flood流量清洗。不是首报文则查找报文列表并插入报文队列中。

(2)tinyfragment流量清洗

对于首报文大小低于某一设定值时,并且传输层协议(如:tcp、udp)头字段放在第二个分段中,则认为是受到了tinyfragment攻击,直接将该报文丢弃,并将报文源地址计入非信任临时表,在非信任临时表中疑似攻击次数加1,非信任临时表中疑似攻击数值达到某个设定值时则将该源地址转存入非信任表中。对于非tinyfragment攻击的报文,则为其建立报文队列和定时器,存入处理池中,等待后续报文。

(3)overlappingfragment流量清洗

对于非首报文,查找处理池中报文队列,如果设备收到了完全相同的分段报文,或者收到的分段报文与其前一分段或后一分段出现重叠时,则认为是受到了overlappingfragment攻击,将该报文队列中所有分段报文丢弃,删除该队列,并将报文源地址计入非信任临时表,在非信任临时表中疑似攻击次数加1。对于非overlappingfragment攻击的报文,则为其建立报文队列和定时器,存入处理池中,等待后续报文。

(4)fragment-flood流量清洗

如果处理池中某一报文队列收到的分段报文数量超过了指定的最大分段报文数或者处理池中创建的报文队列个数超过了指定的最大报文队列个数,则认为是受到了fragment-flood攻击,将该报文队列中所有分段报文丢弃,删除该队列,并将报文源地址计入非信任临时表,在非信任临时表中疑似攻击次数加1。

(5)incompletefragment流量清洗

如果处理池中某一报文队列定时器超时,仍未收集齐所有分段报文,则认为是受到了incompletefragment攻击,将该报文队列中所有分段报文丢弃,删除该队列,并将报文源地址计入非信任临时表,在非信任临时表中疑似攻击次数加1。

收集完成的报文,则将报文队列进行排序,得到报文的完整逻辑链表,并转存入报文池中。将报文池中排序后的分段报文队列进行虚拟重组,对重组后的完整报文按照需要进行相应的业务处理及安全审查。

本公开所述的网络设备同时提供多输出接口,可以按照网络拓扑结构和报文类型对设备的输出接口进行配置,使得报文池中的分段报文队列按序、集中、定向分配至某一个流量输出接口,流量输出接口接下一个网络安全设备或业务处理设备,保证下行设备接收的都是正确的、顺序的、完整的分段报文。

在一种实施方式中,本公开同时提供了一种报文处理装置,如图2,应用于网络设备,所述装置包括:安全模块21,用于接收上一跳设备分段发送的分段报文并转存入缓冲池,对分段报文进行安全处理;处理模块22,用于将经过安全处理后被认为是安全的关联于同一报文的分段报文排序后转存入报文池,以使在报文池中关联于同一报文的分段报文被虚拟分段重组并进行关联的业务处理;发送模块23,用于将报文池中关联于同一报文的分段报文按照关联的规则分段发送至下一跳设备。

在一种实施方式中,所述接收上一跳设备分段发送的分段报文并转存入缓冲池,对分段报文进行安全处理,包括:若所述缓冲池中的分段报文的源地址匹配非信任列表,则丢弃该分段报文。

在一种实施方式中,所述接收上一跳设备分段发送的分段报文并转存入缓冲池,对分段报文进行安全处理,包括:若所述缓冲池中的分段报文为首报文,则对该分段报文进行小片段流量清洗;若所述缓冲池中的分段报文为非首报文,则对该分段报文进行重叠片段流量清洗。

在一种实施方式中,所述将报文池中关联于同一报文的分段报文按照关联的规则分段发送至下一跳设备,包括:根据报文信息,将关联于同一报文的分段报文从特定输出接口发送至下一跳设备。

装置实施方式与对应的方法实施方式相同或相似,在此不再赘述。

在一种实施方式中,本公开提供了一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,处理器执行所述机器可执行指令以实现前述的报文处理方法,从硬件层面而言,硬件架构示意图可以参见图3所示。

在一种实施方式中,本公开提供了一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现前述的报文处理方法。

这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

上述实施方式阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本公开时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本公开的实施方式可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施方式、完全软件实施方式、或结合软件和硬件方面的实施方式的形式。而且,本公开实施方式可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本公开是参照根据本公开实施方式的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本领域技术人员应明白,本公开的实施方式可提供为方法、系统或计算机程序产品。因此,本公开可以采用完全硬件实施方式、完全软件实施方式、或者结合软件和硬件方面的实施方式的形式。而且,本公开可以采用在一个或者多个其中包含有计算机可用程序代码的计算机可用存储介质(可以包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

以上所述仅为本公开的实施方式而已,并不用于限制本公开。对于本领域技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本公开的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1