paint-brush
Segurança microarquitetônica do AWS Firecracker VMM: conclusão, agradecimentos e referênciaspor@autoencoder
445 leituras
445 leituras

Segurança microarquitetônica do AWS Firecracker VMM: conclusão, agradecimentos e referências

Muito longo; Para ler

Este artigo de pesquisa investiga o quão seguro o Firecracker é contra ataques de microarquitetura.
featured image - Segurança microarquitetônica do AWS Firecracker VMM: conclusão, agradecimentos e referências
Auto Encoder: How to Ignore the Signal Noise HackerNoon profile picture
0-item

Autores:

(1) Zane Weissman, Instituto Politécnico de Worcester Worcester, MA, EUA {[email protected]};

(2) Thomas Eisenbarth, Universidade de Lübeck Lübeck, SH, Alemanha {[email protected]};

(3) Thore Tiemann, Universidade de Lübeck Lübeck, SH, Alemanha {[email protected]};

(4) Berk Sunar, Instituto Politécnico de Worcester Worcester, MA, EUA {[email protected]}.

Tabela de links

6. CONCLUSÕES

As tecnologias de nuvem mudam constantemente para atender às necessidades de seus clientes. Ao mesmo tempo, os CSPs visam maximizar a eficiência e o lucro, o que incentiva os CSPs sem servidor a comprometer excessivamente os recursos computacionais disponíveis. Embora isto seja razoável do ponto de vista económico, o comportamento resultante do sistema pode ser desastroso no contexto de ataques microarquitecturais que exploram recursos de hardware partilhados. Nos últimos anos, o cenário de ameaças microarquiteturais mudou com frequência e rapidez. Existem mitigações que funcionam razoavelmente bem para evitar muitos ataques, mas que muitas vezes conduzem a custos de desempenho significativos, o que obriga os CSPs a encontrar um equilíbrio entre valor económico e segurança. Além disso, alguns ataques microarquiteturais simplesmente não são prejudicados pelas mitigações existentes. Os clientes do CSP têm pouco controle sobre as defesas microarquiteturais implantadas e devem confiar em seus provedores para acompanhar o ritmo do ataque microarquitetural e do desenvolvimento de mitigação. A defesa profunda requer segurança em todos os níveis, desde o microcódigo até o VMM e o contêiner. Cada sistema deve ser considerado como um todo, pois algumas proteções em um nível do sistema podem abrir vulnerabilidades em outro.


Mostramos que as contramedidas padrão recomendadas para o Firecracker VMM são insuficientes para atingir seus objetivos de isolamento. Na verdade, muitos dos vetores de ataque testados mostraram vazamentos enquanto as contramedidas estavam em vigor. Identificamos a variante de indexação/gravação de bloco de cache Medusa como um vetor de ataque que só funciona em VMs, ou seja, com mecanismos de isolamento adicionais em vigor. Além disso, mostramos que desabilitar o SMT – uma técnica de mitigação cara recomendada e executada pela AWS – não oferece proteção total contra variantes da Medusa. A variante Medusa mencionada acima e o Spectre-PHT ainda são capazes de vazar informações entre locatários da nuvem, mesmo que o SMT esteja desativado, desde que o invasor e os threads alvo continuem competindo por recursos de hardware do mesmo núcleo físico da CPU. Infelizmente, este é inevitavelmente o caso em ambientes sem servidor de alta densidade. Atualmente, os CSPs sem servidor devem permanecer vigilantes para manter o firmware atualizado e empregar todas as defesas possíveis contra ataques de microarquitetura. Os usuários não devem apenas confiar nos CSPs de sua escolha para manter seus sistemas atualizados e configurados corretamente, mas também estar cientes de que algumas vulnerabilidades microarquiteturais, especialmente certas variantes do Spectre, ainda são capazes de cruzar os limites de contenção. Além disso, os designs dos processadores continuam a evoluir e a execução especulativa e fora de ordem continuam a ser fatores importantes na melhoria do desempenho de geração em geração. Portanto, é improvável que tenhamos visto a última das novas vulnerabilidades microarquiteturais, como mostra a recente onda de ataques recém-descobertos [36, 47, 53].

AGRADECIMENTOS

Este trabalho foi apoiado pela Fundação Alemã de Pesquisa (DFG) sob os subsídios nº 439797619 e 456967092, pelo Ministério Federal Alemão de Educação e Pesquisa (BMBF) sob os subsídios SASVI e SILGENTAS, pela National Science Foundation (NSF) sob o subsídio CNS- 2026913, e em parte por uma doação do Fundo Nacional de Pesquisa do Qatar.

REFERÊNCIAS

