[2022.06.15] [S&P 2022] vSGX: Virtualizing SGX Enclaves on AMD SEV

Author: Shixuan Zhao, Mengyuan Li, Yinqian Zhang, Zhiqiang Lin Conference: S&P 2022 Paper Link: https://www.computer.org/csdl/proceedings-article/sp/2022/131600a687/1A4Q3q3W28E Note Link: https://jbox.sjtu.edu.cn/l/01EAPB Contributor: pdh Overview 现如今对可信执行环境的需求加速了可信硬件的发展,然而在不同架构下有着不同的可信硬件的实现方式,导致开发者在开发时还要针对架构进行不同程度的开发,兼容性很差。本文提供了vSGX,用于在AMD SEV的环境下虚拟一个SGX enclave,使得AMD架构能够兼容SGX的代码。其问题的关键在于SGX代码有一些额外的指令集(ENCLS和ENCLU),需要在AMD平台下对这些指令进行模拟,并且利用SEV虚拟机创建一个类似于SGX的地址空间和内存执行环境。具体来说,vSGX可以被视作一个被插入到SEV虚拟机中的SGX硬件模块,其核心思路就是利用SEV提供的虚拟机保护机制创建一个可信执行环境,用来移植SGX。这样,SGX enclave的代码和数据的机密性由AMD的内存加密引擎(Memory Encryption Engine, MEE)来保证,完整性由基于AMD SEV的远程认证设计出的认证服务来保证。移植了SGX enclave的虚拟机被称为enclave VM (EVM),而运行不可信app的虚拟机则被称为app VM (AVM)。因此,通过本文的设计,vSGX在AMD平台下达到了和Intel SGX相似的安全性,并且有着合理的额外开销。 虽然这个在AMD架构上虚拟化SGX的想法非常直观,但是完成这个想法需要面对几个不平凡的挑战: 如何在AMD SEV中插入SGX的指令; 如何处理那些需要跨越EVM和AVM的操作(例如EENTER和EEXIT); 如何处理跨EVM和AVM的内存访问; 如何处理AVM的OS中存在的不可信的代码,甚至是恶意的hypervisor; 如何去实现远程认证。 本文分析了vSGX的安全性,并且讨论了本文的设计是如何达到和原生SGX可比较的安全级别。同时,本文对vSGX的运行性能进行了评估,运行了一个benchmark集合以及现实世界中真实的SGX应用。结果显示一些SGX的指令确实会显著降低vSGX的运行性能(例如EENTER和EEXIT),但是这些只有那些拥有很多ECall和I/O操作的程序中才会显示出来。本文通过对真实世界SGX应用进行评估的结果显示,vSGX的额外性能开销是可以接受的。

[2021.09.14] [CCS 2019] OPERA: Open Remote Attestation for Intel’s Secure Enclaves

Author: Guoxing Chen, Yinqian Zhang, Ten-Hwang Lai Affiliation: The Ohio State University, The Ohio State University, The Ohio State University Conference: CCS 2019 Paper Link: https://dl.acm.org/doi/10.1145/3319535.3354220 Note Link: https://jbox.sjtu.edu.cn/l/S1oYKk Contributor: pdh Overview This paper presents OPERA, which is an Open Platform for Enclave Remote Attestation. Instead of completely trusting the IAS, OPERA leverage the feature […]

[2021.09.29] [EuroSys 2019] ShieldStore: Shielded In-memory Keyvalue Storage with SGX

Source: http://calab.kaist.ac.kr:8080/~jhuh/papers/kim_eurosys19_shieldst.pdf Authors: Taehoon Kim, Joongun Park, Jaewook Woo Download Note: https://jbox.sjtu.edu.cn/l/aF2d4t Contributor: cyp Overview key-value数据库在云服务中非常常用,比如 Memcached和redis。key-value数据库存储key作为 index,并且支持把在内存中的data放入磁盘,进行永久的存储。利用intel SGX的技术,可以防止恶意 的云厂商对内存中数据的监听和修改。 但是intel SGX的最大限制就是它的容量,它的EPC( enclave page cash )只有128M,如果放入 enclave的数据大于128M,就会进行消耗很大的paging 操作。 所以这篇文章提出了一个可以基于于intel SGX的key-value设计ShieldStore,它在enclave里面加密每 个key-value对,当加密完成后,此时这些key-value已经受到加密性和完整性的保护,则可以把这些 key-value放入no-enclave的区域。

[2021.09.01] [MIDDLEWARE 2019] AccTEE: A WebAssembly-based Two-way Sandbox for Trusted Resource Accounting >

