一种数据通信设备CPU前端动态防护方法及系统与流程

文档序号:11620864阅读:178来源:国知局
一种数据通信设备CPU前端动态防护方法及系统与流程

本发明属于通信和网络安全领域,尤其涉及一种数据通信设备cpu前端动态防护方法及系统。



背景技术:

数据通信设备在网络构建中占有极其重要的地位,是整个网络的核心所在。在这个黑客入侵风起云涌、病毒肆虐的网络时代,作为网络链路核心的数据通信设备,理所当然要承担起网络安全的一大部分责任。数据通信设备最重要的作用就是转发数据。在黑客攻击和病毒侵扰下,数据通信设备本身要能够继续保持其高效的数据转发速率不受干扰,这是数据通信设备需要满足的最基本的网络安全功能。

数据通信设备普遍使用嵌入式系统,其正常运作都是建立在cpu稳定运行的基础之上。只有cpu对各种软硬件资源的合理分配和调度,才能保证整个系统的长久稳定运行。黑客和病毒对数据通信设备的攻击也正是基于对cpu的攻击来开展的。这些攻击通常会诱使、触发cpu进入异常的资源消耗状态,导致网络异常。因此,数据通信设备的cpu安全实际上也就代表了数据通信设备的网络安全。

数据通信设备在正常运转的时候,一般仅有很小的一部分报文被送到cpu上处理,主要是常规协议报文及一些需要软转发的报文。但是,当遭受攻击时,攻击报文会被送到cpu上处理。目前,对于常见的协议报文攻击,一般采用与之相应的协议防护模块对攻击行为进行防护,但并非所有的协议都实现了与之相应的防护模块。对于没有实现防护模块的协议,当出现攻击报文时,cpu可能遭受直接攻击。另外,目前各协议模块的防护功能都是建立在嵌入式系统内核收包处理流程之后、协议模块处理流程之前,在这个过程中,对攻击报文的预处理已经消耗了一部分cpu资源,如果出现连续大量的攻击报文,cpu资源将会异常消耗,最终导致网络瘫痪。



技术实现要素:

为了解决上述现有的数据通信设备cpu防护措施不足的问题,本发明提供了一种在数据通信设备cpu的前端根据报文类型、速率等动态进行限速或隔离,在保障正常需要送达cpu处理的报文不受影响的情况下,减轻cpu的载荷,从而达到对cpu更有效防护的机制。该防护机制能在报文上送cpu的前端整体上对攻击报文进行拦截,弥补当前cpu防护措施的不足,将在更大程度上防护网络攻击,保障cpu的长久稳定运行。

为了实现上述目的,本发明的实现方法包括:

一种数据通信设备cpu前端动态防护方法,包括:

步骤s1、在数据通信设备系统中创建实时监测上送cpu报文的任务,实时对上送到cpu的报文周期性循环采样,将采样值存储于一级流表,基于数据包的特征对一级流表的采样值进行识别、筛选,形成二级流表;

步骤s2、基于二级流表,对报文个数进行统计,获得每条流在时间周期内的平均速率v;

步骤s3、将平均速率与该类型流相对应的预设速率阈值进行比较,当平均速率超过预设的速率阈值时,识别为攻击源,实现攻击源识别;

步骤s4、对攻击源采用防护策略,通过向与cpu相连接的交换芯片端口下发配置命令,实现在cpu的前端对攻击报文进行防护处理。

其中,步骤s5、计算交换芯片对应端口的报文速率,将该报文速度与步骤s3中的预设速率阈值进行比较,超过阈值时,继续执行步骤s4,防护继续生效;未超过阈值时,恢复防护,继续执行步骤s1-s3。

其中,所述步骤s1中的报文周期性循环采样的具体方法为:

一个周期t内取100条流记录到一级流表,超过100条的流将被丢弃不作统计,完成二级流表筛选后,删除本次采样的一级流表,进行下一次采集,在采集周期结束前重复以上采样。

其中,所述每条流在时间周期内的平均速率获得的过程是:对步骤s2中的报文个数统计值c,除以采样周期t,计算出该流上送的速率v=c/t。

其中,所述步骤s2中基于数据包的特征对一级流表的采样值进行识别、筛选的方法为:将一级流表的报文根据源mac、源ip、protocol任选与端口号组合形成关键字进行筛选,统计出二级流表。

其中,所述二级流表,是基于一级流表的采样数据来建立,可以建立三张不同的二级流表,分别如下1)~3):

1)per-mac:以源mac确定一张源mac二级流表,以定位来自某个源mac的攻击行为;

2)per-ip:以源ip确定一张源ip二级流表,以定位某个源ip的攻击行为;

