CheckPoint披露部分红米手机支付功能存在安全漏洞,现已修复

干涩的记忆 2022-08-14 11:54:13

8月12日,知名安全机构Check Point披露部分采用联发科处理器的小米智能手机支付系统存在严重安全漏洞,目前已验证存在漏洞的机型包括Redmi Note 9T 和 Redmi Note 11。

对于重要数据的敏感操作,智能手机目前普遍采用可信执行环境 ((Trusted Execution Environment,,简称“TEE”)方案,比如加密密钥和指纹,这是一套采用软硬件协同配合的综合解决方案,即使是在已经root的设备或受到恶意软件攻击的设备上,TEE也能在一定程度上确保安全。

移动支付也是在TEE环境中进行的,只有TEE自身首先是安全的,用户付款操作才能确保安全,目前,用于移动设备的TEE最主流的解决方案是高通的安全执行环境 (QSEE) 和 Trustronic公司的 Kinibi。

QSEE方案适用于搭载高通处理器的手机,小米采用联发科处理器的手机所采用的方案是Kinibi(参阅图二),小米会在Kinibi的基础上搭载相应配套的可信应用程序,Check Point所采用的测试设备为搭载 MIUI Global 12.5.6.0的红米 Note 9T 5G机型。

小米手机可信任应用程序存储在/vendor/thh/ta目录中,每个应用程序由一个未加密的二进制文件表示。但是,相关代码省略了版本控制字段,攻击者可将包含漏洞的可信应用程序的旧版本传输到设备中,覆盖新版的应用程序文件,由于旧版应用程序的签名是正确的,该应用程序将被TEE成功加载,从而可以绕开某些安全限制。

为了验证这种攻击思路的可行性,Check Point成功地thhadmin用从另一台运行 MIUI Global 10.4.1.0的设备上提取的旧应用程序覆盖了运行 MIUI Global 12.5.6.0的测试设备上的受信任应用程序。旧版应用程序已成功启动,成功地绕开了小米后来发布的安全修复,事实证明这种攻击思路是可行的,换言之,这是一个比较严重的安全漏洞。

腾讯 soter 架构

另外,小米手机还内置了腾讯Soter嵌入式移动支付框架API,以为第三方应用程序添加支付功能,在这部分功能实现中Check Point同样发现了安全漏洞。

soter应用程序提供了initSigh(命令 ID 0x100C)函数,该函数接收AuthKey和查询字符串两个参数,处理程序通过将initSigh密钥别名和查询连接到固定大小的缓冲区创建会话 ID。

攻击者可以提供大于 0x198 字节或大于 0x8C 字节的别名,以使用任意值覆盖会话缓冲区之后的堆,此漏洞可被利用来执行自定义代码。

在测试中,Check Point尝试窃取其中一个 soter 私钥,其使用旧版本应用程序中存在的另一个任意读取漏洞soter(从 MIUI Global 10.4.1.0 中提取)。

可导致受信任应用程序崩溃的测试代码

由于相关部分的代码没有检测参数的类型,如果传入一个数字作为参数,程序不会报错,会被识别为虚拟地址,应用程序将读取或写入指定的内存,攻击者可以使用这个问题来获得任意内存读取。

因此,第三方安卓应用程序可以在soter没有任何用户交互的情况下被轻松攻击,小米没有提供严谨的措施来保护 soter API,小米为此漏洞分配编号为“ CVE-202 0–14125”。

最后需要强调的是,Check Point所发现的这些漏洞并不是近期才发现的,早在数月以前就已经发现并且主动通知报告给了小米方面,小米方面高度重视,已进行了修复。

0 阅读:0

干涩的记忆

简介:深挖娱乐圈的明星和事件,还您一个真实的偶像.