广告

紫光展锐基带芯片安全漏洞已修复,从NAS栈到固件详解发现过程

时间:2022-06-13 00:54:31 作者:EETimes China 阅读:
Check Point Research在对摩托罗拉Moto G20手机内的紫光展锐T700芯片上的LTE协议栈的逆向工程中,发现一个被命名为CVE-2022-20210的漏洞。在将漏洞提交给紫光展锐后,已经得到及时修补,本文详解了漏洞发现的过程……
广告

近日,以色列网络安全公司Check Point Research在对摩托罗拉Moto G20手机内的紫光展锐T700芯片上的LTE协议栈的逆向工程中,发现一个被命名为CVE-2022-20210的漏洞,并公告了出来。

智能手机的调制解调器负责电话、短信和移动互联网等通讯功能,也是黑客攻击的主要目标。攻击调制解调器,就有可能破坏手机的通话、联网等能力,或通过 SMS 、无线电数据包远程对手机通讯进行监听。

这个漏洞影响的正是调制解调器部分,这意味着,攻击者将能够通过该漏洞,向用户发送损坏的网络数据包,从而禁用或中断设备的网络连接。该机构认为,该漏洞可能影响全球十分之一的安卓手机,如果该漏洞被不法人士利用,可能导致某区域通讯信号大范围瘫痪。

漏洞发现过程解析

Check Point Research是如何发现这个漏洞的呢?

要从3GPP 电信标准组织引入演进分组系统 (EPS) 的概念说起,它是 LTE 技术的高级架构。这种架构由三个关键组件组成:用户设备 (UE)、演进的 UMTS 陆地无线接入网络 (E-UTRAN) 和演进的分组核心 (EPC),它们都是互连的。