3)protocol:以protocol为关键字确定一张协议二级流表,以定位某类协议报文的攻击行为。

其中,所述步骤s5中恢复防护的时间周期设置为5s。

其中,在防护策略生效的时间内,cpu通过读取交换芯片端口的meter计数,综合评判攻击行为是否在继续进行,如果攻击排除,则自动撤销防护策略,否则继续执行防护策略或者降低防护策略等级;

所述防护策略包括限速或者隔离。

其中,防护策略生效后,记录攻击日志,并可选择是否发送trap告警通知到管理员;具体为:

cpu防护功能初始化时创建防护专用日志存储文件,当探测到攻击源防护策略生效后,将攻击报文信息写入该日志存储文件,包括报文上送的平均速率、端口信息、vlan、源目的ip、协议类型、日志记录时间,由系统统一记录并管理日志,可以选择性的开启trap告警功能,开启后,当检测到攻击源则通过snmp告知设备管理员;

可以选择性的支持日志筛选过滤功能,根据特定参数筛选记录的相关日志,以减少日志信息量便于帮助更快的定位到攻击源。

一种数据通信设备cpu前端动态防护系统,包括:交换芯片、及位于cpu报文处理流程前端的cpu防护模块,

所述cpu防护模块,用于通过在数据通信设备系统中创建的实时监测上送cpu报文的任务,实时对上送到cpu的报文周期性循环采样,将采样值存储于一级流表,基于数据包的特征对一级流表的采样值进行识别、筛选,形成二级流表;基于二级流表,对报文个数进行统计,获得每条流在时间周期内的平均速率v;将平均速率与该类型流相对应的预设速率阈值进行比较,当平均速率超过预设的速率阈值时,识别为攻击源,实现攻击源识别;对攻击源采用防护策略,通过向与cpu相连接的交换芯片端口下发配置命令,实现在cpu的前端对攻击报文进行防护处理;

所述交换芯片,用于接收所述cpu防护模块下发的配置命令,实现在cpu的前端对攻击报文进行防护处理。

与现有技术相比,本发明的有益效果是:

本发明通过在数据通信设备cpu的前端根据报文类型、速率等动态进行攻击报文处理,在保障正常需要送达cpu处理的报文不受影响的情况下,减轻cpu的载荷,从而达到对cpu更有效防护的机制。该防护机制能在报文上送cpu的前端整体上对攻击报文进行拦截等处理,弥补当前数据通信设备cpu防护措施的不足,将在更大程度上防护网络攻击,保障cpu的长久稳定运行。

附图说明

图1是一种数据通信设备cpu前端动态防护方法的流程图。

图2是一种数据通信设备cpu前端动态防护系统的结构图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下面结合具体的实施方式和附图,对本发明做进一步详细说明。本领域技术人员可由本说明书所阐述的内容对其进行实现,从而了解本发明的功能与优点。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。本发明还可以通过另外不同的具体实施方法加以实施和应用。

实施例1

如图1所示,本发明提供一种数据通信设备cpu前端动态防护方法,具体实施方式包括:

步骤s1、在数据通信设备系统中创建实时监测上送cpu报文的任务,实时对上送到cpu的报文周期性循环采样,将采样值存储于一级流表,基于数据包的特征对一级流表的采样值进行识别、筛选,形成二级流表;

步骤s2、基于二级流表,对报文个数进行统计,获得每条流在时间周期内的平均速率v;

步骤s3、将平均速率与该类型流相对应的预设速率阈值进行比较,当平均速率超过预设的速率阈值时,识别为攻击源,实现攻击源识别;

步骤s4、对攻击源采用防护策略,通过向与cpu相连接的交换芯片端口下发配置命令,实现在cpu的前端对攻击报文进行防护处理。

可见,本发明通过在数据通信设备cpu的前端根据报文类型、速率等动态进行攻击报文处理,在保障正常需要送达cpu处理的报文不受影响的情况下,减轻cpu的载荷,从而达到对cpu更有效防护的机制。该防护机制能在报文上送cpu的前端整体上对攻击报文进行拦截等处理,弥补当前数据通信设备cpu防护措施的不足,将在更大程度上防护网络攻击,保障cpu的长久稳定运行。

进一步地,本发明所述方法还包括:

步骤s5、计算交换芯片对应端口的报文速率,将该报文速度与步骤s3中的预设速率阈值进行比较,超过阈值时,继续执行步骤s4,防护继续生效;未超过阈值时,恢复防护,继续执行步骤s1-s3。

