OSPF协议相关的漏洞和防范措施

OSPF协议相关的漏洞和防范措施 

OSPF使用协议类型89,因此你可以使用nmap协议扫描来判断OSPF,除非网络通过配置访问 
列表来不响应这些类型的查询。如下所示: 

root@test]# nmap -sO -router.ip.address.252 
Interesting protocols on (router.ip.address.252): 
Protocol State Name 
89 open ospfigp 

OSPF由于内建几个安全机制所以比起RIP协议安全的多,但是,其中LSA的几个组成部分也 
可以通过捕获和重新注入OSPF信息包被修改,JiNao小组开发了一个FREEBSD divert socket 
的LINUX实现并在它们的测试中使用到。 

OSPF可以被配置成没有认证机制,或者使用明文密码认证,或者MD5,这样如果攻击者能获得 
一定程度的访问,如他们可以使用如dsniff等工具来监视OSPF信息包和或者明文密码,这个 
攻击者可以运行divert socket或者其他可能的各种类型ARP欺骗工具来重定向通信。 

JiNao小组发现了有关OSPF的4种拒绝服务的攻击方法,下面是简单的说明: 

--Max Age attack攻击 LSA的最大age为一小时(3600) 

攻击者发送带有最大MaxAge设置的LSA信息包,这样,最开始的路由器通过产生刷新信息 
来发送这个LSA,而后就引起在age项中的突然改变值的竞争。如果攻击者持续的突然插入 
最大值到信息包给整个路由器群将会导致网络混乱和导致拒绝服务攻击。 

--Sequence++ 攻击 即攻击者持续插入比较大的LSA sequence(序列)号信息包,根据OSPF 
的RFC介绍因为LS sequence number(序列号)栏是被用来判断旧的或者是否同样的LSA,比 
较大的序列号表示 这个LSA越是新近的。所以到攻击者持续插入比较大的LSA sequence 
(序列)号信息包时候,最开始的路由器就会产生发送自己更新的LSA序列号来超过攻击者序列 
号的竞争,这样就导致了网络不稳定并导致拒绝服务攻击。 

--最大序列号攻击 

就是攻击者把最大的序列号0x7FFFFFFF插入。根据OSPF的RFC介绍,当想超过最大序列号的 
时候,LSA就必须从路由domain(域)中刷新,有InitialSequenceNumber初始化序列号。这样 
如果攻击者的路由器序列号被插入最大序列号,并即将被初始化,理论上就会马上导致最 
开始的路由器的竞争。但在实践中,JiNao发现在某些情况下,拥有最大MaxSeq(序列号)的 
LSA并没有被清除而是在连接状态数据库中保持一小时的时间。 

--伪造LSA攻击 

这个攻击主要是gated守护程序的错误引起的,需要所有gated进程停止并重新启动来清除 
伪造的不正确的LSA,导致拒绝服务的产生。这个攻击相似对硬件的路由器不影响并且对于 
新版本的gated也没有效果。 

上面的一些信息你可以参考http://www.ietf.org/rfc/rfc2328.txt和JiNao对OSPF的漏洞 
分析:On the Vulnerabilities and Protection of OSPF Routing Protocol (http://ww 
w.anr.mcnc.org/projects/JiNao/ic3n98.ps). 

nemesis-ospf能对OSPF协议产生上述攻击,但是,由于nemesis-ospf太多的选项和需要 
对OSPF有详细深刻的了解,所以一般的攻击者和管理人员难于实现这些攻击。并且也听说 
nemesis-ospf也不是一直正常正确的工作,就更限制了这个工具的使用价值。 

OSPF认证需要KEY的交换,每次路由器必须来回传递这个KEY来认证自己和尝试传递OSPF消息, 
路由器的HELLO信息包在默认配置下是每10秒在路由器之间传递,这样就给攻击者比较的大 
机会来窃听这个KEY,如果攻击者能窃听网络并获得这个KEY的话,OSPF信息包就可能被伪造, 
更严重的会盲目重定向这些被伪造的OSPF信息包。当然这些攻击少之又少,不光光是其难度, 
重要的是因为还有其他更容易的安全漏洞可以利用,谁不先捏软柿子. 

这里建议如果一个主机不要使用动态路由,大多数的主机使用静态路由就能很好的完成起功 
能。因为使用动态路由协议很会受到攻击,例如,几年以前gated软件就被发现有一个认证的 
问题。

本文转自NET130.COM

posted @ 2011-10-03 11:25  为极客而生  阅读(975)  评论(0编辑  收藏  举报