[论文解读] EnclaveDom: Privilege Separation for Large-TCB Applications in Trusted Execution Environments
EnclaveDom 是一种用于 Intel SGX 受信任执行环境中的大型 TCB 应用程序的硬件辅助特权分离系统,利用内存保护键(MPK)将信封分区为带标签的内存区域,并在函数级别强制实施细粒度访问控制。它可防止不受信任的应用程序代码对库操作系统中敏感的内部数据结构进行篡改,在 Graphene-SGX 上的原型评估中性能和内存开销极低。
Trusted executions environments (TEEs) such as Intel(R) SGX provide hardware-isolated execution areas in memory, called enclaves. By running only the most trusted application components in the enclave, TEEs enable developers to minimize the TCB of their applications thereby helping to protect sensitive application data. However, porting existing applications to TEEs often requires considerable refactoring efforts, as TEEs provide a restricted interface to standard OS features. To ease development efforts, TEE application developers often choose to run their unmodified application in a library OS container that provides a full in-enclave OS interface. Yet, this large-TCB development approach now leaves sensitive in-enclave data exposed to potential bugs or vulnerabilities in third-party code imported into the application. Importantly, because the TEE libOS and the application run in the same enclave address space, even the libOS management data structures (e.g. file descriptor table) may be vulnerable to attack, where in traditional OSes these data structures may be protected via privilege isolation. We present EnclaveDom, a privilege separation system for large-TCB TEE applications that partitions an enclave into tagged memory regions, and enforces per-region access rules at the granularity of individual in-enclave functions. EnclaveDom is implemented on Intel SGX using Memory Protection Keys (MPK) for memory tagging. To evaluate the security and performance impact of EnclaveDom, we integrated EnclaveDom with the Graphene-SGX library OS. While no product or component can be absolutely secure, our prototype helps protect internal libOS management data structures against tampering by application-level code. At every libOS system call, EnclaveDom then only grants access to those internal data structures which the syscall needs to perform its task.
研究动机与目标
- 解决 TEE 中大型 TCB 应用程序带来的安全风险,即不受信任的第三方代码可能访问并破坏库操作系统中的敏感内部数据结构。
- 在单个信封内提供细粒度的特权分离,避免多信封架构的复杂性。
- 保护信封内敏感的数据结构(如文件描述符表)免受应用程序级代码的篡改。
- 在单个信封内函数的粒度上实现最小权限访问控制,提升安全性的同时不牺牲性能。
- 与现有的 TEE 应用开发模型无缝集成,特别是容器化的库操作系统(如 Graphene-SGX)。
提出的方法
- 利用 Intel SGX 的内存保护键(MPK)对单个信封内的内存区域进行标记,实现硬件强制的访问控制。
- 将信封划分为多个内存域,每个域与特定的特权级别或访问策略相关联。
- 在函数级别强制执行访问规则,使每个系统调用仅能访问其操作所需的最小数据结构集合。
- 作为用户空间 API 集成系统,使开发人员能够通过注解保护敏感数据对象和内部 libOS 结构。
- 通过将 EnclaveDom 集成到 Graphene-SGX 库操作系统中来评估原型,以展示安全性和性能之间的权衡。
- 利用现有的硬件内存保护支持,避免虚拟化或基于进程隔离带来的性能开销。
实验结果
研究问题
- RQ1能否有效利用 MPK 的硬件辅助内存标记,在单个 Intel SGX 信封内强制实施特权分离?
- RQ2EnclaveDom 是否能有效保护库操作系统中敏感的内部数据结构,防止不受信任的应用程序代码篡改?
- RQ3当集成到实际的 TEE 库操作系统(如 Graphene-SGX)时,EnclaveDom 是否引入可接受的性能和内存开销?
- RQ4EnclaveDom 是否能在不将应用程序重构为多个进程的前提下,实现函数级别的细粒度访问控制?
- RQ5与现有方法相比,EnclaveDom 在防范涉及不受信任第三方库的供应链攻击方面表现如何?
主要发现
- EnclaveDom 有效隔离了 Graphene-SGX 库操作系统中对敏感内部数据结构的访问,防止了未经授权的访问和篡改。
- 原型仅引入了适度的性能和内存开销,使其在大型 TCB TEE 应用程序中具备实际部署的可行性。
- 通过在函数级别强制实施最小权限访问,EnclaveDom 确保每个系统调用仅访问其操作所必需的最小数据结构集合。
- MPK 的使用实现了高效、硬件支持的内存保护,无需虚拟化或进程隔离。
- EnclaveDom 为多信封架构提供了可行的替代方案,在降低开发复杂性的同时提升了安全性。
- 评估结果证实,EnclaveDom 能够有效保护 libOS 管理数据结构(如文件描述符表)免受恶意或存在漏洞的第三方代码的破坏。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。