Hardware-assisted trusted execution environments (TEEs) are critical building blocks of many modern applications. However, they have a one-way isolation model that introduces a semantic gap between a TEE and its outside world. This lack of information causes an ever-increasing set of attacks on TEE-enabled applications that exploit various insecure interactions with the host OSs, applications, or other enclaves. We introduce Sirius, the first compartmentalization framework that achieves strong isolation and secure sharing in TEE-assisted applications by controlling the dataflows within primary kernel objects (e.g. threads, processes, address spaces, files, sockets, pipes) in both the secure and normal worlds. Sirius replaces ad-hoc interactions in current TEE systems with a principled approach that adds strong inter- and intra-address space isolation and effectively eliminates a wide range of attacks. We evaluate Sirius on ARM platforms and find that it is lightweight ($\approx 15K$ LoC) and only adds $\approx 10.8\%$ overhead to enable TEE support on applications such as httpd, and improves the performance of existing TEE-enabled applications such as the Darknet ML framework and ARM's LibDDSSec by $0.05\%-5.6\%$.
翻译:由硬件协助的可靠执行环境(TEE)是许多现代应用的关键构件。然而,它们有一个单向隔离模式,在TEE及其外部世界之间引入了语义差距。这种缺乏信息导致对TEE驱动的应用程序越来越多的攻击,这些攻击利用了与主机操作系统、应用系统或其他飞地的各种不安全互动。我们引入了Sirius,这是第一个通过控制主要内核物体(例如线条、流程、地址空间、文件、插座、管道)内的数据流在TEE辅助应用中实现强烈隔离和安全共享的条块化框架。Sirius取代了当前TEE系统中的自动互动,采用有原则性的方法,增加了与主机主操作系统、应用程序或其他飞地之间的强有力的内部隔离,并有效地消除了广泛的攻击。我们在ARM平台上对Sirius进行了评估,发现Sirius的重量较轻($\approx 15K美元 LoC),并且仅增加$\10.8%的顶价,以使TEE支持应用,如 httpd, 5 RDMS 等现有技术数据库框架的性能。