研究机构:TU Dresden, Universidade Federal de Campina Grande
论文出处:IEEE CLOUD 2024 (CCF C)
2.论文总结
可信执行环境(TEE)能够保护运行代码及其相关数据的完整性和机密性。然而,TEE的完整性保护并不包括保存到磁盘上的状态。此外,现代原生云应用严重依赖编排系统(如 Kubernetes),导致其服务频繁重启,在重启过程中,攻击者可能会将机密服务的状态回滚到以实现其恶意意图的先前版本。
本文提出了一种名为 CRISP 的回滚保护机制,该机制利用现有的 Intel SGX 运行时,能够透明地防止回滚攻击。本文方法可以将攻击窗口限制在一个固定的且短时间内,或者为开发者提供工具以彻底消除漏洞窗口。实验表明,在关键的有状态原生云应用中应用 CRISP 可能会导致资源增加,但性能开销较小。
3.设计
为了防止数据回滚,作者采用了可信的单调计数器(MC),并介绍了一种处理机制,供开发人员消除漏洞窗口。
4.实现
本节讨论了CRISP的实现。
5.评价总结
本文提出了一种方法,用于保护在可信执行环境(TEE)中运行的有状态应用程序。作者的设计利用了 SCONE 运行时及其受保护的文件系统,在写入操作中嵌入来自单调计数器的版本号。Intel SGX、SCONE FSPF 和 CRISP 的结合保证了数据的 CIF(机密性、完整性和新鲜度),包括针对防止回滚攻击。
尽管该方法很简单,但本研究融合了多项新颖机制,在将性能提升至可接受水平的同时,有效提供了控制乐观批处理引入的漏洞窗口的机制。例如,如果应用程序无法承受任何漏洞窗口,Checker API 可以阻止并等待单调计数器提交,然后再暴露关键信息。
最后,评估涵盖了MariaDB和SPIRE的高要求用例。从低层原始磁盘实验到高复杂度的 TPC-C 基准测试,实验结果均显示出合理的性能权衡。在某些情况下,得益于异步操作与缓存机制,CRISP甚至优于原生执行。虽然调用 Checker API 强制执行悲观模式可能会降低性能,但如果关键信息不频繁外泄,检查操作的影响可控制在较小范围内。对于 SPIRE 用例,由于最频繁操作(SVID 证书签名)的特性,用户及客户端服务感知到的性能影响微乎其微。作者还验证了该方法在分布式 SPIRE 环境中的有效性。

