开放式最短路径优先协议脆弱性分析方法及装置、介质与流程

文档序号:17158267发布日期:2019-03-20 00:17阅读:247来源:国知局
开放式最短路径优先协议脆弱性分析方法及装置、介质与流程

本发明涉及网络技术领域,尤其涉及一种开放式最短路径优先(openshortestpathfirst,ospf)协议脆弱性分析方法及装置、及存储介质。



背景技术:

开放式最短路径优先(openshortestpathfirst,ospf)协议是一个内部网关协议,可以应用于单一自治系统内部决策路由,隶属内部网关协议。一般运行在路由器上,用于供路由器选择路由。

但是若osfp协议被脆弱性分析了,则会导致路由器中存储的路由表出现无效路由或者错误路由;无效路由或错误路由会进一步导致丢包,进而导致网络丢包率高及发送失败率高的问题。故需要修补ospf协议的脆弱性问题,在修补脆弱性问题之前,需要检测出ospf协议的脆弱性问题,在现有技术中对于如何检测路由器上运行的ospf协议的脆弱性问题尚未有任何规定。



技术实现要素:

有鉴于此,本发明实施例期望提供一种ospf协议脆弱性分析方法及装置、及存储介质。

本发明的技术方案是这样实现的:

一种开放式最短路径优先ospf协议脆弱性分析方法,包括:

脆弱性分析路由器通过运行脆弱性分析路由器模型生成无效lsa;

所述脆弱性分析路由器在自治域内洪泛所述无效lsa;

获取合法路由器在接收到无效lsa后,基于所述ospf协议对所述无效lsa的处理,获得所述合法路由器的脆弱性分析结果;

基于脆弱性分析结果,确定所述合法路由器运行的ospf协议是否存在脆弱性问题。

基于上述方案,所述脆弱性分析路由器运行脆弱性分析路由器模型,生成无效lsa,包括以下至少之一:

脆弱性分析路由器生成第一类无效lsa,其中,所述第一类无效lsa中携带的链路状态字段和公告路由器字段携带的路由器标识不同;

脆弱性分析路由器生成第二类无效lsa,其中,第二类无效lsa的数据格式为所述ospf协议规定的标准格式以为的非标准格式。

基于上述方案,所述脆弱性分析路由器在自治域内洪泛所述无效lsa,包括:

所述脆弱性分析路由器以第一频率连续发送所述无效lsa,其中,所述第一频率对应的时间间隔小于所述合法路由器计时器触发反击机制的计时周期。

基于上述方案,所述根据合法路由器在接收到无效lsa后,基于所述ospf协议对所述无效lsa的处理,获得所述合法路由器的脆弱性分析结果,包括以下至少之一:

若所述无效lsa被添加到了合法路由器的lsa数据库中,确定所述合法路由器受到脆弱性分析;

若所述合法路由器对接收到的lsa计数的计数器超过预设阈值,确定所述合法路由器受到脆弱性分析;

若无效lsa被标记为更新路由表的lsa,确定所述合法路由器受到脆弱性分析;

若所述合法路由器的路由表基于所述无效lsa进行了更新。

基于上述方案,所述基于脆弱性分析结果,确定所述合法路由器运行的ospf协议是否存在脆弱性问题,包括:

若所述合法路由器遭受到脆弱性分析,根据使得所述合法路由器遭受脆弱性分析的无效lsa的特征,确定所述合法路由器运行的ospf协议存在的脆弱性问题类型。

基于上述方案,所述若所述合法路由器遭受到脆弱性分析,根据使得所述合法路由器遭受脆弱性分析的无效lsa的特征,确定所述合法路由器运行的ospf协议存在的脆弱性问题类型,包括以下至少之一:

若所述无效lsa的公告路由字段和链路状态标识字段携带的路由器标识不同,确定所述合法路由器运行的ospf协议存在标识字段验证不全面的脆弱性问题;

