G.O.S.S.I.P 阅读推荐 2023-02-22 MyTEE

admin 2023年2月23日10:28:28评论94 views字数 2268阅读7分33秒阅读模式

继续NDSS 2023之旅,今天要从会议论文中给大家推荐的是一篇关于可行执行环境TEE的研究论文 MyTEE: Own the Trusted Execution Environment on Embedded Devices,这篇论文的有趣之处在于,作者设计了一套能够在底层硬件不支持的情况下仍然工作的TEE环境——MyTEE,听上去好像有点厉害对吧?那就让我们看看论文的细节

G.O.S.S.I.P 阅读推荐 2023-02-22 MyTEE

这篇论文的作者来自韩国的Chungnam National University(中文有的翻译为“全南大学”,有的则叫做“忠南国立大学”,是有着百年历史的一所大学),论文的第二作者Jinsoo Jang长期研究可信执行环境,发表过大量相关论文,因此这篇论文的质量也得到了保证。在这篇论文中,作者探讨了一个常常困扰低端ARM MCU的问题——由于ARM并未给产品线上所有的MCU提供TrustZone的支持,经典的TEE软件栈是没法部署在全系列的ARM MCU上的。那么,有没有可能给那些缺乏硬件安全机制支持的MCU也带来TEE的安全性呢?

作者在本文中给出了自己的设计——MyTEE环境,这个MyTEE解决了什么问题呢?主要是为了弥补如下一些硬件安全机制的缺失:在支持ARM TrustZone的硬件中,为了保证内存的隔离和访问控制,需要 TrustZone Address Space Controller (TZASC) 和 TrustZone Memory Adapter (TZMA) 的支持,同时需要 TrustZone Protection Controller (TZPC) 为IO通信建立一个安全的信道。此外,为了抵御恶意的直接内存访问(direct memory access,DMA),也需要 input/output memory management unit (IOMMU) 的支持。下表总结了一些典型的SoC上TrusZone安全机制的缺失情况(注意到本文假设ARM的secure boot机制在所有情况下都生效):

G.O.S.S.I.P 阅读推荐 2023-02-22 MyTEE

作者指出,假如这些硬件机制都没有,那就让我们的MyTEE来取而代之吧!MyTEE实现了一套软件方式的安全防护(架构如下图所示)。

G.O.S.S.I.P 阅读推荐 2023-02-22 MyTEE

其中:

  • 为了实现内存的隔离,MyTEE和此前的很多防护方案一样,在页表上做文章,利用ARM的stage-2 page table(就是一个和x86上扩展页表extended page table类似的设计,都是用来为虚拟化服务的)机制,在底层实现了一个迷你的hypervisor,作为MyTEE中隔离TEE和normal OS的组件。当然,由于hypervisor本身也可能被软件攻击,在这个组件里面,MyTEE还需要进一步保证TEE的内存页面一旦加载完毕,hypervisor既不能去管理这些页面,同时这些页面也不允许被修改了。

  • 为了防止基于DMA的攻击,MyTEE又设计了一个filter,对所有从 memory-mapped IO (MMIO) 到 DMA controller 的请求进行审查。

  • 为了实现安全的IO读写(secure IO),MyTEE把相关的操作搬到了normal OS里面(!!),然后同样用hypervisor去保护相关的IO buffer,实现了无硬件支持的IO读写。

我们具体看一下每个部分的细节,首先是内存的隔离,这部分的设计主要考虑如何把不同的组件放在stage-2 page table的不同区域,而stage-2 page table由secure boot保证完整性。注意到在MyTEE设计中,OS的kernel被降低了权限(deprivileged),只有那些特定的设备驱动(负责处理相关的secure IO)才被允许获得更高的权限。

G.O.S.S.I.P 阅读推荐 2023-02-22 MyTEE

接下来是DMA controller上的安全过滤,作者在本文中假定所有的硬件都是安全的,因此只考虑软件层面上的恶意DMA请求。MyTEE监视了所有的DMA controller register,对可能的DMA请求都进行拦截(还是通过stage-2 page table控制data transmission memory的读写)。

G.O.S.S.I.P 阅读推荐 2023-02-22 MyTEE

最后是secure IO的实现,这里MyTEE只允许 peripheral hardware 和 TA 访问hypervisor中的特定buffer,而不允许操作系统访问。同时,临时地给予特定的设备驱动访问这些buffer的高权限(当secure IO操作发生之时)。这样就实现了一种“软”secure IO读写。

G.O.S.S.I.P 阅读推荐 2023-02-22 MyTEE

G.O.S.S.I.P 阅读推荐 2023-02-22 MyTEE

G.O.S.S.I.P 阅读推荐 2023-02-22 MyTEE

作者把MyTEE部署在了没有TrustZone支持的树莓派3上面,用来保护OP-TEE,而上层支持Raspbian OS(Linux 4.15)运行。整个开发的工作量如下表所示,看起来也不算非常巨大:

G.O.S.S.I.P 阅读推荐 2023-02-22 MyTEE

MyTEE的支持下,作者实现了“软安全可信”的TPM、USB键盘IO和可信显示这三个功能。同时评估了性能开销,大部分情况下,benchmark的开销增长都在1%-5%左右,这个在现实应用中是非常不错的!

G.O.S.S.I.P 阅读推荐 2023-02-22 MyTEE

G.O.S.S.I.P 阅读推荐 2023-02-22 MyTEE

G.O.S.S.I.P 阅读推荐 2023-02-22 MyTEE

即使是对于一些外设的secure IO读写(完全由软件模拟管理,因此可能预期会有较大的性能损耗),实验数据(下面的表格)看起来也还是比较能接受的:

G.O.S.S.I.P 阅读推荐 2023-02-22 MyTEE


论文:https://www.ndss-symposium.org/wp-content/uploads/2023/02/ndss2023_s41_paper.pdf
代码:https://github.com/sssecret2019/mytee (目前什么也没有,骗子)


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

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月23日10:28:28
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   G.O.S.S.I.P 阅读推荐 2023-02-22 MyTEEhttps://cn-sec.com/archives/1567737.html

发表评论

匿名网友 填写信息