我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 887|回复: 12

[移动软件开发] 紫光展锐基带芯片安全漏洞已修复,从NAS栈到固件详解发现

[复制链接]
  • TA的每日心情

    昨天 10:56
  • 签到天数: 85 天

    [LV.6]常住居民II

    1万

    主题

    8214

    回帖

    5万

    积分

    三级逆天

    积分
    53741

    终身成就奖特殊贡献奖原创先锋奖金点子奖优秀斑竹奖宣传大使奖

    发表于 2022-6-13 08:51:51 | 显示全部楼层 |阅读模式

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×
    近日,以色列网络安全公司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 ... 6-01?hl=en#asterisk),验证完毕的相关补丁已于5月30日陆续更新至有关客户厂商。

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


    紫光展锐(UNISOC)成立于2001年,是中国集成电路设计产业的龙头企业,也是中国大陆目前公开市场唯一拥有5G芯片能力并已成功商用的主芯片平台提供者。
    根据调研机构Counterpoint发布的一季度智能手机应用处理器(AP)市场统计,展锐在低端手机市场(售价低于99美元)市占率从去年同期的20%飙升至47%,在100-199美元价格带也占据了8%份额。
    整体份额中,紫光展锐占全球移动处理器市场约11%,仅次于联发科、高通和苹果,主要覆盖亚洲和非洲销售的低价Android 手机。
    Check Point Research报告中提及,紫光展锐作为第四大手机芯片供应商,外界对其手机基带芯片相关安全研究资料较少,这也是该机构首次对展锐进行安全研究的原因。
    回复

    使用道具 举报

    该用户从未签到

    10

    主题

    3481

    回帖

    11

    积分

    二级逆天

    积分
    11

    社区居民终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

    QQ
    发表于 2022-6-13 08:57:29 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    开心
    昨天 18:35
  • 签到天数: 158 天

    [LV.7]常住居民III

    3

    主题

    7146

    回帖

    1万

    积分

    PADS20220105初级班

    积分
    10861

    终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

    发表于 2022-6-13 08:57:42 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    开心
    前天 09:26
  • 签到天数: 86 天

    [LV.6]常住居民II

    51

    主题

    3999

    回帖

    3146

    积分

    二级逆天

    积分
    3146

    终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

    QQ
    发表于 2022-6-13 09:03:43 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    488

    回帖

    0

    积分

    PADS20220105初级班

    积分
    0

    终身成就奖

    发表于 2022-6-13 09:04:21 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    昨天 12:29
  • 签到天数: 145 天

    [LV.7]常住居民III

    1

    主题

    5389

    回帖

    7809

    积分

    二级逆天

    积分
    7809

    终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

    发表于 2022-6-13 09:04:54 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    6218

    回帖

    8731

    积分

    二级逆天

    积分
    8731

    终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

    QQ
    发表于 2022-6-13 09:12:19 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    2

    主题

    766

    回帖

    10

    积分

    二级逆天

    积分
    10

    终身成就奖特殊贡献奖原创先锋奖

    发表于 2022-6-13 11:18:58 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    14

    主题

    264

    回帖

    0

    积分

    二级逆天

    积分
    0

    终身成就奖

    QQ
    发表于 2022-6-13 11:22:04 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    开心
    昨天 09:05
  • 签到天数: 157 天

    [LV.7]常住居民III

    7

    主题

    4621

    回帖

    5374

    积分

    1元学习Pads(221219)旁听

    积分
    5374

    终身成就奖特殊贡献奖原创先锋奖

    发表于 2022-6-14 09:04:54 | 显示全部楼层
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    每日签到,有金币领取。


    Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

    本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

    ( 闽ICP备2024076463号-1 ) 论坛技术支持QQ群171867948 ,论坛问题,充值问题请联系QQ1308068381

    平平安安
    TOP
    快速回复 返回顶部 返回列表