LTE 网络的 EPS 架构(图自Check Point Research

E-UTRAN 组件只有一个栈,即 eNodeB 站,它控制 UE 和 EPC 之间的无线电通信。 UE 一次可以连接到一个 eNodeB。 

EPC 组件由四个堆栈组成,其中之一是移动管理实体(MME)。 MME 控制 LTE 网络中移动设备的高级操作,它发送与安全控制相关的信令消息、跟踪区域管理、维护不同 3GPP 接入网络之间的移动性以及 EPS 承载管理。

这里的UE,就以带有展锐调制解调器的智能手机为例。在Check Point Research的研究中,专注于通过 EPS 会话管理 (ESM) 和 EPS 移动性管理 (EMM) 协议发生的 MME 堆栈和 UE 堆栈之间的消息传递。 在下图中,可以看到调制解调器协议栈,非接入层 (NAS) 层承载 EPS 和 EMM 信令消息。 

LTE 协议栈。(图自Check Point Research)

NAS 协议以高级结构运行,攻击者可创建格式错误的 EMM 数据包并将其发送到目标设备。当新的 NAS 消息到达时,调制解调器对其进行解析并根据接收到的数据创建内部对象。攻击者可以使用解析代码中的错误来远程使调制解调器崩溃,这可能导致拒绝服务 (DoS) 或远程代码执行 (RCE)。

关于调制解调器和 MME 之间的消息传递 ,可以在 3GPP TS 24.301 文档中找到 NAS 协议的完整技术规范。对于协议的概念,让我们看一下将设备添加到 LTE 网络的过程。它涵盖了最常见的 EMM 消息。在下图中,可以看到智能手机连接到 LTE 网络时的 NAS 流量片段。 

网络连接流。(图自Check Point Research)

在示例中,调制解调器的 IP 为 10.90.10.1,MME 的 IP 为 10.201.150.41。通信流程遵循下图 中的方案。

消息交换方案。 (图自Check Point Research)

当设备连接到 LTE 网络时,MME 服务器负责设备身份验证、建立承载等。要连接到网络,智能手机调制解调器必须支持(提供处理程序)数十条 NAS 消息。Check Point Research就是从这些处理程序中发现了错误。

在探讨 NAS 消息处理程序在调制解调器中如何运行之前,他们还介绍了这些处理程序在一个流行开源 LTE 项目(如 srsRAN)中的情况,因为处理源代码比反汇编更容易。 用户端的 堆栈技术已经很长时间没有更新了,各家芯片厂的实现都非常相似。此外,也是因为srsRAN 项目中实现的一些 NAS 处理程序函数存在漏洞,这些漏洞理论上可以在调制解调器中复制。

开源 UE 堆栈

srsRAN是EPS组件最流行的开源实现,其中也包括这次的重点UE栈。srsue/src/stack/upper/nas.cc模块代表了NAS层,在那里可以找到处理 NAS 消息的函数。

每个处理函数以数据 blob 的形式接收消息,需要先将其解析为内部结构,然后系统才能对其做出反应。解析函数在 lib/src/asn1/liblte_mme.cc 模块中实现。

下图是 ATTACH_ACCEPT EMM 消息的示例。此消息包含跟踪区域标识符列表、GPRS 计时器、ESM 消息容器和十几个可选对象,例如移动身份、紧急号码、协议配置选项等。

附加接受消息。(图自Check Point Research)

如此一来,就有大量的杂项信息必须反序列化。 liblte_mme.cc 模块为每种内容类型包含一个单独的解包(解析)函数,展锐的调制解调器代码就具有类似的功能。

srsRAN 项目的 ATTACH_ACCEPT 消息处理程序有几个漏洞,以其中一个为例:

liblte_mme_unpack_emergency_number_list_ie 函数从消息数据中提取紧急号码。

紧急列表的最大长度为 12。但是,省略了 idx 值小于 12 的检查。 MME 可以将 sent_length 值设置得足够大,以导致超过 12 个循环的 while 循环,从而用任意值覆盖 emerg_num_list->emerg_num 数组。此问题会导致堆栈溢出。

liblte_mme_unpack_protocol_config_options_ie 函数中存在类似的漏洞,该函数解析用于传递有关网络的附加信息的协议配置选项。支持的选项的最大数量是83,但是没有检查MME发送的选项数量有没有超过这个最大值。溢出选项数组会导致堆栈溢出。

在知道了 NAS 消息解析函数是什么,也有代码供参考后,需要做的就是找到展锐调制解调器固件中的NAS数据解析功能。

展锐调制解调器固件

在Check Point Research的研究中,使用的测试设备是带有2022 年 1 月更新 (RTAS31.68.29) Android系统的摩托罗拉 Moto G20 (XT2128-2) 。该设备基于紫光展锐T700芯片。

Moto G20 出厂更新设置可从网络上下载,无需 root 设备。在更新文件中,调制解调器固件由 SC9600_sharkl5pro_pubcp_modem.dat 镜像表示。

该镜像具有专有结构,但很容易重建,区块头的结构如下: 

偏移值(offset value)是镜像文件中块开始的字节偏移量,长度是块大小。 在下图中可以看到Check Point Research测试设备的调制解调器镜像包含两个数据块。第一个块的类型是 0x402,大概意思是“解析库”;第二个块的类型为 0x301,它是调制解调器二进制文件。 

Modem image header (图自Check Point Research)

从镜像中剪切出两个数据块。其中解析库块是一个 7-zip 存档,包含用于测试(解析和跟踪)来自外部机器的网络消息传递的库。例如,lteps_air_msg_dll.dll 库(为 x86 编译)实现了打包和解包 NAS 消息的功能。

调制解调器二进制块是具有专有格式的文件,标头大小为 0x600 字节。在标头之后,调制解调器代码(ARM 指令)开始。Check Point Research用 ELF32 标头包装了这段代码,并将 0x8B000600 指定为代码段的基地址,此外还添加了一个从 0x8D0C0000 开始的空数据段。结果显示,生成的二进制文件可以很容易地反编译。

在调制解调器固件中实现的日志消息包含当前源模块的名称。这使Check Point Research能够快速找到 NAS 消息处理程序。 NAS 相关模块名称以“lnas_air_msg”开头。例如,PS/stack/nas/emm/msg_codec/msg_emm/lnas_air_msg_emm_att_acc.c 模块解析 ATTACH_ACCEPT 消息。

查找 NAS 处理程序中的漏洞

绝大多数 NAS 消息解析器都有三个参数:

1、输出缓冲区,它是适当消息结构的对象;

2、要解码的 NAS 消息数据 blob;

3、消息 blob 中的当前偏移量。

统一的函数格式可以轻松地实现对 NAS 解析函数进行模糊测试的工具。在Check Point Research的研究中,使用 AFL 和 QEMU 的经典组合在 PC 上模糊调制解调器二进制文件。该机构修补了调制解调器二进制文件以将 malloc 调用重定向到 libc 等效项, fuzzer 对 NAS 消息数据进行排列,并将其作为输入缓冲区传递给解析函数。

可选的 ATTACH_ACCEPT 字段之一是移动身份。调制解调器固件实现解包功能,如 srsRAN 中的liblte_mme_unpack_mobile_id_ie 从 NAS 消息中提取移动身份。身份数据块以身份的长度开始。如果设备由国际移动用户标识 (IMSI) 表示,则长度为 2 字节的消息数据将作为 IMSI 编号复制到输出缓冲区。

这里省略了确保提供的长度值大于 1 的检查。因此,如果长度字段值为零,则 0-2 = 0xFFFFFFFE 字节从 NAS 消息复制到堆内存,从而导致 DoS。

在下图中可以看到导致溢出的 ATTACH_ACCEPT 消息。 

格式错误的 NAS 消息。(图自Check Point Research)

突出显示的 0x23 值表示后面的数据是消息标识块,其中第一个 0x01 是长度,第二个 0x01 是 IMSI 类型。

本次用于实验的调制解调器将 CVE-2022-20210 分配给此漏洞。此外,当 NAS 处理函数从 NAS 消息外部读取数据时,Check Point Research发现了几个越界读取问题。

黑客需要先攻破运营商,几乎无法影响到终端

5月时,Check Point Research已经向紫光展锐提交了发现的漏洞,紫光展锐官方也积极反馈,确定漏洞的存在并将其划分为9.4级的严重漏洞(CVSS 漏洞评分系统满级为10),同时承诺将针对该问题进行修补。

对于上述漏洞可能造成的影响,紫光展锐对媒体表示,该问题只会发生于运营商网络被黑客攻破的情况下,在4G安全保密架构下,技术难度非常大,而且其他方案手机也会产生影响。另外用户对此的感知不强,现象是设备的通信功能出现短期故障,1-5秒内即可恢复,并不会造成用户终端的信息泄露和通信功能的不可恢复。

如果黑客不重复攻破或者用户离开该区域,网络将恢复正常,手机可正常使用。“在实际的用户使用环境中,运营商4G网络本身已对此类风险进行了针对性的防范,用户不必过于担心。” 业内人士表示,“相信大家可以感受到,前些年在2/3G时代经常有伪基站电信诈骗事件发生,但进入4G时代后,这样的新闻就很少听到了。因为伪基站没有办法攻破运营商安全架构极高的4G核心网。”

从本次该机构发布的公告可以看出,紫光展锐其实并非特例。仅以手机芯片厂商为例,之前5月份高通、4月份高通和联发科均已“中招”。Check Point Research还指出,谷歌方面也已经确认了该漏洞,并表示,针对它的补丁有望在下一个Android安全补丁中得到修复。

6月8日午间,紫光展锐表示已完成相关排查,并登记在案(CVE-2022-20210,https://source.android.google.cn/security/bulletin/2022-06-01?hl=en#asterisk),验证完毕的相关补丁已于5月30日陆续更新至有关客户厂商。

国产基带走向全球,同时也开始接受检阅

紫光展锐(UNISOC)成立于2001年,是中国集成电路设计产业的龙头企业,也是中国大陆目前公开市场唯一拥有5G芯片能力并已成功商用的主芯片平台提供者。

根据调研机构Counterpoint发布的一季度智能手机应用处理器(AP)市场统计,展锐在低端手机市场(售价低于99美元)市占率从去年同期的20%飙升至47%,在100-199美元价格带也占据了8%份额。

整体份额中,紫光展锐占全球移动处理器市场约11%,仅次于联发科、高通和苹果,主要覆盖亚洲和非洲销售的低价Android 手机。

Check Point Research报告中提及,紫光展锐作为第四大手机芯片供应商,外界对其手机基带芯片相关安全研究资料较少,这也是该机构首次对展锐进行安全研究的原因。

本文内容参考Check Point Research报道

责编:Luffy
EETimes China
EETimes China 综合报道专栏。
  • 2022年热门软件工程薪资Top 10 2022年,在软件工程中有哪些是热门以及高薪领域?软件工程技术对于全球议题带来哪些帮助?远程工作是否影响薪资涨跌?本文用5张调查图表让读者掌握2022年的软件工程薪资,以及最赚钱的语言、专业和地区。
  • 云端连接没有你想象的那么安全! 根据资安业者最新发表的云端安全调查报告,大约有三分之一的公司行号曾在过去一年遭遇严重的云端安全或资料外泄问题。该调查报告发现,错误的云端配置一直都是导致云端破坏事件的主要原因...
  • 2020年Q4中国网络安全硬件市场同比增长27.4% 2020年第四季度中国IT安全硬件市场厂商整体收入约为14.12亿美元(约合94.1亿元人民币),第四季度厂商收入规模较去年同期实现了高速增长,涨幅为27.4%。
  • 新沉积技术可望实现客制化磁传感器 当今的磁传感器应用无所不在。他们可以用于测量车轮的旋转速度,为汽车实现防死锁系统;读取固定磁盘上的数据,以及侦测金属组件上的细微裂纹。
  • 锴威特拟科创板IPO  募资5.3亿加码功率半导体 锴威特自2018年下半年开始研发SiC功率器件,积极布局第三代半导体。通过对SiC器件的结构设计和生产工艺进行不断探索和研发投入,公司取得了一定的研发成果,掌握了“短沟道碳化硅MOSFET器件系列产品沟道控制及其制造技术”等核心技术。
  • PCIe 6.0满足汽车和人工智能带宽需求 随着现代汽车陆续演变为车轮上的数据中心,战略上,汽车已成为大家关注的下一个焦点,还有人工智能和机器学习,所有这些都正朝着更高的带宽需求发展,并对高速互联提出挑战。本文介绍的堪称是“革命性飞跃”的PCIe 6.0,其所提供的带宽是其前身的两倍,互连性能也得以显著提升。
  • 新款iPad Pro 2021成最受欢迎的 由于采用性能相对强大的M1处理器和mini-LED屏幕以及更多的创新,新款iPad Pro 2021已经成为消费者心目中最受欢迎。然而,iPad 2却已经在全球范围内被列入“复古和过时”的名单中。
  • 三星折叠屏手机Galaxy Z Fold 3 目前来看,折叠屏新机作为一种新的生产力工具,逐渐成为高端/平板的一种趋势,有报料称三星的Galaxy Z Fold 3发布时间或为7月,并且会引入新手势操控。
  • 龙蜥社区:Anolis OS 23正式版将于 近日,龙蜥社区对外公布了下一代龙蜥操作系统(Anolis OS 23)研发路线图,PoC版已在社区官网上线,正式版本将于2023年发布,它支持X86、ARM-v9、RISC-V等多种芯片架构,并集成更多核心自研组件。
  • Matter标准:助力智能家居实现更高水 智能家居行业领先的供应商和潜在供应商已携起手来,为智能家居产品的互通性采取进一步行动,制定新的标准,即基于互联网协议(IP)的Matter标准。
广告
热门推荐
广告
广告
广告
EE直播间
在线研讨会
广告
广告
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了