G.O.S.S.I.P 阅读推荐 2022-11-21 TEEzz

逆向病毒分析 1年前 (2022) admin
504 0 0

世界杯的揭幕战已经打响,可学术的生活还得继续,不然人类科学怎么进步(误)?我们这次跟大家分享的论文是已经被IEEE S&P 2023预录取的论文——TEEzz: Fuzzing Trusted Applications on COTS Android Devices 在这篇论文中,作者开发了第一个能够在手机上对TEE里面的trusted applications(TA)进行有效模糊测试的框架TEEzz

G.O.S.S.I.P 阅读推荐 2022-11-21 TEEzz

到2022年,我们对TEE也就是可信执行环境(Trusted Execution Environment)应该已经非常熟悉了,TEE可以保证不被常规操作系统干扰的计算,因此称为”可信”。这是通过创建一个可以在TrustZone的”安全世界”中独立运行的小型操作系统实现的,该操作系统以系统调用(由TrustZone内核直接处理)的方式直接提供少数的服务。

TEE通常用于运行如下一些关键的操作:

  • 移动支付:指纹验证、PIN码输入等

  • 机密数据:私钥、证书等的安全存储

  • 内容包括:DRM(数字版权保护)等

G.O.S.S.I.P 阅读推荐 2022-11-21 TEEzz

根据ARM的设计,在主流的手机终端上,可分为 Normal World 和 Secure World,而它们是可以按照下图的通信方式进行数据传输和交互:

G.O.S.S.I.P 阅读推荐 2022-11-21 TEEzz

在这里面主要的几个角色包括CA、TA、CA Lib、TEE Lib、Rich OS和Trusted OS等,其中CA是为了与TA进行交互而构建的,是可以被完全控制的”正常世界”的一部分,CAlib提供了一系列接口,以便CA与安装在TEE内的TA进行交互。最重要的是,为了满足各种上层服务的需要,除了TEE本身,应用厂商也会开发配套的TA,让其运行在Trusted OS中。随着TA的数量和复杂型的增加,TA的漏洞越来越多,与常规的漏洞不同,TA中的漏洞会威胁到整个系统的安全甚至安全启动过程(secure boot process)。TEE在与TA通信时会强制执行严格的协议交互,这阻碍了有效的自动化测试。同时,智能手机附带可信操作系统 (tOS) 和大量预装的TA,禁止Normal World的用户对其进行调试,甚至,TEE和TA仅在Secure World运行时动态解密后加载,对抗静态分析。

在本文中,作者希望能够对TA进行模糊测试,由于模拟环境中重新托管(re-hosting) TEE 几乎无法实现(目前仅有Partemu模拟了三星专有的 TEE 软件堆栈),华为的TEE 固件是加密的,设备上执行是执行相应 TA 的唯一方法。所以,作者采用了直接在真实设备上测试的研究方法。

作者设计了名为TEEzz的框架,适配了三种流行的 TEE 实现:Qualcomm 安全执行环境 (QSEE) ,用于包括流行的 Nexus 和 Pixel 系列;TrustedCore (TC) ,用于华为设备;开放式可移植可信执行环境 (OPTEE) ,这是基于 TZ 的 TEE 的实际参考实现。TEEzz首先识别 TEE 中的 TA,然后触发与它们的交互。在这些交互过程中,TEEzz记录传入和传出 TEE 的数据,用来自动重建通信协议和依赖关系。为了推断 API 的必要信息,作者设计了一种推断机制,将高级抽象映射到用于与 TA 通信的低级消息。 TEEzz自动为暴露接口的每个参数类型生成内存自省逻辑,然后从记录的痕迹中抽象出交互协议。作者在AFL++的基础上,针对TA fuzzing的场景,为其增加了type-aware以及state-aware的能力,使其能够高效地对TEE中运行的TA进行fuzzing,具体的type-aware和state-aware可以阅读原文,这里不作具体分析。

TEEzz的主要工作流程如下图所示

G.O.S.S.I.P 阅读推荐 2022-11-21 TEEzz

具体的每一步:

  1. 通过使用递归遍历所有依赖对象的静态分析生成依赖树, 识别出所有CA,然后自动分析AOSP的CAlib的接口定义,手动分析vendor和unused的CAlib的接口定义。通过这些接口,TEEzz创建CA来与TA进行交互。

  2. 为这些CAlib接口结合AST、内存自省自动生成DBII记录器和 Type-Aware Mutators
    G.O.S.S.I.P 阅读推荐 2022-11-21 TEEzz

  3. 通过这些记录器,在多个层面对CA与TA之间的交互进行捕获,得到每个TA的Type-Aware和State-Aware的交互序列。在语义丰富的高级层面和语义较为模糊的低级层面上,记录器会拥有相同的交互记录。这些记录使得TEEzz能够获知底层级上输入对应的语义信息。
    G.O.S.S.I.P 阅读推荐 2022-11-21 TEEzz

  4. TEEzz根据API定义模型选择需要fuzzing的序列,并根据类型感知模型生成步骤中推断的类型进行类型感知变异。然后,将变异后的调用序列发送给TEEzz并评估响应

  5. 通过多次回放来消除误报

除了在最新版本的OPTEE TA 发现多个漏洞以为,TEEzz在流行的手机上测试,发现了40个不同的漏洞,并获得了1个CVE编号,下表展示了针对华为P9、华为P20、Nexus 5X和Pixel 2 XL的TA的测试结果:

G.O.S.S.I.P 阅读推荐 2022-11-21 TEEzz


论文链接:https://hexhive.epfl.ch/publications/files/23Oakland.pdf

开源代码:https://github.com/HexHive/teezz-fuzzer 然而现在还是404,鄙视这种放404链接的论文


原文始发于微信公众号(安全研究GoSSIP):G.O.S.S.I.P 阅读推荐 2022-11-21 TEEzz

版权声明:admin 发表于 2022年11月21日 下午7:08。
转载请注明:G.O.S.S.I.P 阅读推荐 2022-11-21 TEEzz | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...