作者:
(1)Zane Weissman,伍斯特理工学院,美国马萨诸塞州伍斯特市{[email protected]};
(2)Thomas Eisenbarth,德国吕贝克大学 {[email protected]};
(3)Thore Tiemann,德国吕贝克大学{[email protected]};
(4)Berk Sunar,伍斯特理工学院,美国马萨诸塞州伍斯特市{[email protected]}。
云技术不断变化以满足客户的需求。与此同时,CSP 的目标是最大限度地提高效率和利润,这激励无服务器 CSP 过度承诺可用的计算资源。虽然从经济角度来看这是合理的,但在利用共享硬件资源的微架构攻击背景下,由此产生的系统行为可能是灾难性的。在过去几年中,微架构威胁形势频繁而迅速地变化。有些缓解措施可以很好地防止许多攻击,但它们往往会导致显著的性能成本,这迫使 CSP 必须在经济价值和安全性之间找到平衡。此外,一些微架构攻击根本无法受到现有缓解措施的阻碍。CSP 客户几乎无法控制部署的微架构防御措施,必须相信他们的提供商能够跟上微架构攻击和缓解措施发展的步伐。纵深防御需要从微代码到 VMM 再到容器的每个级别的安全性。每个系统都必须作为一个整体来考虑,因为一个系统级别的某些保护措施可能会在另一个系统级别上打开漏洞。
我们表明,Firecracker VMM 所推荐的默认对策不足以满足其隔离目标。事实上,许多测试过的攻击媒介在采取对策时都出现了泄漏。我们将 Medusa 缓存索引/块写入变体确定为仅在虚拟机之间起作用的攻击媒介,即在实施了额外的隔离机制的情况下。此外,我们还表明,禁用 SMT(AWS 推荐并执行的昂贵缓解技术)并不能完全防御 Medusa 变体。即使禁用了 SMT,上述 Medusa 变体和 Spectre-PHT 仍然能够在云租户之间泄露信息,只要攻击者和目标线程继续争夺同一物理 CPU 核心的硬件资源。不幸的是,在高密度无服务器环境中,这种情况是不可避免的。目前,无服务器 CSP 必须保持警惕,保持固件最新,并采用所有可能的防御措施来抵御微架构攻击。用户不仅必须信任他们选择的 CSP 能够让他们的系统保持最新和正确配置,还必须意识到某些微架构漏洞(尤其是某些 Spectre 变体)仍然能够跨越遏制边界。此外,处理器设计在不断发展,推测和无序执行仍然是一代又一代提高性能的重要因素。因此,我们不太可能看到新的微架构漏洞的最后一个,正如最近发现的一波新攻击 [36、47、53] 所示。
这项工作得到了德国研究基金会 (DFG) 资助 (资助编号 439797619 和 456967092)、德国联邦教育和研究部 (BMBF) 资助 (资助编号 SASVI 和 SILGENTAS)、国家科学基金会 (NSF) 资助 (资助编号 CNS-2026913) 以及卡塔尔国家研究基金的部分资助。
[1] Alexandru Agache、Marc Brooker、Alexandra Iordache、Anthony Liguori、Rolf Neugebauer、Phil Piwonka 和 Diana-Maria Popa。2020 年。Firecracker:面向无服务器应用程序的轻量级虚拟化。在 NSDI 中。USENIX 协会,419–434。
[2] Alejandro Cabrera Aldaya 和 Billy Bob Brumley。2022 年。HyperDegrade:从 GHz 到 MHz 的有效 CPU 频率。在 USENIX 安全研讨会上。USENIX 协会,2801–2818。
[3] Alejandro Cabrera Aldaya、Billy Bob Brumley、Sohaib ul Hassan、Cesar Pereida García 和 Nicola Tuveri。2019 年。端口争用带来的乐趣和收益。IEEE 安全与隐私研讨会论文集。IEEE,870–887。
[4] 亚马逊网络服务。2023 年。AWS Fargate。https://docs.aws.amazon.com/eks/latest/userguide/fargate.html 访问时间:2023 年 8 月 17 日。[5] 亚马逊网络服务。2023 年。AWS Lambda 功能。https://aws.amazon.com/lambda/features/ 访问时间:2023 年 8 月 17 日。
[6] 亚马逊网络服务。2023 年。Firecracker 设计。https://github.com/firecrackermicrovm/firecracker/blob/9c51dc6852d68d0f6982a4017a63645fa75460c0/docs/design.md。
[7] 亚马逊网络服务。2023 年。Firecracker Jailer。https://github.com/firecracker-microvm/firecracker/blob/main/docs/jailer.md。访问时间:2023 年 8 月 14 日。
[8] 亚马逊网络服务。2023 年。生产主机设置建议。https://github.com/firecracker-microvm/firecracker/blob/9ddeaf322a74c20cfb6b5af745112c95b7cecb75/docs/prod-host-setup.md。访问时间:2023 年 5 月 22 日。
[9] Abhiram Balasubramanian、Marek S. Baranowski、Anton Burtsev、Aurojit Panda、Zvonimir Rakamaric 和 Leonid Ryzhyk。2017 年。Rust 中的系统编程:超越安全性。在 HotOS 中。ACM,156–161。
[10] Enrico Barberis、Pietro Frigo、Marius Muench、Herbert Bos 和 Cristiano Giuffrida。2022 年。分支历史注入:论硬件缓解措施对跨权限 Spectre-v2 攻击的有效性。USENIX 安全研讨会。USENIX 协会,971–988。
[11] Atri Bhattacharyya、Alexandra Sandulescu、Matthias Neugschwandtner、Alessandro Sorniotti、Babak Falsafi、Mathias Payer 和 Anil Kurmus。2019 年。SMoTherSpectre:通过端口争用利用推测执行。在 CCS 中。ACM,785–800。
[12] Jo Van Bulck、Daniel Moghimi、Michael Schwarz、Moritz Lipp、Marina Minkin、Daniel Genkin、Yuval Yarom、Berk Sunar、Daniel Gruss 和 Frank Piessens。2020 年。LVI:通过微架构负载值注入劫持瞬态执行。在 IEEE 安全与隐私研讨会上。IEEE,54–72。
[13] Claudio Canella、Jo Van Bulck、Michael Schwarz、Moritz Lipp、Benjamin von Berg、Philipp Ortner、Frank Piessens、Dmitry Evtyushkin 和 Daniel Gruss。2019 年。瞬态执行攻击与防御的系统评估。USENIX 安全研讨会。USENIX 协会,249–266。
[14] Claudio Canella、Daniel Genkin、Lukas Giner、Daniel Gruss、Moritz Lipp、Marina Minkin、Daniel Moghimi、Frank Piessens、Michael Schwarz、Berk Sunar、Jo Van Bulck 和 Yuval Yarom。2019 年。后果:泄露 Meltdown 防护 CPU 上的数据。在 CCS 中。ACM,769–784。
[15] Claudio Canella、Jo Van Bulck、Michael Schwarz、Daniel Gruss、Catherine Easdon 和 Saagar Jha。2019 年。瞬态故障 [源代码]。https://github.com/IAIK/transientfail
[16] Guoxing Chen、Sanchuan Chen、Yuan Xiao、Yinqian Zhang、Zhiqiang Lin 和 Ten-Hwang Lai。2019 年。SgxPectre:通过推测执行从 SGX Enclaves 窃取英特尔机密。EuroS&P。IEEE,142–157。
[17] Marie Dolezelová、Milan Navrátil、Eva Major ˘ sinová、Peter Ondrejka、Douglas ˘ Silas、Martin Prpic 和 Rüdiger Landmann。2020 年。˘ Red Hat Enterprise Linux 7 资源管理指南 - 使用 cgroups 管理 RHEL 上的系统资源。Red Hat, Inc. https://access.redhat.com/documentation/enus/red_hat_enterprise_linux/7/pdf/resource_management_guide/red_hat_ enterprise_linux-7-resource_management_guide-en-us.pdf 访问时间:2023 年 8 月 17 日。
[18] Jacob Fustos、Michael Garrett Bechtel 和 Heechul Yun。2020 年。SpectreRewind:泄露过去指令的秘密。在 ASHES@CCS 中。ACM,117–126。
[19] 丹尼尔·格鲁斯、莫里茨·利普、迈克尔·施瓦茨、理查德·费尔纳、克莱门汀·莫里斯和斯蒂芬·曼加德。 2017.KASLR 已死:KASLR 万岁。在 ESSoS(计算机科学讲稿,第 10379 卷)中。 Springer,161–176。
[20] Pawan Gupta。2020 年。TAA - TSX 异步中止。Linux 内核组织。https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/tsx_ async_abort.html 访问时间:2023 年 8 月 17 日。
[21] Tyler Hicks。2019 年。MDS - 微架构数据采样。Linux 内核组织。https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/mds.html 访问时间:2023 年 8 月 17 日。
[22] Jann Horn。2018 年。推测执行,变体 4:推测存储绕过。https://bugs.chromium.org/p/project-zero/issues/detail?id=1528 访问时间:2023 年 8 月 17 日。
[23] 英特尔。2018 年。推测执行侧通道缓解措施。https://www.intel.com/content/dam/develop/external/us/en/documents/336996-speculative-execution-side-channel-mitigations.pdf。rev. 3.0 访问时间:2023 年 3 月 22 日。
[24] 英特尔。2019 年。英特尔事务同步扩展 (Intel TSX) 异步中止。技术报告。英特尔公司 https://www.intel.com/content/www/us/en/developer/articles/technical/software-security-guidance/technicaldocumentation/intel-tsx-asynchronous-abort.html 访问时间:2023 年 8 月 17 日。
[25] 英特尔。2019 年。微架构数据采样。技术报告。英特尔公司 https://www.intel.com/content/www/us/en/developer/articles/technical/software-security-guidance/technical-documentation/intel-analysismicroarchitectural-data-sampling.html ver. 3.0,访问日期:2023 年 8 月 17 日。
[26] 英特尔。2020 年。向量寄存器采样。技术报告。英特尔公司 https://www.intel.com/content/www/us/en/developer/articles/technical/softwaresecurity-guidance/advisory-guidance/vector-register-sampling.html 访问时间:2023 年 8 月 17 日。
[27] Brian Johannesmeyer、Jakob Koschel、Kaveh Razavi、Herbert Bos 和 Cristiano Giuffrida。2022 年。Kasper:扫描 Linux 内核中的通用瞬态执行小工具。在 NDSS。互联网协会。
[28] Vladimir Kiriansky 和 Carl A. Waldspurger。2018 年。推测缓冲区溢出:攻击与防御。CoRR abs/1807.03757(2018 年)。
[29] Avi Kivity、Yaniv Kamay、Dor Laor、Uri Lubin 和 Anthony Liguori。2007 年。kvm:Linux 虚拟机监视器。Linux 研讨会,第 1 卷。kernel.org,第 225–230 页。
[30] Paul Kocher、Jann Horn、Anders Fogh、Daniel Genkin、Daniel Gruss、Werner Haas、Mike Hamburg、Moritz Lipp、Stefan Mangard、Thomas Prescher、Michael Schwarz 和 Yuval Yarom。2019 年。Spectre 攻击:利用推测执行。IEEE 安全与隐私研讨会。IEEE,1-19。
[31] Esmaeil Mohammadian Koruyeh、Khaled N. Khasawneh、Chengyu Song 和 Nael B. Abu-Ghazaleh。2018 年。《幽灵归来!利用返回堆栈缓冲区进行推测攻击》。在 WOOT @ USENIX 安全研讨会上。USENIX 协会。
[32] Moritz Lipp、Michael Schwarz、Daniel Gruss、Thomas Prescher、Werner Haas、Anders Fogh、Jann Horn、Stefan Mangard、Paul Kocher、Daniel Genkin、Yuval Yarom 和 Mike Hamburg。2018 年。Meltdown:从用户空间读取内核内存。USENIX 安全研讨会。USENIX 协会,973–990。
[33] Giorgi Maisuradze 和 Christian Rossow。2018 年。ret2spec:使用返回堆栈缓冲区的推测执行。在 CCS 中。ACM,2109-2122。
[34] Debora T. Marr、Frank Binns、David L. Hill、Glenn Hinton、David A. Koufaty、J. Alan Miller 和 Michael Upton。2002 年。《超线程技术架构和微架构》。《英特尔技术期刊》第 6 卷,第 1 期(2002 年),第 4-15 页。
[35] Daniel Moghimi。2020 年。Medusa 代码库 [源代码]。https://github. com/flowyroll/medusa
[36] Daniel Moghimi。2023 年。《衰落:利用推测性数据收集》。USENIX 安全研讨会。USENIX 协会,7179–7193。
[37] Daniel Moghimi、Moritz Lipp、Berk Sunar 和 Michael Schwarz。2020 年。Medusa:通过自动攻击合成进行微架构数据泄露。USENIX 安全研讨会。USENIX 协会,1427-1444 年。
[38] Shravan Narayan、Craig Disselkoen、Daniel Moghimi、Sunjay Cauligi、Evan Johnson、Zhao Gang、Anjo Vahldiek-Oberwagner、Ravi Sahita、Hovav Shacham、Dean M. Tullsen 和 Deian Stefan。2021 年。Swivel:强化 WebAssembly 以抵御 Spectre。USENIX 安全研讨会。USENIX 协会,1433–1450 年。
[39] Dag Arne Osvik、Adi Shamir 和 Eran Tromer。2006 年。缓存攻击与对策:以 AES 为例。《CT-RSA》(计算机科学讲义,第 3860 卷)。Springer,1-20。
[40] Antoon Purnal、Furkan Turan 和 Ingrid Verbauwhede。2021 年。Prime+Scope:克服高精度缓存争用攻击的观察者效应。在 CCS 中。ACM,2906–2920。
[41] Qumranet Inc. 2006. KVM:基于内核的虚拟化驱动程序,白皮书。技术报告。Qumranet Inc. https://docs.huihoo.com/kvm/kvm-white-paper.pdf 访问时间:2023 年 8 月 17 日。
[42] Hany Ragab、Enrico Barberis、Herbert Bos 和 Cristiano Giuffrida。2021 年。《对机器清除的愤怒:对机器清除及其对瞬时执行攻击的影响的系统分析》。USENIX 安全研讨会。USENIX 协会,1451-1468 年。
[43] Thomas Rokicki、Clémentine Maurice、Marina Botvinnik 和 Yossi Oren。2022 年。端口争用变得可移植:Web 浏览器中的端口争用侧通道。在 AsiaCCS。ACM,1182–1194。
[44] Thomas Rokicki、Clémentine Maurice 和 Michael Schwarz。2022 年。无 SMT 的 CPU 端口争用。ESORICS (3)(计算机科学讲义,第 13556 卷)。Springer,209–228。
[45] David Schrammel、Samuel Weiser、Stefan Steinegger、Martin Schwarzl、Michael Schwarz、Stefan Mangard 和 Daniel Gruss。2020 年。Donky:域密钥 - RISC-V 和 x86 的高效进程内隔离。在 USENIX 安全研讨会上。USENIX 协会,1677-1694 年。
[46] Michael Schwarz、Moritz Lipp、Daniel Moghimi、Jo Van Bulck、Julian Stecklina、Thomas Prescher 和 Daniel Gruss。2019 年。ZombieLoad:跨权限边界数据采样。在 CCS 中。ACM,753–768。
[47] Daniël Trujillo、Johannes Wikner 和 Kaveh Razavi。2023 年。《盗梦空间:通过瞬时执行训练暴露新攻击面》。USENIX 安全研讨会。USENIX 协会,7303–7320。
[48] 保罗·特纳。2018 年。Retpoline:一种用于防止分支目标注入的软件构造。https://support.google.com/faqs/answer/7625886。访问日期:2023 年 3 月 22 日。
[49] Anjo Vahldiek-Oberwagner、Eslam Elnikety、Nuno O. Duarte、Michael Sammler、Peter Druschel 和 Deepak Garg。2019 年。ERIM:使用保护密钥 (MPK) 实现安全、高效的进程内隔离。USENIX 安全研讨会。USENIX 协会,1221–1238。
[50] Stephan van Schaik、Alyssa Milburn、Sebastian Österlund、Pietro Frigo、Giorgi Maisuradze、Kaveh Razavi、Herbert Bos 和 Cristiano Giuffrida。2019 年。RIDL:恶意飞行数据加载。IEEE 安全与隐私研讨会论文集。IEEE,88–105。
[51] Stephan van Schaik、Alyssa Millburn、genBTC、Paul Menzel、jun1x、Stephen Kitt、pit fr、Sebastian Österlund 和 Cristiano Giuffrida。2020 年。RIDL [源代码]。https://github.com/vusec/ridl
[52] Johannes Wikner 和 Kaveh Razavi。2022 年。RETBLEED:使用 Return 指令执行任意推测代码。USENIX 安全研讨会。USENIX 协会,3825–3842。
[53] Johannes Wikner、Daniël Trujillo 和 Kaveh Razav。2023 年。Phantom:利用解码器可检测的错误预测。在 MICRO(即将出版)。IEEE。
[54] Yuval Yarom 和 Katrina Falkner。2014 年。FLUSH+RELOAD:一种高分辨率、低噪声的 L3 缓存侧信道攻击。USENIX 安全研讨会。USENIX 协会,719–732。
[55] Ethan G. Young、Pengfei Zhu、Tyler Caraza-Harter、Andrea C. Arpaci-Dusseau 和 Remzi H. Arpaci-Dusseau。2019 年。遏制的真正成本:gVisor 案例研究。在 HotCloud 中。USENIX 协会。