APP下载

基于OSPF协议的漏洞攻击分析

2015-03-15张洋洋刘丹丹

通信电源技术 2015年1期
关键词:攻击者路由器报文

张洋洋,刘丹丹

(河北科技大学信息工程学院通信与信息系统,河北石家庄050000)

0 引 言

OSPF(Open Shortest Path First)是一种内部网关协议[1],它是网络中使用极其广泛的域内路由协议。OSPF是通过传递、交换路由器的链路状态来得到全网的路由信息,生成一张网络有向拓扑图,由最小生成树算法(SPF)来得到路由表。OSPF协议和距离矢量协议相比,一个主要的改善在于它的快速收敛,这使得OSPF协议可以支持更大型的互联网络。同时,作为网络最为核心部分的路由协议的安全受到越来越多研究人员的关注。

1 OSPF协议

1.1 OSPF的简介

OSPF协议是运行在AS(Autonomous System)内部的网关协议(IGP),1987年由IETF开发[2]。OSPF是典型的链路状态路由协议,在链路状态路由协议中,每个路由器都拥有一张记录整个网络拓扑信息的路由表,路由器通过周期性的泛洪链路状态更新信息,来建立维持一个链路状态数据库,该数据库中存放的是路由域中相应链路的状态信息,OSPF路由器正是通过这个数据库计算出其OSPF路由表的[3]。

OSPF用IP报文直接封装协议报文,协议号为89[4]。OSPF协议中,定义了五种报文。这五类协议报文分别是:①Hello报文,用于动态发现邻居、确认邻居间的双向连接、维持邻接关系及指派路由器的选举等。②DD(DatabaseDescription)报文,描述拓扑数据库内容,此类信息在初始化邻接关系时交换。③LSA(Link State Request)报文,是向主路由器发送链路状态请求报文,请求主路由器向其提供较新的LSA。LSU()报文,是对链路状态请求分组的响应,通常也用于LSA的发布。④LSA()报文,确认链路状态更新分组。⑤OSPF数据包的开始部分是长度为24字节的包头,格式如图1所示。

图1 OSPF包头格式

1.2 OSPF的安全性分析

1.2.1 验证机制

OSPF路由协议的每一个报文都添加了验证机制,在OSPF的所有报文中都有一个32bit长度的验证(Authentication)字段[5],另外在验证字段前边另有16bit的验证类型(Authen Type)字段用于标识验证字段的类型,这两者一起组成了OSPF报文的验证机制。验证类型可以基于通用接口(或通用网络/子网)进行配置,置0为空验证,即在路由交换中不需要任何验证;置1为简单口令验证,可防止路由器在不提防的情况下加入到路由域;置2则为加密验证。所有其它值,是由IANA预留的分配。

1.2.2 可靠的泛洪机制

OSPF路由协议采用了一种叫做泛洪(flood)的机制来保证区域内各个路由器的链路状态数据库同步。每一个区域内的路由器都会生成LSA来描述特定的网络拓扑信息,而链路状态更新报文(LSU)则提供了泛洪的机制。为实现可靠的泛洪,OSPF路由协议规定:路由器在收到来自其它路由器的一个或多个链路状态通告后,必须向其来源路由器发送一个确认应答(Link State Acknowledgment Packet,LSAk),告知已经收到LSA。因而OSPF的泛洪算法被认为是可靠的,实践也很好地证明了这一点。

1.2.3 分层路由机制

OSPF通过将自治系统划分成若干个区域,若干个区域的ABR又组成一个骨干区域。区域内部的路由不为外部所知道,路由选择时区域内路由要优先于区域间路由,这使得一个OSPF区域内的威胁很难影响到另外一个区域内部的通信。这一设计大大减少了路由表的大小、带宽和路由计算的资源。同时也保障了OSPF路由协议的稳定性,使得OSPF更加的健壮和安全。

2 OSPF的漏洞及常见攻击

2.1 OSPF的自身机制漏洞[6]

OSPF内部机制的设计难免还是留下了漏洞,如果被攻击者利用,将对网络产生极大的威胁。本小节从OSPF路由协议自身机制入手,总结其中存在的安全漏洞。

2.1.1 局部影响全局

OSPF路由协议是通过链路状态信息的泛洪来使网络中每个路由器获取整个网络的拓扑信息的,路由器在链路通告过程中不但负责生成自身的链路状态信息而且要转发从相邻路由器获得的其他路由器的链路状态信息。所以当OSPF路由器受到攻击出错后,对于局部的影响可能仅仅是产生错误的链路状态信息。但是,由于OSPF自身缺乏端到端的认证机制,这使得链路状态信息在转发过程中面临被篡改的威胁,如果攻击者攻陷OSPF路由域内的某一路由器,他不仅可以操纵生成错误的该路由器的链路状态信息,还可以篡改该路由器收到的其它路由器发布的链路状态信息,这样局部受到的攻击将影响整个OSPF路由域。

2.1.2 远程攻击漏洞

OSPF路由器之间通常采用224.0.0.5和224.0.0.6这个两个组播地址作为目的地址进行通信,但为了实现OSPF协议中的一些机制,OSPF路由器也支持以自身端口为目的地址的报文。这种对单播报文的支持给OSPF路由域外的攻击者留下了漏洞,攻击者无需接入OSPF路由域,通过单播报文在域外也可以对OSPF路由域内的路由器进行攻击。

2.1.3 自我纠错机制漏洞

