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

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

上一主题 下一主题
离线shuszhao
 

性别:
帅哥
发帖
18129
金币
36846
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看楼主 正序阅读 使用道具 0楼 发表于: 2022-06-13
dZ]['y%  
NHI(}Ea|]  
9*`(*>S  
近日,以色列网络安全公司Check Point Research在对摩托罗拉Moto G20手机内的紫光展锐T700芯片上的LTE协议栈的逆向工程中,发现一个被命名为CVE-2022-20210的漏洞,并公告了出来。  %<[?;  
!mX-g]4E  
智能手机的调制解调器负责电话、短信和移动互联网等通讯功能,也是黑客攻击的主要目标。攻击调制解调器,就有可能破坏手机的通话、联网等能力,或通过 SMS 、无线电数据包远程对手机通讯进行监听。 MLVrL r t  
6yU#;|6d  
   广告     z _A]mJ  
这个漏洞影响的正是调制解调器部分,这意味着,攻击者将能够通过该漏洞,向用户发送损坏的网络数据包,从而禁用或中断设备的网络连接。该机构认为,该漏洞可能影响全球十分之一的安卓手机,如果该漏洞被不法人士利用,可能导致某区域通讯信号大范围瘫痪。 C|or2  
j_w"HiNBA  
漏洞发现过程解析 [22>)1<(  
b# v+_7  
60RYw9d%0  
Check Point Research是如何发现这个漏洞的呢? Lt 8J^}kwl  
要从3GPP 电信标准组织引入演进分组系统 (EPS) 的概念说起,它是 LTE 技术的高级架构。这种架构由三个关键组件组成:用户设备 (UE)、演进的 UMTS 陆地无线接入网络 (E-UTRAN) 和演进的分组核心 (EPC),它们都是互连的。 J*I G]2'H  
LTE 网络的 EPS 架构(图自Check Point Research
n*yVfI  
E-UTRAN 组件只有一个栈,即 eNodeB 站,它控制 UE 和 EPC 之间的无线电通信。 UE 一次可以连接到一个 eNodeB。 k+nfW]UNF  
EPC 组件由四个堆栈组成,其中之一是移动管理实体(MME)。 MME 控制 LTE 网络中移动设备的高级操作,它发送与安全控制相关的信令消息、跟踪区域管理、维护不同 3GPP 接入网络之间的移动性以及 EPS 承载管理。 >s*ZT%TF  
这里的UE,就以带有展锐调制解调器的智能手机为例。在Check Point Research的研究中,专注于通过 EPS 会话管理 (ESM) 和 EPS 移动性管理 (EMM) 协议发生的 MME 堆栈和 UE 堆栈之间的消息传递。 在下图中,可以看到调制解调器协议栈,非接入层 (NAS) 层承载 EPS 和 EMM 信令消息。 yxz)32B?  
LTE 协议栈。(图自Check Point Research)
<d`ksZ+  
NAS 协议以高级结构运行,攻击者可创建格式错误的 EMM 数据包并将其发送到目标设备。当新的 NAS 消息到达时,调制解调器对其进行解析并根据接收到的数据创建内部对象。攻击者可以使用解析代码中的错误来远程使调制解调器崩溃,这可能导致拒绝服务 (DoS) 或远程代码执行 (RCE)。 xJ=@xfr$  
关于调制解调器和 MME 之间的消息传递 ,可以在 3GPP TS 24.301 文档中找到 NAS 协议的完整技术规范。对于协议的概念,让我们看一下将设备添加到 LTE 网络的过程。它涵盖了最常见的 EMM 消息。在下图中,可以看到智能手机连接到 LTE 网络时的 NAS 流量片段。 a8Va3Y  
网络连接流。(图自Check Point Research)
ph5rS<  
在示例中,调制解调器的 IP 为 10.90.10.1,MME 的 IP 为 10.201.150.41。通信流程遵循下图 中的方案。 #Cy9E"lP  
消息交换方案。 (图自Check Point Research)
uC2-T5n'  
当设备连接到 LTE 网络时,MME 服务器负责设备身份验证、建立承载等。要连接到网络,智能手机调制解调器必须支持(提供处理程序)数十条 NAS 消息。Check Point Research就是从这些处理程序中发现了错误。 G&7!3u  
在探讨 NAS 消息处理程序在调制解调器中如何运行之前,他们还介绍了这些处理程序在一个流行开源 LTE 项目(如 srsRAN)中的情况,因为处理源代码比反汇编更容易。 用户端的 堆栈技术已经很长时间没有更新了,各家芯片厂的实现都非常相似。此外,也是因为srsRAN 项目中实现的一些 NAS 处理程序函数存在漏洞,这些漏洞理论上可以在调制解调器中复制。 ON()2@Y4  
0-VC$)S  
开源 UE 堆栈 Ad%3 fvn  
hv4om+  
B:?MMXB  
srsRAN是EPS组件最流行的开源实现,其中也包括这次的重点UE栈。srsue/src/stack/upper/nas.cc模块代表了NAS层,在那里可以找到处理 NAS 消息的函数。 cUB+fH<B2  
VyF|d? b  
每个处理函数以数据 blob 的形式接收消息,需要先将其解析为内部结构,然后系统才能对其做出反应。解析函数在 lib/src/asn1/liblte_mme.cc 模块中实现。 A3su!I2S  
下图是 ATTACH_ACCEPT EMM 消息的示例。此消息包含跟踪区域标识符列表、GPRS 计时器、ESM 消息容器和十几个可选对象,例如移动身份、紧急号码、协议配置选项等。 +Y|1 7 n  
附加接受消息。(图自Check Point Research)
&-e@Et`Pg  
如此一来,就有大量的杂项信息必须反序列化。 liblte_mme.cc 模块为每种内容类型包含一个单独的解包(解析)函数,展锐的调制解调器代码就具有类似的功能。 ,\]`X7r  
srsRAN 项目的 ATTACH_ACCEPT 消息处理程序有几个漏洞,以其中一个为例: TAE@KSPvo  
liblte_mme_unpack_emergency_number_list_ie 函数从消息数据中提取紧急号码。 \7\7i-Vo  
紧急列表的最大长度为 12。但是,省略了 idx 值小于 12 的检查。 MME 可以将 sent_length 值设置得足够大,以导致超过 12 个循环的 while 循环,从而用任意值覆盖 emerg_num_list->emerg_num 数组。此问题会导致堆栈溢出。 agI"Kh]j?  
liblte_mme_unpack_protocol_config_options_ie 函数中存在类似的漏洞,该函数解析用于传递有关网络的附加信息的协议配置选项。支持的选项的最大数量是83,但是没有检查MME发送的选项数量有没有超过这个最大值。溢出选项数组会导致堆栈溢出。 v4$"{W;'  
在知道了 NAS 消息解析函数是什么,也有代码供参考后,需要做的就是找到展锐调制解调器固件中的NAS数据解析功能。 |L}1@0i  
BSyl!>G6n8  
展锐调制解调器固件 kiP-^Wan  
16cc9%   
v-utDQT3  
在Check Point Research的研究中,使用的测试设备是带有2022 年 1 月更新 (RTAS31.68.29) Android系统的摩托罗拉 Moto G20 (XT2128-2) 。该设备基于紫光展锐T700芯片。 iYPlgt/Y!  
Moto G20 出厂更新设置可从网络上下载,无需 root 设备。在更新文件中,调制解调器固件由 SC9600_sharkl5pro_pubcp_modem.dat 镜像表示。 9^4BqAWYrV  
该镜像具有专有结构,但很容易重建,区块头的结构如下: tjId?}\  
GJeP~   
偏移值(offset value)是镜像文件中块开始的字节偏移量,长度是块大小。 在下图中可以看到Check Point Research测试设备的调制解调器镜像包含两个数据块。第一个块的类型是 0x402,大概意思是“解析库”;第二个块的类型为 0x301,它是调制解调器二进制文件。 KFuP gp  
Modem image header (图自Check Point Research)
e]!`Cl-f80  
从镜像中剪切出两个数据块。其中解析库块是一个 7-zip 存档,包含用于测试(解析和跟踪)来自外部机器的网络消息传递的库。例如,lteps_air_msg_dll.dll 库(为 x86 编译)实现了打包和解包 NAS 消息的功能。 \H&8.<HJ  
调制解调器二进制块是具有专有格式的文件,标头大小为 0x600 字节。在标头之后,调制解调器代码(ARM 指令)开始。Check Point Research用 ELF32 标头包装了这段代码,并将 0x8B000600 指定为代码段的基地址,此外还添加了一个从 0x8D0C0000 开始的空数据段。结果显示,生成的二进制文件可以很容易地反编译。 CW+]Jv]"  
在调制解调器固件中实现的日志消息包含当前源模块的名称。这使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 消息。 $eSSW+8q"  
_G62E $=  
查找 NAS 处理程序中的漏洞 50E?K!  
8mh@C6U  
s^vw]D  
绝大多数 NAS 消息解析器都有三个参数: mD"[z}r)  
1、输出缓冲区,它是适当消息结构的对象; jl)7Jd  
2、要解码的 NAS 消息数据 blob; zKllwIf i  
3、消息 blob 中的当前偏移量。 8aMmz!S  
统一的函数格式可以轻松地实现对 NAS 解析函数进行模糊测试的工具。在Check Point Research的研究中,使用 AFL 和 QEMU 的经典组合在 PC 上模糊调制解调器二进制文件。该机构修补了调制解调器二进制文件以将 malloc 调用重定向到 libc 等效项, fuzzer 对 NAS 消息数据进行排列,并将其作为输入缓冲区传递给解析函数。 C{<dzooz  
可选的 ATTACH_ACCEPT 字段之一是移动身份。调制解调器固件实现解包功能,如 srsRAN 中的liblte_mme_unpack_mobile_id_ie 从 NAS 消息中提取移动身份。身份数据块以身份的长度开始。如果设备由国际移动用户标识 (IMSI) 表示,则长度为 2 字节的消息数据将作为 IMSI 编号复制到输出缓冲区。 z&Kh$ $)[  
这里省略了确保提供的长度值大于 1 的检查。因此,如果长度字段值为零,则 0-2 = 0xFFFFFFFE 字节从 NAS 消息复制到堆内存,从而导致 DoS。 j=U^+jAn  
k x?m "a%  
在下图中可以看到导致溢出的 ATTACH_ACCEPT 消息。 mzGMYi*  
格式错误的 NAS 消息。(图自Check Point Research)
hN"cXz"/  
突出显示的 0x23 值表示后面的数据是消息标识块,其中第一个 0x01 是长度,第二个 0x01 是 IMSI 类型。 JjC& io  
本次用于实验的调制解调器将 CVE-2022-20210 分配给此漏洞。此外,当 NAS 处理函数从 NAS 消息外部读取数据时,Check Point Research发现了几个越界读取问题。 x o{y9VS  
Q&?^eOI&#(  
黑客需要先攻破运营商,几乎无法影响到终端 f [DZ  
wV{jJyRl  
. l>.  
5月时,Check Point Research已经向紫光展锐提交了发现的漏洞,紫光展锐官方也积极反馈,确定漏洞的存在并将其划分为9.4级的严重漏洞(CVSS 漏洞评分系统满级为10),同时承诺将针对该问题进行修补。 q L-Ni  
对于上述漏洞可能造成的影响,紫光展锐对媒体表示,该问题只会发生于运营商网络被黑客攻破的情况下,在4G安全保密架构下,技术难度非常大,而且其他方案手机也会产生影响。另外用户对此的感知不强,现象是设备的通信功能出现短期故障,1-5秒内即可恢复,并不会造成用户终端的信息泄露和通信功能的不可恢复。 a<W.}0ZY  
如果黑客不重复攻破或者用户离开该区域,网络将恢复正常,手机可正常使用。“在实际的用户使用环境中,运营商4G网络本身已对此类风险进行了针对性的防范,用户不必过于担心。” 业内人士表示,“相信大家可以感受到,前些年在2/3G时代经常有伪基站电信诈骗事件发生,但进入4G时代后,这样的新闻就很少听到了。因为伪基站没有办法攻破运营商安全架构极高的4G核心网。” tupAU$h?!  
从本次该机构发布的公告可以看出,紫光展锐其实并非特例。仅以手机芯片厂商为例,之前5月份高通、4月份高通和联发科均已“中招”。Check Point Research还指出,谷歌方面也已经确认了该漏洞,并表示,针对它的补丁有望在下一个Android安全补丁中得到修复。 ,bRYqU?#0  
6月8日午间,紫光展锐表示已完成相关排查,并登记在案(CVE-2022-20210,https://source.android.google.cn/security/bulletin/2022-06-01?hl=en#asterisk),验证完毕的相关补丁已于5月30日陆续更新至有关客户厂商。 86f8b{_e"  
\&,{N_G#L.  
国产基带走向全球,同时也开始接受检阅 esk~\!d  
v"v-c!k  
$ vt6~nfI  
紫光展锐(UNISOC)成立于2001年,是中国集成电路设计产业的龙头企业,也是中国大陆目前公开市场唯一拥有5G芯片能力并已成功商用的主芯片平台提供者。 4R&e5!  
根据调研机构Counterpoint发布的一季度智能手机应用处理器(AP)市场统计,展锐在低端手机市场(售价低于99美元)市占率从去年同期的20%飙升至47%,在100-199美元价格带也占据了8%份额。 m2x=Qv][@c  
整体份额中,紫光展锐占全球移动处理器市场约11%,仅次于联发科、高通和苹果,主要覆盖亚洲和非洲销售的低价Android 手机。 \jCN ]A<  
Check Point Research报告中提及,紫光展锐作为第四大手机芯片供应商,外界对其手机基带芯片相关安全研究资料较少,这也是该机构首次对展锐进行安全研究的原因。


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

精彩

感动

搞笑

开心

愤怒

一般

差劲
离线mark1030

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


离线巴霍巴利

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


离线rx290268149

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


在线tuzisecond

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


离线lianghenggui

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


离线pcvia

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


离线sun5304

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


在线sekisan

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


离线成成246

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



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


在线maogege-chen

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


离线minghuang

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


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