[1] Alexandru Agache, Marc Brooker, Alexandra Iordache, Anthony Liguori, Rolf Neugebauer, Phil Piwonka e Diana-Maria Popa. 2020. Firecracker: virtualização leve para aplicativos sem servidor. Na INDE. Associação USENIX, 419–434.


[2] Alejandro Cabrera Aldaya e Billy Bob Brumley. 2022. HyperDegrade: De frequências efetivas de CPU de GHz a MHz. No Simpósio de Segurança USENIX. Associação USENIX, 2801–2818.


[3] Alejandro Cabrera Aldaya, Billy Bob Brumley, Sohaib ul Hassan, Cesar Pereida García e Nicola Tuveri. 2019. Contenção Portuária por Diversão e Lucro. No Simpósio IEEE sobre Segurança e Privacidade. IEEE, 870–887.


[4] Amazon Web Services. 2023. AWS Fargate. https://docs.aws.amazon.com/eks/latest/userguide/fargate.html acessado em: 17 de agosto de 2023. [5] Amazon Web Services. 2023. Recursos do AWS Lambda. https://aws.amazon.com/lambda/features/ acessado em: 17 de agosto de 2023.


[6] Amazon Web Services. 2023. Projeto de fogos de artifício. https://github.com/firecrackermicrovm/firecracker/blob/9c51dc6852d68d0f6982a4017a63645fa75460c0/docs/design.md.


[7] Amazon Web Services. 2023. O carcereiro de fogos de artifício. https://github.com/firecracker-microvm/firecracker/blob/main/docs/jailer.md. acesso em: 14 de agosto de 2023.


[8] Amazon Web Services. 2023. Recomendações de configuração do host de produção. https://github.com/firecracker-microvm/firecracker/blob/9ddeaf322a74c20cfb6b5af745112c95b7cecb75/docs/prod-host-setup.md. acesso em: 22 de maio de 2023.


[9] Abhiram Balasubramanian, Marek S. Baranowski, Anton Burtsev, Aurojit Panda, Zvonimir Rakamaric e Leonid Ryzhyk. 2017. Programação de sistema em Rust: além da segurança. No HotOS. ACM, 156-161.


[10] Enrico Barberis, Pietro Frigo, Marius Muench, Herbert Bos e Cristiano Giuffrida. 2022. Injeção de histórico de ramificação: sobre a eficácia das mitigações de hardware contra ataques Spectre-v2 com privilégios cruzados. No Simpósio de Segurança USENIX. Associação USENIX, 971–988.


[11] Atri Bhattacharyya, Alexandra Sandulescu, Matthias Neugschwandtner, Alessandro Sorniotti, Babak Falsafi, Mathias Payer e Anil Kurmus. 2019. SMoTherSpectre: Explorando a execução especulativa por meio de contenção portuária. No CCS. ACM, 785–800.


[12] Jo Van Bulck, Daniel Moghimi, Michael Schwarz, Moritz Lipp, Marina Minkin, Daniel Genkin, Yuval Yarom, Berk Sunar, Daniel Gruss e Frank Piessens. 2020. LVI: Sequestro de execução transitória por meio de injeção de valor de carga microarquitetural. No Simpósio IEEE sobre Segurança e Privacidade. IEEE, 54–72.


[13] Claudio Canella, Jo Van Bulck, Michael Schwarz, Moritz Lipp, Benjamin von Berg, Philipp Ortner, Frank Piessens, Dmitry Evtyushkin e Daniel Gruss. 2019. Uma avaliação sistemática de ataques e defesas de execução transitória. No Simpósio de Segurança USENIX. Associação 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 e Yuval Yarom. 2019. Fallout: vazamento de dados em CPUs resistentes ao Meltdown. No CCS. ACM, 769-784.


[15] Claudio Canella, Jo Van Bulck, Michael Schwarz, Daniel Gruss, Catherine Easdon e Saagar Jha. 2019. Falha transitória [código-fonte]. https://github.com/IAIK/transientfail


[16] Guoxing Chen, Sanchuan Chen, Yuan Xiao, Yinqian Zhang, Zhiqiang Lin e Ten-Hwang Lai. 2019. SgxPectre: Roubando segredos da Intel de enclaves SGX por meio de execução especulativa. Na EuroS&P. IEEE, 142–157.


[17] Marie Dolezelová, Milan Navrátil, Eva Major˘ sinová, Peter Ondrejka, Douglas ˘ Silas, Martin Prpic e Rüdiger Landmann. 2020. ˘ Guia de gerenciamento de recursos do Red Hat Enterprise Linux 7 – Usando cgroups para gerenciar recursos do sistema no RHEL. 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 acessado em: 17 de agosto de 2023.


[18] Jacob Fustos, Michael Garrett Bechtel e Heechul Yun. 2020. SpectreRewind: vazando segredos de instruções anteriores. Em CINZAS@CCS. ACM, 117–126.


