SHELTER: Extending Arm CCA with Isolation in User Space


SHELTER: Extending Arm CCA with Isolation in User Space
Yiming Zhang, Yuxin Hu, Zhenyu Ning, Fengwei Zhang, Xiapu Luo, Haoyang Huang, Shoumeng Yan, Zhengyu He

개요

ARM CCA를 사용하면 Virtualization을 보호할 수는 있지만, 기존에 TrustZone이나 Intel SGX처럼 process level의 protection은 제공하지 못한다. 이를 ARM CCA에 추가적인 CCA Monitor수정으로 해결하여 Process-level isolation을 ARM CCA를 가지고도 가능하게 수정하였다.

Motivation

Arm TrustZone은 3rd-party developers에게는 Attestation을 위한 키를 발급시키는데 까다롭다는 단점과, 취약점이 발견되면 전체 시스템에 영향을 미친다는 한계가 존재하였다. 따라서 보다 진보된 시스템인 ARM CCA로 TrustZone과 같은 Process-level isolation을 제공하는 것이 중요하다.

Importance

ARM CCA를 통해서 Process-level을 제공하는 것은 여러가지 도전과제가 있으며, 기존 논문들에서 이에대해서 다룬적이 없다. 따라서 이 논문에서는 ARM CCA를 적용시킬때의 Challenge포인트와 그에 따른 Design point를 제공하고자 한다.

Main Idea / Challenge

EL3펌웨어에 RME를 Enclave로 활용할 수 있게 하는 수정을 가해서 새로운 API를 만들어 준다. Normal world에서는 이 API를 통해서 Enclave를 생성할 수 있다. ARM CCA에 사용하는 메모리 Protection 기법인 GPT를 사용해서 Enclave와 나머지 세계를 분리한다.

Challenges

  1. GPT는 Single view를 가지기 때문에 Enclave모델과는 적합하지 않다. 따라서 Shared cache와 같은 공유되는 자원을 통한 공격을 막지 못한다.

Design

Multi-GPT Memory isolation
GPT를 그대로 사용하게 되면, 이미 GPT를 위해서 사용되던 System이 Compromise가 되면 Encalve도 해킹된다는 단점이 있다. 따라서 이문제를 해결하기 위해서 per-core GPT로 Multiple GPT를 만들고 Enclave를 돌리는 GPT에만 Access permission을 주어서 Enclave와 나머지 시스템 Compoenent (e.g. RMM, Hypervisor)를 분리하였다.
SHELTER Memory Management
Enclave의 메모리를 수정하기 위해서는 반드시 Monitor를 거쳐서 GPT를 수정해야 함으로 성능상의 단점이 존재한다. 이 문제를 해결하기 위해서 Monitor에 Contiguous한 메모리를 넘기고, Page fault상황애서 Monitor가 넘겨진 Page pool에서 context switch없이도 메모리를 할당할 수 있도록 하여서 Memory management를 배칭으로 처리하였다. 이를 통해서 성능향상을 꾀하였다. <사실 이 부분 매커니즘이 잘 이해가 안됨>. 또한 초기 Boot-up time을 증가시키기 위해서 Monitor는 Shadow GPT라고 부트에 필요한 메모리가 포함되어 있는 GPT를 미리 만들어 놓고 있다가 부팅 과정에서 사용하였다.
MUlti-core Management
멀티 코어 환경의 Synchornization을 맞춰주기 위해서 Monitor를 spin lock으로 가드되도록 하였다. 코어끼리의 cache sharing를 작동 중지시켜서 cache로 인한 side channel attack을 방지하였다. 또한 TLB Sharing를 금지하고 context switching이 일어날때 TLB Entries를 invalidate시켜서 TLB로 인한 side channel attack을 방지하였다.

Conclusion

ARM CCA하드웨어에 대한 깊은 이해를 통해서 Multi-GPT라는 개념을 발명, ARM CCA로 Process-level간의 protection을 가능하게 한점이 장점으로 생각된다. 그러나 기존에 이러한 시스템이 있었다는 점에서 아이디어의 참신함은 다른 논문들에 비해서 약하나, 그 Implementation과 Evaluation그리고 여러 Details들이 장점으로 보인다.