若无效lsa导致对lsa计数的计数器超过预设阈值,则确定所述合法路由器运行的洪泛计时器的计数周期设置存在脆弱性问题。

基于上述方案,所述脆弱性分析路由器通过运行脆弱性分析路由器模型生成无效lsa,包括:

遍历所述自治域网络内每一个合法路由器,基于每一个所述合法路由器的路由器标识生成所述无效lsa。

基于上述方案,所述方法还包括:

获取ospf模型,其中,所述ospf模型包括:包含有运行osfp协议的路由器的自治域网络的拓扑结构;其中,所述自治域网络内包含有一个或多个合法路由器。

一种开放式最短路径优先ospf协议脆弱性问题检测装置,包括:

生成模块,用于脆弱性分析路由器通过运行脆弱性分析路由器模型生成无效lsa;

洪泛模块,用于所述脆弱性分析路由器在自治域内洪泛所述无效lsa;

获取模块,用于获取合法路由器在接收到无效lsa后,基于所述ospf协议对所述无效lsa的处理,获得所述合法路由器的脆弱性分析结果;

确定模块,用于基于脆弱性分析结果,确定所述合法路由器运行的ospf协议是否存在脆弱性问题。

一种计算机存储介质,所述计算机存储介质存储有计算机可执行指令;所述计算机可执行指令被执行后,能够实现前述一个或多个ospf协议脆弱性分析方法。

本发明实施例提供的技术方案,会利用脆弱性分析路由器刻意的生成无效lsa,对自治域内传输lsa,对合法路由器进行脆弱性分析,然后由合法路由器基于ospf协议对无效lsa的处理,基于合法路由器是否受到脆弱性分析,来确定合法路由器运行的ospf协议是否存在脆弱性问题,且还根据导致合法路由器受到脆弱性分析的无效lsa的特点,确定出该合法路由器运行的ospf协议存在的脆弱性问题类型,具有实现简便及快捷的特点。

附图说明

图1为本发明实施例提供的一种ospf协议脆弱性分析方法的流程示意图;

图2为本发明实施例提供的一种ospf协议脆弱性分析方法的流程示意图;

图3为本发明实施例提供的一种ospf协议脆弱性问题检测装置的结构示意图。

具体实施方式

以下结合说明书附图及具体实施例对本发明的技术方案做进一步的详细阐述。

如图1所示,本实施例提供一种开放式最短路径优先ospf协议脆弱性分析方法,包括:

步骤s110:脆弱性分析路由器通过运行脆弱性分析路由器模型生成无效lsa;

步骤s120:所述脆弱性分析路由器在自治域内洪泛所述无效lsa;

步骤s130:获取合法路由器在接收到无效lsa后,基于所述ospf协议对所述无效lsa的处理,获得所述合法路由器的脆弱性分析结果;

步骤s140:基于脆弱性分析结果,确定所述合法路由器运行的ospf协议是否存在脆弱性问题。

本实施例提供的ospf协议的脆弱性分析方法,可应用于脆弱性分析路由器中,也可以应用于脆弱性分析路由器的控制器中。

所述脆弱性分析路由器模型被脆弱性分析路由器运行之后,会触发所述脆弱性分析路a由器生成无效lsa,并在无效lsa被生成之后,在对应的自治域网络内发送,例如,广播发送、组播发送或单播发送。

总之,在本实施例中为了不用在查看逐一查看路由器网络的情况下,通过在网络中引入脆弱性分析路由器构建无效lsa对合法路由器进行脆弱性分析,看合法路由器如何处理无效lsa,确定出合法路由器的脆弱性分析结果;且由于无效lsa是由脆弱性分析路由器所生成的,故无效lsa的特点是预先知道的,若合法路由器受到这种无效lsa的脆弱性分析,则表明合法路由器所运行的ospf协议存在不能检测对应特点无效lsa的脆弱性问题;故具有简便且有效检测ospf协议的问题。若存在脆弱性问题,则路由器的路由表就有可能比较高的概率被篡改,存在安全性不够的问题。

