关于影响超600W设备的通用型路由循环漏洞分析

  • A+
所属分类:安全工具


2021年1月,来自补天的白帽子—清华大学(网络研究院)奇安信集团网络安全联合研究中心研究员报告了一种普遍存在的路由循环漏洞。补天平台以及国家信息安全漏洞共享平台(CNVD)对其进行了收录。其中包含了109个影响数十家路由器厂商设备的漏洞编号,影响近600万设备,攻击者可利用漏洞在任意网络位置发送精心构造的攻击数据包,实现拒绝服务攻击(DoS),最终使得目标路由器的可用性大大降低或完全丧失。数十家路由器厂商的部分或者全部支持IPv6功能的路由器设备均受漏洞影响。目前,各个被披露的路由器厂商已经陆续升级路由器固件修复了漏洞,建议用户以及相关路由器厂商确认是否受到漏洞影响,尽快采取修补措施。

在上篇推送中,补天平台及时发布漏洞预警建议用户及相关路由器厂商确认和修补漏洞。在本篇推送中,来自补天的白帽子将会对该路由循环漏洞的成因、利用方式、危害影响、解决方案做出详细的介绍。


0x01、漏洞简述


该路由循环漏洞存在于路由器设备的IPv6路由循环模块。攻击者可利用该漏洞通过发送精心构造的数据包,使得目标路由器及其上层运营商的路由器造成拒绝服务,影响目标设备的可用性。


0x02、背景知识


IPv6作为下一代网络协议,其在传承IPv4基本功能的同时,也带来了许多转变,包括巨大的地址空间、全球可路由的地址、全新的地址分配方式等等。在IPv6地址分配实践中,虽然不同的网络运营商采取不尽相同的分配策略,但IETF社区通过标准文档RFC 6177规定了当前的最佳分配实践:确保终端用户获得充足的地址资源,通常分配至少一个/64的前缀。

五大区域互联网注册中心,包括AFRINIC、APNIC、ARIN、LACNIC、RIPE NCC,在各自的地址资源分配文档中均遵循了该项实践。这意味着,在IPv6网络空间中,终端用户获得的地址通常不再是单个的128位地址,而是某个/64的前缀,然后结合自身生成的后64位标识符组成对应的128位地址,同时需要对这些前缀进行正确的使用和配置。

最新的研究成果[1],对来自中美印的12家知名网络服务提供商的IPv6分配策略进行了测试,结果表明该些运营商均遵循了上述IPv6地址最佳分配实践。


0x03、漏洞成因

关于影响超600W设备的通用型路由循环漏洞分析

图1:路由循环示意图


A、网络拓扑示意

新型的地址分配策略给予终端设备更充足的IPv6地址资源,同时也赋予终端设备更多的前缀管理职责。以图1为例,在一般的运营商宽带网络环境下:

作为单个终端设备,用户端路由器(CPE Router P),会从运营商路由器(Provider Router P)获得一个/64的前缀(WAN Prefix),生成WAN侧的IPv6地址(WAN Address),供自己的WAN侧上网使用;

 作为某个内部网络的网关路由器,用户端路由器会从运营商路由器获得一个长度小于64位的前缀(LAN Prefix)构建子网使用,图中以/60的前缀为例。在组建子网时,用户端路由器一般会选取某个/64的子网前缀(Subnet Prefix)来分配给子网共享使用。


B、路由循环漏洞成因

基于以上的网络拓扑,该路由循环漏洞可能有两种存在情形,下面将根据图1中的具体地址实例来分步详细进行说明。


情形1:漏洞由用户端路由器对WAN Prefix的使用不当导致。

1.用户端路由器获得WAN Prefix:2001:db8:1234:5678::/64。

2.用户端路由器将生成的64位后缀标识符和WAN Prefix结合形成WAN侧的地址WAN Address:2001:db8:1234:5678:IID。

3.用户端路由器在路由表中为WAN Address添加一条路由表项,指向自身WAN侧的网口。

4.WAN Prefix下的其他未被使用的地址(NX Address)在路由时将会被默认路由表项匹配,被转发给上层运营商路由器。


情形2:漏洞由用户端路由器对LAN Prefix的使用不当导致。

1.用户端路由器获得LAN Prefix:2001:db8:4321:8760::/60。

2.用户端路由器选择其中的某(几)个/64的前缀用以构建子网,即Subnet Prefix:2001:db8:4321:8765::/60。

3.用户端路由器在路由表中为Subnet Prefix添加一条路由表项,指向自身LAN侧的网口。

4.LAN Prefix下其他未被使用的前缀(Not-used Prefix)在路由时将会被默认路由表项匹配,被转发给上层运营商路由器。


对于上层运营商路由器而言,由于其将WAN Prefix和LAN Prefix均分配给用户侧路由器使用,在其路由表项中,该两个前缀的路由表项均被指向到对应的用户侧路由器。运营商路由器对于前缀的处理正确恰当。


C、路由循环漏洞真实状态

