可信路由器中OSPF协议的异常和攻击检测方法技术

技术编号:9720402 阅读:158 留言:0更新日期:2014-02-27 07:42
可信路由器的针对OSPF协议的异常和攻击检测方法属于信息安全领域。它首先利用路由器嵌入的TPM模块和内部的动态度量模块对路由器进行动态度量来防止路由器遭到操作系统层面的入侵,从而防止入侵后对系统配置甚至协议代码的篡改;然后利用外部攻击检测模块对常见的三种OSPF攻击手段进行检测,来防止中间人截获协议报文后篡改报文字段发起的外部攻击;最后利用内部监控模块来对路由器自身引发的异常状态转换和行为进行实时监控,从而能够及时发现路由器因为自身协议漏洞或人为操作造成的频繁异常状态,并且发出度量请求来触发动态度量模块,以检测路由器是否遭到入侵。

【技术实现步骤摘要】
可信路由器中OSPF协议的异常和攻击检测方法
本专利技术涉及一种基于可信路由器的针对OSFP协议的异常和攻击检测方法的评估。属于信息安全领域。
技术介绍
网络技术的快速发展和规模的不断扩大,使其正面临着严峻的安全挑战。路由器作为三层转发设备,承担着重要的任务和责任。目前网络上针对路由器的攻击越来越频繁普遍,如何保证路由器的安全可信成为了网络设备安全工作的重中之重。而路由协议是路由器的核心,路由功能主要由各种不同的路由协议完成。保证路由协议的安全可信,即保证了路由器的安全可信。路由协议种类不少,本专利技术主要从嵌入了 TMP模块的路由上,针对OSPF路由协议着手,研究其存在的安全缺陷,并加以修改和补救。TPM可信度量模块可以保证路由器从开始加电到启动完成的一个自身的可信。这是一个静态的度量。对路由器后续运行的状态,尚缺乏一个动态的度量方案。而针对OSPF协议的常见攻击手段,主要有三种:最大年龄攻击、序列号+1攻击、最大序列号攻击。总结上述三种攻击的共同点为,均需要修改报文的特定字段,使得报文失效或异常,从而扰乱OSPF协议的正常流程。目前针对OSPF协议的防护措施,比较成熟的有用数字签名和信任管理系统。数字签名是将LSA报文的关键字段,进行数字签名保护,来防止关键字段被恶意篡改。此方法的缺陷在于,需要大量的计算开销和不能保护实时变化的age字段。而借助age字段进行的MaxAge攻击,是三种常见攻击中的一种。信任管理系统需要设立一个服务器,下发初始信任证书,动态维护每个路由器的信任值在计算信任值的过程中,主要考虑的参数是邻居路由器的延时、丢包率、吞吐率、链路流量和带宽等。没有在理论上给出能够有效防止攻击的说明和证据。针对路由器状态的监控,较为常见的是利用入侵检测系统实时采集线路数据进行判断。上述几种方案,都存在着各自的不足。因此,专利技术人从可信角度,提出了一种基于可信路由器的OSPF协议的异常和攻击检测方法。在此方法中,采用的可信路由器均自带TPM模块,在通过静态度量保证路由器自身可信的基础上,通过动态度量模块保证路由器动态可信;然后通过报文攻击检测模块判定是否存在攻击,并实时做出控制;最后监控路由器内部的状态行为,制定状态转换模型,用以发现路由器的异常状态和行为,实现OSPF协议的可信。
技术实现思路
本专利技术的目的,在于为一个接入可信网络的运行OSPF协议的路由器,提供一个动静结合、内外兼备的异常和攻击检测方案。可信路由器的针对OSPF协议的异常和攻击检测方法,其特征在于包含以下步骤:1.利用处于路由器内部的动态度量模块,对路由器上运行的所有进程的数量与关键进程的代码段,进行动态度量;关键进程包括路由器的管理进程和OSPF路由协议进程;路由器从启动到稳定的正常运行发挥路由功能之后,若不进行人为的操作和干预,则操作系统中进程的数量不变;若动态度量模块检测到路由器运行的进程数量发生变化,或者关键进程的代码段度量值发生变化,则会发出警报并记录当前状况;动态度量方式描述如下:1.1动态度量的度量时机:1.1.1路由器启动完毕,进行第一次进程数和关键进程代码段度量;1.1.2第一次度量完成之后,每隔设定的时间T度量一次;1.1.3通过特殊事件触发度量;特殊事件包括外部攻击检测模块报警和内部状态行为监控模块报警;1.2动态度量的度量步骤:1.2.1计时器或事件触发度量请求,度量模块接收度量请求;1.2.2通过系统内核维护的进程列表,获得进程数以及包括OSPF协议进程和路由器管理进程的进程描述符;1.2.3通过进程描述符获得内存描述符,从而获得进程代码段内容;1.2.4将代码段内容交由TPM模块进行度量,并将度量结果和预设在TPM中的PCR值进行比较;TPM:Trusted Platform Module,是可信平台模块;PCR:是TPM中的平台配置寄存器;1.2.5根据度量值的比对结果,若比对结果一致,不做处理;若结果不一致,则发出警报;2.在路由器OSPF协议报文交互过程中,执行外部攻击检测模块,对常见的三种OSPF攻击手段进行检测;2.1常见的三种攻击方式为:2.1.1最大年龄攻击:将OSPF路由协议的LSA报文中的age字段,恶意设定为最大值,来删除LSA报文实体,以达到攻击目的;2.1.2序列号+1攻击:假定有一个LSA报文,报文中的序列号字段的值为N。若恶意的将N+1,会导致生成该LSA的路由器又重新生成一个序列号为N+2的新LSA ;若重复该攻击,会使路由器不停的生成LSA,造成链路状态异常,达到攻击目的;2.1.3最大序列号攻击:将序列号人为设定为最大值;因为序列号值越大,则表明LSA实体越新;所以若网络中存在序列号的值为最大值的时候,该LSA正常的实体都将被丢弃,达到攻击的目的;例如:序列号的初始值为0x80000001,0x80000000保留未用。OSPF协议规定了一条LSA实例增加序列号的最短时间MinLSInterval。MinLSInterval是生成一个特定LSA的最小间隔,MinLSInterval的值被设为5秒。因此理论上,将一个特定LSA的序列号从初始值开始持续增加到最大值0x7FFFFFFF,在时间上需要5*231秒,大概340年。这在正常情况下几乎是不可能的。OSPF的LSA更新机制规定,序列号大的LSA被视为较新。如果网络中存在序列号被修改为0x7fffffff的LSA,应当先将其清除,再由生成该LSA实例的路由器重新生成一个新的序列号为初始值的LSA,来替换具有最大序列号的LSA。然而,OSPF协议在此处存在一个BUG,路由器并没有先将达到最大序列号的LSA清除,而是直接生成了 一个新的LSA。根据LSA更新机制,拥有最大序列号的LSA被认为最新。所以当别的路由器收到新生成的具有初始序列号的LSA时,会丢弃这个新生成的,但是被误认为“较旧”的LSA。由此造成了源路由器不断生成新LSA,并不断别别的路由器丢弃的后果。攻击的检测的方式为,在接收到协议报文后,该报文先进入模块。模块对报文中指定的关键字段,按设计好的流程进行检测。若根据检测流程判定为攻击行为,则放弃报文并发出警报。否则放行报文进入正常的协议处理流程。攻击的检测的方式为,在接收到协议报文后,该报文先进入模块;模块对报文中指定的关键字段,按设计好的流程进行检测;若根据检测流程判定为攻击行为,则丢弃报文并发出警报。否则放行报文进入正常的协议处理流程;2.2术语解释:LSA: Link state advertisement,连接状态宣告,OSPF 协议报文;LSU:Link State Update,连接状态更新,OSPF 协议报文;AS-external-LSA: LSA报文的一种,描述到达AS外部目标的路径;AS:Autonomous System,自治系统;Summary_LSA:LSA报文的一种,描述了一条在区域外,但在AS内的路径;Network-LSA = LSA报文的一种,由DR产生,列出了当前接入该网络的路由器列表;DR:Designated Router,指定路由器;AR:Advertising Router,宣告路由器,表明当前LSA是由AR产生的;Seq:LSA的序列号字段;DB_Se本文档来自技高网
...