在一些实施例中,所述步骤s110可包括以下至少之一:

脆弱性分析路由器生成第一类无效lsa,其中,所述第一类无效lsa中携带的链路状态字段和公告路由器字段携带的路由器标识不同;

脆弱性分析路由器生成第二类无效lsa,其中,第二类无效lsa的数据格式为所述ospf协议规定的标准格式以为的非标准格式。

在本实施例中,脆弱性分析路由器生成的无效lsa至少分为两种,第一类无效lsa为:无效lsa内的链路状态标识字段和公告路由字段携带的路由器标识不同,例如,链路状态标识字段携带的脆弱性分析对象(即合法路由器)的路由器标识;公告路由器字段携带的脆弱性分析路由器的路由器标识或者其他路由器的路由器标识。如此,无效lsa的链路状态标识字段和公告路由器字段的携带的路由器标识是不同的,若合法路由器不能识别第一类无效lsa的链路状态标识字段和公告路由字段携带的路由器标识不同,则会认定第一类无效lsa为有效的lsa,从而将该lsa添加到lsa数据库中,或者,标记该lsa,后续将根据lsa数据库中lsa或者被标记的lsa,进行路由计算,从而更新路由表。

在一些实施例中,所述步骤s120可包括:所述脆弱性分析路由器以第一频率连续发送所述无效lsa,其中,所述第一频率对应的时间间隔小于所述合法路由器计时器触发反击机制的计时周期。

若连续以第一频率发送无效lsa,则脆弱性分析路由器发起的连续脆弱性分析,此时,发送的无效lsa可为前述的第一类无效lsa和/或第二类无效lsa;或者,任意由脆弱性分析路由器发送的无效lsa。

在一些实施例中,所述步骤s130可包括以下至少之一:

若所述无效lsa被添加到了合法路由器的lsa数据库中,确定所述合法路由器受到脆弱性分析;

若所述合法路由器对接收到的lsa计数的计数器超过预设阈值,确定所述合法路由器受到脆弱性分析;

若无效lsa被标记为更新路由表的lsa,确定所述合法路由器受到脆弱性分析;

若所述合法路由器的路由表基于所述无效lsa进行了更新。

在一些实施例中,合法路由器接收到一个lsa之后会执行以下操作,具体包括:

基于ospf协议确定接收到的lsa是否为有效lsa;

若为有效lsa,则添加到lsa数据库,或,标记为进行路由更新的lsa。

所述步骤s140可包括:

若所述合法路由器遭受到脆弱性分析,根据使得所述合法路由器遭受脆弱性分析的无效lsa的特征,确定所述合法路由器运行的ospf协议存在的脆弱性问题类型。

具体地,所述步骤s140可包括以下至少之一:

若所述无效lsa的公告路由字段和链路状态标识字段携带的路由器标识不同,确定所述合法路由器运行的ospf协议存在标识字段验证不全面的脆弱性问题;

若无效lsa导致对lsa计数的计数器超过预设阈值,则确定所述合法路由器运行的洪泛计时器的计数周期设置存在脆弱性问题。

在一些实施例,所述步骤s110可包括:

遍历所述自治域网络内每一个合法路由器,基于每一个所述合法路由器的路由器标识生成所述无效lsa。

如此,通过遍历自治域网络内每一个合法路由器,可以以每一个合法路由器为脆弱性分析对象,对每一个合法路由器进行lsa脆弱性分析,若对应的合法路由器lsa未识别出是无效lsa,而是错把无效lsa当做有效lsa进行路由更新,则认为该合法路由器上运行的ospf协议存在着脆弱性问题。且由于遍历了每一个合法路由器,则可确定出自治域网络中每一个合法路由器中运行的ospf协议是否存在脆弱性问题。

在一些实施例中,所述遍历所述自治域网络内每一个合法路由器,基于每一个所述合法路由器的路由器标识生成所述无效lsa,包括:

