[发明专利]可信路由器中OSPF协议的异常和攻击检测方法有效
申请号: | 201310575258.X | 申请日: | 2013-11-17 |
公开(公告)号: | CN103607346B | 公开(公告)日: | 2016-11-09 |
发明(设计)人: | 赖英旭;徐壮壮;潘秋月;邹起辰;秦华;李健;刘静 | 申请(专利权)人: | 北京工业大学 |
主分类号: | H04L12/703 | 分类号: | H04L12/703;H04L29/06 |
代理公司: | 北京思海天达知识产权代理有限公司 11203 | 代理人: | 刘萍 |
地址: | 100124 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 可信路由器的针对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正常的实体都将被丢弃,达到攻击的目的;攻击的检测的方式为,在接收到协议报文后,该报文先进入模块;模块对报文中指定的关键字段,按设计好的流程进行检测;若根据检测流程判定为攻击行为,则丢弃报文并发出警报;否则放行报文进入正常的协议处理流程;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或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实体;若有,则表明受到攻击;若无,则存入模块缓存并记录时间,之后按正常流程走;2.3.2序列号+1攻击检测流程:2.3.2.1路由器R接收到LSA,记录时间收到LSA的时间Time_rev;进入2.3.2.2;2.3.2.2.判断收到的LSA的序列号,是否等于链路数据库中该LSA实体的序列号+1;若否,则按正常流程走,若是,则进入2.3.2.3;2.3.2.3判断路由器R是否为该LSA的源路由器;若是,则进2.3.2.4;若否,则进2.3.2.6;2.3.2.4判断缓存模块中是否存在该LSA的实体;若否,则将该LSA存入缓存模块,并记录时间Time_mod,之后按正常流程走;若是,则进入2.3.2.5;2.3.2.5判断Time_rev‑Time_mod的差值是否大于等于LSRefreshTime;若是,则更新Time_mod,之后按正常流程走;若否,则表明受到攻击;2.3.2.6判断模块缓存中是否存在该LSA实体;若是,则表明受到攻击;若否,则将该LSA存入模块缓存,并记录Time_mod;2.3.3最大序列号攻击检测:2.3.3.1路由器R接收到LSA,记录Time_rev;进入2.3.3.2;2.3.3.2判断LSA的序列号seq是否等于MaxSeq;若否,则按正常流程走;若是,则进入2.3.3.3;2.3.3.3判断age是否等于MaxAge;若否,则表明受到攻击;若是,则进2.3.3.4;2.3.3.4判断模块缓存中是否存在该LSA实体;若否,则将该LSA存入模块缓存,并记录Time_mod;若是,则进入2.3.3.5;2.3.3.5判断Time_rev‑Time_mod的差值是否大于等于LSRefreshTime;若是,则更新Time_mod;若否,则表明受到攻击;3).按照行为状态监控模块,对路由器的状态和行为进行监控;为OSPF协议的邻居状态建立一个状态转换的六元组模型M=(Q,Σ,δ,q0,F,C);其中:Q:OSPF邻居状态的有穷集合;Q={Down,Init,2‑way,ExStart,ExChange,Loading,Full}.参照RFC2328,将状态按处理过程排序;不能工作的状态排在最前面,称为低状态,经过一系列中间状态达到完全工作,状态层次逐渐升高;则状态排序从低到高为:Down<Init<2‑way<ExStart<ExChange<Loading<Full.Σ:触发状态转移的事件与消息集合;Σ={HellowReceived,2‑way‑Received,1‑way‑Received,Adj‑yes,Adj‑no,NegotiationDone,ExChangeDone,LoadingDone,SeqNumberMismatch,KillNeighbor}事件说明:HellowReceived:从邻居接收到一个Hello包;2‑way‑Received:两台邻居路由器之间达到双向通讯;这表明在邻居的Hello包中包含了路由器自身;1‑way‑Received:从邻居接收到Hello包,但并不包含路由器自身;这说明与该邻居的通讯不再是双向;Adj‑yes:需要形成邻接;Adj‑no:不需要形成邻接;NegotiationDone:已经协商好主从关系,并交换了DD序号;这一信号表示开始收发DD包;其中,DD包是指数据库描述报文(Database Description);DD序号是DD包的序列号;ExChangeDone:两台路由器都已成功交换了完整的DD包;每台路由器也知道其连接状态数据库中过期的部分;LoadingDone:连接状态更新已经接收了数据库中所有需要更新的部分;这是由数据库交换过程完成后,连接状态请求列表为空而表明的;SeqNumberMismatch:接收到的DD包出现下列情况:a)含有错误的DD序号;b)错误地设定了Init位;c)与上一个接收到的DD包有着不同的选项域;这些情况都说明,在建立邻接的过程中出现了错误;其中,选项域指的是DD包中的选项字段;包括Init位(I‑bit):初始标志位,在第一个DD包中被设定为1;M位(M‑bit):当后面还有更多的DD包时设定为1;MS位(MS‑bit):主从位,在数据库交换过程中的主机设定为1,从机则为0;KillNeighbor:这说明现在不可能与该邻居有任何通讯,强制转换邻居状态到Down;δ:状态转换函数;定义当前状态为Si(Si∈Q),下一状态为Sj(Sj∈Q),触发状态转换的事件为e(e∈Σ),模型判断状态转换结果的性质为Res(Res∈C),n为发生状态转换的次数,则状态转换函数为:f(Si,e)=Sj,Res;q0:初始状态:InitF:终止状态:F={Full,Down}C:经过一次状态转换,监控模型得到的结果;C={Normal,Abnormal,Danger};当得到的结果为Abnormal时,记录该类转换发生的次数n,若n>阈值N,阈值N为人为设定值,则发出警报和度量请求,触发动态度量模块;当得到的结果为Danger时,直接发出警报和度量请求。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京工业大学,未经北京工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201310575258.X/,转载请声明来源钻瓜专利网。
- 上一篇:一种高效铁锶混合永磁体及其加工工艺
- 下一篇:流量自动控制电解水机