论坛风格切换切换到宽版
发帖 回复
返回列表  提醒:不能用迅雷等P2P下载,否则下载失败标(二级)的板块,需二级才能下载,没二级不要购买,下载不了
  • 700阅读
  • 12回复

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

上一主题 下一主题
在线shuszhao
 

性别:
帅哥
发帖
18060
金币
36486
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看楼主 倒序阅读 使用道具 0楼 发表于: 2022-06-13
's$/-AV  
=nv/ r  
ppnl bL^*  
近日,以色列网络安全公司Check Point Research在对摩托罗拉Moto G20手机内的紫光展锐T700芯片上的LTE协议栈的逆向工程中,发现一个被命名为CVE-2022-20210的漏洞,并公告了出来。 EPU3Jban  
\ lK `  
智能手机的调制解调器负责电话、短信和移动互联网等通讯功能,也是黑客攻击的主要目标。攻击调制解调器,就有可能破坏手机的通话、联网等能力,或通过 SMS 、无线电数据包远程对手机通讯进行监听。 gdS@NUM  
\{= {{O  
   广告     ut.tf \c  
这个漏洞影响的正是调制解调器部分,这意味着,攻击者将能够通过该漏洞,向用户发送损坏的网络数据包,从而禁用或中断设备的网络连接。该机构认为,该漏洞可能影响全球十分之一的安卓手机,如果该漏洞被不法人士利用,可能导致某区域通讯信号大范围瘫痪。 UL" M?).5  
V^_U=Ed@M  
漏洞发现过程解析 $`<-;kI  
X?Or.  
lD$\t/8B  
Check Point Research是如何发现这个漏洞的呢? 8d(l)[GZt  
要从3GPP 电信标准组织引入演进分组系统 (EPS) 的概念说起,它是 LTE 技术的高级架构。这种架构由三个关键组件组成:用户设备 (UE)、演进的 UMTS 陆地无线接入网络 (E-UTRAN) 和演进的分组核心 (EPC),它们都是互连的。 oE)xL%*  
LTE 网络的 EPS 架构(图自Check Point Research
S7b7zJ8A  
E-UTRAN 组件只有一个栈,即 eNodeB 站,它控制 UE 和 EPC 之间的无线电通信。 UE 一次可以连接到一个 eNodeB。 Y)7\h:LIg  
EPC 组件由四个堆栈组成,其中之一是移动管理实体(MME)。 MME 控制 LTE 网络中移动设备的高级操作,它发送与安全控制相关的信令消息、跟踪区域管理、维护不同 3GPP 接入网络之间的移动性以及 EPS 承载管理。 J:G{  
这里的UE,就以带有展锐调制解调器的智能手机为例。在Check Point Research的研究中,专注于通过 EPS 会话管理 (ESM) 和 EPS 移动性管理 (EMM) 协议发生的 MME 堆栈和 UE 堆栈之间的消息传递。 在下图中,可以看到调制解调器协议栈,非接入层 (NAS) 层承载 EPS 和 EMM 信令消息。 R#!Urhh  
LTE 协议栈。(图自Check Point Research)
" Rn@yZV  
NAS 协议以高级结构运行,攻击者可创建格式错误的 EMM 数据包并将其发送到目标设备。当新的 NAS 消息到达时,调制解调器对其进行解析并根据接收到的数据创建内部对象。攻击者可以使用解析代码中的错误来远程使调制解调器崩溃,这可能导致拒绝服务 (DoS) 或远程代码执行 (RCE)。 m`n#Q#6  
关于调制解调器和 MME 之间的消息传递 ,可以在 3GPP TS 24.301 文档中找到 NAS 协议的完整技术规范。对于协议的概念,让我们看一下将设备添加到 LTE 网络的过程。它涵盖了最常见的 EMM 消息。在下图中,可以看到智能手机连接到 LTE 网络时的 NAS 流量片段。 9&{HD  
网络连接流。(图自Check Point Research)
on 4 $n7  
在示例中,调制解调器的 IP 为 10.90.10.1,MME 的 IP 为 10.201.150.41。通信流程遵循下图 中的方案。 )NO ,G  
消息交换方案。 (图自Check Point Research)
dv?t;D@p!  
当设备连接到 LTE 网络时,MME 服务器负责设备身份验证、建立承载等。要连接到网络,智能手机调制解调器必须支持(提供处理程序)数十条 NAS 消息。Check Point Research就是从这些处理程序中发现了错误。 5>h/LE]"  
在探讨 NAS 消息处理程序在调制解调器中如何运行之前,他们还介绍了这些处理程序在一个流行开源 LTE 项目(如 srsRAN)中的情况,因为处理源代码比反汇编更容易。 用户端的 堆栈技术已经很长时间没有更新了,各家芯片厂的实现都非常相似。此外,也是因为srsRAN 项目中实现的一些 NAS 处理程序函数存在漏洞,这些漏洞理论上可以在调制解调器中复制。 Qe`Nb4xf  
x^McUfdr|  
开源 UE 堆栈 X39%O'  
q s iV  
yUs/lI, Q  
srsRAN是EPS组件最流行的开源实现,其中也包括这次的重点UE栈。srsue/src/stack/upper/nas.cc模块代表了NAS层,在那里可以找到处理 NAS 消息的函数。 2\CZ"a#[  
j9.%(*  
每个处理函数以数据 blob 的形式接收消息,需要先将其解析为内部结构,然后系统才能对其做出反应。解析函数在 lib/src/asn1/liblte_mme.cc 模块中实现。 GN+!o($  
下图是 ATTACH_ACCEPT EMM 消息的示例。此消息包含跟踪区域标识符列表、GPRS 计时器、ESM 消息容器和十几个可选对象,例如移动身份、紧急号码、协议配置选项等。 {dlG3P='`f  
附加接受消息。(图自Check Point Research)
Nzb=h/;  
如此一来,就有大量的杂项信息必须反序列化。 liblte_mme.cc 模块为每种内容类型包含一个单独的解包(解析)函数,展锐的调制解调器代码就具有类似的功能。 \vE-;,  
srsRAN 项目的 ATTACH_ACCEPT 消息处理程序有几个漏洞,以其中一个为例: oSl}A,aQ(  
liblte_mme_unpack_emergency_number_list_ie 函数从消息数据中提取紧急号码。 8L[\(~Zf  
紧急列表的最大长度为 12。但是,省略了 idx 值小于 12 的检查。 MME 可以将 sent_length 值设置得足够大,以导致超过 12 个循环的 while 循环,从而用任意值覆盖 emerg_num_list->emerg_num 数组。此问题会导致堆栈溢出。 7A{Z1[7  
liblte_mme_unpack_protocol_config_options_ie 函数中存在类似的漏洞,该函数解析用于传递有关网络的附加信息的协议配置选项。支持的选项的最大数量是83,但是没有检查MME发送的选项数量有没有超过这个最大值。溢出选项数组会导致堆栈溢出。 \W|ymV_Ki  
在知道了 NAS 消息解析函数是什么,也有代码供参考后,需要做的就是找到展锐调制解调器固件中的NAS数据解析功能。 +pe\9F  
K6,d{n  
展锐调制解调器固件 ;rl61d}NH#  
.e\PCf9v  
WLH ;{  
在Check Point Research的研究中,使用的测试设备是带有2022 年 1 月更新 (RTAS31.68.29) Android系统的摩托罗拉 Moto G20 (XT2128-2) 。该设备基于紫光展锐T700芯片。 57EL&V%j  
Moto G20 出厂更新设置可从网络上下载,无需 root 设备。在更新文件中,调制解调器固件由 SC9600_sharkl5pro_pubcp_modem.dat 镜像表示。 f'Rq#b@  
该镜像具有专有结构,但很容易重建,区块头的结构如下: lYU?j|n  
XII',&  
偏移值(offset value)是镜像文件中块开始的字节偏移量,长度是块大小。 在下图中可以看到Check Point Research测试设备的调制解调器镜像包含两个数据块。第一个块的类型是 0x402,大概意思是“解析库”;第二个块的类型为 0x301,它是调制解调器二进制文件。 :0p$r pJP  
Modem image header (图自Check Point Research)
% @!hf!  
从镜像中剪切出两个数据块。其中解析库块是一个 7-zip 存档,包含用于测试(解析和跟踪)来自外部机器的网络消息传递的库。例如,lteps_air_msg_dll.dll 库(为 x86 编译)实现了打包和解包 NAS 消息的功能。 <ka zV<"  
调制解调器二进制块是具有专有格式的文件,标头大小为 0x600 字节。在标头之后,调制解调器代码(ARM 指令)开始。Check Point Research用 ELF32 标头包装了这段代码,并将 0x8B000600 指定为代码段的基地址,此外还添加了一个从 0x8D0C0000 开始的空数据段。结果显示,生成的二进制文件可以很容易地反编译。 xu >grj  
在调制解调器固件中实现的日志消息包含当前源模块的名称。这使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 消息。 O7p=|F"  
Ct$\!|aR  
查找 NAS 处理程序中的漏洞  {IT xHt  
0CI\Yd=  
TRr%]qd{Hr  
绝大多数 NAS 消息解析器都有三个参数: DHuUEv<  
1、输出缓冲区,它是适当消息结构的对象; rj/nn)vv;  
2、要解码的 NAS 消息数据 blob; A2.4#Qb'  
3、消息 blob 中的当前偏移量。 vnqLcNB H  
统一的函数格式可以轻松地实现对 NAS 解析函数进行模糊测试的工具。在Check Point Research的研究中,使用 AFL 和 QEMU 的经典组合在 PC 上模糊调制解调器二进制文件。该机构修补了调制解调器二进制文件以将 malloc 调用重定向到 libc 等效项, fuzzer 对 NAS 消息数据进行排列,并将其作为输入缓冲区传递给解析函数。 'fZ\uMdTx  
可选的 ATTACH_ACCEPT 字段之一是移动身份。调制解调器固件实现解包功能,如 srsRAN 中的liblte_mme_unpack_mobile_id_ie 从 NAS 消息中提取移动身份。身份数据块以身份的长度开始。如果设备由国际移动用户标识 (IMSI) 表示,则长度为 2 字节的消息数据将作为 IMSI 编号复制到输出缓冲区。 0|,Ij $  
这里省略了确保提供的长度值大于 1 的检查。因此,如果长度字段值为零,则 0-2 = 0xFFFFFFFE 字节从 NAS 消息复制到堆内存,从而导致 DoS。 Ac\e>N  
NleMZ  
在下图中可以看到导致溢出的 ATTACH_ACCEPT 消息。 WUb] 8$n  
格式错误的 NAS 消息。(图自Check Point Research)
iKv"200h(  
突出显示的 0x23 值表示后面的数据是消息标识块,其中第一个 0x01 是长度,第二个 0x01 是 IMSI 类型。 w`atk=K  
本次用于实验的调制解调器将 CVE-2022-20210 分配给此漏洞。此外,当 NAS 处理函数从 NAS 消息外部读取数据时,Check Point Research发现了几个越界读取问题。 J^zB 5W,)  
sVe<l mL  
黑客需要先攻破运营商,几乎无法影响到终端 WsT   
>|mZu)HIY;  
0iKAg  
5月时,Check Point Research已经向紫光展锐提交了发现的漏洞,紫光展锐官方也积极反馈,确定漏洞的存在并将其划分为9.4级的严重漏洞(CVSS 漏洞评分系统满级为10),同时承诺将针对该问题进行修补。 s<5PsR  
对于上述漏洞可能造成的影响,紫光展锐对媒体表示,该问题只会发生于运营商网络被黑客攻破的情况下,在4G安全保密架构下,技术难度非常大,而且其他方案手机也会产生影响。另外用户对此的感知不强,现象是设备的通信功能出现短期故障,1-5秒内即可恢复,并不会造成用户终端的信息泄露和通信功能的不可恢复。 I(b]V!mj:  
如果黑客不重复攻破或者用户离开该区域,网络将恢复正常,手机可正常使用。“在实际的用户使用环境中,运营商4G网络本身已对此类风险进行了针对性的防范,用户不必过于担心。” 业内人士表示,“相信大家可以感受到,前些年在2/3G时代经常有伪基站电信诈骗事件发生,但进入4G时代后,这样的新闻就很少听到了。因为伪基站没有办法攻破运营商安全架构极高的4G核心网。” H>%L@Btw  
从本次该机构发布的公告可以看出,紫光展锐其实并非特例。仅以手机芯片厂商为例,之前5月份高通、4月份高通和联发科均已“中招”。Check Point Research还指出,谷歌方面也已经确认了该漏洞,并表示,针对它的补丁有望在下一个Android安全补丁中得到修复。 <Vh }d/  
6月8日午间,紫光展锐表示已完成相关排查,并登记在案(CVE-2022-20210,https://source.android.google.cn/security/bulletin/2022-06-01?hl=en#asterisk),验证完毕的相关补丁已于5月30日陆续更新至有关客户厂商。 K*M1$@5  
H% FP!03  
国产基带走向全球,同时也开始接受检阅 W *2P+H%  
P!lfk:M^;  
<&tdyAT?&  
紫光展锐(UNISOC)成立于2001年,是中国集成电路设计产业的龙头企业,也是中国大陆目前公开市场唯一拥有5G芯片能力并已成功商用的主芯片平台提供者。 TV/EC#48  
根据调研机构Counterpoint发布的一季度智能手机应用处理器(AP)市场统计,展锐在低端手机市场(售价低于99美元)市占率从去年同期的20%飙升至47%,在100-199美元价格带也占据了8%份额。 ^JGwCHeb|H  
整体份额中,紫光展锐占全球移动处理器市场约11%,仅次于联发科、高通和苹果,主要覆盖亚洲和非洲销售的低价Android 手机。 27MwZz  
Check Point Research报告中提及,紫光展锐作为第四大手机芯片供应商,外界对其手机基带芯片相关安全研究资料较少,这也是该机构首次对展锐进行安全研究的原因。


评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

一般

差劲
离线minghuang

性别:
帅哥
发帖
3559
金币
6784
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 1楼 发表于: 2022-06-13
谢谢分享


在线maogege-chen

性别:
帅哥
发帖
7125
金币
9308
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 2楼 发表于: 2022-06-13



性别:
人妖
发帖
3559
金币
2551
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 3楼 发表于: 2022-06-13


离线成成246

性别:
人妖
发帖
494
金币
335
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 4楼 发表于: 2022-06-13


在线sekisan

性别:
人妖
发帖
5281
金币
6318
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 5楼 发表于: 2022-06-13


离线sun5304

性别:
帅哥
发帖
6244
金币
8073
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 6楼 发表于: 2022-06-13
  


离线pcvia

性别:
人妖
发帖
768
金币
711
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 7楼 发表于: 2022-06-13
    


离线lianghenggui

性别:
人妖
发帖
278
金币
193
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 8楼 发表于: 2022-06-13


离线tuzisecond

性别:
帅哥
发帖
4432
金币
4186
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 9楼 发表于: 2022-06-14


离线rx290268149

性别:
帅哥
发帖
1169
金币
1007
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 10楼 发表于: 2022-06-14
  


离线巴霍巴利

性别:
人妖
发帖
457
金币
255
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 11楼 发表于: 2022-06-14
谢谢分享


离线mark1030

性别:
人妖
发帖
1933
金币
3057
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 12楼 发表于: 2022-06-15
7<j!qWm0  


快速回复
限150 字节
 
上一个 下一个