以遍历的合法路由器的路由器标识构成所述无效lsa的链路状态标识字段,以对应的合法路由器器以外的其他由器标识构建所述无效lsa的公告路由字段。

在一些实施例中,所述遍历所述自治域网络内每一个合法路由器,基于每一个所述合法路由器的路由器标识生成所述无效lsa,包括:

以遍历的合法路由器的路由器标识构成所述无效lsa的链路状态标识字段,生成非标准格式的广播无效lsa或组播无效lsa。

广播无效lsa为目的地址为广播地址的无效lsa,可以在整个自治域网络内传输,并被整个自治域网络内的路由器所接收。

组播无效lsa为目的地址为组播地址的无效lsa,可以在组播地址对应的组播组内传输,位于组播组内的每一个路由器都可以接收到。

在一些实施例中,所述遍历所述自治域网络内每一个合法路由器,基于每一个所述合法路由器的路由器标识生成所述无效lsa,包括:

以遍历的合法路由器的路由器标识构成所述无效lsa的链路状态标识字段,构建非标准格式的单播无效lsa,看非目的地址的中转路由器是否可以识别该无效lsa后,触发反击机制。

在本实施例中,单播无效lsa为目的地址为特定路由器地址的无效lsa。但是无效lsa需要其他路由器中转。若中转路由器检测到是无效lsa,却依然不触发反击机制,若不触发反击机制,则不会停止转发无效lsa;如此,可以判断出合法路由器允许的ospf协议存在着无效lsa依然中转的脆弱性问题。

在一些实施例中,如图2所示,所述方法还包括:

步骤s100:获取ospf模型,其中,所述ospf模型包括:包含有运行osfp协议的路由器的自治域网络的拓扑结构;其中,所述自治域网络内包含有一个或多个合法路由器。

在本实施例中,所述ospf模型,至少包括:自治域网络的拓扑结构,方便脆弱性分析路由器遍历每一个合法路由器,以确定每一个合法路由器运行的ospf协议是否存在脆弱性问题。

在另一些实施例中,所述ospf模型还可包括:所述脆弱性分析路由器模型。如此,若一个路由器从外设或网络或人机交互接口接收到所述ospf模型,则同时知道了需要检测的自治域网络的拓扑结构及脆弱性分析路由器模型。

在还有一些实施例,所述ospf模型还可包括:路由器模型,该路由器模型可运行在合法路由器中,由其对无效lsa进行处理,并向脆弱性问题检测设备(例如,脆弱性分析路由器或者脆弱性分析路由器的控制器或者其他设备)上报自身的脆弱性分析结果。

如图3所示,一种开放式最短路径优先ospf协议脆弱性问题检测装置,包括:

生成模块110,用于脆弱性分析路由器通过运行脆弱性分析路由器模型生成无效lsa;

洪泛模块120,用于所述脆弱性分析路由器在自治域内洪泛所述无效lsa;

获取模块130,用于获取合法路由器在接收到无效lsa后,基于所述ospf协议对所述无效lsa的处理,获得所述合法路由器的脆弱性分析结果;

确定模块140,用于基于脆弱性分析结果,确定所述合法路由器运行的ospf协议是否存在脆弱性问题。

在一些实施例中,所述生成模块110、洪泛模块120、获取模块130及确定模块140,可为软件程序模块,被处理器执行之后,进行上述脆弱性问题检测。

在另一些实施例中,所述生成模块110、洪泛模块120、获取模块130及确定模块140,可为硬件模块及软件程序模块的结合模块,例如,复杂集成阵列或现场可编程阵列。

在还有一些实施例中,所述生成模块110、洪泛模块120、获取模块130及确定模块140,可为硬件模块,例如,专用集成电路。

在还有一些实施例中,所述生成模块110,具体可用于执行以下至少之一:

脆弱性分析路由器生成第一类无效lsa,其中,所述第一类无效lsa中携带的链路状态字段和公告路由器字段携带的路由器标识不同;

