原文链接:5Ghoul: Unleashing Chaos on 5G Edge Devices
译者:知道创宇404实验室翻译组
本文中,我们讨论了一个名为 5Ghoul 的漏洞组详细信息。这一系列漏洞存在主流芯片组制造商——高通(Qualcomm)和联发科(MediaTek)——生产的 5G 移动网络调制解调器的固件实现中。由于在这些产品中采用了易受攻击的 5G 调制解调器,许多支持 5G 的商用产品,如智能手机、客户端设备(CPE)路由器和 USB 调解器,可能受到影响。
此外,我们还发现了 12 个新的漏洞,其中 10 个影响高通和联发科的 5G 调制解调器。在这十个漏洞中,有三个被评估为高危。为了评估受影响的智能手机型号数量,我们开发了一个爬虫程序,通过调查我们发现市面上超过 710 种智能手机型号可能受到这些漏洞的影响。由于调制解调器的固件代码通常在不同版本之间共享,实际受影响的型号数量可能更多。同时我们还将对如何利用 5Ghoul 漏洞中断和冻结智能手机和 CPE 路由器上的 5G 连接进行详细演示。
移动通信在我们的日常生活中不可或缺,5G 网络的出现为物联网(IoT)、虚拟现实、医疗和自动化行业等关键领域的低延迟通信带来了新的机遇。
然而,5G 网络中的潜在漏洞可能会破坏其安全性的信任,因此在部署之前需要对 5G 协议栈进行全面验证。在此背景下, 5Ghoul 展示了旗舰 5G 调制解调器中存在的实施级漏洞,从而凸显了对专门用于测试 5G 设备稳健性的工具和技术的需求。此外,5Ghoul 漏洞将安全漏洞精确定位到最早的协议解码和处理,进一步强调了验证早期5G通信安全性到数据链路协议(OSI第2层)的要求。
对 5G 系统架构的描述涵盖了其三个主要组成部分:gNodeB(gNB,类似于传统蜂窝网络的基站)、用户设备(UE,如智能手机和平板电脑)和核心网络。核心网络在 5G 架构中扮演着控制和管理的核心角色,负责各种网络功能,包括身份验证、安全性、移动性管理等。
本文还将对 5G UE 设备与合法 gNB 之间的连接过程进行详细展示。此过程涉及多个协议层,包括无线资源控制(RRC)、非接入层(NAS)、介质访问控制(MAC)、分组数据汇聚协议(PDCP)和无线链路控制(RLC)。这些协议确保了连接的成功建立和安全性。
目前披露的 5Ghoul 漏洞的一个显着特点是,攻击者无需获取受害者 SIM 卡的任何信息即可利用这些漏洞。这些漏洞甚至可以在 NAS 身份验证过程完成之前被利用,增加了攻击的潜在易用性和影响范围。
选择 “5Ghoul” 作为这个漏洞的名称反映了其特征和潜在影响。名称 “5Ghoul” 结合了两个元素:“5G”,指代漏洞影响的技术领域,即第五代移动通信技术;以及 “Ghoul”,一词源自阿拉伯神话中的一种生物,类似于恶魔,以诱导并捕食旅行者而闻名。这个比喻用于描绘 5Ghoul 漏洞的行为:就像恶魔诱导旅行者一样,这个漏洞诱使用户设备(UE),如智能手机和其他支持 5G 的设备,连接到恶意基站(gNB)。
一旦连接,这个漏洞可以被用来进行一系列的恶意操作,包括但不限于断开连接、冻结设备(可能需要手动重启),或者将 5G 连接降级到较低的 4G 网络。这种类比在于强调漏洞的潜在危险性和它在 5G 网络中所能引发的不安全后果。
一旦目标设备连接到恶意基站 (gNB),攻击者只需在命令提示符中启动漏洞利用脚本,即可显示移动设备国家代码(MCC)和移动设备网络代码(MNC)。
如图所示,5Ghoul 漏洞采用了模拟有限 Dolev-Yao 对手的攻击模型,这种模型通过控制下行通道,允许攻击者在 5G 网络下行数据链路中任意注入或修改数据包。这些数据包是基于 OpenAirInterface 和 Open5GS 这两个开源平台生成的。
更重要的是,攻击者无需了解目标用户设备的任何机密信息,例如 UE 的 SIM 卡详细信息,即可完成 NAS 网络注册。
攻击的关键在于冒充一个具有已知小区连接参数的合法 gNB(例如 SSB ARFCN、跟踪区域代码、物理小区标识、点 A 频率),这可以通过使用免费的应用程序如 Cellular-Pro 来轻松实现。一旦攻击者的 gNB 信号强度超过合法 gNB,目标用户设备就会连接到攻击者的 gNB。在此过程中,即便缺少 UE SIM 卡的关键信息可能导致后续步骤失败,攻击者仍可在消息交换过程中操纵下行链路消息,为发起攻击提供机会。
实际上,5Ghoul 漏洞可以轻松通过在目标用户设备的无线范围内启动恶意 gNB 来进行利用。攻击主要依赖于使用软件定义无线电(SDR)设备,如 USRP B210,来模拟一个恶意的 gNB。尽管在我们的设置中使用的 SDR 设备可能在视觉上可被识别,但现在这类设备已经微型化到与树莓派相似的大小,从而使得攻击在外观上更隐蔽。
在这一节中,我们详细介绍了所发现的漏洞及受影响设备的关键特性。
首先,如表1 所示,我们对受影响目标及其对应的固件版本进行了评估。此外,表2 提供了在 5G 设备上发现的所有 “5Ghoul” 漏洞。在这张表格的第一列中,每个漏洞都被赋予了一个以“V”为前缀的名称。虽然前两个漏洞(V1和V2 )影响了来自 OpenAirInterface 项目的开源 UE 实现 ,而其他漏洞则在多种流行的 5G USB 调制解调器(标记为 “V3” 到 “V7”)以及搭载高通或联发科调制解调器的代表性智能手机上(标记为 “V5” 到 “V14”)得到了验证。
下表中包括设备的固件和软件版本信息,这些通常由供应商或通过操作系统更新进行提供。值得一提的是,“OpenAirInterface UE” 是一个软件解决方案,它不依赖于任何具体的 5G 调制解调器硬件(因此被标记为“不适用”)。
值得注意的是,我们发现漏洞(V3-V14)位于 5G 基带调制解调器固件中,这些漏洞影响了使用高通和联发科技调制解调器固件的各类产品(尽管影响可能因产品类型而异)。此外,也在 SIMCOM 和 FIBOCOM 的部分早期版本调制解调器固件(2023 年以前的版本)中发现了 V3 和 V4 漏洞。需要注意的是,2023 年及之后的固件版本产品,如 5G USB 调制解调器和智能手机,似乎不受这些问题的影响。然而,实验中使用的最新调制解调器固件版本受到 V5 至 V14 漏洞的影响,需要针对这些漏洞进行修补。
在我们的研究中发现,高通的 5G USB 调制解调器和一些支持 5G 的智能手机(例如华硕 ROG Phone 5S)在处理 MAC/RLC、RRC 和 NAS 消息时,受到了一系列先前未知的漏洞(V5 至 V7)的影响。同样,采用 MediaTek 调制解调器的智能手机(如 OnePlus Nord CE 2)也受到 V8 至 V14 一系列之前未知的漏洞的影响。特别是,V10 和 V11 漏洞涉及到内存访问违规,具体为空指针取消引用。所有这些漏洞被评定为中危。
易受攻击的程序主要涉及 RRC Attach 和 Authentication 过程。特别是,RRC 连接过程中的 RRC 连接设置消息是大多数漏洞的关键点,如在 OnePlus Nord CE 2 中的发现所示。对于使用 MediaTek Dimensity 900 5G 调制解调器的设备在交换 RRC 设置连接时,会触发多个断言和内存相关的崩溃。
最后,所有 5Ghoul 漏洞都是在用户设备(UE)和基站(gNB)之间的预认证通信阶段被发现的。这意味着,利用这些漏洞的攻击不需要任何来自 UE SIM 卡的机密信息。此类攻击可以通过启动与第 2 节中描述的恶意 gNB 的相同设置来发起。总体而言,5Ghoul 漏洞不仅揭示了 5G 数据链路层(如 V4、V5 和 V10)的漏洞,还展示了商用 5G 用户设备在 OSI 模型的第 3 层及以上(如 RRC、NAS)的漏洞。
触发漏洞:如表2所概述,这些漏洞主要是通过发送格式错误的 RRC 连接设置消息或 NAS 身份验证请求来实现的。具体来说,在 V2 的情况下,NAS 认证请求格式错误,使得实际的 NAS 消息有效负载为空。而 V4 的漏洞则需要同时发送无效的 MAC Time Advance Command 和格式错误的 RRC 连接设置消息。
补丁状态:修复 5G 调制解调器漏洞是一个复杂的过程,它涉及多个阶段,直到补丁最终可供用户使用。V5 至 V14 漏洞的修补预计需要一段较长的时间。基于 Android 系统的智能手机,补丁预计将在 2023 年 12 月发布。基于 Apple 系统的 iPhone,暂无确定补丁发布时间。不过,高通已经确认从 2023 年 8 月开始向其客户(即设备制造商)提供补丁。同样,联发科也表示将在 10月向合作伙伴提供补丁。因此,建议用户保持一定关注。
我们利用 5Ghoul 漏洞创建了不同的攻击。接下来,我们讨论导致受影响目标设备上的拒绝服务 (DoS) 或连接降级的攻击。
为了评估 5G 漏洞对移动设备和用户体验的影响,我们对使用高通调制解调器的 Asus ROG Phone 5S (ARP5s) 和使用 MediaTek 调制解调器的 OnePlus Nord CE 2 进行了针对性测试。这些测试专注于漏洞 V5 到 V10 的利用。
当 ARP5 触发漏洞 V5(见图 3)或 V6 时,设备的 5G 调制解调器会立即重启,并在短时间内自动重新连接到 gNB,造成临时的服务中断。因此,如果攻击者想要持续地中断用户的移动网络连接,他们需要不断地重复这些攻击。此外,由于调制解调器负责处理所有 3GPP 标准的通信,因此调制解调器的重新启动也会导致 3G 和 4G 网络通信的中断。
漏洞 V7 的发现揭示了对移动设备特别是 Asus ROG Phone 5S (ARP5s)的显著影响。这一漏洞可以使 ARP5 无法连接到任何 5G 网络,同时不影响其它网络连接。这种攻击导致设备的调制解调器(Modem)进入一个不稳定状态,迫使用户必须手动重启手机以完全恢复 5G 连接。
更为关键的是,即使在攻击停止之后,该设备的5G连接仍然处于冻结状态,如相关视频所示。在某些情况下,仅仅手动重启手机并不能恢复 5G 连接。相反,可能需要将 SIM 卡取出并重新插入,以确保对调制解调器进行硬重置,从而恢复正常的网络功能。
首先,关于 ARP5s 的测试,视频展示了该设备最初连接到合法的 gNB(标记为“SUTD 00101”),然后漏洞 V7 被通过启动恶意 gNB 和激活 5Ghoul 框架(使用“mac sch rrc setup crash var”利用)触发。即使在使用软件定义无线电(SDR)攻击合法 gNB 的情况下,智能手机也成功连接到了商用 5G 基站,并在未来通信计划(FCCLab)提供的 Quanta Cloud Technology(QCT)商用基站中进行了测试。这种攻击导致智能手机需要手动重启才能恢复 5G 连接,即使连接到 QCT 的 5G 网络也是如此。
接下来,针对搭载联发科调制解调器的 OnePlus 手机,漏洞 V8 至 V14 触发了设备崩溃。具体来说,V8、V9 和 V12-V14 漏洞触发了 5G Modem 内部微控制器和数字信号处理器(DSP)中的断言。同时,V10 漏洞由于空指针取消引用导致了无效内存访问异常。在所有这些情况中,调制解调器会立即重新启动,需要几秒钟时间来恢复 5G 连接。与 V5 和 V6 漏洞类似,攻击者可以连续发起攻击,以持续中断 OnePlus 设备上的所有 3G/4G/5G 通信。
我们注意到漏洞V5 - V14(表 2)影响采用高通和联发科调制解调器的 5G 设备。这些漏洞不仅影响智能手机和 USB 调制解调器,还可能影响那些依赖于低延迟通信的设备。
为了深入了解这些漏洞对非智能手机设备的实际影响,我们对表1中列出的特定 5G 用户设备(UE)调制解调器进行了测试,并分析了这些漏洞对依赖这些调制解调器的应用程序的影响。在进行的测试中,我们配置了两个基于高通的调制解调器作为客户端设备,以评估 V5 至 V7 漏洞的影响。
具体来说,我们在设置 A 中测试了 FT980WW 平台内的 Telit FT980m 调制解调器。这种平台通过其局域网(LAN)端口提供 5G 互联网连接,并托管配置的 Web 页面。通过恶意 gNB 发起的 V5 和 V6 漏洞的持续攻击导致连接到 FT980WW LAN 端口的设备失去互联网连接。此外,由于调制解调器重启,配置网页也变得无法访问。关于此次攻击的演示,可以参考提供的视频内容。
使用 Raspberry Pi 3B+ 和 RM500Q-GL 5G USB 调制解调器的测试设置,其中 Raspberry Pi 运行的是 OpenWRT 22.03.4 操作系统。与使用 FT980WW 平台的设置不同,此次测试设置在防御 V5 和 V6 漏洞利用攻击方面提供了更好的隔离。因为配置网页由 Raspberry Pi 3B+ 处理器而不是调制解调器本身托管。这允许用户通过选择不同的移动网络进行连接来远程尝试控制 CPE 设备。
在我们的测试中,涉及 FT980-WW CPE 和搭载 OpenWRT 的 Raspberry Pi 3B+ 设备的反应对比明显,特别是在应对 V5 和 V6 漏洞利用攻击方面。FT980-WW CPE 在遭受 V5 和 V6 漏洞利用攻击后,显示出更积极的 5G 连接恢复行为。然而,使用 OpenWRT 系统的 Raspberry Pi 3B+ 在这方面则表现出较为消极的态度,通常需要用户通过 OpenWrt 的网页界面手动重新连接 5G 调制解调器。为了恢复正常的 5G 连接,这种手动重连的过程往往需要等到 V5-V6 攻击停止后,通过 OpenWr t的 Web 页面进行手动重启。
另一方面,由于 FT980-WW 在其 5G 调制解调器内运行 Web 应用程序,攻击期间用户无法访问 Web 页面,从而无法在恶意gNB攻击持续时控制 CPE。这限制了用户在遭受攻击后进行干预的能力。
对于 V7 的攻击效果是立竿见影的,这种攻击会导致目标调制解调器与任何 5G 网络的连接断开,并自动回退到 4G 网络。这不仅暴露了 4G 网络领域中的潜在漏洞,而且导致 CPE 路由器也降级其服务。
5Ghoul 揭示了一系列之前未知的实现层漏洞,这些漏洞会导致服务拒绝(即设备崩溃或挂起)。我们通过 5Ghoul 利用工具演示了执行降级攻击的能力。这些漏洞对调制解调器的影响是特有的,主要是因为降级攻击会强制用户的连接从新一代网络技术(如 5G NR)降级到旧一代网络技术(如 LTE 或更早的技术)。降级攻击可能使用户面临旧网络技术(如 2G、3G 和 4G)固有的一系列设计或实现问题。在这种情况下,特别是漏洞 V7,被认为是一种降级攻击,因为它的利用会阻止受影响的设备连接到任何 5G 网络,但设备仍能连接到 4G 等旧的网络技术。
尽管漏洞 V7 主要影响采用高通 X55/X60 调制解调器的设备,但 3GPP 标准中存在的易受攻击组件可能使所有 5G 设备都面临通用的降级攻击风险。在我们的研究中,我们发现并触发了已知的通用降级攻击,并利用了一个新的降级攻击向量(称为DA1),这一攻击向量影响了多个供应商的 5G 基带调制解调器,包括高通和联发科。
具体来说,我们成功地对小米红米 K40(搭载联发科天玑 1200)、OnePlus Nord CE 2(搭载联发科天玑 900 和 1200)、三星 Galaxy S22(搭载高通 X65)和华硕 ROG Phone 5s(搭载高通 X60)等设备发起了新的降级攻击。
我们的降级攻击向量 DA1,如图7和视频所展示,通过使目标设备接收大量的 NAS 身份验证请求,然后多次接收 NAS 注销请求,让目标设备陷入 NAS 身份验证过程的循环。在这种情况下,目标设备在多次重试后会自动回退到最近的 4G 基站。值得注意的是,用户无法通过简单切换飞行模式来重新建立 5G 连接;必须启动与基站的新连接过程。
这种降级攻击不仅突显了 5Ghoul 漏洞利用的能力,而且还表明它可以作为测试 5G NR 安全性的有价值工具,尤其是在分析除 DoS 漏洞之外的安全缺陷时。视频 演示了 5Ghoul 漏洞利用工具如何触发这种新型降级攻击。
为执行此攻击,攻击者可以使用之前提到的相同设置。该攻击需要合法的 5G 和 4G 基站(分别为 gNB 和 eNB)。为此,我们设置了三个软件定义无线电(SDR)设备:两个模拟合法基站,另一个模拟攻击者的无线电范围内的目标UE(OnePlus Nord CE 2 5G)。
为了估计受 5Ghoul 影响的 5G 智能手机的潜在数量,我们寻找了所有采用高通和联发科易受攻击的 5G 调制解调器的智能手机的型号。这一研究依赖于网络爬虫技术,自动化地搜索匹配特定处理器芯片组的手机型号。由于移动处理器供应商通常向智能手机生产商提供集成了 CPU、5G 调制解调器、GPU 等组件的芯片平台,我们特别关注了搭载骁龙 8XX 系列(高通)和天玑 XXXX 系列(联发科)芯片组的智能手机。
为了查找可能受影响的智能手机型号,我们在 Kimovil 网站上进行了搜索,该网站可以轻松过滤出所有搭载给定处理器芯片组的已发布智能手机型号。受影响芯片组的型号可以在供应商 2023 年 12 月安全公告中找到。尽管如此,高通公司的安全公告列出了除智能手机中使用的其他受影响的(物联网)芯片组平台。因此,我们仅从本公告中提取芯片组平台(例如,Snapdragon 8XX)。遗憾的是,我们无法将联发科安全公告中发布的芯片组名称与天玑芯片平台对应。因此,我们仅搜索采用我们评估中使用的确切芯片组名称(天玑 900/1200)的基于联发科的手机,以避免误报。从而计算出的受联发科技调制解调器漏洞影响的智能手机型号集被低估了。
我们使用爬虫脚本自动搜索了所有采用受影响芯片组的智能手机型号。由于 Kimovil 网页中显示了许多重复结果,我们过滤掉了那些仅在规格(如 RAM 和存储大小)上略有差异的重复智能手机条目,得出的市场上受影响的智能手机型号的汇总数量。大部分受影响的智能手机型号(如三星、OnePlus、Oppo、Vivo、小米等)使用高通芯片组,但只有少数使用联发科天玑 900 和天玑 1200 的手机型号被匹配。正如先前提到的,受影响的基于联发科的智能手机集合可能由于有限的搜索范围而被低估。受影响的智能手机型号的详细列表可在指定的 URL 中找到。:5Ghoul 受影响的智能手机。
5Ghoul 漏洞的影响并不局限于智能手机领域。事实上,受影响的 5G 调制解调器也被广泛应用于其他支持 5G 技术的设备和应用程序中。如高通的安全公告所指出,这些漏洞可能对工业物联网(IoT)解决方案产生影响,例如“315 5G IoT”平台,以及被用于多种应用的“AR8035”平台,包括家用电器、IP摄像头等。这表明 5Ghoul 漏洞的潜在影响范围远超传统的通信设备,涵盖了广泛的 5G 应用领域。
确保 5G 调制解调器软件开发套件(SDK)在向下游发布之前经过充分测试,且无严重漏洞,对于整个 5G 生态系统来说是至关重要的。未经充分测试的 SDK 可能使攻击者能够在终端用户获得相关安全更新之前长期利用调制解调器的漏洞。
图 9 描述了 5G 调制解调器软件供应链的复杂性。总的来说,发现 5G 调制解调器供应商实施中的问题会对下游产品供应商产生严重影响。产品供应商对调制解调器供应商的软件依赖性增加了复杂性,并因此延迟了补丁的生产和向终端用户的分发过程。例如,上游 5G 调制解调器软件的每次迭代都必须由芯片组供应商进行运营商重新认证,只有通过了重新认证的更新调制解调器固件才能被智能手机操作系统供应商(如谷歌的 Android 和苹果的 iOS)按照固定的发布计划整合到操作系统安全补丁中)。接下来,产品供应商需要手动将这些安全补丁构建到智能手机操作系统映像中。因此,5G 安全补丁通常需要六个月或更长的时间才能通过 OTA 更新最终到达最终用户。
对于 CPE 路由器或 USB 调制解调器来说,软件依赖链类似,但由于不受操作系统供应商发布时间表的约束,补丁到达终端用户的时间较短。模块供应商(即 OEM)直接将调制解调器补丁构建到模块固件中,并通过私人渠道向下游分发。这使得 CPE 产品供应商能够直接将上游的补丁应用到其平台软件上,这些平台软件通常包括定制的 Linux 操作系统。
5Ghoul 概念验证 (PoC) 和模糊测试工具已在我们的 github 仓库中开源。
5Ghoul PoC 是基于一个无线模糊测试框架构建的,该框架提供 5G NR 协议控制功能,用于创建针对 5G 能力的安卓智能手机或高通 USB 基调制解调器的测试用例。然而,使用 5Ghoul 需要像 USRP B210 这样的软件定义无线电来搭建物理的伪基站。一旦启动后,它会自动执行智能手机或调制解调器的配置过程,以连接到恶意基站以评估攻击。此类 PoC 还可以用作独立的无线 5G SA 模糊器。
我们现有的设置在与一台价格适中的迷你 PC 搭配使用时非常便携。目前,5Ghoul PoC 包含利用 V3-V14 发起攻击的漏洞脚本。利用 V1-2 和 NAS 洪降级攻击的脚本将在未来几周内提供。
本文中我们讨论了过去几年在自动化安全测试商用 5G 设备(COTS)时面临的关键挑战,以及披露过程中的个人经验,这些经验揭示了下游补丁传播的复杂性和时间线。
崩溃识别:在测试 COTS 设备时,准确识别设备崩溃是一个重大挑战。特别是,由于对抗性测试的性质(例如,传输格式错误的数据包),目标 5G 用户设备(UE)可能会遭遇连接超时。我们最初的研究涉及浏览多个消息日志,试图识别可能可靠指示崩溃的消息。事实上,在我们研究的早期阶段,怀疑多个消息日志有崩溃,后来被排除为正常的连接超时。
特别是,5G USB 调制解调器的配置包含特定供应商的专有和通用 AT 命令的组合。为了以通用方式解决 5G USB 调制解调器的崩溃检测问题,我们将对 UE 调制解调器的控制权移交给 Freedesktop ModemManager 进程 (MM)。该进程主要通过高通 MSM 接口(QMI)与 UE 通信,并在必要时使用 AT 命令。MM 能够通知我们的测试过程调制解调器准备好使用,并且能够通过 QMI 接口挂起或 USB 分离来警告调制解调器的崩溃。
对分类的调试支持:由于 5G UE 堆栈的封闭性,我们很少支持对崩溃进行分类。尽管我们向供应商报告了漏洞,但消息日志和 Wireshark 捕获虽然可以显示修改后的数据包和崩溃指示,但要确定固件代码中的确切崩溃点仍需要大量工作。在我们的披露过程中,供应商之一提供了更好的调试日志工具,生成了包含核心转储和回溯摘要的综合 HTML 报告。
下游补丁的时间:在图 9 中,我们展示了典型的 5G UE 软件供应链。根据图 9 所示的生态系统,我们分享了 5G 调制解调器补丁向终端用户(例如智能手机用户)提供的时间经验。从向 Telit 报告漏洞到高通向客户提供补丁,再到预计的 Android 补丁发布,整个过程大约花费了七个月的时间。
用于大规模测试的软件/硬件支持:我们的方法涉及从恶意基站向 COTS 5G UE 发送格式错误的数据包,并需要自动执行多次以发现固件中的漏洞。在早期研究阶段,我们面临如何在开源基站(如 OpenAirInterface)和商用智能手机之间保持稳定连接的挑战。为了解决 USB 5G 调制解调器的不稳定性问题,我们添加了 USB 电源开关以自动重启调制解调器。对于 Android 智能手机,可以通过 ADB 发送重启命令实现重启。
尽管 5G 技术在支持复杂应用方面具有巨大潜力,但在 5G 软件系统中发现应用层面的漏洞仍需要深入研究。考虑到 5G 网络堆栈的多层性、复杂性及其封闭性,5G 安全测试领域的研究工作任重道远。
在本节中,我们提供了对每个发现的漏洞的详尽描述,涵盖了攻击向量、受影响的 5G 调制解调器芯片组以及/或相关的固件版本。我们的重点是那些在发现时尚未被知晓的实施层漏洞,具体包括表2中的 V5 至 V14 漏洞。这些漏洞的发现是在对调制解调器和智能手机进行测试时进行的,涉及了各种不同的测试环境和方法。通过这种详细的分析,我们旨在提供一个全面的视角,展示这些漏洞如何影响现代的 5G 设备和网络。
在此漏洞中,无线电范围内的攻击者可以通过从附近的恶意 gNB 向目标 5G UE(例如智能手机)发送无效的下行链路 MAC 帧来触发高通 X55/X60 调制解调器固件内的拒绝服务。RRC attach 过程完成后,攻击者(恶意 gNB)发送格式错误的 RLC 状态 PDU,将下行链路传输块的 MAC 标头(第一个字节)从 0x41(DL-SCH)更改为 0xB5(MAC TCI状态激活/停用)。发送无效帧到 5G 用户设备后,Qualcomm X55 调制解调器出现故障并重新启动,表固件核心转储日志(QCAP)中显示固件断言。更具体地说,调制解调器暂时挂起并在 5 到 10 秒内重新启动。这种延迟在使用此类调制解调器的产品中非常明显。例如,Telit FT980-WW 基于 Web 的应用程序只有在平台重新启动后才能访问,因为出现以下固件核心转储消息:
[ASSERT] nr5g_ml1_mdb.c:12636 Assert serving_cell_ptr->cell_data.nr5g.configured_bwp_bmask & (1< <bwp_idx) failed: gNB beam update for BWP not configured 0x1
影响
基于 X55/X60 调制解调器的 UE 无线电范围内的攻击者可以通过连续发送来阻止 3GPP 调制解调器连接。此外,由于在发起攻击时不需要目标 SIM 卡的信息,这种漏洞相对容易被触发。
在这个漏洞中,攻击者可以在无线电范围内从一个恶意的 gNB(基站)向目标 5G 用户设备(UE),如智能手机,发送无效的下行链路 MAC 帧,从而触发高通 X55/X60 调制解调器固件中的拒绝服务攻击。这种攻击发生在 RRC 附着过程完成后,此时攻击者发送格式错误的 RLC 状态 PDU,并将下行链路传输块的 MAC 标头(第一个字节)从 0x41(代表DL-SCH)更改为 0xB5(代表 MAC TCI 状态激活/停用)。
当这种无效帧被发送到 5G 用户设备后,Qualcomm X55 调制解调器会出现故障并进行重新启动。这种故障和随后的重新启动在调制解调器的固件核心转储日志(QCAP)中以断言消息的形式得到记录。具体来说,调制解调器会暂时挂起,并在 5 到 10 秒内重新启动。这种延迟在使用相关调制解调器的产品中非常明显。例如,在Telit FT980-WW 的基于 Web 的应用程序中,只有在平台重新启动后,用户才能再次访问,这是由于出现了固件核心转储消息。
[ASSERT] ds_3gpp_tlb_ctrl.c:2088 Assertion msg_size == 1 failed
影响
使用高通 X55/X60 调制解调器的用户设备(UE)在攻击者的无线电范围内时,可能会遭受服务中断。攻击者可以通过连续发送无效数据包来中断 3GPP 调制解调器的连接。这种漏洞的触发相对容易,因为启动攻击不需要获取目标 SIM 卡的信息。这主要是因为无效的下行链路帧是在NAS注册流程的早期阶段发送的,而这个过程发生在任何 NAS 认证流程完成之前。因此,这种漏洞的存在使得攻击者可以在认证过程之前干扰或破坏通信,从而对 5G 网络的稳定性和安全性构成威胁。
在这个漏洞中,处于高通 X55/X60 用户设备(如智能手机和 CPE 路由器)无线电范围内的攻击者可以通过从一个邻近的恶意 gNB 发送格式错误的 RRC 帧,触发 5G 连接降级或拒绝服务攻击。在 RRC 附着过程中,攻击者(恶意 gNB)发送格式错误的 NAS PDU,将 RRC dlInformationTransfer 有效负载的第 30 个字节从 0x04 更改为 0x9C。这一修改影响 pdcch-Config 的可选位,例如 tpc-PUCCH 和 Sequence-Of Length。这种格式错误的消息发送到 5G 用户设备后,设备将无法连接任何 5G 网络。
例如,使用 USB 调制解调器或 CPE 路由器的设备通常无法通过 AT+COPS=? 命令扫描到 5G 网络,从而导致无法与任何 gNB(包括合法的 gNB)建立连接。尝试连接到任何列出的 5G 网络也将失败。此漏洞影响了我们测试中的所有支持 5G 的高通设备。一旦攻击发起,X55/X60 调制解调器将持续受影响,直到用户手动重启手机。仅仅打开和关闭飞行模式是无法恢复 5G 通信的。
影响
在高通 X55/X60 用户设备无线电范围内的攻击者可以通过发送单个畸形数据包来拒绝或降级 5G 连接。用户需要手动重启手机来恢复 5G 连接。此外,由于攻击的发起不需要获取目标 SIM 卡的信息,因此这种漏洞相对容易被触发。无效的下行链路帧是在 RRC 附着程序期间发送的,而该程序发生在任何 NAS 认证程序完成之前。
在这个漏洞中,处于 Mediatek Dimensity 900 /1200 5G 调制解调器用户设备(UE)无线电范围内的攻击者可以通过从附近的恶意 gNB 发送无效的下行链路RRC帧,触发拒绝服务攻击。在 RRC 连接过程中,攻击者(恶意 gNB)发送格式错误的 RRC 连接设置,将下行链路传输块的第 35 个字节从 0x4C 更改为 0xD6,将第 66 个字节从 0x9A 更改为 0x71。这对应于更改 RRC 有效载荷中的一些字段,如 spCellConfigDedicated 可选位:defaultDownlinkBWP-Id=1, pdcch-ServingCellConfig=1, pdsch-ServingCellConfig=0, sCellDeactivationTimer=1。
这种无效数据包的发送导致 Dimensity 900 5G 调制解调器出现故障并重启,这一过程在 Android 日志(logcat)中以固件崩溃的形式被记录。调制解调器会暂时挂起并在大约 2 到 7 秒内重启,这种情况可以通过 logcat 记录到的固件断言消息来确认,例如特定的 ASSERT 语句。
[ASSERT] file:mcu/l1/mml1/mml1_endc/src/mml1_endc_db_hdlr.c line:524 p1:0x91920c70
影响
攻击者可以通过连续发送此类无效数据包来阻止 3GPP 调制解调器连接。此外,由于启动攻击无需获取目标 SIM 卡的信息,因此相对容易触发此漏洞。这是因为无效下行链路帧的发送发生在 RRC 附着流程期间,而此流程在 NAS 认证流程开始之前进行。
攻击者位于无线电范围内,能够通过从一个恶意 gNB 向目标 5G 用户设备发送无效的下行链路 RRC 帧,在 Mediatek Dimensity 900/1200 5G 调制解调器固件中引发拒绝服务攻击。在 RRC 连接过程中,攻击者发送格式错误的 RRC 连接设置,将下行链路传输块的第 192 个字节从 0x0A 更改为 0xD0。这相当于更改 RRC 有效负载中的某些字段(searchSpacesToAddModList元素),例如将 pucch- 资源从 0x02 更改为 0x52,将 reportQuantity从0x05(cri-RSRP)更改为 0x01(cri-RI-PMI-CQI)。将此类无效数据包发送到 5G 用户设备后,Dimensity 900 5G 调制解调制解调器失败并重启,在 Android 日志 (logcat) 中指示固件崩溃。更具体地说,调制解调器暂时挂起并在 2 到 7 秒内执行重新启动,这种情况可以通过 Android 的日志记录工具 logcat 记录到的固件断言消息来确认。
[ASSERT] file:mcu/l1/nl1/internal/md97/src/rx/nr_rx_dspcmd_ext_csif_csi.c line:2657 p1:0x00000000
影响
攻击者可以通过连续发送此类无效数据包来阻止 3GPP 调制解调器连接。此外,由于启动攻击无需获取目标 SIM 卡的信息,因此相对容易触发此漏洞。这是因为无效下行链路帧的发送发生在 RRC 附着流程期间,而此流程在 NAS 认证流程开始之前进行。
在这个场景中,攻击者位于无线电范围内,能够通过从一个恶意 gNB 向目标 5G 用户设备发送无效的下行链路 RLC 负载,在 Mediatek Dimensity 900 / 1200 5G 调制解调器固件中引发拒绝服务攻击(空指针取消引用)。在 RRC 连接过程之后,攻击者(恶意 gNB)发送格式错误的 RLC 状态 PDU,将下行链路传输块的第 4 个字节从 0x00 更改为 0x84。这对应于将 RLC 标头内的某些字段(如数据/控制字段)更改为 0x01(数据 PDU 并将 RLC 序列号更改为 1025。原始下行数据包是RLC 控制 PDU(状态 ACK)在 RLC 头部写入无效字节 0x84 后,此 PDU 变更为一个带有错误RLC数据序列号的数据PDU。将无效的 RLC 负载发送到 5G 用户设备后,Dimensity 900 5G 调制解调器调制解调器失败并重启,在 Android 日志 (logcat) 中指示固件崩溃。更具体地说,调制解调器暂时挂起并在 2 到 7 秒内执行重新启动,这种情况可以通过 Android 的日志记录工具 logcat 记录到的固件断言消息来确认。
[Fatal error(MPU_NOT_ALLOW)] err_code1:0x0000001D err_code2:0x910D66F6 err_code3:0x910D66E2
影响
攻击者可以通过连续发送此类无效数据包来阻止 3GPP 调制解调器连接。此外,由于启动攻击无需获取目标 SIM 卡的信息,因此相对容易触发此漏洞。这是因为无效下行链路帧的发送发生在 RRC 附着流程期间,而此流程在 NAS 认证流程开始之前进行。
在这个场景中,攻击者位于无线电范围内,能够通过从一个恶意 gNB 向目标 5G 用户设备(如智能手机)发送无效的下行 RRC 帧,从而在 Mediatek Dimensity 900 / 1200 5G 调制解调器固件中引发拒绝服务攻击(空指针取消引用)。在 RRC 连接过程中,攻击者(恶意 gNB)发送格式错误的 RRC 连接设置,将下行链路传输块的第 14 和 15 字节从 0xBA 0xE0 更改为0x13 0x46。这对应于将 physicalCellGroupConfig 内的一些字段更改,例如将扩展位更改为 0x01 并将 pdsch-HARQ-ACK-Codebook 更改为 0x00。因此,这会导致 RRC 消息被截断,从而导致编码错误,如 Wireshark 中突出显示的那样。此类畸形数据包发送至 5G 用户设备后,Dimensity 900 5G 调制解调器出现故障并重启,Android 日志(logcat)中显示固件内存访问错误。更具体地说,调制解调器暂时挂起并在 2 到 7 秒内执行重新启动,这种情况可以通过 Android 的日志记录工具 logcat 记录到的固件断言消息来确认。
[Fatal error(MPU_NOT_ALLOW)] err_code1:0x0000001D err_code2:0x90F5D83A err_code3:0x90F5D836
影响
攻击者可以通过连续发送此类无效数据包来阻止 3GPP 调制解调器连接。此外,由于启动攻击无需获取目标 SIM 卡的信息,因此相对容易触发此漏洞。这是因为无效下行链路帧的发送发生在 RRC 附着流程期间,而此流程在 NAS 认证流程开始之前进行。
在此场景中,攻击者在无线电范围内能够利用恶意的基站(gNB)对目标 5G 用户设备(例如智能手机)发起攻击,通过发送无效的下行 RRC 帧,在 Mediatek Dimensity 900 / 1200 5G 调制解调器固件中触发拒绝服务。在 RRC 连接过程中,攻击者(恶意 gNB)发送格式错误的 RRC 连接设置,将下行链路传输块的第 52 个字节从 0x00 更改为 0x5B。这对应于更改 RRC 有效负载(searchSpacesToAddModList 元素)内的某些字段,例如将 monitoringSymbolsWithinSlots从0x80 0x00 改为 0x82 0xd8。将此类无效数据包发送给 5G 用户设备后,Dimensity 900 5G 调制解调器出现故障并重新启动,在 Android 日志 (logcat) 中指示固件崩溃。更具体地说,调制解调器暂时挂起并在 2 到 7 秒内执行重新启动,这种情况可以通过 Android 的日志记录工具 logcat 记录到的固件断言消息来确认。
[ASSERT] file:dsp3/coresonic/msonic/modem/slm/nr/nr_post_proc/src/nr_slm_rpt_hndlr.c line:9302
影响
攻击者可以通过连续发送此类无效数据包来阻止 3GPP 调制解调器连接。此外,由于启动攻击无需获取目标 SIM 卡的信息,因此相对容易触发此漏洞。这是因为无效下行链路帧的发送发生在 RRC 附着流程期间,而此流程在 NAS 认证流程开始之前进行。
在这个场景中,攻击者可以在无线电范围内从一个恶意的 gNB 向目标 5G 用户设备(如智能手机)发送无效的下行 RRC 帧,从而在 Mediatek Dimensity 900 / 1200 5G 调制解调器固件中引发拒绝服务攻击(可达断言)。在 RRC 连接过程中,攻击者(恶意 gNB)发送格式错误的 RRC 连接设置,将下行链路传输块的第 92 个字节从 0x49 更改为 0x67 中以红色突出显示的该字节 )。这对应于更改 RRC 有效负载中的许多字段,例如 qcl-Type 从 0x02 到 0x03; resourceAllocation 从 0x01 到 0x00; rbg-size 从 0x00 到 0x01; prb-BundlingType 从 0x00 到 0x01, 以及其他 uplinkConfig 可选位。将此类无效数据包发送到 5G UE 后,Dimensity 900 5G 调制解调器出现故障并重新启动,在 Android 日志 (logcat) 中指示固件崩溃/断言。更具体地说,调制解调器暂时挂起并在 2 到 7 秒内执行重新启动,这种情况可以通过 Android 的日志记录工具 logcat 记录到的固件断言消息来确认。
影响
攻击者可以通过持续发送此类无效数据包来阻断 3GPP 调制解调器的连接。此外,由于发起攻击不需要获取目标 SIM 卡的信息,因此触发这种漏洞相对容易。这是因为无效的下行链路帧是在 RRC 附着流程期间发送的,而该流程在任何 NAS 认证流程之前进行。
攻击者位于 5G 用户设备的无线电范围内,能够通过从一个邻近的恶意基站(gNB)发送无效的下行 RRC 帧,以在 Mediatek Dimensity 900 / 1200 5G 调制解调器固件中引发拒绝服务攻击。在 RRC 连接过程中,攻击者(恶意 gNB)发送格式错误的 RRC 连接设置,更改下行传输块的第 50 字节从 0xA2 到 0xA1。这相当于更改 RRC 有效载荷中的某些字段,例如将controlResourceSetId 更改为 0x00,将 pdsch-Config 更改为 0x00(释放),以及图 20 中所示的其他字段。特别地,当 pdsch-Config 被设置为 release 时,Uplink Config Element 被解码为 Null。因此,当此类无效数据包发送到 5G 用户设备后,Dimensity 900 5G 调制解调器会发生故障并重新启动,并在 Android 日志 (logcat) 中指示固件崩溃。更具体地说,调制解调器暂时挂起并在 2 到 7 秒内执行重新启动,这种情况可以通过 Android 的日志记录工具 logcat 记录到的固件断言消息来确认。
[ASSERT] file:dsp3/coresonic/msonic/modem/brp/nr/nr_brp/src/nr_brp_top_irq.c line:927
影响
攻击者可以通过持续发送此类无效数据包来阻断 3GPP 调制解调器的连接。此外,由于发起攻击不需要获取目标 SIM 卡的信息,因此触发这种漏洞相对容易。这是因为无效的下行链路帧是在 RRC 附着流程期间发送的,而该流程在任何 NAS 认证流程之前进行。
[1] https://github.com/open5gs/open5gs
[2] https://www.3gpp.org/specifications.html/
[3] https://www.freedesktop.org/wiki/Software/ModemManager/
[4] https://corp.mediatek.com/product-security-bulletin/December-2023/
[5] https://openwrt.org/releases/22.03/notes-22.03.4/
[6] https://docs.qualcomm.com/product/publicresources/securitybulletin/december-2023-bulletin.html/
[7] https://www.telit.com/support-tools/development-evaluation-kits/ft980/
本文由 Seebug Paper 发布,如需转载请注明来源。本文地址:https://paper.seebug.org/3087/