在防护策略生效的时间内,cpu通过读取交换芯片相关端口的meter计数,综合评判攻击行为是否在继续进行,如果攻击排除,则自动撤销防护策略,否则继续执行防护策略或者降低防护策略等级。本发明所说的meter计数为在统计周期内交换芯片端口上对某条流的统计计数。

通过周期性循环采样建立的流表对报文初步筛选,进一步通过对攻击报文下发配置的手段,实现在cpu的前端对攻击报文进行拦截等处理,从而有效的阻止攻击报文对cpu资源的消耗。

所述每条流在时间周期内的平均速率获得的过程是:对步骤s2中的报文个数统计值c,除以采样周期t,计算出该流上送的速率v=c/t。

所述步骤s1中的报文周期性循环采样的具体方法为:

一个周期t内取100条流记录到一级流表,超过100条的流将被丢弃不作统计,完成二级流表筛选后,删除本次采样的一级流表,进行下一次采集,在采集周期结束前重复以上采样。

根据数据流的报文类型以及细分的程度,分为一级流表和二级流表,均采用高效的哈希链表进行组织,有效保证了报文统计运算过程中的高效率。所述步骤s2中基于数据包的特征对一级流表的采样值进行识别、筛选的方法为:将一级流表的报文根据源mac、源ip、protocol任选与端口号组合形成关键字进行筛选,统计出二级流表。

所述二级流表,是基于一级流表的采样数据来建立,可以建立三张不同的二级流表,分别如下1)~3):

1)per-mac:以源mac确定一张源mac二级流表,以定位来自某个源mac的攻击行为:

2)per-ip:以源ip确定一张源ip二级流表,以定位某个源ip的攻击行为;

3)protocol:以protocol为关键字确定一张协议二级流表,以定位某类协议报文的攻击行为。

所述防护策略,包括限速或者隔离。

防护策略生效后,记录攻击日志,并可选择是否发送trap告警通知到管理员;具体为:

cpu防护功能初始化时创建防护专用日志存储文件,当探测到攻击源防护策略生效后,将攻击报文信息写入该日志存储文件,包括报文上送的平均速率、端口信息、vlan、源目的ip、协议类型、日志记录时间,由系统统一记录并管理日志,可以选择性的开启trap告警功能,开启后,当检测到攻击源则通过snmp告知设备管理员;

可以选择性的支持日志筛选过滤功能,根据特定参数筛选记录的相关日志,以减少日志信息量便于帮助更快的定位到攻击源。

下面对本发明中涉及的配置项作简单说明如下:

所述速率阈值,是指设置某条流(协议类型、源ip地址或源mac地址)上送cpu速率的上限值,单位为:个/秒。具体阈值需结合实际应用数据定义,且支持管理员通过cli在一定范围内对各协议的速率阈值进行修改。在实施本发明技术方案时,调用速率阈值时,其具体过程为:cli模块通过消息队列将使能信息发送给cpu防护模块,cpu防护模块收到消息并解析后调用限速速率阈值配置函数,限速速率阈值配置函数检查参数合法性,合法则将该参数记录到全局参数数据结构,作为判断是否超限的依据,如果输入的参数为0,则设置全局变量数据结构中相应的字段等于默认阀值(默认阈值待确定)。

所述采样周期,是指配置cpu防护模块采集上cpu数据的周期间隔,该周期内采样模块将对上送cpu的某n条流累加计数统计。默认采样周期为3秒,管理员可在1~10s范围内修改。

cpu防护模块周期性的对上送cpu的报文进行采样统计,因考虑内存资源及处理性能的问题,无法一次将所有上送的流都进行记录,故采取多次轮流采样的方式进行统计,即每一个周期(t)内仅取100条流记录到一级流表,超过100条的流将被丢弃不作统计。采样周期未结束前重复采集,对匹配流表的流累加记录counter值(c),counter值为在cpu上某条流在统计周期内的统计计数。一个周期的处理流程结束(攻击源探测完成)后清除一级流表数据,继续下一个周期的数据采集,如此循环,从而实现采集到所有数据的样本。cpu防护模块收到上送的skb原始报文后,解析出以太包头和ip包头;以源mca、源ip、protocol、端口号等关键字确定一条流;最多将收到的前100条流记录到一级流表,超过100条的流量丢弃;重复上送的流累加counter值直到采样周期定时器结束。输出采集到的最多100条流,并统计出接收报文计数counter值。

速率统计及攻击源识别过程如下:通过统计一个采样周期内某条流上送cpu的次数(counter),除以采样周期t计算出该流上送的速率v=c/t,将平均速率与对应的速率阈值进行比对,超过速率阈值即被识别为攻击源。具体为:将一级流表中采集到的流量信息(可能少于100条)分别以协议类型、源ip、源mac为关键字构建三张二级流表;统计出每条流的counter值,计算平均速率;将计算出的平均速率与预设的速率阈值进行比对,高于速率阈值的为攻击源,如有配置防护策略,则调用驱动接口针对攻击源下发限速策略,并将其记录到攻击源列表,记录限速时间;记录防护日志,发送trap告警;清除一级和二级流表,重新启动采样定时器进行下一轮采样。