脆弱性分析路由器生成第二类无效lsa,其中,第二类无效lsa的数据格式为所述ospf协议规定的标准格式以为的非标准格式。

在还有一些实施例中,所述发送模块,可用于所述脆弱性分析路由器以第一频率连续发送所述无效lsa,其中,所述第一频率对应的时间间隔小于所述合法路由器计时器触发反击机制的计时周期。

在还有一些实施例中,所述获取模块130,具体可用于执行以下至少之一:

若所述无效lsa被添加到了合法路由器的lsa数据库中,确定所述合法路由器受到脆弱性分析;

若所述合法路由器对接收到的lsa计数的计数器超过预设阈值,确定所述合法路由器受到脆弱性分析;

若无效lsa被标记为更新路由表的lsa,确定所述合法路由器受到脆弱性分析;

若所述合法路由器的路由表基于所述无效lsa进行了更新。

在一些实施例中,所述确定模块140,具体用于执行以下至少之一:

若所述合法路由器遭受到脆弱性分析,根据使得所述合法路由器遭受脆弱性分析的无效lsa的特征,确定所述合法路由器运行的ospf协议存在的脆弱性问题类型。

在一些实施例中,所述确定模块140,具体用于执行以下至少之一:

若所述无效lsa的公告路由字段和链路状态标识字段携带的路由器标识不同,确定所述合法路由器运行的ospf协议存在标识字段验证不全面的脆弱性问题;

若无效lsa导致对lsa计数的计数器超过预设阈值,则确定所述合法路由器运行的洪泛计时器的计数周期设置存在脆弱性问题。

在一些实施例中,所述生成模块110,具体用于执行遍历所述自治域网络内每一个合法路由器,基于每一个所述合法路由器的路由器标识生成所述无效lsa。

在一些实施例中,所述装置还包括:

获得模块,用于获取ospf模型,其中,所述ospf模型包括:包含有运行osfp协议的路由器的自治域网络的拓扑结构;其中,所述自治域网络内包含有一个或多个合法路由器。

本实施例还提供一种计算机存储介质,所述计算机存储介质存储有计算机可执行指令;所述计算机可执行指令被执行后,能够实现前述任意一个技术方案提供的基于开放式最短路径优先ospf协议的信息处理方法,例如,图1或图2所示的方法。所述计算机存储介质可为非瞬间存储介质。

以下结合上述任意实施例提供一个具体示例:

由于通信协议在学术上是有穷状态系统,可采用模型检测(modelchecking)来挖掘分析网络协议脆弱性问题。模型检测是一种有限状态系统的形式化验证方法,它通过算法穷尽地搜索系统的有限状态空间,检查系统/模型的每个状态是否满足预期性质,整个过程就是状态空间的自动遍历过程。为了发现开放式最短路径优先(openshortestpathfirst,ospf)协议的脆弱性,构建了用来发现脆弱性分析的ospf模型,该模型由自治域具体拓扑、域内合法路由器、脆弱性分析路由器三个实体构成,主要包括主函数、路由器模型以及脆弱性分析模型。

路由器模型为了适应模型检测机制,仅涵盖了任意脆弱性分析所必须利用的协议基本操作,主要包括报文结构、逻辑关系、泛洪过程、反击机制与身份验证。最后利用有界模型检测器,例如,c语言的有界模型检测器(boundedmodelcheckerforcandc++programs,cbmc)工具对所构建的ospf模型进行检测,检测过程中在所需的验证位置加入断言(assertion),以判断该断言在所有执行路径下是否成立,并利用可满足性问题(satisfiabilityproblem,sat)求解器找到模型的一条错误执行路径,从而发现脆弱性分析。

一、模型检测与cbmc

(一)模型检测

模型检测是通过显式状态搜索或隐式不动点计算来验证有穷状态并发系统的命题性质。由于模型检测可以自动执行,并能在系统不满足性质时提供反例路径。模型检测可以应用广泛,如硬件控制器和通信协议都是有穷状态系统。很多情况下,可以把模型检测和各种抽象与归纳原则结合起来验证非有穷状态系统(如实时系统)。模型检测已被广泛应用于计算机硬件、通信协议、控制系统、安全认证协议等方面的分析与验证中。

