Auteurs:
(1) Zane Weissman, Worcester Polytechnic Institute Worcester, MA, États-Unis {[email protected]} ;
(2) Thomas Eisenbarth, Université de Lübeck Lübeck, SH, Allemagne {[email protected]} ;
(3) Thore Tiemann, Université de Lübeck Lübeck, SH, Allemagne {[email protected]} ;
(4) Berk Sunar, Institut polytechnique de Worcester Worcester, MA, États-Unis {[email protected]}.
Les technologies cloud évoluent constamment pour répondre aux besoins de leurs clients. Dans le même temps, les CSP visent à maximiser l’efficacité et les profits, ce qui incite les CSP sans serveur à sur-engager les ressources de calcul disponibles. Bien que cela soit raisonnable d’un point de vue économique, le comportement du système qui en résulte peut être désastreux dans le contexte d’attaques microarchitecturales exploitant des ressources matérielles partagées. Au cours des dernières années, le paysage des menaces microarchitecturales a changé fréquemment et rapidement. Il existe des mesures d'atténuation qui fonctionnent assez bien pour prévenir de nombreuses attaques, mais elles entraînent souvent des coûts de performance importants, ce qui oblige les CSP à trouver un compromis entre valeur économique et sécurité. De plus, certaines attaques microarchitecturales ne sont tout simplement pas entravées par les mesures d’atténuation existantes. Les clients CSP ont peu de contrôle sur les défenses microarchitecturales déployées et doivent faire confiance à leurs fournisseurs pour suivre le rythme des attaques microarchitecturales et du développement de l'atténuation. La défense en profondeur nécessite une sécurité à tous les niveaux, du microcode au VMM en passant par le conteneur. Chaque système doit être considéré dans son ensemble, car certaines protections à un niveau du système peuvent ouvrir des vulnérabilités à un autre.
Nous avons montré que les contre-mesures par défaut telles qu’elles sont recommandées pour le Firecracker VMM sont insuffisantes pour atteindre ses objectifs d’isolation. En fait, bon nombre des vecteurs d’attaque testés ont montré des fuites alors que des contre-mesures étaient en place. Nous avons identifié la variante d'indexation du cache/écriture de bloc Medusa comme un vecteur d'attaque qui ne fonctionne que sur les machines virtuelles, c'est-à-dire avec des mécanismes d'isolation supplémentaires en place. De plus, nous avons montré que la désactivation de SMT, une technique d'atténuation coûteuse recommandée et réalisée par AWS, n'offre pas une protection complète contre les variantes de Medusa. La variante Medusa susmentionnée et Spectre-PHT sont toujours capables de divulguer des informations entre les locataires du cloud même si SMT est désactivé, tant que l'attaquant et les threads cibles continuent de rivaliser pour les ressources matérielles du même cœur de processeur physique. Malheureusement, c'est inévitablement le cas dans les environnements sans serveur à haute densité. À l’heure actuelle, les CSP sans serveur doivent rester vigilants pour maintenir leurs micrologiciels à jour et utiliser toutes les défenses possibles contre les attaques microarchitecturales. Les utilisateurs doivent non seulement faire confiance au CSP de leur choix pour maintenir leurs systèmes à jour et correctement configurés, mais également être conscients que certaines vulnérabilités microarchitecturales, en particulier certaines variantes de Spectre, sont toujours capables de franchir les limites du confinement. De plus, la conception des processeurs continue d'évoluer et l'exécution spéculative et dans le désordre reste des facteurs importants dans l'amélioration des performances de génération en génération. Il est donc peu probable que nous ayons vu la dernière des nouvelles vulnérabilités microarchitecturales, comme le montre la récente vague d’attaques nouvellement découvertes [36, 47, 53].
Ce travail a été soutenu par la Fondation allemande pour la recherche (DFG) sous les subventions n° 439797619 et 456967092, par le ministère fédéral allemand de l'Éducation et de la Recherche (BMBF) sous les subventions SASVI et SILGENTAS, par la Fondation nationale de la science (NSF) sous la subvention CNS- 2026913, et en partie grâce à une subvention du Fonds national de recherche du Qatar.
[1] Alexandru Agache, Marc Brooker, Alexandra Iordache, Anthony Liguori, Rolf Neugebauer, Phil Piwonka et Diana-Maria Popa. 2020. Firecracker : virtualisation légère pour les applications sans serveur. Dans NSDI. Association USENIX, 419-434.
[2] Alejandro Cabrera Aldaya et Billy Bob Brumley. 2022. HyperDegrade : des fréquences CPU effectives de GHz à MHz. Dans le Symposium sur la sécurité USENIX. Association USENIX, 2801-2818.
[3] Alejandro Cabrera Aldaya, Billy Bob Brumley, Sohaib ul Hassan, Cesar Pereida García et Nicola Tuveri. 2019. Conflit de ports pour le plaisir et le profit. Dans le Symposium IEEE sur la sécurité et la confidentialité. IEEE, 870-887.
[4] Services Web Amazon. 2023. AWS Fargate. https://docs.aws.amazon.com/eks/latest/userguide/fargate.html, consulté le 17 août 2023. [5] Amazon Web Services. 2023. Fonctionnalités AWS Lambda. https://aws.amazon.com/lambda/features/, consulté le 17 août 2023.
[6] Services Web Amazon. 2023. Conception de pétards. https://github.com/firecrackermicrovm/firecracker/blob/9c51dc6852d68d0f6982a4017a63645fa75460c0/docs/design.md.
[7] Services Web Amazon. 2023. Le geôlier pétard. https://github.com/firecracker-microvm/firecracker/blob/main/docs/jailer.md. consulté : 14 août 2023.
[8] Services Web Amazon. 2023. Recommandations de configuration de l'hôte de production. https://github.com/firecracker-microvm/firecracker/blob/9ddeaf322a74c20cfb6b5af745112c95b7cecb75/docs/prod-host-setup.md. consulté : 22 mai 2023.
[9] Abhiram Balasubramanian, Marek S. Baranowski, Anton Burtsev, Aurojit Panda, Zvonimir Rakamaric et Leonid Ryzhyk. 2017. Programmation système dans Rust : au-delà de la sécurité. Dans HotOS. ACM, 156-161.
[10] Enrico Barberis, Pietro Frigo, Marius Muench, Herbert Bos et Cristiano Giuffrida. 2022. Injection d'historique de branche : sur l'efficacité des atténuations matérielles contre les attaques multi-privilèges Spectre-v2. Dans le Symposium sur la sécurité USENIX. Association USENIX, 971-988.
[11] Atri Bhattacharyya, Alexandra Sandulescu, Matthias Neugschwandtner, Alessandro Sorniotti, Babak Falsafi, Mathias Payer et Anil Kurmus. 2019. SMoTherSpectre : Exploiter l'exécution spéculative via la contention de port. En CCS. ACM, 785-800.
[12] Jo Van Bulck, Daniel Moghimi, Michael Schwarz, Moritz Lipp, Marina Minkin, Daniel Genkin, Yuval Yarom, Berk Sunar, Daniel Gruss et Frank Piessens. 2020. LVI : Détournement de l'exécution transitoire via l'injection de valeurs de charge microarchitecturales. Dans le Symposium IEEE sur la sécurité et la confidentialité. IEEE, 54-72.
[13] Claudio Canella, Jo Van Bulck, Michael Schwarz, Moritz Lipp, Benjamin von Berg, Philipp Ortner, Frank Piessens, Dmitry Evtyushkin et Daniel Gruss. 2019. Une évaluation systématique des attaques et des défenses par exécution transitoire. Dans le Symposium sur la sécurité USENIX. Association 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 et Yuval Yarom. 2019. Fallout : fuite de données sur les processeurs résistants à la fusion. En CCS. ACM, 769-784.
[15] Claudio Canella, Jo Van Bulck, Michael Schwarz, Daniel Gruss, Catherine Easdon et Saagar Jha. 2019. Échec transitoire [Code source]. https://github.com/IAIK/transientfail
[16] Guoxing Chen, Sanchuan Chen, Yuan Xiao, Yinqian Zhang, Zhiqiang Lin et Ten-Hwang Lai. 2019. SgxPectre : Voler des secrets Intel dans les enclaves SGX via une exécution spéculative. En EuroS&P. IEEE, 142-157.
[17] Marie Dolezelová, Milan Navrátil, Eva Major ˘ sinová, Peter Ondrejka, Douglas ˘ Silas, Martin Prpic et Rüdiger Landmann. 2020. ˘ Guide de gestion des ressources Red Hat Enterprise Linux 7 – Utilisation des groupes de contrôle pour gérer les ressources système sur 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 consulté le 17 août 2023.
[18] Jacob Fustos, Michael Garrett Bechtel et Heechul Yun. 2020. SpectreRewind : fuite des secrets des instructions passées. Dans CENDRES@CCS. ACM, 117-126.
[19] Daniel Gruss, Moritz Lipp, Michael Schwarz, Richard Fellner, Clémentine Maurice et Stefan Mangard. 2017. KASLR est mort : vive KASLR. Dans ESSoS (Notes de cours en informatique, Vol. 10379). Springer, 161-176.
[20] Pawan Gupta. 2020. TAA - Abandon asynchrone à la TSX. L'organisation du noyau Linux. https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/tsx_ async_abort.html consulté le 17 août 2023.
[21] Tyler Hicks. 2019. MDS - Échantillonnage de données microarchitecturales. L'organisation du noyau Linux. https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/mds.html consulté le 17 août 2023.
[22] Jann Horn. 2018. Exécution spéculative, variante 4 : contournement spéculatif des magasins. https://bugs.chromium.org/p/project-zero/issues/detail?id=1528 consulté le 17 août 2023.
[23] Intel. 2018. Atténuations des canaux secondaires d’exécution spéculative. https://www.intel.com/content/dam/develop/external/us/en/documents/336996-speculative-execution-side-channel-mitigations.pdf. tour. 3.0 consulté : 22 mars 2023.
[24] Intel. 2019. Abandon asynchrone des extensions de synchronisation transactionnelle Intel (Intel TSX). Rapport technique. Intel Corp. https://www.intel.com/content/www/us/en/developer/articles/technical/software-security-guidance/technicaldocumentation/intel-tsx-asynchronous-abort.html consulté le 17 août 2023 .
[25] Intel. 2019. Échantillonnage de données microarchitecturales. Rapport technique. Intel Corp. 3.0, consulté le 17 août 2023.
[26] Intel. 2020. Échantillonnage de registres vectoriels. Rapport technique. Intel Corp. https://www.intel.com/content/www/us/en/developer/articles/technical/softwaresecurity-guidance/advisory-guidance/vector-register-sampling.html consulté le 17 août 2023.
[27] Brian Johannesmeyer, Jakob Koschel, Kaveh Razavi, Herbert Bos et Cristiano Giuffrida. 2022. Kasper : Recherche de gadgets d'exécution transitoire généralisée dans le noyau Linux. Dans le SNSD. La Société Internet.
[28] Vladimir Kiriansky et Carl A. Waldspurger. 2018. Débordements de tampon spéculatifs : attaques et défenses. CoRR abs/1807.03757 (2018).
[29] Avi Kivity, Yaniv Kamay, Dor Laor, Uri Lubin et Anthony Liguori. 2007. kvm : le moniteur de machine virtuelle Linux. Dans le Symposium Linux, Vol. 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 et Yuval Yarom. 2019. Attaques spectrales : exploiter l'exécution spéculative. Dans le Symposium IEEE sur la sécurité et la confidentialité. IEEE, 1-19.
[31] Esmaeil Mohammadian Koruyeh, Khaled N. Khasawneh, Chengyu Song et Nael B. Abu-Ghazaleh. 2018. Le retour du spectre ! Attaques de spéculation utilisant le tampon de pile de retour. Dans le symposium sur la sécurité WOOT @ USENIX. Association USENIX.
[32] Moritz Lipp, Michael Schwarz, Daniel Gruss, Thomas Prescher, Werner Haas, Anders Fogh, Jann Horn, Stefan Mangard, Paul Kocher, Daniel Genkin, Yuval Yarom et Mike Hamburg. 2018. Meltdown : lecture de la mémoire du noyau à partir de l'espace utilisateur. Dans le Symposium sur la sécurité USENIX. Association USENIX, 973-990.
[33] Giorgi Maisuradze et Christian Rossow. 2018. ret2spec : exécution spéculative à l'aide de tampons de pile de retour. En CCS. ACM, 2109-2122.
[34] Debora T. Marr, Frank Binns, David L. Hill, Glenn Hinton, David A. Koufaty, J. Alan Miller et Michael Upton. 2002. Architecture technologique et microarchitecture Hyper-Threading. Intel Technology Journal 6, 1 (2002), 4-15.
[35] Daniel Moghimi. 2020. Référentiel de codes Medusa [Code source]. https://github. com/flowyroll/medusa
[36] Daniel Moghimi. 2023. Chute : exploiter la collecte de données spéculatives. Dans le Symposium sur la sécurité USENIX. Association USENIX, 7179-7193.
[37] Daniel Moghimi, Moritz Lipp, Berk Sunar et Michael Schwarz. 2020. Medusa : Fuite de données microarchitecturales via la synthèse d'attaque automatisée. Dans le Symposium sur la sécurité USENIX. Association 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 et Deian Stefan. 2021. Pivot : durcissement de WebAssembly contre Spectre. Dans le Symposium sur la sécurité USENIX. Association USENIX, 1433-1450.
[39] Dag Arne Osvik, Adi Shamir et Eran Tromer. 2006. Attaques de cache et contre-mesures : le cas d'AES. Dans CT-RSA (Notes de cours en informatique, Vol. 3860). Springer, 1-20.
[40] Antoon Purnal, Furkan Turan et Ingrid Verbauwhede. 2021. Prime+Scope : Surmonter l'effet d'observateur pour les attaques par contention de cache de haute précision. En CCS. ACM, 2906-2920.
[41] Qumranet Inc. 2006. KVM : Pilote de virtualisation basé sur le noyau, Livre blanc. Rapport technique. Qumranet Inc. https://docs.huihoo.com/kvm/kvm-white-paper.pdf consulté le 17 août 2023.
[42] Hany Ragab, Enrico Barberis, Herbert Bos et Cristiano Giuffrida. 2021. Rage Against the Machine Clear : une analyse systématique des effacements de machines et de leurs implications pour les attaques à exécution transitoire. Dans le Symposium sur la sécurité USENIX. Association USENIX, 1451-1468.
[43] Thomas Rokicki, Clémentine Maurice, Marina Botvinnik et Yossi Oren. 2022. La contention de port devient portable : canaux latéraux de contention de port dans les navigateurs Web. En AsieCCS. ACM, 1182-1194.
[44] Thomas Rokicki, Clémentine Maurice et Michael Schwarz. 2022. Conflit de port CPU sans SMT. Dans ESORICS (3) (Notes de cours en informatique, Vol. 13556). Springer, 209-228.
[45] David Schrammel, Samuel Weiser, Stefan Steinegger, Martin Schwarzl, Michael Schwarz, Stefan Mangard et Daniel Gruss. 2020. Donky : Clés de domaine – Isolation efficace en cours de processus pour RISC-V et x86. Dans le Symposium sur la sécurité USENIX. Association USENIX, 1677-1694.
[46] Michael Schwarz, Moritz Lipp, Daniel Moghimi, Jo Van Bulck, Julian Stecklina, Thomas Prescher et Daniel Gruss. 2019. ZombieLoad : échantillonnage de données inter-privilèges. En CCS. ACM, 753-768.
[47] Daniël Trujillo, Johannes Wikner et Kaveh Razavi. 2023. Création : Exposer de nouvelles surfaces d'attaque avec une formation à l'exécution transitoire. Dans le Symposium sur la sécurité USENIX. Association USENIX, 7303-7320.
[48] Paul Turner. 2018. Retpoline : une construction logicielle pour empêcher l'injection de cibles de branche. https://support.google.com/faqs/answer/7625886. consulté : 22 mars 2023.
[49] Anjo Vahldiek-Oberwagner, Eslam Elnikety, Nuno O. Duarte, Michael Sammler, Peter Druschel et Deepak Garg. 2019. ERIM : Isolation en cours de processus sécurisée et efficace avec clés de protection (MPK). Dans le Symposium sur la sécurité USENIX. Association USENIX, 1221-1238.
[50] Stephan van Schaik, Alyssa Milburn, Sebastian Österlund, Pietro Frigo, Giorgi Maisuradze, Kaveh Razavi, Herbert Bos et Cristiano Giuffrida. 2019. RIDL : Chargement de données en vol malveillant. Dans le Symposium IEEE sur la sécurité et la confidentialité. IEEE, 88-105.
[51] Stephan van Schaik, Alyssa Millburn, genBTC, Paul Menzel, jun1x, Stephen Kitt, pit fr, Sebastian Österlund et Cristiano Giuffrida. 2020. RIDL [Code source]. https://github.com/vusec/ridl
[52] Johannes Wikner et Kaveh Razavi. 2022. RETBLEED : exécution de code spéculatif arbitraire avec instructions de retour. Dans le Symposium sur la sécurité USENIX. Association USENIX, 3825-3842.
[53] Johannes Wikner, Daniël Trujillo et Kaveh Razav. 2023. Phantom : Exploiter les erreurs de prédiction détectables par le décodeur. En MICRO (à paraître). IEEE.
[54] Yuval Yarom et Katrina Falkner. 2014. FLUSH+RELOAD : une attaque par canal latéral de cache L3 à haute résolution et à faible bruit. Dans le Symposium sur la sécurité USENIX. Association USENIX, 719-732.
[55] Ethan G. Young, Pengfei Zhu, Tyler Caraza-Harter, Andrea C. Arpaci-Dusseau et Remzi H. Arpaci-Dusseau. 2019. Le véritable coût du confinement : une étude de cas gVisor. Dans HotCloud. Association USENIX.
Cet article est disponible sur arxiv sous licence CC BY-NC-ND 4.0 DEED.