【技术保护点】
可信路由器的针对OSPF协议的异常和攻击检测方法,其特征在于包含以下步骤:1).利用处于路由器内部的动态度量模块,对路由器上运行的所有进程的数量与关键进程的代码段,进行动态度量;关键进程包括路由器的管理进程和OSPF路由协议进程;路由器从启动到稳定的正常运行发挥路由功能之后,若不进行人为的操作和干预,则操作系统中进程的数量不变;若动态度量模块检测到路由器运行的进程数量发生变化,或者关键进程的代码段度量值发生变化,则会发出警报并记录当前状况;动态度量方式描述如下:1.1动态度量的度量时机:1.1.1路由器启动完毕,进行第一次进程数和关键进程代码段度量;1.1.2第一次度量完成之后,每隔设定的时间T度量一次;1.1.3通过特殊事件触发度量;特殊事件包括外部攻击检测模块报警和内部状态行为监控模块报警;1.2动态度量的度量步骤:1.2.1计时器或事件触发度量请求,度量模块接收度量请求;1.2.2通过系统内核维护的进程列表,获得进程数以及包括OSPF协议进程和路由器管理进程的进程描述符;1.2.3通过进程描述符获得内存描述符,从而获得进程代码段内容;1.2.4将代码段内容交由TPM模块进行度量,并将度量结果和预设在TPM中的PCR值进行比较;TPM:Trusted?Platform?Module,是可信平台模块;PCR:是TPM中的平台配置寄存器;1.2.5根据度量值的比对结果,若比对结果一致,不做处理;若结果不一致,则发出警报;2).在路由器OSPF协议报文交互过程中,执行外部攻击检测模块,对常见的三种OSPF攻击手段进行检测;2.1常见的三种攻击方式为:2.1.1最大年龄攻击:将OSPF路由协议的LSA报文中的age字段,恶意设定为最大值,来删除LSA报文实体,以达到攻击目的;2.1.2序列号+1攻击:假定有一个LSA报文,报文中的序列号字段的值为N; 若恶意的将N+1,会导致生成该LSA的路由器又重新生成一个序列号为N+2的新LSA;若重复该攻击,会使路由器不停的生成LSA,造成链路状态异常,达到攻击目的;2.1.3最大序列号攻击:将序列号人为设定为最大值;因为序列号值越大,则表明LSA实体越新;所以若网络中存在序列号的值为最大值的时候,该LSA正常的实体都将被丢弃,达到攻击的目的;攻击的检测的方式为,在接收到协议报文后,该报文先进入模块;模块对报文中指定的关键字段,按设计好的流程进行检测;若根据检测流程判定为攻击行为,则丢弃报文并发出警报;否则放行报文进入正常的协议处理流程;2.2术语解释:LSA:Link?state?advertisement,连接状态宣告,OSPF协议报文;LSU:Link?State?Update,连接状态更新,OSPF协议报文;AS?external?LSA:LSA报文的一种,描述到达AS外部目标的路径;AS:Autonomous?System,自治系统;Summary?LSA:LSA报文的一种,描述了一条在区域外,但在AS内的路径;Network?LSA:LSA报文的一种,由DR产生,列出了当前接入该网络的路由器列表;DR:Designated?Router,指定路由器;AR:Advertising?Router,宣告路由器,表明当前LSA是由AR产生的;Seq:LSA的序列号字段;DB_Seq:链路数据库中当前LSA实体的序列号;MaxSeq:LSA序列号的最大值:age字段:报文中代表报文年龄的字段;MaxAge:age字段理论上能够达到的最大值;LSRefreshTime:生成一个LSA的最大间隔时间;Time_rev:路由器第一次收到该LSA实例时的age字段的值;Time_mod:将LSA实体存入模块缓存时的时间;源路由器:相对于收到的LSA的概念,如果收到LSA的路由器R恰好是生成该LSA的路由器,则称R为LSA的源路由器;2.3具体的攻击检测流程如下:2.3.1最大年龄攻击检测流程:2.3.1.1路由器R收到了一个LSA报文,进入2.3.1.2;2.3.1.2判断收到的LSA的age字段的值是否为MaxAge;若否,则不做处理;若是,则进入2.3.1.3;2.3.1.3判断LSA报文的序列号是否为最大序列号;若否则进入2.3.1.4;若是则进入2.3.1.5;2.3.1.4判断模块的缓存中是否有该LSA的实体;若有,则表明受到攻击,作出相应控制;若无,则在模块缓存中记录该LSA实体,并记录时间,之后按正常流程走;2.3.1.5判断该LSA是否为AS?external?LSA或Summa...

