专利名称:一种防止协议报文攻击cpu的保护方法及系统的利记博彩app
技术领域:
本发明涉及数据通信技术领域,尤其涉及一种防止恶意伪造的大流量的协议报文 攻击CPU的保护方法及系统。
背景技术:
在以太网交换机中,大部分的数据报文是通过专用芯片转发的,不需要CPU进行 处理;而网络中的各种协议报文则是需要经过专用芯片传输到系统内存中,使CPU能够访 问并对协议报文进行处理。在以太网交换机中,准确及时地收发及处理这些协议报文是体 现以太网交换机性能优劣的关键。因为在某些情况下,协议报文会被淹没在大量的数据报 文中导致被丢失,从而引发以太网交换机相应的功能模块不能正常工作,因此,在将收到的 协议报文送到CPU的过程中,需要对协议报文进行保护,使得CPU能够及时准确地得到这些 报文。目前,在高中端以太网交换机中多采用把需要保护的协议报文和普通数据包区别 开来,以便分别区别对待。因为协议报文跟普通的数据报文相比,有特殊的媒体接入控制 (MAC)地址、网际协议(IP)地址和协议号等等这些特征值,因此,通过这些特征值就可以将 需要保护的协议报文与普通的数据报文区别开来。根据所选交换芯片和需要保护的协议 报文的这些特征值,大多数协议报文通过访问控制列表(ACL,access control list)的匹 配,把符合这些特征值的协议报文发送到高优先级队列,从而使这些协议报文能够优先被 调度。然而,采用上述通过ACL匹配特征值,来提高协议报文优先级的方案,会带来安全 隐患,即为如果非法用户根据上述特征值恶意伪造这些合法的协议报文格式,以进行CPU 攻击,如采取正常的ping报文,这些ping报文的格式内容虽然正常,但在异常大流量的情 况下会造成CPU资源大量浪费,甚至导致CPU瘫痪。从而,目前迫切需要一种在遭受恶意伪 造的大流量的协议报文攻击时,能保护CPU的方案。
发明内容
有鉴于此,本发明的主要目的在于提供一种防止协议报文攻击CPU的保护方法及 系统,在遭受大流量协议报文攻击时,能够有效地保护CPU不受攻击,从而提高CPU的抗攻 击能力。为达到上述目的,本发明的技术方案是这样实现的—种防止协议报文攻击CPU的保护方法,该方法包括根据设置的惩罚值判断端 口上报的一类协议报文是否为大流量的协议报文,来选择将所述协议报文丢弃,不继续上 报给CPU ;或者,将所述协议报文继续上报CPU。其中,进行所述判断来选择将所述协议报文丢弃或者将所述协议报文继续上报 CPU具体包括当所述惩罚值大于设置的抑制门限时,将所述协议报文丢弃;当所述惩罚值 小于设置的重用门限时将所述协议报文继续上报CPU。
其中,进行所述判断来选择将所述协议报文丢弃或者将所述协议报文继续上报 CPU具体包括根据所述惩罚值判断端口所处的抑制阶段;根据端口所处的抑制阶段,判断 端口是否进入抑制状态,当端口进入抑制状态时,将所述协议报文丢弃;当端口进入重用状 态时,或者需手动删除抑制状态时,将所述协议报文继续上报CPU。其中,根据所述惩罚值判断端口所处的抑制阶段具体包括如果所述惩罚值大于设置的最大惩罚值,则进入峰值阶段;如果所述惩罚值大于设置的抑制门限且小于设置的最大惩罚值,则进入惩罚阶 段;如果所述惩罚值大于设置的重用门限且小于设置的抑制门限,则进入惩罚过渡阶 段;如果所述惩罚值小于设置的重用门限,则进入重用阶段。其中,根据端口所处的抑制阶段,判断端口是否进入抑制状态具体包括如果端口未处于抑制状态,则当端口所处的抑制阶段为所述惩罚阶段或所述峰值 阶段时,端口进入抑制状态;如果端口已经处于抑制状态,则当端口所处的抑制阶段为所述 重用阶段时,端口退出抑制状态,进入重用状态。其中,所述惩罚值根据端口上报的所述协议报文的个数和时间获得;所述惩罚值 随着协议报文个数的递增成线性增长,随着时间成指数衰减。一种防止协议报文攻击CPU的保护系统,该系统包括选择上报单元,用于根据设 置的惩罚值判断端口上报的一类协议报文是否为大流量的协议报文,来选择将所述协议报 文丢弃,不继续上报给CPU ;或者,将所述协议报文继续上报CPU。其中,所述选择上报单元,进一步用于当所述惩罚值大于设置的抑制门限时,将所 述协议报文丢弃,不继续上报给CPU ;当所述惩罚值小于设置的重用门限时将所述协议报 文继续上报CPU。其中,所述选择上报单元,进一步用于根据所述惩罚值判断端口所处的抑制阶段; 根据端口所处的抑制阶段,判断端口是否进入抑制状态,当端口进入抑制状态时,将所述协 议报文丢弃,不继续上报给CPU;当端口进入重用状态时,或者需手动删除抑制状态时,将 所述协议报文继续上报CPU。本发明根据设置的惩罚值判断端口上报的一类协议报文是否为大流量的协议报 文,来选择将协议报文丢弃,不继续上报给CPU ;或者,将协议报文继续上报CPU。采用本发明,通过针对惩罚值的判断实现惩罚机制,以便能实现协议报文的选择 上报,在遭受大流量协议报文攻击时,能够有效地保护CPU不受攻击,从而提高CPU的抗攻 击能力。
图1为本发明方法的抑制过程中各种变量之间关系的示意图;图2为本发明方法采用的惩罚状态机一实例的示意图;图3为本发明方法的实施例一的实现流程示意图。
具体实施例方式本发明的基本思想是根据设置的惩罚值判断端口上报的一类协议报文是否为大 流量的协议报文,来选择将协议报文丢弃,不继续上报给CPU ;或者,将协议报文继续上报 CPU。下面结合附图对技术方案的实施作进一步的详细描述。一种防止协议报文攻击CPU的保护方法,该方法主要包括以下内容简单来说,设置惩罚值,根据设置的惩罚值判断协议报文是否为大流量的协议报文, 如果是,则说明协议报文过多需要丢弃,不将协议报文上报CPU ;否则,将协议报文上报CPU。具体的,根据端口上报的协议报文的个数和时间来确定当前的惩罚值,当惩罚值 大于设置的抑制门限时,则从该端口上报的该协议报文不上报CPU,而被直接丢弃;当惩罚 值随着时间成指数衰减至小于重用门限时或者需手动删除抑制状态时,则该端口上报的协 议报文正常上报CPU处理。通过这种惩罚机制,来有效控制协议报文上报CPU的方式,从而 提供了 CPU的防攻击能力以及网络的可靠性。这里,该方法中的惩罚值随着端口上报的协议报文个数的的递增,成线性增加,随 着时间成指数衰减。这里,该方法中用到的几个关键变量包括惩罚值根据现有的CPU保护算法计算出来的值。抑制门限当惩罚值大于该抑制门限时,从端口上报的协议报文将不再上报CPU, 被直接丢弃,并标记为CUt状态。这里,cut状态可以理解为抑制状态。重用门限当惩罚值随着时间成指数衰减到低于重用门限时,cut状态变为reuse 状态,该端口进来的某类协议报文正常上报CPU处理。这里,reuse状态可以理解为重用状 态。最大惩罚值最大的惩罚值,如果根据惩罚算法计算出来的惩罚值超过该最大惩 罚值,则将惩罚值设置为该最大惩罚值,以用来控制最长抑制时间。半衰期由当前惩罚值减到一半所用的时间。最大抑制时间惩罚值由最大惩罚值衰减到重用门限所用的最长时间。以下对本发明进行举例阐述。该方法中各种变量之间的关系可以参照图1所示。图1说明了本发明方法中的抑 制过程中各种变量之间的关系,其中tl、t2、t3、t4表示该端口上报的协议报文个数超过限 定值(该值为经验值,根据各种协议报文的重要性灵活设定)的时刻。其中t3时刻到t5 时刻的协议报文将不再上报至CPU,在t5时刻由于惩罚值衰减到重用门限,此时会将上报 的协议报文正常上报给CPU。参照图1、图2,对该方法主要包括的内容说明如下一、首先需要说明的是,上层提供相应命令行可以针对某端口开启/关闭此功能 进行控制,并提供配置下列抑制参数半衰期、重用门限、抑制门限和最大抑制时间。配置的 这些参数对应的具体含义已经在前面做过解释。二、根据输入的所配置的抑制参数,按照按一定的算法可以计算出最大惩罚值,从 而可以计算出相应的惩罚值。在抑制过程中还需要计算出惩罚系数。这里需要指出的是 不同的系统可根据需要采用不同的算法,例如可以采用如下的算法
nArrayCounts 惩罚系数个数;holdTime 最大抑制时间;DELTA_T 时间间隔;pArrayHead 惩罚系数数组的首地址;half_life 半衰期;DEFAULT_PENALTY 惩罚值偏移pArrayHead
= 1. 0 ;nArrayCounts = holdTimeX1000/DELTA_T ;pArrayHead[1] = exp((1/((float)half_lifeX1000/DELTA_T))X log(0. 5));for(i = 2 ;i < nArrayCounts ;i++){pArrayHead[i] = pArrayHead[i_l]XpArrayHead[1];}惩罚值计算Index = (t_now_t_Time)/DELTA_T ;Penalty = PenaltyXpArrayHead[index]+DEFAULT_PENALTY ;三、根据惩罚值和各种参数之间的关系,定义了该CPU保护过程中的几种端口抑 制阶段,具体的,各种抑制阶段的转移图参见图1,对图1的说明如下若当前惩罚值大于最大惩罚值,则进入峰值阶段。若当前惩罚值大于抑制门限且小于最大惩罚值,则进入惩罚阶段。若当前惩罚值大于重用门限且小于抑制门限,则进入惩罚过渡阶段。若当前惩罚值小于重用门限,则进入重用阶段。根据端口所处的各种抑制阶段,可以判断出端口是否进入抑制状态,参照图2所 示,图2中的重用状态可以用State_reuse表示;抑制状态可以用State_cutoff表示。对 图2说明如下如果端口未进入抑制状态,则当处于图1的惩罚阶段或峰值阶段时,端口对该协 议报文进入抑制状态,同时向上层发出进入抑制状态告警信息,不发送该协议报文给CPU。如果端口处于抑制状态,则处于图1的重用阶段时,端口取消对该协议报文的抑 制,发送该协议报文给CPU,同时向上层发出退出抑制状态告警信息。需要说明的一点是,端口的初始状态为重用状态,此时协议报文不做限制,可以正 常上报至CPU完成处理。基于上述对该方法主要包括的内容的说明,以一实施例进行具体阐述。实施例一本实施例的流程图如图3所示,包括以下步骤步骤301 针对各种协议报文在端口模式下配置各项抑制参数包括半衰期、重用 门限、抑制门限和最大抑制时间。步骤302 根据端口进来的一类协议报文进行协议报文个数的统计。这里,因为一类协议报文都有其特征值,故可以根据协议报文的协议类型、IP地 址、源端口号、目的端口号等特征值来解析不同的协议报文,从而对各种协议报文上报CPU 的个数进行统计。
步骤303 根据协议报文的个数和时间确定当前惩罚值。这里,惩罚值随着协议报文个数的递增成线性增长。步骤304 根据当前惩罚值的大小,判断端口所处的抑制阶段。这里,判断的具体实现如图1所示。端口所处的各种抑制阶段的转移图参见图1, 说明如下若当前惩罚值大于最大惩罚值,则进入峰值阶段。若当前惩罚值大于抑制门限且小于最大惩罚值,则进入惩罚阶段。若当前惩罚值大于重用门限且小于抑制门限,则进入惩罚过渡阶段。若当前惩罚值小于重用门限,则进入重用阶段。步骤305 根据端口所处的抑制阶段,来判断端口处于重用状态还是抑制状态,若 处于重用状态,进入步骤306,否则进入步骤309。这里,判断的具体实现如图2所示。根据端口所处的各种抑制阶段,可以判断出端 口是否进入抑制状态,参照图2所示,对图2说明如下如果端口目前未进入抑制状态,则当处于图1的惩罚阶段或峰值阶段时,端口对 该协议报文进入抑制状态,同时向上层发出进入抑制状态告警信息,不发送该协议报文给 CPU。如果端口目前已经处于抑制状态,则处于图1的重用阶段时,端口取消对该协议 报文的抑制,发送该协议报文给CPU,同时向上层发出退出抑制状态告警信息。步骤306 判断端口所处的抑制阶段,是否处于惩罚阶段或是峰值阶段,若是,执 行步骤307,否则执行步骤310。这里需要指出的是,步骤306是为了循环进行重用状态或抑制状态的判断。步骤307 端口进入抑制状态。步骤308、该端口上报的该类协议报文不再上报CPU处理,而被直接丢弃。步骤309 判断端口所处的抑制阶段,是否处于重用阶段,若是,执行步骤310,否 则转入执行步骤307。步骤310 端口退出抑制状态,进入重用状态。步骤311 该端口上报的该类协议报文将继续上报CPU处理。一种防止协议报文攻击CPU的保护系统方法,该系统包括选择上报单元,选择上 报单元用于根据设置的惩罚值判断端口上报的一类协议报文是否为大流量的协议报文,来 选择将协议报文丢弃,不继续上报给CPU ;或者,将协议报文继续上报CPU。这里,选择上报单元进一步用于当惩罚值大于设置的抑制门限时,将协议报文丢 弃,不继续上报给CPU ;当惩罚值小于设置的重用门限时将协议报文继续上报CPU。这里,选择上报单元进一步用于根据惩罚值判断端口所处的抑制阶段;根据端口 所处的抑制阶段,判断端口是否进入抑制状态,当端口进入抑制状态时,将协议报文丢弃, 不继续上报给CPU ;当端口进入重用状态时,或者需手动删除抑制状态时,将协议报文继续 上报CPU。这里,对以上涉及的参数,及各参数对应的英文注释在此做一对照说明惩罚值 可以用penalty Value表示;抑制门限可以用cutoff表示;重用门限可以用reuse表示; 最大惩罚值可以用ceiling表示;半衰期可以用half-life表示;最大抑制时间可以用
7hold-time 表不; 以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
一种防止协议报文攻击CPU的保护方法,其特征在于,该方法包括根据设置的惩罚值判断端口上报的一类协议报文是否为大流量的协议报文,来选择将所述协议报文丢弃,不继续上报给CPU;或者,将所述协议报文继续上报CPU。
2.根据权利要求1所述的方法,其特征在于,进行所述判断来选择将所述协议报文丢 弃或者将所述协议报文继续上报CPU具体包括当所述惩罚值大于设置的抑制门限时,将 所述协议报文丢弃;当所述惩罚值小于设置的重用门限时将所述协议报文继续上报CPU。
3.根据权利要求1所述的方法,其特征在于,进行所述判断来选择将所述协议报文丢 弃或者将所述协议报文继续上报CPU具体包括根据所述惩罚值判断端口所处的抑制阶 段;根据端口所处的抑制阶段,判断端口是否进入抑制状态,当端口进入抑制状态时,将所 述协议报文丢弃;当端口进入重用状态时,或者需手动删除抑制状态时,将所述协议报文继 续上报CPU。
4.根据权利要求3所述的方法,其特征在于,根据所述惩罚值判断端口所处的抑制阶 段具体包括如果所述惩罚值大于设置的最大惩罚值,则进入峰值阶段;如果所述惩罚值大于设置的抑制门限且小于设置的最大惩罚值,则进入惩罚阶段;如果所述惩罚值大于设置的重用门限且小于设置的抑制门限,则进入惩罚过渡阶段;如果所述惩罚值小于设置的重用门限,则进入重用阶段。
5.根据权利要求4所述的方法,其特征在于,根据端口所处的抑制阶段,判断端口是否 进入抑制状态具体包括如果端口未处于抑制状态,则当端口所处的抑制阶段为所述惩罚阶段或所述峰值阶段 时,端口进入抑制状态;如果端口已经处于抑制状态,则当端口所处的抑制阶段为所述重用 阶段时,端口退出抑制状态,进入重用状态。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述惩罚值根据端口上报的所 述协议报文的个数和时间获得;所述惩罚值随着协议报文个数的递增成线性增长,随着时 间成指数衰减。
7.一种防止协议报文攻击CPU的保护系统,其特征在于,该系统包括选择上报单元, 用于根据设置的惩罚值判断端口上报的一类协议报文是否为大流量的协议报文,来选择将 所述协议报文丢弃,不继续上报给CPU ;或者,将所述协议报文继续上报CPU。
8.根据权利要求7所述的系统,其特征在于,所述选择上报单元,进一步用于当所述惩 罚值大于设置的抑制门限时,将所述协议报文丢弃,不继续上报给CPU;当所述惩罚值小于 设置的重用门限时将所述协议报文继续上报CPU。
9.根据权利要求7所述的系统,其特征在于,所述选择上报单元,进一步用于根据所述 惩罚值判断端口所处的抑制阶段;根据端口所处的抑制阶段,判断端口是否进入抑制状态, 当端口进入抑制状态时,将所述协议报文丢弃,不继续上报给CPU ;当端口进入重用状态 时,或者需手动删除抑制状态时,将所述协议报文继续上报CPU。
全文摘要
本发明公开了一种防止协议报文攻击CPU的保护方法,该方法包括根据设置的惩罚值判断端口上报的一类协议报文是否为大流量的协议报文,来选择将所述协议报文丢弃,不继续上报给CPU;或者,将所述协议报文继续上报CPU。本发明还公开了一种防止协议报文攻击CPU的保护系统,该系统中的选择上报单元用于根据设置的惩罚值判断端口上报的一类协议报文是否为大流量的协议报文,来选择将所述协议报文丢弃,不继续上报给CPU;或者,将所述协议报文继续上报CPU。采用本发明的方法及系统,在遭受大流量协议报文攻击时,能够有效地保护CPU不受攻击。
文档编号H04L12/56GK101980489SQ201010524030
公开日2011年2月23日 申请日期2010年10月28日 优先权日2010年10月28日
发明者宋晓莉, 王聪 申请人:中兴通讯股份有限公司