Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Core slicing: closing the gap between leaky confidential VMs and bare-metal cloud

From noriwiki


USENIX OSDI 2023
Ziqiao Zhou, Yizhou Shan, Weidong Cui, Xinyang Ge,Marcus Peinado, Andrew Baumann

개요

CPU코어를 독립적인 개채로 분리할 수 있는 기능을 하드웨어에 추가하여, cloud computing환경의 각각의 사용자에게 배분하면 TCB를 줄이면서 효율적인 Confidential computing이 가능하다.

Motivation

  1. Cloud computing이 점차 중요해지고 있음
  2. Hypervisor, TEE와 같은 환경이 점차 쓸떼없이 복잡해 지고 있음, 그에 따라서 여러 취약점들이 많이 보고 되고 있음youtu
  3. 대부분의 Cloud vendor들은 생각보다 Hypervisor가 제공하는 VM scheduling, Ballooning, KSM, Live migration과 같은 일을 많이 수행하지 않음
  4. Oversubscription resources이 별로 없도 대부분의 리소스들은 Static allocation됨
  5. SR-IOV와 같은 디바이스의 등장으로, 복잡한 매커님즘없이 직접적으로 하드웨어를 VM에 할당할 수 있음

Importance

Core slicing이라는 새로운 구조의 하드웨어 아키텍쳐를 처음으로 소개함. 코어를 VM에 핀하면, side channel과 같은 Attack surface가 줄고, 복잡한 매커니즘이 없어져 성능향상을 기대할 수 있음. 이떄 VM은 기존의 Virtualization기법없이 직접 돌아가는 주체임. 즉 Virtualization을 사용하는 것이 아니라 Core를 각각의 OS에 pin함

Main Idea / Challenges

CPU코어를 Guest마다 분리하여 제공하면, Side-channel attack에 대한 TCB가 감소하여서 효율적으로 VM들을 관리할 수 있다. 이는 보안적으로도 우수한 시스템이 된다. 굳이 기존의 복잡한 Intel TDXARM CCA와 같은 Confidential computing을 위한 하드웨어 스택, 소프트웨어 스택이 필요하지 않다.

Design

Core를 분리하여서, Core들이 Slice라는 protection domain에 Pin되도로 한다. 그리고 모든 리소스가 정확히 하나의 Slice에만 배분되도록 한다. 추가적으로 Core하나를 분리하여서 (이 코어는 저전력 특수 코어일 수도 있다)Slice들을 관리하는 코어 "slicemanager"로 사용하도록 한다. Slice manager는 slicevisor로 구성되어 있으며 슬라이스들의 리소스 배분와 start, termination만 관리한다. Slicemanager를 최대한 flexible하게 사용하기 위해서 slicemanager는 TCB가 아니며, slicevisor는 TCB로써 리소스 배분이 아니라, 리소스가 적절히 할당되고 있는지 체크하는 역활을 담당한다.

  • Slice manager: 리소스 배분에 대한 Policy를 결정
  • slicevisor: 리소스 할당이 적법한지를 검사
  • sliceloader: Isolation boundary를 설정하는 guest영역의 trusted componenet
  • slice table: slicevisor와 sliceloader사이의 shared memory region

모든 하드웨어는 Lockable register table이라는 구조체를 통해서 초기화 되고 lock된다. lock은 slice가 종료되어야만 해제된다. 구체적인 하드웨어 디테일은 논문 참고.

Conclusion

  1. Virtualization이 필요없이 Cloud서비스를 효율적으로 제공할 수 있는 Core slicing이라는 기법을 제시함
  2. Virtualization이 필요없는 이유를 구체적으로 제시함
  3. Implementation이 많은 디테일 구현이 빠져있어서 Evaluation이 빈약하지만, Design논문임으로 큰 문제는 되지 않는 다고 생각함