[19] Daniel Gruss, Moritz Lipp, Michael Schwarz, Richard Fellner, Clémentine Maurice e Stefan Mangard. 2017. KASLR está morto: viva KASLR. Em ESSoS (Notas de aula em Ciência da Computação, Vol. 10379). Springer, 161-176.


[20] Pawan Gupta. 2020. TAA - Aborto Assíncrono TSX. A Organização do Kernel Linux. https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/tsx_async_abort.html acessado em: 17 de agosto de 2023.


[21]Tyler Hicks. 2019. MDS - Amostragem de Dados Microarquiteturais. A Organização do Kernel Linux. https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/mds.html acessado em: 17 de agosto de 2023.


[22] Jann Horn. 2018. Execução especulativa, variante 4: desvio de loja especulativa. https://bugs.chromium.org/p/project-zero/issues/detail?id=1528 acessado em: 17 de agosto de 2023.


[23] Intel. 2018. Mitigações do canal lateral de execução especulativa. https: //www.intel.com/content/dam/develop/external/us/en/documents/336996-speculative-execution-side-channel-mitigations.pdf. rev. 3.0 acessado em: 22 de março de 2023.


[24] Intel. 2019. Extensões de sincronização transacional Intel (Intel TSX) Abortamento assíncrono. Relatório técnico. Intel Corp. https://www.intel.com/content/www/us/en/developer/articles/technical/software-security-guidance/technicaldocumentation/intel-tsx-asynchronous-abort.html acessado em: 17 de agosto de 2023 .


[25] Intel. 2019. Amostragem de dados microarquiteturais. Relatório técnico. Intel Corp. 3.0, acessado em: 17 de agosto de 2023.


[26] Intel. 2020. Amostragem de registro vetorial. Relatório técnico. Intel Corp. https: //www.intel.com/content/www/us/en/developer/articles/technical/softwaresecurity-guidance/advisory-guidance/vector-register-sampling.html acessado em: 17 de agosto de 2023.


[27] Brian Johannesmeyer, Jakob Koschel, Kaveh Razavi, Herbert Bos e Cristiano Giuffrida. 2022. Kasper: Verificando gadgets de execução transitória generalizada no kernel do Linux. No NDSS. A sociedade da Internet.


[28] Vladimir Kiriansky e Carl A. Waldspurger. 2018. Estouros de buffer especulativo: ataques e defesas. CoRR abs/1807.03757 (2018).


[29] Avi Kivity, Yaniv Kamay, Dor Laor, Uri Lubin e Anthony Liguori. 2007. kvm: o Monitor de Máquina Virtual Linux. No Simpósio 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 e Yuval Yarom. 2019. Ataques Espectrais: Explorando a Execução Especulativa. No Simpósio IEEE sobre Segurança e Privacidade. IEEE, 1–19.


[31] Esmaeil Mohammadian Koruyeh, Khaled N. Khasawneh, Chengyu Song e Nael B. Abu-Ghazaleh. 2018. O Retorno do Espectro! Ataques de especulação usando o Return Stack Buffer. No Simpósio de Segurança WOOT @ USENIX. Associação USENIX.


[32] Moritz Lipp, Michael Schwarz, Daniel Gruss, Thomas Prescher, Werner Haas, Anders Fogh, Jann Horn, Stefan Mangard, Paul Kocher, Daniel Genkin, Yuval Yarom e Mike Hamburg. 2018. Meltdown: Lendo a memória do kernel do espaço do usuário. No Simpósio de Segurança USENIX. Associação USENIX, 973–990.


[33] Giorgi Maisuradze e Christian Rossow. 2018. ret2spec: Execução especulativa usando buffers de pilha de retorno. No CCS. ACM, 2109–2122.


[34] Debora T. Marr, Frank Binns, David L. Hill, Glenn Hinton, David A. Koufaty, J. Alan Miller e Michael Upton. 2002. Arquitetura e Microarquitetura da Tecnologia Hyper-Threading. Intel Technology Journal 6, 1 (2002), 4–15.


[35]Daniel Moghimi. 2020. Repositório de Código Medusa [Código Fonte]. https://github. com/flowyroll/medusa


[36]Daniel Moghimi. 2023. Queda: Explorando a coleta especulativa de dados. No Simpósio de Segurança USENIX. Associação USENIX, 7179–7193.


[37] Daniel Moghimi, Moritz Lipp, Berk Sunar e Michael Schwarz. 2020. Medusa: Vazamento de dados microarquitetônicos via síntese de ataque automatizado. No Simpósio de Segurança USENIX. Associação 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 e Deian Stefan. 2021. Swivel: Fortalecendo WebAssembly contra Spectre. No Simpósio de Segurança USENIX. Associação USENIX, 1433–1450.


