2026《OSPF协议脆弱性利用技术分析概述》1700字.docxVIP

  • 2
  • 0
  • 约2.23千字
  • 约 3页
  • 2026-02-01 发布于湖北
  • 举报

2026《OSPF协议脆弱性利用技术分析概述》1700字.docx

OSPF协议脆弱性利用技术分析概述

在对RIP协议的脆弱性进行模拟分析后,不由得想起相对RIP更加先进、安全的链路状态路由协议OSPF。为了全方面完善距离矢量路由协议RIP而诞生的OSPF是否也有漏洞能被恶意利用呢?

近年来,以色列研究人员Nakibly提出了虚幻路由器远程假邻接脆弱性利用的思想,这种新型的漏洞利用方法对全球范围内运行OSPF的网络造成严重威胁。

两台路由器通过网络接口连接到相同的网络环境中时,这两台路由器就互为邻居关系。OSPF在获取链路状态、建立自己的路由表前的先决条件便是建立OSPF邻居关系。在两台路由器建立邻居状态后,才会进一步建立更上层的关系:邻接关系。只有互为邻接关系的路由器才会相互发送并处理LSU。

路由器之间邻接关系的建立需要Hello、DBD、LSR、LSACK报文的共同参与。

他们分工各有不同:Hello报文用来维护和建立邻接关系;DBD报文用于路由器间同步链路状态数据库的索引;LSR用于向邻居请求自身没有的链路状态通告REF_Ref26773\r\h[11];LSU用于在已经建立起邻接关系的路由器之间相互发送链路状态信息;LSACK用于保证OSPF协议中LSU报文的可靠性。

OSPF邻接关系的建立需要经过五个步状态:

Init状态:路由器之间通过相互发送Hello报文建立邻居关系。在此过程中,为了减少对带宽的占用,在NBMA或广播网络中OSPF会选取指定路由器(DR)和备份路由器(BDR),选取成功后,所有邻居只和指定路由器/备份路由器交换LSA信息;

Exstart状态:在该状态中,路由器双方通过互相发送DBD报文进行主从路由器的选取,主路由器将决定DBD报文交换的序列号;

Exchange状态:在路由器间建立主从关系后,双方进行DBD数据库信息的交换;

Loading状态:根据对方发送的DBD报文内容,向邻接路由器发送LSR请求对方掌握的链路状态信息并等待LSU报文的回应;

FULL状态:在成功经历上述过程后,OSPF;邻接关系建立完成。

无论是在邻接关系的建立过程中还是链路状态发生改变发送LSA时,OSPF链路质量的保证,是由LSU报文的发送方确立的。因此在收到LSU报文的情况下,所有路由器都要向LSU报文的发送方回复LSACK报文,如若没有发送,则LSU的发送方会在默认5秒的时间间隔内再次发送LSU报文。

在OSPF邻接关系的建立过程中,研究人员发现其中存在假邻接的安全缺陷,使邻接关系可以跳过Loading状态直接进入Full状态REF_Ref26828\r\h[12],具体过程如图5.1所示

图5.1脆弱性利用者通过假邻接安全隐患建立假邻接关系

恶意攻击者以实际不存在的虚幻路由器向目标路由器发送伪造的Hello报文,迫使目标路由器进入2-way状态以继续建立邻接关系。在邻接关系建立完成后,该恶意用户就可以继续利用虚假的身份和目标路由器进行DBD报文的交换,在此过程中,恶意用户可以通过构造含有特殊字段的报文使得其所使用的虚幻路由器发出大于远程目标路由器ID字段的虚假DBD报文,以此确保该虚幻路由器被选举为主路由器(Master)。由于从路由器对主路由器的通讯过程中没有验证机制,所以目标路由器就会与虚幻路由器建立起邻接关系。这一过程的实现,漏洞利用者仅需构造3条DBD报文便可实现第一条DBD报文中的I、M、MS位写入1,第二条DBD报文M、MS位写入1,第三条DBD报文MS位写入1。其中I位(初始位,Initial)置1代表第一条DBD报文;M位(未终止位,More)置1表明还有后续DBD报文,当前DBD报文并非最后一条DBD报文;MS位(主/从位,Master/Slave)置1则表明是主路由器发出的DBD报文REF_Ref26936\r\h[13]。在Exstart状态下会进行主从路由器的选取,其中路由器ID更大者选举为主路由器。随后脆弱性利用者可以继续伪造LSA,通过LSU向受害者路由器单播发送。在该LSU中,脆弱性利用者随意宣称虚幻路由器直连的网络通报,就可以实现流量转移,甚至是路由黑洞的效果REF_Ref27053\r\h[14]。

在邻接关系建立过程的Loading状态中,漏洞利用者可以在目标路由器和虚幻路由器互相发送LSU过程中,伪造LSA报文发送至目标路由器,借此对目标路由器的路由表进行篡改。如图5.2所示,恶意用户只需伪造图中实线所示的报文即可,虚线所表示的报文不会影响Loading状态的进行。

图5.2虚幻路由器与目标路由器在假邻接关系建立Loading状态交换报文

一般情况下,运行OSPF的邻居路由器之间每相隔10秒会相互发送Hello包用以维持邻居关系

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档