《06李中权-深入Android可信应用漏洞挖掘.pdf》由会员分享,可在线阅读,更多相关《06李中权-深入Android可信应用漏洞挖掘.pdf(75页珍藏版)》请在三个皮匠报告上搜索。
1、深 入 A n d r o i d 可 信 应 用 漏 洞 挖 掘李中权About Me启明星辰 ADLab 移动安全专家、高级安全研究员专注于 Apple、Android、IoT 的漏洞挖掘与 Fuzzing小米 SRC Top 1发现 Apple、华为、荣耀、小米、三星、联发科、OPPO、VIVO 等主流厂商的高危漏洞曾在天府杯上完成产品破解目录05 TA 的 Fuzzing06TA 攻击面分析07TO DO01TEE 介绍02主流 TA 的架构实现和逆向分析03如何对 TA 做安全研究04TA 的模拟TEE 介绍TEE 介绍什么是 TEE?全称为“可信执行环境”(Trusted Exec
2、ution Environment),是位于主处理器中的一个独立的安全区域TEE 的角色?TEE 为运行在其中的应用程序提供了一个隔离的环境以保护应用程序和数据免受其他软件的攻击。TEE 常用于处理敏感的数据,如密码、密钥、生物识别数据等。即使设备的主操作系统被攻击,TEE 中保存的敏感数据和安全策略也不会受到影响基本概念什么是 Normal World?指设备的主操作系统环境,包括运行的应用程序和操作系统本身。这个环境通常包含用户的各种应用程序和服务,但是它并不被认为是安全的,因为它可能受到各种各样的攻击。在本次演讲中,Normal World 和 REE 都指的是 Android 操作系统
3、什么是 CA?Client Application,这些应用程序运行在设备的主操作系统(即“Normal World”)中,并通过特定的 API 与 TEE(也被称为Secure World)通信通用架构图Normal WorldAPP APPAPPAPPFramework ServicesEL0Android KernelEL1HypervisorEL2TA TATATATA TATATAS-EL0TEEOSS-EL1Trusted FirmwareEL3Secure World可信应用 TA 承担的作用敏感数据的安全存储(Eg:指纹、图片、用户密钥)安全通信完整性校验安全的加密策略DRMe
4、tc为什么会对 TA 做安全研究?2022 年下半年本想对 TA、TEEOS、ATF 整体做漏洞挖掘但挖掘 TA 时发现 TA 的漏洞多到超乎想象,故针对部分主流厂商的 TA 做了漏洞挖掘目标:基于 OP-TEE 的自研 TEE小米的 MiTEE MTK 某国产厂商自研的 TEE 高通、Kinibi华为、三星:(彼时刚有研究员分析过,故有架构分析但未深入挖掘)60 处漏洞被确认(含撞洞)因厂商漏洞披露策略的限制,省略部分漏洞细节主流 TA 的架构实现和逆向分析理解 CA 和 TA 的通信12345CA 调用 API 与 REE Driver 通信REE Driver 初始化请求,封装必要的参数
5、并通过 Secure Monitor 发送给 TEETEE 接收到请求后,将 TA 镜像文件的内容从 REE 侧加载到 TEE 的共享内存中TEE 校验 TA 的完整性、证书签名、版本等校验通过后,TEE 加载 TA,进入 TA 的生命流程Global Platform TEE Client API 规范标准化开发流程提升 TA 开发的效率用 Session 管理创建、打开、关闭会话的流程以及与 TA 的交互方式规范会话中的命令调用以及输入/输出参数的管理理解 Global Platform 规范中 TA 的生命周期12345TA_CreateEntryPoint TA_OpenSession
6、EntryPointTA_InvokeCommandEntryPointTA_CloseSessionEntryPointTA_DestroyEntryPointGP TEE Client API TA 的基本定义TA UUID根据 TA 处理外部数据的方式,我将 TA 分为两类遵循 Global Platform TEE Client API 规范的 TA使用 TEE_Params 结构做数据交换如:MiTEE、HTEE、OP-TEE 以及很多基于 OP-TEE 二次开发的 TEE使用二进制数据流的 TA从外部传入的二进制数据流中读取数据厂商可能自行实现了新的数据传输和处理的协议也可能基于