模型检测可是用状态迁移系统(s)表示系统的行为,用模态逻辑公式(f)描述系统的性质。这样“系统是否具有所期望的性质”就转化为数学问题“状态迁移系统s是否是公式f的一个模型”,用公式表示为s╞f。对有穷状态系统,这个问题是可判定的,即可以用计算机程序在有限时间内自动确定。

(二)cbmc

当系统具有无穷多个状态转移或状态转移数目非常大时,计算并访问所有状态几乎是不可能的。有界模型检测通过有限次展开转移来解决这个问题,转移展开次数称为界。当展开界足够大且趋于无穷时,系统的有界模型等价于无界模型。有界模型检查中的展开界可由用户指定。如果存在比展开界长的反例,这时它只是作为一个错误发现的工具,而不能证明正确性。

二、ospf建模

为了发现ospf协议的脆弱性,构建了用来发现脆弱性分析的ospf模型,该模型由自治域具体拓扑、域内的合法路由器、脆弱性分析路由器三个实体构成,主要包括主函数、路由器模型以及脆弱性分析模型。

路由器模型为了适应模型检测机制,仅涵盖了任意脆弱性分析所必须利用的协议基本操作。下面的小节对ospf协议路由信息处理过程进行了详细的形式化描述,其中涵盖链路状态广播(link-stateadvertisement,lsa)生成、路由表计算以及泛洪过程,并给出了主函数、脆弱性分析路由器模型、路由器模型以及路由计算的伪码。为了表述简洁,本节并不包括所有模型的细节。

(一)模型符号定义

a表示ospf区域的集合;ai表示一个ospf区域;

a(r)表示路由器r所在区域集合;

r表示自治域(autonomoussystem,as)中路由器的集合;ri区域ai中路由器的集合;

n表示as中网络的集合;ni表示区域ai中网络的集合;

m表示自治系统边界路由器(autonomoussystemboundaryrouter,asbr)集合,mi表示区域ai中asbr的集合。

x表示要通告的外部网络集合,xm表示m通告的as外部网络;

dr(n)表示广播网n上的指定路由器;

b表示所有区域边界路由器(areaborderrouter,abr)的集合;bi表示区域ai内abr的集合;

v=r∪n,vi=ri∪ni;

li(aj)表示区域aj中的i类lsa的集合;

li(aj,r)表示区域aj中路由器r生成的i类lsa;

li(u,r)表示路由器r为路由器或网络集合u产生的i类lsa;

lsp(s,t)表示节点s到节点t的最短路径的长度;

t1(ai,r)表示路由器r在区域ai的域内路由表;

j(r)表示路由器r的所有邻居(邻居状态机完全邻接);

ji(r)表示r在ai内的所有邻居(邻居状态机完全邻接);

(二)路由模型

定义1ospf网络拓扑结构:

在ospf网络中,每一个区域ai用有向加权图g=<vi,ei>表示,ei为有向边的集合,表示路由器之间的连接或路由器与网络之间的连接。e-links是到外部网络的边集合,e-links={<m,xm>|m∈m},<m,xm>是m连接到的as外部网络xm的边集合。

定义2ospf功能模型:funcs={gen,flood,store,spf}

给定网络拓扑图asg和配置,对所有的路由器模型主要包括4种功能:lsa生成(generate,gen)、泛洪(flood)、存储(store)和路由表计算(spf)。

定义3lsa生成:gen={f1,f2,f3,f4,f5}

f1~f5是从网络拓扑到各类lsa的变换过程。

路由器r在ai内生成1类lsa及2类lsa,r为ni生成3类lsa,为mi生成4类lsa,为xr生成5类lsa分别表示如下:

1)

2)且r=dr(n),

3)

4)

5)