当所述防护策略为限速时,限速速率,是指配置防护策略为限速、速率超过阀值后该数据流上送cpu的速率限制到该配置值以下。每种流类型都对应一个限速速率值,单位为:个/秒。

攻击源送cpu限速过程具体为:平台检测到攻击源后,调用该接口对其上送cpu的速率进行限制。驱动需根据平台输入的参数(协议类型或者源ip或者源mac)建立对应的ffp表项对该条流送cpu的速率进行限制,丢弃超过限速速率值部分的报文,实现该条流送cpu的速率被限制在速率阈值以下,超出部分被丢弃。

清除攻击源送cpu限速过程具体为:恢复周期到来后,平台调用该接口解除对该攻击源的限速。驱动需根据平台输入的参数(协议类型或者源ip或者源mac)清除对应的ffp表项,以达到攻击源限速解除的目的。

对攻击源采取防护措施后,需要支持在一定的周期后自动恢复,系统预设的默认恢复周期为5s,管理员可在1~30s范围内修改。

配置最大可用ffp表项数量,支持限速ffp资源的最大数目可配置,ffp硬件资源是有限的,为避免过度使用导致对其他功能的影响,对ffp使用的最大数目有限制,支持管理员根据实际应用情况在一定范围内可配置。介绍:硬件ffp表项资源数量有限,需对可支配的表项资源数量进行限制,超出表项数量后不下发硬件表项,给出提示(攻击源被忽略),系统默认分配可用ffp表项数量为500个。输入:用户通过配置界面调用。处理:检查参数合法性,合法则将该参数直接赋值给全局数据结构变量;输入参数为0,则恢复最大ffp表项数为默认值;每次下硬件表项前,将记录的表项资源占用数量与该设定值进行比较,超过该设定值给予相应提示后返回。输出:最大可用ffp资源数量被设置。异常处理:参数超出范围则退出,提示配置不成功。

防护策略生效后,记录攻击日志,并可选择是否发送trap告警通知到管理员;超限trap功能开启/关闭,开启trap功能后,当检测到攻击源则通过snmp告知设备管理员。开启trap告警后,当检测到攻击源则通过snmp告知设备管理员;关闭cpu防护trap,停止所有类型的trap告警。记录日志,是指记录攻击源的日志信息。cpu防护功能初始化时创建防护专用日志存储文件,当探测到攻击源后,将攻击报文信息写入该日志存储文件,包括报文上送的平均速率、端口信息、vlan、源目的ip、协议类型、日志记录时间等,由主控统一记录并管理日志。

实施例2

本实施例是系统实施例,与上述方法实施例1属于同一技术构思,在本实施例中未详尽描述的内容,请参见方法实施例1。

如图2所示,本发明所述的一种数据通信设备cpu前端动态防护系统,包括:交换芯片、及位于cpu报文处理流程前端的cpu防护模块,

所述cpu防护模块,用于通过在数据通信设备系统中创建的实时监测上送cpu报文的任务,实时对上送到cpu的报文周期性循环采样,将采样值存储于一级流表,基于数据包的特征对一级流表的采样值进行识别、筛选,形成二级流表;基于二级流表,对报文个数进行统计,获得每条流在时间周期内的平均速率v;将平均速率与该类型流相对应的预设速率阈值进行比较,当平均速率超过预设的速率阈值时,识别为攻击源,实现攻击源识别;对攻击源采用防护策略,通过向与cpu相连接的交换芯片端口下发配置命令,实现在cpu的前端对攻击报文进行防护处理;

所述交换芯片,用于接收所述cpu防护模块下发的配置命令,实现在cpu的前端对攻击报文进行防护处理。

可见,本发明通过数据通信设备cpu报文处理流程前端的cpu防护模块根据报文类型、速率等动态进行攻击报文处理,在保障正常需要送达cpu处理的报文不受影响的情况下,减轻cpu的载荷,从而达到对cpu更有效防护的机制。该防护机制能在报文上送cpu的前端整体上对攻击报文进行拦截等处理,弥补当前数据通信设备cpu防护措施的不足,将在更大程度上防护网络攻击,保障cpu的长久稳定运行。

以上所述,仅是本发明的较佳实施例,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单增删裁剪、等同变化与修饰,均仍属本发明技术方案的保护范围。

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