[39] Dag Arne Osvik, Adi Shamir e Eran Tromer. 2006. Ataques e contramedidas de cache: o caso do AES. Em CT-RSA (Notas de aula em ciência da computação, Vol. 3860). Springer, 1–20.


[40] Antoon Purnal, Furkan Turan e Ingrid Verbauwhede. 2021. Prime+Scope: Superando o efeito observador para ataques de contenção de cache de alta precisão. No CCS. ACM, 2906–2920.


[41] Qumranet Inc. 2006. KVM: Driver de virtualização baseado em kernel, white paper. Relatório técnico. https://docs.huihoo.com/kvm/kvm-white-paper.pdf acessado em: 17 de agosto de 2023.


[42] Hany Ragab, Enrico Barberis, Herbert Bos e Cristiano Giuffrida. 2021. Rage Against the Machine Clear: Uma análise sistemática de limpezas de máquinas e suas implicações para ataques de execução transitória. No Simpósio de Segurança USENIX. Associação USENIX, 1451–1468.


[43] Thomas Rokicki, Clémentine Maurice, Marina Botvinnik e Yossi Oren. 2022. A contenção de portas torna-se portátil: canais laterais de contenção de portas em navegadores da Web. Na ÁsiaCCS. ACM, 1182–1194.


[44] Thomas Rokicki, Clémentine Maurice e Michael Schwarz. 2022. Contenção de porta da CPU sem SMT. Em ESORICS (3) (Notas de aula em Ciência da Computação, Vol. 13556). Springer, 209–228.


[45] David Schrammel, Samuel Weiser, Stefan Steinegger, Martin Schwarzl, Michael Schwarz, Stefan Mangard e Daniel Gruss. 2020. Donky: Chaves de Domínio - Isolamento Eficiente em Processo para RISC-V e x86. No Simpósio de Segurança USENIX. Associação USENIX, 1677–1694.


[46] Michael Schwarz, Moritz Lipp, Daniel Moghimi, Jo Van Bulck, Julian Stecklina, Thomas Prescher e Daniel Gruss. 2019. ZombieLoad: Amostragem de dados entre limites de privilégios. No CCS. ACM, 753-768.


[47] Daniël Trujillo, Johannes Wikner e Kaveh Razavi. 2023. Início: Expondo Novas Superfícies de Ataque com Treinamento em Execução Transiente. No Simpósio de Segurança USENIX. Associação USENIX, 7303–7320.


[48] Paul Turner. 2018. Retpoline: uma construção de software para prevenir a injeção no alvo do ramo. https://support.google.com/faqs/answer/7625886. acesso em: 22 de março de 2023.


[49] Anjo Vahldiek-Oberwagner, Eslam Elnikety, Nuno O. Duarte, Michael Sammler, Peter Druschel e Deepak Garg. 2019. ERIM: Isolamento seguro e eficiente em processo com chaves de proteção (MPK). No Simpósio de Segurança USENIX. Associação USENIX, 1221–1238.


[50] Stephan van Schaik, Alyssa Milburn, Sebastian Österlund, Pietro Frigo, Giorgi Maisuradze, Kaveh Razavi, Herbert Bos e Cristiano Giuffrida. 2019. RIDL: Carga de dados em voo não autorizada. No Simpósio IEEE sobre Segurança e Privacidade. IEEE, 88–105.


[51] Stephan van Schaik, Alyssa Millburn, genBTC, Paul Menzel, jun1x, Stephen Kitt, pit fr, Sebastian Österlund e Cristiano Giuffrida. 2020. RIDL [Código Fonte]. https://github.com/vusec/ridl


[52] Johannes Wikner e Kaveh Razavi. 2022. RETBLEED: Execução de código especulativo arbitrário com instruções de devolução. No Simpósio de Segurança USENIX. Associação USENIX, 3825–3842.


[53] Johannes Wikner, Daniël Trujillo e Kaveh Razav. 2023. Phantom: Explorando previsões erradas detectáveis pelo decodificador. Em MICRO (a aparecer). IEEE.


[54] Yuval Yarom e Katrina Falkner. 2014. FLUSH+RELOAD: Um ataque de canal lateral de cache L3 de alta resolução e baixo ruído. No Simpósio de Segurança USENIX. Associação USENIX, 719–732.


[55] Ethan G. Young, Pengfei Zhu, Tyler Caraza-Harter, Andrea C. Arpaci-Dusseau e Remzi H. Arpaci-Dusseau. 2019. O verdadeiro custo da contenção: um estudo de caso gVisor. No HotCloud. Associação USENIX.


Este artigo está disponível no arxiv sob licença CC BY-NC-ND 4.0 DEED.