其中:ei+(r),ei+(n)分别表示路由器r、网络n在gi中的出边集合;

定义4lsa泛洪:

input=<i,l>表示从邻居路由器i收到lsa集合loutput=<o,l>表示向邻居路由器集合o发出lsa集合l。

1)

2)

3)

4)

5)

6)

说明:1)、2)是区域ai中1、2类lsa的泛洪过程,3)、4)是区域ai中3、4类lsa的泛洪过程,5)、6)是5类lsa的泛洪过程。输入邻居为r实际指r自己产生的lsa;1~4类lsa的泛洪限制在一个区域内,5类lsa的泛洪限制在as内。

定义4路由表计算:

通过asg计算可以生成各路由器的域内路由集、域间路由集和as外部路由集(为了表述方便,分别记t1,t2,t3)。

为使模型保持简洁,不会对全部路由表计算逻辑建模,那些决定lsa最终是否会影响路由表的机制才是所关注的重点。

首先认为r是可达的(最短路径树的根)。

随后,利用链路状态标识(identity,id)字段,在r的数据库中开始搜索r的lsa。需要注意的是,此时符合条件的lsa既有可能是有效合法的,也有可能是脆弱性分析路由器预先设计好的lsa。对于符合条件的lsa中每一条被通告的链路,用w表示链路另一端的邻居。假如一条对于w的lsa被找到,且包含返回r的链路,那么r的lsa即可被标记,且w在最短路径树中被认为是可达的。对每条可达路由执行此循环。

根据ospf标准,数据库中的三类汇总lsa对路由表产生影响当且仅当它的公告路由器字段包含有可达路由器的id。因此,仅当此条件成立时,的模型会对此种lsa做出标记。

(三)模型检测的主函数

该检测模型的主要函数是一个循环(loop),每次循环,迭代拓扑内任意路由器(包括脆弱性分析路由器)运行其程序一次。loop的次数作为模型检测的有界值,每次循环迭代被认为是一个周期。每一周期内每个路由器的泛洪计时器递减。

那些被认为影响路由表的lsa将被标记,为驻留在lsa数据库的每一条lsa记录周期数,主循环的最后部分是模型规定的断言。

在程序设计中,本示例的断言可是一阶逻辑(如一个结果为真或是假的逻辑判断式),目的是为了标示与验证程序开发者预期的结果,当程序运行到断言的位置时,对应的断言应该为真。若断言不为真时,程序会中止运行,并出现错误消息。

例如在一段程序前加入断言(先验条件),说明这段程序运行前预期的状态。或在一段程序后加入断言(后验条件),说明这段程序运行后预期的结果。下面是ospf模型主函数的伪码:

(四)脆弱性分析路由器模型

脆弱性分析路由器制造任意内容的lsa,脆弱性分析路由器模型中脆弱性分析路由器完全控制由它发出的虚假lsa。需要注意的是作为虚假lsa的受害者路由器并未提前被标识,它可以是合法路由器中的任何一个。模型检测在其搜索脆弱性分析的过程中将涵盖所有可能的虚假lsa,注意脆弱性分析可能由一个脆弱性分析路由器发出的一序列虚假的lsa构成,如下为脆弱性分析路由器模型伪码:

(五)路由器模型

在初始状态,每个路由器r具有由自生成的lsa构成的lsa数据库,同时,在这些lsa中每一条链路均被描述,lsa数据库中也存在一条lsa的链路连接回路由器r。即,存在从路由器r的邻居到r的一条链路,模型中需要这些链路是因为根据ospf标准,一条链路可被纳入路由表计算当仅当存在反方向链路。下面给出路由器模型伪码:

每个路由器都有一个洪泛计时器,用于确定在发起lsa前需要等待的周期数。当计时器为0时,该路由器可立即发起它自己的lsa。此后,计时器设置为最小间隔(minlsinterval),该最小间隔可为一个预定义的常量,用于确定下一次发起lsa之前需等待的周期数。每过一个周期计时器减1。

