G.O.S.S.I.P 阅读推荐 2022-12-02 PartEmu

IoT 1年前 (2022) admin
553 0 0

上个月我们曾经为大家介绍过关于TEE中TA安全测试的相关研究论文,今天我们来进行研究领域的考古,回到USENIX Security 2020,看一下当年发表的研究论文 PartEmu: Enabling Dynamic Analysis of Real-World TrustZone Software Using Emulation

G.O.S.S.I.P 阅读推荐 2022-12-02 PartEmu

TrustZone 是全球数十亿设备安全的基础。Secure World 在 TrustZone 操作系统( TZOS )上运行。TZOS运行着很多安全关键的”可信应用程序” ( TA ),分别用于密钥管理、认证、设备完整性维护和认证。即使 Normal World 完全受损,TA和TZOS仍然可以保护对敏感数据的访问。但是如果TA或TZOS中存在漏洞将会导致保护失效。由于只有经过可信方认证的代码才能在 TrustZone 中运行,这使得 TrustZone 中的程序很难被测试,最近提出的由反馈驱动的 fuzzing 技术也无法应用。为了解决这个问题,作者基于 QEMU 实现了可以运行4种广泛应用的 TZOS 模拟器 PartEmu,包括高通的QSEE 、Trustonic的Kinibi、三星的TEEGRIS和Linaro的OPTEE。

以Android手机为例,从图中可以看到包含大量的组件,并且组件之间有依赖关系。由于不同的供应商硬件的不同并且没有文档,所以通过模拟所有硬件来运行整个固件映像是根本不可行的。

G.O.S.S.I.P 阅读推荐 2022-12-02 PartEmu

作者发现TZOS仅依赖于所有硬件和软件组件的有限子集。首先排除了一些和 TZOS 无关的组件(比如 hypervisor、GPS等 ), 然后分析了各个组件之间的依赖关系(分为启动时依赖、运行时依赖),通过不同组件的紧密耦合程度选取了需要模拟或者重用的组件

G.O.S.S.I.P 阅读推荐 2022-12-02 PartEmu

实现 PartEmu 的整个流程可以用下图表示

G.O.S.S.I.P 阅读推荐 2022-12-02 PartEmu

为了在模拟运行的 TZOS 上进行有效的 fuzzing,作者将 AFL 作为一个模块,暴露了接口给 Normal World 和 TA交互来进行 fuzzing。作者从12个大型的Android智能手机厂商(华硕、谷歌等)和一个大型物联网厂商的TZOS映像文件中提取了194个不同的TA,并且几乎覆盖了TEE的所有功能。fuzzing结果如下

G.O.S.S.I.P 阅读推荐 2022-12-02 PartEmu

AFL 成功使得 48 个 TA 崩溃,这些漏洞都是之前没有被发现过的。甚至其中有 8 个 TA 输入一个字节后崩溃。大部分原因是 TA 没有为分配足够的共享内存,造成了非法内存访问。通过人工确认后,可以分类如下

G.O.S.S.I.P 阅读推荐 2022-12-02 PartEmu


论文PDF: https://www.usenix.org/system/files/sec20-harrison.pdf


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

版权声明:admin 发表于 2022年12月2日 下午10:55。
转载请注明:G.O.S.S.I.P 阅读推荐 2022-12-02 PartEmu | CTF导航

相关文章

暂无评论

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