Source: https://dl.acm.org/doi/abs/10.1145/3361525.3361541?casa_token=U0LOekVX1D4AAAAA:HAT3p4fiK0r8VwKbAX95Lib256TfCZVcIT130Zxg7gSUcjn4QZh9I9eTbp0-puE6NmIfd2ZOCZUsog Authors: David Goltzsche(TU Braunschweig, Germany);Manuel Nieke(TU Braunschweig, Germany);Thomas Knauth(Intel, United States);Rüdiger Kapitza(TU Braunschweig, Germany) Download Note: https://jbox.sjtu.edu.cn/l/S11yks Contributor: lty 远程计算,例如云计算、客户端的web应用和volunteer计算。这些服务的资源计算方法依赖于infrastructure provider。这些远程计算往往需要沙箱对其进行保护,理由是:隔离主机环境免受攻击;控制和限制资源使用。通常云服务器和代码提供者相互都是不信任的。 AccTEE是一个在服务器和用户之间提供资源使用可信服务的双路沙箱。SGX+WASM,在确保代码和数据的机密性和完整性的同时,使用自动代码工具进行细粒度的资源核算。

[2021.07.19] [USENIX Security 2020] TeeRex: Discovery and Exploitation of Memory Corruption Vulnerabilities in SGX Enclaves

Source: https://www.usenix.org/system/files/sec20-cloosters.pdf Authors: Tobias Cloosters, Michael Rodler, Lucas Davi. Download Note: https://jbox.sjtu.edu.cn/l/xF3PaM Contributor: ydh Overview SGX本身无法完全保护三类攻击。第一种是侧信道攻击,第二种是enclave内部的内存破坏,第三种是Iago攻击。 侧信道和Iago攻击不在本文的研究范围内。在legacy code移植或是SGX项目开发的过程中,如果开发者不熟悉SGX特性,很可能会引入漏洞。本文采用了符号执行的方法分析host-to-enclave边界,发现enclave内部可信代码中的漏洞。

[2021.07.02] [NDSS 2021] CHANCEL: Efficient Multi-client Isolation Under Adversarial Programs

Source: https://web.ics.purdue.edu/~ahmad37/papers/ahmad-chancel.pdf Authors: Adil Ahmad,Juhee Kim,Jaebaek Seo,Insik Shin,Pedro Fonseca,Byoungyoung Lee. Download Note: https://jbox.sjtu.edu.cn/l/415lI6 Contributor: lty Overview 英特尔SGX旨在为不受信任的云计算机上的用户数据提供机密性。 但是,处理机密用户数据的应用程序可能包含漏洞,这些漏洞会泄漏信息或被恶意编程以收集用户数据。 SGX可信但是其中运行程序不可信,云服务商是不可信的。 为此,本文提出了CHANCEL,它是一个沙箱,旨在在单个SGX enclave内进行多客户端隔离。CHANCEL允许程序的线程在处理请求时访问每个线程的内存区域和共享的只读内存区域。

[2021.05.18] [NDSS 2021] Emilia: Catching Iago in Legacy Code

Source: https://security.csl.toronto.edu/wp-content/uploads/2021/01/rcui-ndss2021-emilia.pdf Authors: Rongzhen Cui, Lianying Zhao, David Lie. Download Note: https://jbox.sjtu.edu.cn/l/oFjqy9 Contributor: ydh Overview Iago攻击是恶意的操作系统修改运行在TEE中可信应用程序syscall的返回值导致应用程序非预期行为。本文通过fuzz的方法劫持应用程序请求的syscall,并对syscall的返回值fuzz来发现应用程序中潜在的Iago漏洞。 使用本文实现的工具对17个legacy应用程序fuzz,发现了51个Iago漏洞,并对漏洞做了进一步深入分析。

[2021.04.13] [S&P 2015] VC3: Trustworthy Data Analytics in the Cloud using SGX

Source: https://ieeexplore.ieee.org/document/7163017 Authors: Felix Schuster∗, Manuel Costa, Cedric Fournet, Christos Gkantsidis,Marcus Peinado, Gloria Mainar-Ruiz, Mark Russinovich, Microsoft Research Download Note: https://jbox.sjtu.edu.cn/l/HFguB2 Contributor: cyp Overview 用户可以租赁云服务商提供的算力,在基于MapReduce框架下运行大规模的分布式计算,但是云服务商有可能窃取和篡改用户的代码和数据,所以用户希望云服务商可以提供如下安全保证: 代码和数据的完整性和机密性保证 代码执行的可验证性 传统的方法比如同态加密、零知识如果应用到分布式计算中都会又很大的性能消耗,所以作者提出了Verifiable Confidential Cloud Computing(VC3)在没有太多性能消耗的前提下达到需要的安全保证