当一个路由器r收到一个lsa,首先检查其是否有效(格式正确且收自有效邻居)。若有效,则检查其是否存在于lsa数据库中。如果已有但较新,或此前不存在,则r洪泛此lsa。之后它会检查该lsa是否为自生成的。自生成lsa的公告路由器字段等于r的id。若是,反击机制将被触发,此lsa将不得入库。反击机制的延迟执行是因为洪泛虚假lsa的等级要高于发现自发起lsa。否则,r将此lsa添加进自己的lsa数据库中并触发路由表计算。计算逻辑必须被建模,因为并不是每个库中的lsa最终都会影响到路由表。

当路由器中存在满足下列三种条件的lsa,可以认定一次脆弱性分析是成功的:

lsa来自于脆弱性分析路由器;

lsa被标记,即,表示该lsa会影响到路由表计算

lsa计数器超出min_counter(min_counter是某个很大的数);最后一个条件确保了脆弱性分析是持续的,即未被反击机制所破坏。min_counter是一个预先定义好的常量,用于确定脆弱性分析的持续性。模型中,当一个由脆弱性分析路由器发起的lsa替换掉了同样是脆弱性分析路由器发起的“旧的lsa”,那么被替换掉的lsa的计数器的值会被复制到新的lsa上。这使得的模型能够找出脆弱性分析,因为脆弱性分析路由器会不断地改变一些用于混淆视线的虚假lsa实例。脆弱性分析路由器不间断地对路由表施加影响,同样也被认为是持续脆弱性分析的表现。

该详述作为断言编码在模型的主循环中,假如检测人员发现模型的状态与断言不符,那么一定是脆弱性分析路由器正在持续影响路由表计算,且在躲避反击机制。

模型检测器运行ospf模型,再现了如下脆弱性分析:

伪装的lsa脆弱性分析被找到,脆弱性分析路由器发送了两个lsa——一个触发器lsa和一个伪装lsa;此处的伪装lsa为前述无效lsa的一种。

击者以高于minlsinterval的速率,周期性地发送代表某个路由器的lsa。每一个被发送的lsa都携带了一个序列号,并按发送顺序递增。因此,延迟反击也被替换,每一个新实例相应延缓。结果就是,一个序列号大于min_counter的lsa出现在脆弱性分析对象的lsa数据库中,同时由于泛洪计时器的重置,反击从未发出。

在分析阶段,发现了能探寻新脆弱性问题的脆弱性分析。输出包含了一个执行路径用以描述上述脆弱性分析,脆弱性分析路由器发送的lsa是一个路由器lsa,其链路状态id等于受害者的id,但是公告路由器的值不同。

cbmc模型检查器根据模型中的断言检测出第一个反例后就会停止,为找出新的脆弱性问题,需要改进以下几点。

为避免接收伪装lsa脆弱性分析,更改了反击机制的触发条件,不仅较新的自发lsa实例会触发它,那些看起来与数据库存储的lsa一样的、其实是脆弱性分析路由器发起的lsa也会触发反击。伪装lsa也会触发反击。

为避免接收周期性注入脆弱性分析,把minlsinterval设置为0。这样反击不再延迟,因此脆弱性分析无法持续。

为避免接收新的脆弱性分析,在脆弱性分析路由器生成lsa时添加了一个判断条件,链路状态id域必须等于公告路由器域。如上所述,大多数易受脆弱性分析的供应商在其发布的补丁中多会设置此条件。

用纠正后的模型重新运行了cbmc,没有发现新的脆弱性分析。这表明,一旦上述条件被强化,脆弱性分析路由器将无法在不触发反击机制的情况下发出恶意lsa来影响路由表计算。

上述结果不能作为ospf已不存在其他缺陷的证据,因为忽略了与反击机制无关的ospf操作细节。另外,由于使用的是有界检测器,即无法探索模型的所有状态,因此上述结果不能作为反击机制中不存在其它缺陷的证据。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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