OSPF泛洪机制中提供了自我纠错能力,当区域内某一路由器伪造或篡改LSA并传播来污染网络时,而该LSA的父亲(即与该LSA中的路由器号码相同的路由器)收到该LSA时,会发现该LSA的信息与真实信息不符,该路由器将生成新的LSA,将其传播到网络中,使被污染的路由器将错误信息丢弃。上述机制使得OSPF具有一定的自我纠错能力,可以从一定程度上抵御不良路由信息。

这种自我纠错机制也存在漏洞,错误的链路状态信息可以触发自我纠错机制,使得网络中存在大量的链路状态信息更新流。如果攻击者快速不断地向网络中注入错误地链路状态信息,将引发网络中大量的链路状态信息更新流量,占用网络中的带宽,影响正常的报文转发服务。

2.1.4 支持外部路由信息

OSPF路由协议支持外部路由信息,这些路由信息来自BGP、RIP等路由协议,通过再发布的方法引入到OSPF路由域内。OSPF路由域内的路由器的外部路由信息的可靠性无法进行验证,其可靠性完全依赖于起源路由协议的可靠性。如果攻击者攻陷OSPF路由域内的AS边界路由器或成功伪造成AS边界路由器,攻击者可以通告低开销的外部网络链路状态信息,使得OSPF路由域内发往域外的报文不能够正确地被转发。

2.2 OSPF常见的攻击

2.2.1 重放攻击[7]

(1)Hello报文的重放攻击。Hello报文中列出最近发现的路由器,如果攻击者重放Hello包给该报文的产生者,产生者不能在列表中查找到自己,则认为该链路不是可双向通讯的,将设置邻居的状态为Init状态,阻止建立邻接关系。

(2)LSA的重放攻击。攻击者重放一个与拓扑不符的LSA,并泛洪出去,那么该LSA就会被认为比当前的新。某个路由器接收到后就会触发相应的SPF计算。当源路由收到这个LSA时,自身会泛洪一个具有更高序列号的真实LSA,势必会触发各路由器的SPF计算,频繁地计算会导致路由器性能的下降。

2.2.2 最大年龄攻击(Max Age attack攻击)

路由域中路由器的链路状态数据库中的每一条LSA都有生存时间,路由器启动计时器来控制它们。当计时器被触发时,说明在规定存活时间内该路由没有被刷新,该路由己经失效,此时路由器将该LSA中的Max Age字段置成最大值,并将其泛洪到路由域中,通告其它路由器该路由信息已经失效。当该LSA的源生成者收到该LSA时,会发起一个新的Max Age为零的LSA来更新路由域。利用这个漏洞,攻击者可以通过篡改网络中LSU报文,将其中包含的LSA中的Max Age字段设为最大值,这将引起路由域的不稳定。虽然在泛洪机制中,源路由器可以通过自卫操作来抵抗这种攻击,但是如果攻击者周期性地进行这种攻击,会导致网络服务质量严重下降。

2.2.3 最大序列号攻击

攻击者通过修改LSU报文中的Sequence Nu mber字段来实现攻击。在路由器收到两条相同路由信息时,通过比较Sequence Number来判断哪个比较新。攻击者可以通过截获LSU报文,将其中Sequence Number字段作加一操作,并将链路代价改为比较大的值。这将使得路由器接收伪造的路由信息,并通过泛洪机制将错误路由信息向网络中扩散。同样地,在源路由收到错误路由信息进行自卫之前,网络将受到影响。

2.2.4 路由器链路状态通告攻击[8]

攻击者通过伪造、篡改或删除LSU报文中的路由器链路状态通告,将直接影响网络中路由器计算路由表的结果。特别地,如果攻击者模拟傀儡路由器,并将伪造的路由器链路状态信息中的Ebit置为1,可以实现对网络中路由器的欺骗,使它们相信该傀儡路由器为AS边界路由器,这样攻击者进而可以利用傀儡路由器的身份伪造域外路由信息。攻击者可以通告低开销的外部网络链路状态信息,使得OSPF路由域内发往域外的报文不能够正确地被转发,从而可以获取网络中用户的通信信息。

3 结束语

在熟悉OSPF路由协议运行机制的情况下,本文从四个方面对OSPF路由协议的安全性进行了分析,在此基础上发现了OSPF的四个自身机制的潜在漏洞,并展开全面的论述。最后结合这些潜在漏洞,提出了有针对性、可行的攻击方法,并对不同的攻击方法造成的网络危害进行了分析。

[1] Emanuele Junes.OSPF security vulnerabilities analysis[Z].Internet draft,draft-ietf-rpsec-ospf-vuln-00.txt,2004.

[2] 杨 静,谢 蒂,王 雷.OSPF路由协议的安全分析及其漏洞防范[J].济南:山东大学学报,2003,33(5):550-553.

[3] 陈海燕,季仲梅,李 鸥,等.OSPF路由协议安全性分析及其攻击检测[J].计算机信息,2005,21(5)-230-231.

[4] 钱志军.OSPF路由协议安全性研究[D].大庆:大庆石油学院,2007.

[5] 刘魁星,汪斌强,贾 娟.OSPF路由协议安全性分析与研究[J].电视技术,2007,31(2):49-51.

[6] 康 威.OSPF路由协议安全性分析与研究[D].北京:北京邮电大学,2010.

猜你喜欢

攻击者路由器报文
基于J1939 协议多包报文的时序研究及应用
买千兆路由器看接口参数
维持生命
路由器每天都要关
路由器每天都要关
低轨星座短报文通信中的扩频信号二维快捕优化与实现
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
正面迎接批判
正面迎接批判