1,2.天津航天中为数据系统科技有限公司天津300450;
1,2.航天恒星科技有限公司北京100089
摘要:路由器在实现网络数据的转发前首先需要配置网络路由信息,配置的方法主要有静态配置和动态配置两种,静态路由配置需要人为地逐条在各路由器中添加,配置较为烦琐,比较适合网络结构相对稳定的小型网络,不能自动适应网络拓扑结构的改变。动态路由配置后期无需人工干预,通过各自的路由算法能够自动适应网络拓扑结构的改变,但对系统资源的占用高于静态路由配置。常用的动态理由配置协议主要有RIP、OSPF、IGRP、BGP等。其中RIP、OSPF、IGRP是内部网关协议,一般位于一个自治系统内部,具有统一的自治系统号。BGP是外部网关协议,是自治系统间的路由协议。而RIP协议由于配置简单,系统开销较小,因此在小型网络中通常会使用RIP作为路由协议。但是RIP协议其自身的安全漏洞会给网络的正常运行带来一定的安全隐患,因此在使用RIP协议的时候,需要做好相应的安全防范措施。
关键词:RIP;路由协议;漏洞
引言:
RIP协议由于实现和配置简单、占用系统资源较小等优点被广泛应用于企业内部网络中。现如今网络安全问题日益突出,在采用RIP协议部署企业网络的同时也需要充分考虑RIP协议自身的不足,采取相应的措施来保障网络信息的安全。
1.RIP协议工作原理
1.1工作原理
RIP协议是应用较早、使用较普遍的内部网关协议,比较适合在小型同类的一个自治系统内的路由信息的传递。它是基于距离矢量算法的协议,根据RFC1058、RFC2453等文件的规范标准,该协议使用跳数(metric)来衡量到达目标网络的路由距离。RIP协议在实现时作为路由设备系统中的一个常驻进程,负责从所处网络的其他路由器接收路由信息,更新维护本地的路由表,保证IP层在转发报文时能使用正确的路由。同时,它还负责广播本地的路由表中的路由信息,通知与其相邻的路由器进行路由表的更新。RIP协议在TCP/IP协议族中是位于UDP协议之上的一个应用层协议,路由器借助RIP协议交换路由信息,从而实现属于网络层的路由规则的改变。RIP协议所接收的路由信息都是封装在UDP协议的数据包中的,使用UDP的520号端口接收来自相邻路由器的路由表信息,并对本地的路由表进行相应的修改,同时通告其他的路由器,通过上述方式实现全局路由的有效。RIP协议是距离向量路由选择协议,从一个路由器到与连接的网络的距离定义为1,因此每经过一个路由器,其跳数会自动加1。任何距离向量路由协议都存在以下问题。每个路由器不知道网络的全局情况,它必须依靠相邻的路由器来获取网络的可达信息。而该路由更新信息在网络中传播慢,存在慢收敛的问题。RIP协议采用计数到无穷大机制来防范这一点,RIP协议中规定其最大的跳数为15,即当经过的路由器的个数超过15个依然不能到达目标网络,即认为上述网络不可达。
1.2报文格式
目前,RIP协议广泛应用的是V1和V2两个版本,V1版本是有类别路由协议,只支持以广播方式发布协议报文,没有掩码信息,无法支持路由聚合,也不支持不连续的子网。V2版本是无分类的路由协议,可以携带掩码信息,支持路由聚合和CIDR。支持在广播报文中选择到最优下一跳的地址,支持简单鉴别和组播。
2.RIP协议漏洞利用
根据上述RIP协议原理和报文结构的特点,可以从以下两个方面进行漏洞的利用:一是运行RIP协议的路由器默认没有采用认证机制,即路由器可以接收来自任何相邻设备的路由信息,而无需验证对方的身份,这就给恶意攻击者实施攻击带来便利。二是由于RIP协议下层使用不可靠的UDP协议来进行传输,而UDP协议是一种无连接的、不可靠的传输层协议,在网络会话过程中没有报文时序控制机制,相比TCP报文的时序验证机制安全性较差。在现有的网络报文结构中,基于UDP的报文无法扩充身份验证和报文时序验证机制。恶意攻击者在构造基于UDP的虚假RIP报文数据包时无需考虑当前UDP报文的时序问题。综上所述,运行RIP协议的网络存在一定的安全隐患。若该网络中存在恶意用户,向网络中发送虚假的路由更新信息,则接收该错误更新信息的路由器则会将该错误路由条目在本地进行存储更新,网络层的IP数据包将按照错误的路由信息进行转发,则有可能造成信息的丢失或泄露,给用户造成一定的损失。
2.1RIP路由欺骗信息场景构造
基于上述分析,可以搭建如图1的网络拓扑场景。分别对三个路由器的各个接口进行相应的IP地址配置。
图1.RIP路由欺骗场景:
2.2基于Scapy的RIP路由欺骗报文构造
攻击计算机利用Wireshark等工具可以从捕获的数据报中分析出R1路由器发出的路由更新报文,如图1所示:
图2.捕获R1发送的路由更新报文:
3.RIP协议防范措施
通过上述分析可以看到利用RIP协议漏洞进行路由欺骗的严重后果,恶意用户在窃取敏感信息的同时有可能导致网络的瘫痪,为避免造成这种后果,可以采用以下措施进行防范。
3.1使用RIP报文验证机制
在RIPV2协议报文中配置验证字段,其使用20Bytes用于存储验证字段。1)0xFFFF:验证标志,该值表明路由表信息需要验证通过后才能交换。2)AuthenticationType:验证类型,当值为0x0002时表明采用明文验证。3)AuthenticationData:验证信息,使用16个Bytes用于存储明文密码字符。采用验证信息的RIPV2报文在路由器之间交换路由信息就必须先通过身份验证,身份验证成功后,路由器之间才能交换路由表信息;如果身份验证不成功,则路由器之间无法交换路由表信息,使得恶意用户无法直接攻击路由器进行路由欺骗[1]。
3.2采用PPP验证机制
由于RIP协议的路由表信息交换是使用UDP报文进行传递的,UDP报文本身无法扩充身份验证及报文时序验证机制,但是UDP报文是封装在IP数据报中的,IP数据报的传递需要借助于数据链路层的协议,可以通过启用数据链路层上PPP协议的身份验证机制,采用PAP或CHAP身份验证机制,使得路由器之间的数据交换在数据链路层上的连接是安全的。通过下层链路的安全连接间接保证RIP路由信息交换的安全。若恶意攻击者试图欺骗目标路由器,则必须与目标路由器在链路层上通过PPP的协议认证,这就给恶意攻击者带来了一定的难度[2]。
结论:
简而言之,RIP协议由于配置简单、占用系统资源小等优点被广泛应用于小型网络中。但由于其自身漏洞,可能存在路由欺骗等问题。通过介绍RIP协议的运行原理、协议的报文结构、RIP协议的路由欺骗场景搭建、基于Scapy的RIP路由欺骗报文构造等方面,分析了RIP协议的安全隐患,并对此问题提出了相应的安全防范措施。
参考文献:
[1]孙光懿.基于GNS3的路由综合仿真实验设计与实现[J].伊犁师范学院学报,2017(4):82-88.
[2]刘向东,寇清华,张晓蕊,等.RIP协议分析及其实验的设计与实现[J].实验室研究与探索,2019(1):122-125.