|
|
FCS | 前沿研究:Intel SGX及其应用详解 |
|
论文标题:A survey of Intel SGX and its applications(Intel SGX及其应用详解)
期刊:Frontiers of Computer Science
作者:Wei ZHENG, Ying WU, Xiaoxue WU, Chen FENG, Yulei SUI, Xiapu LUO, Yajin ZHOU
发表时间:15 Jun 2021
DOI: 10.1007/s11704-019-9096-y
微信链接:点击此处阅读微信文章
原文信息
标 题:
A survey of Intel SGX and its applications
原文链接:
https://journal.hep.com.cn/fcs/EN/10.1007/s11704-019-9096-y
引用格式:
Wei ZHENG, Ying WU, Xiaoxue WU, Chen FENG, Yulei SUI, Xiapu LUO, Yajin ZHOU. A survey of Intel SGX and its applications. Front.Comput.Sci., 2021, 15(3): 153808
公众号推文链接:
Intel SGX及其应用详解
1导读
简介
随着越来越多的服务迁移上云,云端受到的攻击类型也在不断增长。许多研究开始研究如何增强云端的可靠性和安全性,其中就包括Intel的Trusted Execution Technology (TXT)。Intel TXT是一系列在其专用处理器和芯片上的硬件扩展,用来保护数据的隐私和完整性。2013年,Intel基于TXT提出了SGX(software guard extensions),通过引入新的指令集和内存访问技术,SGX能服务端为用户应用提供一个可信的执行环境。本文通过收集和整理SGX相关的文献,希望梳理相关研究发展的路线,并通过搜素、分类、分析、总结相关工作,给出了SGX应用的总览、受到的攻击模式和相应的改善。
文献选择
如下图所示,本文通过精心地搜索找到了128篇文章,并根据它们所属的分类分成了五个类别。
1. 工作原理:一些早期的工作介绍了SGX的技术和原理,这方面的工作为研究者研究SGX技术提供了系统性和理论性的支持。
2. 应用:本文将SGX相关的应用分为两部分:“不与云相关”和“与云相关”,并分别进行了讨论。
3. 攻击方法:许多论文研究了SGX的安全性,他们设计了各种攻击方法,通过实验发现了许多SGX的漏洞。
4. 优化:这些工作主要包括针对攻击方法的防范和提升SGX功能的一些拓展。
5. 其他:还有一些工作不属于以上4个范畴,但是他们对理解SGX领域有较大的帮助。
下图展示了本文收集的文献的各个分类的占比:
2 Intel SGX和相关可信执行环境
Intel TXT 和 SGX
Intel TXT (Trusted execution technology) 为提高系统安全和数据完整性提供了一系列的方法,包括:
1)一系列的安全函数;2)可以验证这些函数的方法;3)对于系统配置和系统代码的安全测量和验证方法;4) 可设置的信任级别;5) 针对可信操作系统的额外安全函数。
基于TXT,Intel提出了SGX,SGX生成的Enclave(飞地)可以被认为是一个可信执行环境。使用SGX需要先将应用程序分为两部分:受信任的和不受信任的。用户可以通过特别的指令集创建一个Enclave,隐私数据和相关功能将被放置在这个Enclave中,同时禁止外部的访问以使其远离潜在的攻击。Enclave和相关的数据结构存储在一个受保护的内存空间称之为EPC(Enclave Page Cache),每一个EPC只会被分配给一个Enclave。CPU防止了任何非Enclave访问受保护的内存空间,因此暴露在攻击下的区域大大减少,为重要的数据提供了一个更安全的空间,与Enclave交互的流程如下图所示:
Intel SGX,ARM TrustZone and AMD SEV
本文还将SGX与TrustZone和SEV在核心技术、CPU划分和应用难度进行了比较,如下图所示:
3 SGX应用
不与云端相关的工作
不与云端相关的工作可分为Encryption、Partition和Framework,比例如下图所示:
Encryption(加密):Enclave是SGX确保完整性和安全性的关键技术。在保持TCB(trusted computing base)较小的前提下,Fisch et al. 提出了Iron,一个实用的使用SGX的函数加密系统。此外,Tychalas et al. 设计了基于SGX的加密器来保护IP和可执行文件,以避免恶意的分析。
Partition(代码划分):一些应用利用SGX来划分软件,Atamli-Reinch和Martin设计了针对不同应用的软件分区策略。Glamdring是第一个自动化程序分区框架,其能自动划分程序的可信部分,实现程序的安全隔离,引领了相关工作。
Framework(框架):受SGX启发,Beekman et al.提出了一种有效的网络防御框架,他们用SGX将服务器代码进行隔离,用户只能使用TLS建立可信通道来与服务器传输数据。Behl et al.将SGX和拜占庭共识协议结合,提升了共识的性能。Fuhry et al.提出了HardIDX提高了密文上搜索的效率。Priebe et al.将SGX和数据库结合,提出了EnclaveDB,将查询算子和交易处理都放进Enclave,以防止恶意的数据库管理者。Peters et al.使用SGX来保护蓝牙I/O时的数据安全。
与云端相关的工作
如何确保在云端的数据处理过程的安全是十分关键的一点,许多工作使用SGX来为用户提供一个更安全的服务器环境,Yoo et al.提出了一个安全的虚拟机,使用SGX来保护大数据计算和隐私数据的安全性。Coughlin et al.结合SGX提升了Network Function Virtualization (NFV) 应用的隐私。Duan et al.设计了LightBox,一个新型的基于SGX的网络中间件系统,以保护数据包中的元信息。Kelbert et al.提出了SecureCloud,从全栈的角度使用SGX来处理云端的安全问题。此外,Sergei et al.设计了SCONE,一个安全的linux容器环境,结合SGX来保护现有的应用。
4攻击方法
恶意攻击会对系统和软件造成重大伤害,本文审阅了相关工作并列举了常见的攻击类型,如下图所示:
侧信道攻击
在所有攻击中,侧信道攻击是最常见且有效的。(在SGX的白皮书中,已经明确说明SGX防止不了侧信道攻击。)因为攻击者不能直接控制Enclave,他们尝试着通过侧信道的信息来恢复隐私数据。在程序执行过程中,一些和内部操作相关的物理上的信息可能会被泄露,比如声学信息、资源消耗、电磁辐射和运行时间等。近些年来,侧信道技术已逐渐渗透到CPU内部、缓存、分支预测等单元,攻击者可以检查这些设备以获得隐私信息。
(1)缓存攻击
缓存攻击可以跨越平台、CPU和安全边界实施攻击,在SGX环境中,攻击者发挥了控制整个系统资源的优势,特别是可以对资源进行调度,减少侧信道的噪音,提高了攻击的成功率。SGX的白皮书认为物理上的缓存攻击是不实际的,但是他们忽略了基于软件的缓存攻击。Götzfried et al.通过实践证明了SGX的Enclave对缓存定时攻击的薄弱性。此外,Schwarz et al.使用缓存攻击攻击了一个基于SGX的RSA实现,他们声称能通过半同步的攻击获取一个RSA私钥的96%的内容。
(2)基于页表的攻击
攻击者通过拥有对Enclave页面的访问权,将其设置为不可访问,以触发缺页故障,从而可以区分哪些页面被Enclave访问过。此外,一些Enclave中的隐私数据可以通过时序关系进行推断,Wang et al.总结了三种基于页表的攻击方式,说明了如何通过监控页面进行攻击。Van et al.引入了两种新的攻击方法,可以从页表属性和未受保护的页表内存的缓存行为推断出Enclave的内存访问。
(3)基于分支预测的攻击
由于分支指令的执行可能需要相对较长的内存读取时间,在分支指令执行结束之前,CPU预测哪个分支会运行,提取响应的指令代码并执行它,以提高CPU指令流水线的性能。当推测性执行发现预测错误时,推测性执行的结果被丢弃,CPU的状态被重置。但是,推测性执行对CPU缓存的影响仍然保留。通过一些缓存攻击的方法来测量读取内存的时间差,攻击者可以从缓存中提取机密的目标数据。利用这个缓存侧信道信息的Sgxpectre攻击被广泛证明是实用的,相似的技术如Foreshadow和Foreshadow-NG可以读出整个Enclave的内存内容。然而,Sgxpectre攻击只能在有漏洞的代码上实施,如何防御此类的侧信道攻击依旧是学术研究的热点之一。
针对Enclave执行机理的攻击
除了侧信道攻击,一些工作主要针对Enclave的执行机制展开攻击。Weichbrodt et al.说明了如果攻击者可以有完全的操作系统权限并且可以自由启动和停止Enclave,那么攻击者可以利用Enclave代码中的同步漏洞以劫持Enclave的控制权。Lee et al.提出了名为"Dark-ROP"的攻击,以证明Enclave代码中内存泄漏的后果和危害。
防范技术
本文列举了检测SGX的漏洞、改善SGX应用安全的相关论文。
(1)模式检测
Sinha et al.专注于挖掘SGX应用中的缺点,如滥用SGX指令等,基于此他们设计了Moat来验证运行在SGX中的应用程序的私密性。Chen et al.设计了侦测利用操作系统特权对SGX进行侧信道攻击的工具。Moghimi et al.设计了名为CacheZoom的工具来分析Enclave的内存访问。
(2)增强抵御攻击的能力
Shinde et al.设计了一种纯软件的防御措施,通过确定程序内存访问行为来掩盖缺页故障,从而减轻因缺页故障导致的数据泄露。Chandra et al.提出了一种随机的方法来处理侧信道信息也避免被恶意的敌手收集。还有一系列工作从SGX易受侧信道攻击、上下文切换成本高、内存有限等方面进行改进,使SGX变得更加安全和高效。
5优化方法
优化方法的分类
在本节的分析中,主要集中在两点:对SGX本身的优化和对应用的优化。
对SGX的优化:研究人员试图通过修改SGX的架构或增加更多的约束条件来对其进行改进。
对应用的优化:研究人员优化结合SGX的应用,通常的优化思路是通过较低的成本获得更好的结果,或增加新的功能。
此外,SGX的优化可以从两个方向进行总结,自动性能优化和辅助工具开发。前者通过对SGX进行自动化改造来提高其性能,从而在降低开销的情况下获得更高的效率。后者从工具的角度对其进行优化,并扩展SGX的应用。
对SGX的优化
性能问题是采用SGX处理数据的主要瓶颈之一,SGX的机制导致了额外的性能开销,包括Enclave切换开销、系统级指令访问引起的额外开销,以及由于大数据量引起的EPC页面换入换出的性能开销。出于安全考虑,SGX不允许系统级指令在Enclave内调用,因此每个系统功能调用都会产生额外的Enclave切换开销。许多工作针对这一问题给出了优化。Tian et al.优化了OCall和ECall的调用数量来提高SGX的性能。对于Windows平台结合了SGX的应用,Baumann et al.为了减少性能开销,实现了in-Enclave的LibOS,通过一系列的原语实现了Windows 8的API。Tsai et al.设计了Graphene,扩大了LibOS的范式,能支持安全的多进程API。
在一定程度上,这些工作能降低SGX的开销,但仍不能充分满足大规模应用的需求。Tian et al.提出了无需切换的系统指令调用,在单线程下有明显的性能优化效果。Chakrabarti et al.为SGX架构增加了附加指令和虚拟化支持以解决SGX内存虚拟化的一些问题。Nguyen和Ganapathy指出SGX的私密性阻碍了云提供商的审查政策,他们提供了一个满足云提供商审查政策的Enclave审查库。这种方法不仅能确保客户的敏感内容受到SGX的保护,还能确保用户在Enclave中使用云提供商提供的服务。Boneh和Gueron设计并实施了了surnaming,它可以在有限的时间内验证数字签名,给SGX的快速验证提供了可能。这种新的基于哈希的方法可以取代SGX目前使用的基于RSA的方法,也可以扩展到后量子安全方法。
对应用的优化
私有成员测试(PMT)可以消除由恶意软件导致的隐私泄露,Tamrakar et al.提出了在服务器上通过SGX维护PMT的字典。目前,SGX提供的可信服务无法防止状态回滚和分叉攻击,Brandenburger et al.引入了LVM协议,可以通过较少的计算开销来检测回滚攻击。Lind et al.提出了Glamdring,以解决将整个程序放入Enclave而导致TCB过大的问题。他们使用Glamdring,在保证程序安全的前提下,通过对程序源代码级别的分区,只将敏感功能放在Enclave中,并在Enclave边界添加运行时检查和加密操作,使得一个较小的TCB成为可能。
6总结与展望
SGX相关的研究一直在持续地进行,本文首先分析了可信环境,然后将SGX技术与其他几种可信技术,如TrustZone和AMD SEV进行了比较,给出了SGX的特点和优势。同时,本文展示了SGX的应用场景,和一系列的攻防研究,从多方面对SGX进行了全面的分析,为SGX的研究和应用提供了可靠的信息。本文在最后列举了一些SGX研究领域公开的挑战和问题:
设计一种通用方案以减少使用SGX时的内存开销并提升Enclave间通信的安全性,SGX1代支持的EPC大小最大为128M,如果Enclave应用代码的数据超过128M,就会出现缺页异常,带来了换入换出的开销(SGX2代已不受该内存大小限制);
如何在TCB大小、性能和安全性上做出合理的权衡以将SGX应用在大规模、复杂的云计算场景中;
研究SGX的自动化工具,目前SGX需要开发者将应用程序分为可信和不可信的两部分,如何在不重构原始应用的情况下,自动识别并生成应用中敏感的代码数据成为了一个挑战;
实现SGX技术与云服务的整合,利用SGX实现基于云的多租户安全数据共享;
解决SGX技术容易被侧信道攻击的问题;
寻找SGX技术的典型应用场景。
摘要
This paper presents a comprehensive survey on the development of Intel SGX (software guard extensions) processors and its applications. With the advent of SGX in 2013 and its subsequent development, the corresponding research works are also increasing rapidly. In order to get a more comprehensive literature review related to SGX, we have made a systematic analysis of the related papers in this area. We first search through five large-scale paper retrieval libraries by keywords (i.e., ACM Digital Library, IEEE/IET Electronic Library, SpringerLink, Web of Science, and Elsevier Science Direct). We read and analyze a total of 128 SGX-related papers. The first round of extensive study is conducted to classify them. The second round of intensive study is carried out to complete a comprehensive analysis of the paper from various aspects. We start with the working environment of SGX and make a conclusive summary of trusted execution environment (TEE).We then focus on the applications of SGX. We also review and study multifarious attack methods to SGX framework and some recent security improvementsmade on SGX. Finally, we summarize the advantages and disadvantages of SGX with some future research opportunities. We hope this review could help the existing and future research works on SGX and its application for both developers and users.
解读:陈之豪 华东师范大学
审核:张琨 合肥工业大学
Frontiers of Computer Science
Frontiers of Computer Science (FCS)是由教育部主管、高等教育出版社和北京航空航天大学共同主办、SpringerNature 公司海外发行的英文学术期刊。本刊于 2007 年创刊,双月刊,全球发行。主要刊登计算机科学领域具有创新性的综述论文、研究论文等。本刊主编为周志华教授,共同主编为熊璋教授。编委会及青年 AE 团队由国内外知名学者及优秀青年学者组成。本刊被 SCI、Ei、DBLP、INSPEC、SCOPUS 和中国科学引文数据库(CSCD)核心库等收录,为 CCF 推荐期刊;两次入选“中国科技期刊国际影响力提升计划”;入选“第4届中国国际化精品科技期刊”;入选“中国科技期刊卓越行动计划项目”。
《前沿》系列英文学术期刊
由教育部主管、高等教育出版社主办的《前沿》(Frontiers)系列英文学术期刊,于2006年正式创刊,以网络版和印刷版向全球发行。系列期刊包括基础科学、
、工程技术和人文社会科学四个主题,是我国覆盖学科最广泛的英文学术期刊群,其中13种被SCI收录,其他也被A&HCI、Ei、MEDLINE或相应学科国际权威检索系统收录,具有一定的国际学术影响力。系列期刊采用在线优先出版方式,保证文章以最快速度发表。
中国学术前沿期刊网
http://journal.hep.com.cn
特别声明:本文转载仅仅是出于传播信息的需要,并不意味着代表本网站观点或证实其内容的真实性;如其他媒体、网站或个人从本网站转载使用,须保留本网站注明的“来源”,并自负版权等法律责任;作者如果不希望被转载或者联系转载稿费等事宜,请与我们接洽。