【技术特征摘要】
1.可信路由器的针对OSPF协议的异常和攻击检测方法,其特征在于包含以下步骤: .1).利用处于路由器内部的动态度量模块,对路由器上运行的所有进程的数量与关键进程的代码段,进行动态度量;关键进程包括路由器的管理进程和OSPF路由协议进程;路由器从启动到稳定的正常运行发挥路由功能之后,若不进行人为的操作和干预,则操作系统中进程的数量不变;若动态度量模块检测到路由器运行的进程数量发生变化,或者关键进程的代码段度量值发生变化,则会发出警报并记录当前状况;动态度量方式描述如下: 1.1动态度量的度量时机: 1.1.1路由器启动完毕,进行第一次进程数和关键进程代码段度量; 1.1.2第一次度量完成之后,每隔设定的时间T度量一次; 1.1.3通过特殊事件触发度量;特殊事件包括外部攻击检测模块报警和内部状态行为监控模块报警; 1.2动态度量的度量步骤: 1.2.1计时器或事件触发度量请求,度量模块接收度量请求; 1.2.2通过系统内核维护的进程列表,获得进程数以及包括OSPF协议进程和路由器管理进程的进程描述符; 1.2.3通过进程描述符获得内存描述符,从而获得进程代码段内容; 1.2.4将代码段内容交由TPM模块进行度量,并将度量结果和预设在TPM中的PCR值进行比较;TPM:Trusted Platform Module,是可信平台模块;PCR:是TPM中的平台配置寄存器; 1.2.5根据度量值的比对结果,若比对结果一致,不做处理;若结果不一致,则发出警报; . 2).在路由器OSPF协议报文交互过程中,执行外部攻击检测模块,对常见的三种OSPF攻击手段进行检测; .2.1常见的三种攻击方式为: .2.1.1最大年龄攻击:将OSPF路由协议的LSA报文中的age字段,恶意设定为最大值,来删除LSA报文实体,以达到攻击目的; . 2.1.2序列号+1攻击:假定有一个LSA报文,报文中的序列号字段的值为N ;若恶意的将N+1,会导致生成该LSA的路由器又重新生成一个序列号为N+2的新LSA ;若重复该攻击,会使路由器不停的生成LSA,造成链路状态异常,达到攻击目的; .2.1.3最大序列号攻击:将序列号人为设定为最大值;因为序列号值越大,则表明LSA实体越新;所以若网络中存在序列号的值为最大值的时候,该LSA正常的实体都将被丢弃,达到攻击的目的; 攻击的检测的方式为,在接收到协议报文后,该报文先进入模块;模块对报文中指定的关键字段,按设计好的流程进行检测;若根据检测流程判定为攻击行为,则丢弃报文并发出警报;否则放行报文进入正常的协议处理流程; . 2.2术语解释: LSA:Link state advertisement,连接状态宣告,OSPF 协议报文; LSU:Link State Update,连接状态更新,OSPF协议报文; AS-external-LSA:LSA报文的一种,描述到达AS外部目标的路径;AS:Autonomous System,自治系统; Summary-LSA: LSA报文的一种,描述了一条在区域外,但在AS内的路径; Network-LSAiLSA报文的一种,由DR产生,列出了当前接入该网络的路由器列表; DR:Designated Router,指定路由器; AR: Advertising Router,宣告路由器,表明当前LSA是由AR产生的; SeqiLSA的序列号字段; DB_Seq:链路数据库中当前LSA实体的序列号; MaxSeq: LSA序列号的最大值: age字段:报文中代表报文年龄的字段; MaxAge: age字段理论上能够达到的最大值; LSRefreshTime:生成一个LSA的最大间隔时间; Time_rev:路由器第一次收到该LSA实例时的age字段的值; Timejnod:将LSA实体存入模块缓存时的时间; 源路由器:相对于收到的LSA的概念,如果收到LSA的路由器R恰好是生成该LSA的路由器,则称R为LSA的源路由器; .2.3具体的攻击检测流程如下: .2.3.1最大年龄攻击检测流程:.2.3.1.1路由器R收到了一个LSA报文,进入2.3.1.2 ; .2.3.1.2判断收到的LSA的age字段的值是否为MaxAge;若否,则不做处理;若是,则进入 2.3.1.3 ; .2.3.1.3判断LSA报文的序列号是否为最大序列号;若否则进入2.3.1.4 ;若是则进入.2.3.1.5 ; .2.3.1.4判断模块的缓存中是否有该LSA的实体;若有,则表明受到攻击,作出相应控制;若无,则在模块缓存中记录该LSA实体,并记录时间,之后按正常流程走;.2.3.1.5 判断该 LSA 是否为 AS-external-LSA 或 Summary-LSA ;若是,则进 2.3.1.6 ;若否,则进入2.3.1.7 ; .2.3.1.6判断模块缓存中是否有该LSA实体;若有,则表明受到攻击,做出相应控制;若无,则将该LSA实体存入模块缓存中,并记录时间,之后按正常流程走; .2.3.1.7判断该LSA是否为Network-LSA ;若是,则进入2.3.1.8 ;若否,则进2.3.1.9 ;.2.3.1.8判断生成该LSA的路由器R是否仍是DR ;若是,则表明受到攻击,做出相应控制;若否,则进入2.3.1.9 ; .2.3.1.9判断模块缓存中是否有该LSA实体;若有,则表明受到攻击;...

【专利技术属性】
技术研发人员:赖英旭徐壮壮潘秋月邹起辰秦华李健刘静
申请(专利权)人:北京工业大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1