用户侧路由器对于IPv6前缀使用的不当(实际上是由IPv6地址和路由模块的处理错误导致的),形成了图1中相互矛盾的运营商路由状态和用户侧路由状态,产生了如下的路由循环漏洞

1.在真实的数据包转发过程中,某个去往WAN Prefix下的不存在地址的数据包和去往LAN Prefix下未被使用前缀下地址的数据包,将会被运营商路由器转发到用户侧路由器;

2.而存在该路由循环漏洞的用户侧路由器通过默认路由表项匹配数据包,将其转发回给运营商路由器;

3.运营商路由器再次将数据包转发给用户侧路由器;

4.于是该数据包在二者之间反复循环转发,直至IPv6的Hop Limit跳数耗尽,生成超时错误消息(ICMPv6 Time-exceeded message),造成一定程度的流量放大。

0x04、漏洞利用

根据上述漏洞成因,攻击者可以向受害者路由器的某个前缀下的不存在地址或者未被使用子网前缀下的地址发送数据包(以IPv6为网络层协议的任意数据包均可,包括ICMPv6、TCP、UDP),由于IPv6地址的全球可路由特性,数据包可以被路由转发到对应的路由器。

假设攻击者和受害者路由器间的网络跳数为p,那么攻击数据包最多可以被转发(255-p)次,造成放大倍数为(255-p)的拒绝服务攻击。实际上,攻击者可以通过伪造源地址发包,将源地址指向某个“不存在的地址”,使得路由器产生的超时消息回复数据包也被转发若干次,提升放大倍数,增加拒绝服务攻击的危害。


0x05、漏洞影响

该路由循环漏洞可以被用来进行流量放大,造成一定程度的拒绝服务。通过分析漏洞影响的广度和深度,我们在这里给出漏洞所导致的影响下限

1.至少有20家路由器厂商的部分或者全部路由器产品和4大开源路由器操作系统受到该漏洞的影响。

2.近600万真实设备受到该漏洞的影响。


A、首影响的厂商

通过对来自20个路由器厂商的路由器设备和4大路由器开源操作系统进行真实测试(抓取数据包分析+查看路由表+分析源码),我们确定了来自如下20个厂商的至少99款设备和4个路由器开源操作系统均存在该漏洞。


表1:受路由循环漏洞影响的厂商及其设备数量

关于影响超600W设备的通用型路由循环漏洞分析


B、受影响的真实设备数量

当数据包跳数Hop Limit减少到0时,对应的路由器会产生超时错误消息回复。因此超时错误消息数据包可以作为观测漏洞存在的一项指标。然而,正常的数据包可能会由于真实跳数的过大而导致超时错误消息数据包的产生。因为,研究[1]通过综合数据包的跳数和真实测量,给出了相关的测量分析指标,经奇安信技术研究院天罡平台的大规模测量,近600万真实设备受到漏洞的影响,涵盖3,877个AS和132个国家。


表2:受漏洞影响的AS和国家(基于BGP前缀的随机扫描)关于影响超600W设备的通用型路由循环漏洞分析

表3:受漏洞影响的真实设备数量(抽样扫描12家运营商的IPv6网络)

关于影响超600W设备的通用型路由循环漏洞分析


0x06、解决方案

该路由循环漏洞的成因是路由器在处理地址时,沿用了传统方式对于单个地址处理的策略,而忽视了IPv6地址分配的不再是“单个地址”,而是“多个前缀”,导致未被使用的地址和相关前缀不存在具体的路由表项被匹配。同时IPv6全球可路由的特性,使得攻击者可以向任意前缀下的地址发包,进一步降低了漏洞利用的门槛。

因此,路由器设备IPv6的地址和路由模块必须将分配给自身的地址和前缀指向自身,或者将未使用的地址和前缀的路由表项配置为不可达,来避免漏洞的出现。


0x07、结语

该通用型路由循环漏洞的出现,一方面提示路由器厂商需要认真的处理路由器相关产品的IPv6功能模块,另一方面也警示学术界和工业界:虽然IPv6的应用性在不断提升,其安全性更需要得到广泛和深刻的关注和研究。本文的研究目的也在于此!

关于实验测量的具体细节和漏洞结果的相关分析可进一步查看文末的论文。另外,相关测试工具已被集成到作者开发的XMap扫描器中,欢迎试用!

0x08、参考文献

[1] Xiang Li, Baojun Liu, Xiaofeng Zheng, Haixin Duan, Qi Li, Youjun Huan. 2021. Fast IPv6 Network Periphery Discovery and Security Implications. In Proceedings of the 2021 IEEE/IFIP International Conference on Dependable Systems and Networks (DSN ‘21).

论文链接:

https://idealeer.github.io/publication/dsn21/

开源工具链接:

https://idealeer.github.io/project/xmap/

关于影响超600W设备的通用型路由循环漏洞分析

关于影响超600W设备的通用型路由循环漏洞分析
分享、点赞、在看,一键三连,yyds。
关于影响超600W设备的通用型路由循环漏洞分析


点击阅读原文,加入社区,获取更多技术干货!

本文始发于微信公众号(补天平台):关于影响超600W设备的通用型路由循环漏洞分析

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: