关于OSPF路由协议漏洞的说明
- 2024-07-11 05:05:42
- 来源:互联网
- 在手机上看
扫一扫立即进入手机端
OSPF路由协议还有很多值得我们学习的地方,这里我们主要介绍OSPF路由协议漏洞的说明。OSPF是动态连接状态路由协议,其保持整个网络的一个动态的路由表并使用这个表来判断网络间的最短路径,OSPF路由协议是内部使用连接状态路由协议,协议通过向同层结点发送连接状态信息(LSA)工作。
当路由器接收到这些信息时,它就可以根据SPF算法计算出到每个结点的最短路了。其他相临路由器通过使用OSPF路由协议的Hello协议每10秒发送一个问候包给224.0.0.5,然后接收这些路由器发回的信息。一个OSPF路由协议的hello信息包头可以通过iptraf来嗅探到,如下所示:OSPF hlo (a=3479025376 r=192.168.19.35) (64 bytes) from 192.168.253.67 to 224.0.0.5 on eth0。192.168.253.67边界路由器发送一个helo信息包给多播(224.0.0.5)来告诉其他路由器和主机怎样从192.168.19.35联系区域a(a=3479025376)。一旦路由器接受到Hello信息包,它就开始同步自己的数据库和其他路由一样。
OSPF协议相关的漏洞和防范措施
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初始化序列号。这样如果攻击者的路由器序列号被插入最大序列号,并即将被初始化,理论上就会马上导致最开始的路由器的竞争。但在实践中发现在某些情况下,拥有最大MaxSeq(序列号)的LSA并没有被清除而是在连接状态数据库中保持一小时的时间。
伪造LSA攻击
这个攻击主要是gated守护程序的错误引起的,需要所有gated进程停止并重新启动来清除伪造的不正确的LSA,导致拒绝服务的产生。这个攻击相似对硬件的路由器不影响并且对于新版本的gated也没有效果。nemesis-ospf能对OSPF路由协议产生上述攻击,但是,由于nemesis-ospf太多的选项和需要对OSPF有详细深刻的了解,所以一般的攻击者和管理人员难于实现这些攻击。并且也听说nemesis-ospf也不是一直正常正确的工作,就更限制了这个工具的使用价值。
OSPF认证需要KEY的交换,每次路由器必须来回传递这个KEY来认证自己和尝试传递OSPF消息,路由器的HELLO信息包在默认配置下是每10秒在路由器之间传递,这样就给攻击者比较的大机会来窃听这个KEY,如果攻击者能窃听网络并获得这个KEY的话,OSPF路由协议信息包就可能被伪造,更严重的会盲目重定向这些被伪造的OSPF路由协议信息包。当然这些攻击少之又少,不光光是其难度,重要的是因为还有其他更容易的安全漏洞可以利用,谁不先捏软柿子。这里建议如果一个主机不要使用动态路由,大多数的主机使用静态路由就能很好的完成起功能。因为使用动态路由协议很会受到攻击,例如,几年以前gated软件就被发现有一个认证的问题。
关于使用IRPAS对CDP和IRDP攻击
IRPAS的cdp程序主要对发送CDP (Cisco router Discovery Protocol)消息给CISCO路由器并对内部网络段产生拒绝服务攻击,发送一些垃圾字符就会导致路由器重新启动或者崩溃。它也能作为欺骗来使用,为其他更危险的程序打开方便的大门,一种可能的攻击场景:如使用cdp来使路由器停止服务,然后使用irdp或者irdresponder工具发送高优先值来通知一新的路由器,这样如果我们的目标路由器不能与被拒绝服务攻击而停止服务的通信,新的路由器的高优先值就会被采用,如果攻击者设置的这个值被成功采用的话,攻击者就能在他们的系统中轻松插入通信路径。
这种类型的攻击也可以应用在某些配置了使用IRDP协议的主机,如WINDOWS98默认情况下配置使用IRDP,WINNT需要手工配置支持IRDP环境,并在启动的时候广播3个ICMP Router Solicitation messages(ICMP路由请求消息)。