저자:
(1) Zane Weissman, Worcester Polytechnic Institute Worcester, MA, USA {[email protected]};
(2) Thomas Eisenbarth, 독일 SH, Lübeck Lübeck 대학교 {[email protected]};
(3) Thore Tiemann, 독일 남동부 뤼베크 뤼베크 대학교 {[email protected]};
(4) Berk Sunar, Worcester Polytechnic Institute Worcester, MA, USA {[email protected]}.
클라우드 기술은 고객의 요구 사항을 충족하기 위해 끊임없이 변화합니다. 동시에 CSP는 효율성과 수익 극대화를 목표로 하며, 이는 서버리스 CSP가 사용 가능한 컴퓨팅 리소스를 과도하게 할당하도록 장려합니다. 이는 경제적인 관점에서는 합리적이지만 공유 하드웨어 리소스를 이용하는 마이크로아키텍처 공격의 맥락에서 결과적인 시스템 동작은 재앙이 될 수 있습니다. 지난 몇 년 동안 마이크로아키텍처 위협 환경은 빈번하고 빠르게 변화했습니다. 많은 공격을 방지하기 위해 합리적으로 효과적인 완화가 있지만 상당한 성능 비용이 발생하는 경우가 많으며 이로 인해 CSP는 경제적 가치와 보안 사이에서 균형을 찾아야 합니다. 게다가 일부 마이크로아키텍처 공격은 기존 완화 조치로 인해 방해를 받지 않습니다. CSP 고객은 배포된 마이크로아키텍처 방어를 거의 제어할 수 없으며 공급자가 마이크로아키텍처 공격 및 완화 개발 속도를 따라갈 수 있다고 신뢰해야 합니다. 심층 방어에는 마이크로코드부터 VMM, 컨테이너까지 모든 수준의 보안이 필요합니다. 한 시스템 수준의 일부 보호로 인해 다른 시스템 수준에서 취약점이 발생할 수 있으므로 각 시스템을 전체적으로 고려해야 합니다.
우리는 Firecracker VMM에 권장되는 기본 대책이 격리 목표를 달성하기에 충분하지 않음을 보여주었습니다. 실제로, 테스트된 공격 벡터 중 상당수는 대응책이 마련되어 있는 동안 유출된 것으로 나타났습니다. 우리는 Medusa 캐시 인덱싱/블록 쓰기 변형이 VM에서만 작동하는 공격 벡터, 즉 추가 격리 메커니즘이 있는 것으로 식별했습니다. 또한 AWS에서 권장하고 수행하는 비용이 많이 드는 완화 기술인 SMT를 비활성화해도 Medusa 변종에 대한 완전한 보호가 제공되지 않는다는 것을 보여주었습니다. 앞서 언급한 Medusa 변종과 Spectre-PHT는 공격자와 대상 스레드가 동일한 물리적 CPU 코어의 하드웨어 리소스를 놓고 계속 경쟁하는 한 SMT가 비활성화된 경우에도 여전히 클라우드 테넌트 간에 정보를 유출할 수 있습니다. 불행하게도 이는 고밀도 서버리스 환경에서는 필연적으로 발생합니다. 현재 서버리스 CSP는 펌웨어를 최신 상태로 유지하고 마이크로아키텍처 공격에 대해 가능한 모든 방어 수단을 사용하는 데 항상 주의를 기울여야 합니다. 사용자는 시스템을 최신 상태로 유지하고 적절하게 구성하기 위해 선택한 CSP를 신뢰해야 할 뿐만 아니라 일부 마이크로아키텍처 취약점, 특히 특정 Spectre 변종은 여전히 격리 경계를 넘을 수 있다는 점을 인식해야 합니다. 더욱이, 프로세서 설계는 계속 발전하고 있으며 예측적이고 비순차적인 실행은 세대를 거쳐 성능을 향상시키는 데 중요한 요소로 남아 있습니다. 따라서 최근 새로 발견된 공격의 물결[36, 47, 53]에서 알 수 있듯이 새로운 마이크로아키텍처 취약점의 마지막을 본 것 같지 않습니다.
이 작업은 보조금 번호 439797619 및 456967092에 따라 독일 연구 재단(DFG), 보조금 SASVI 및 SILGENTAS에 따라 독일 연방 교육 연구부(BMBF), 보조금 CNS에 따라 국립 과학 재단(NSF)에 의해 지원되었습니다. 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 파게이트. https://docs.aws.amazon.com/eks/latest/userguide/fargate.html 액세스 날짜: 2023년 8월 17일. [5] Amazon Web Services. 2023. AWS Lambda 기능. https://aws.amazon.com/lambda/features/ 액세스 날짜: 2023년 8월 17일.
[6] 아마존 웹 서비스. 2023. 폭죽 디자인. https://github.com/firecrackermicrovm/firecracker/blob/9c51dc6852d68d0f6982a4017a63645fa75460c0/docs/design.md.
[7] 아마존 웹 서비스. 2023. 폭죽 간수. 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. 낙진: 멜트다운 방지 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 엔클레이브에서 인텔 비밀을 훔칩니다. 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 리소스 관리 가이드 – cgroup을 사용하여 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, 윤희철. 2020. SpectreRewind: 과거 지침에 대한 비밀 유출. ASHES@CCS에서. ACM, 117-126.
[19] Daniel Gruss, Moritz Lipp, Michael Schwarz, Richard Fellner, Clémentine Maurice 및 Stefan Mangard. 2017. KASLR은 죽었다: KASLR 만세. ESSoS(컴퓨터 과학 강의 노트, Vol. 10379). 스프링거, 161-176.
[20] 파완 굽타. 2020. TAA - TSX 비동기 중단. Linux 커널 조직. https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/tsx_ async_abort.html 액세스 날짜: 2023년 8월 17일.
[21] 타일러 힉스. 2019. MDS - 마이크로아키텍처 데이터 샘플링. Linux 커널 조직. https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/mds.html 액세스 날짜: 2023년 8월 17일.
[22] 얀 혼. 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. 신부님. 3.0 액세스 날짜: 2023년 3월 22일.
[24] 인텔. 2019. Intel TSX(인텔 TSX) 비동기 중단. 기술 보고서. Intel Corp. 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. 마이크로아키텍처 데이터 샘플링. 기술 보고서. Intel Corp. https://www.intel.com/content/www/us/en/developer/articles/technical/software-security-guidance/technical-documentation/intel-analyticmicroarchitectural-data-sampling.html ver. 3.0, 액세스일: 2023년 8월 17일.
[26] 인텔. 2020. 벡터 레지스터 샘플링. 기술 보고서. Intel Corp. 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)와 칼 A. 발트스퍼거(Carl A. Waldspurger). 2018. 추측성 버퍼 오버플로: 공격과 방어. CoRR abs/1807.03757 (2018).
[29] Avi Kivity, Yaniv Kamay, Dor Laor, Uri Lubin 및 Anthony Liguori. 2007. kvm: 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 및 Yuval Yarom. 2019. 스펙터 공격: 투기적 실행 악용. 보안 및 개인 정보 보호에 관한 IEEE 심포지엄에서. IEEE, 1–19.
[31] Esmaeil Mohammadian Koruyeh, Khaled N. Khasawneh, Chengyu Song 및 Nael B. Abu-Ghazaleh. 2018. 스펙터가 돌아왔다! Return Stack Buffer를 이용한 추측 공격. 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. 멜트다운: 사용자 공간에서 커널 메모리 읽기. 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] 다니엘 모기미. 2020. 메두사 코드 저장소 [소스 코드]. https://github. com/flowyroll/medusa
[36] 다니엘 모기미. 2023. 몰락: 추측성 데이터 수집 악용. USENIX 보안 심포지엄에서. USENIX 협회, 7179-7193.
[37] Daniel Moghimi, Moritz Lipp, Berk Sunar 및 Michael Schwarz. 2020. 메두사: 자동 공격 합성을 통한 마이크로아키텍처 데이터 유출. 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: Spectre에 맞서 웹어셈블리 강화. USENIX 보안 심포지엄에서. USENIX 협회, 1433년~1450년.
[39] Dag Arne Osvik, Adi Shamir 및 Eran Tromer. 2006. 캐시 공격과 대응: AES 사례. CT-RSA(컴퓨터 과학 강의 노트, Vol. 3860). 스프링거, 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. 포트 경합이 이식됩니다: 웹 브라우저의 포트 경합 부채널. 아시아CCS. ACM, 1182-1194.
[44] 토마스 로키키(Thomas Rokicki), 클레멘틴 모리스(Clémentine Maurice), 마이클 슈바르츠(Michael Schwarz). 2022. SMT 없는 CPU 포트 경합. ESORICS(3)(컴퓨터 과학 강의 노트, Vol. 13556). 스프링거, 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: Cross-PrivilegeBoundary 데이터 샘플링. 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, 피트 fr, Sebastian Österlund 및 Cristiano Giuffrida. 2020. RIDL [소스코드]. https://github.com/vusec/ridl
[52] 요하네스 비크너(Johannes Wikner)와 카베 라자비(Kaveh Razavi). 2022. RETBLEED: 반환 명령을 사용한 임의 추측 코드 실행. USENIX 보안 심포지엄에서. USENIX 협회, 3825-3842.
[53] 요하네스 비크너(Johannes Wikner), 다니엘 트루히요(Daniël Trujillo), 카베 라자브(Kaveh Razav). 2023. 팬텀: 디코더로 감지 가능한 잘못된 예측 악용. 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 사례 연구. 핫클라우드에서. USENIX 협회.
이 문서는 CC BY-NC-ND 4.0 DEED 라이센스에 따라 arxiv에서 볼 수 있습니다.