CAGE: Complementing Arm CCA with GPU Extensions¶
Arm CCA'nın Realm confidentiality/integrity garantisini, mevcut Granule Protection Checks ve bir "shadow task" mekanizması kullanarak CPU'dan unified-memory GPU'lara taşıyan defensive bir tasarım — hiçbir hardware değişikliği gerektirmez.
Mechanism¶
Kapattığı boşluk
Arm Confidential Compute Architecture (CCA) bir Realm'i (confidential bir VM) privileged bir adversary'den — compromise olmuş bir hypervisor veya firmware dahil — hangi physical-memory granule'una hangi world'ün erişebileceğini enforce eden hardware Granule Protection Checks (GPC) ile izole eder. Ama CCA'nın garantileri yalnızca CPU içindir: bir Realm işi bir GPU'ya offload ettiğinde, GPU'nun unified memory'ye erişimleri Realm'in protection'ının dışında kalır, dolayısıyla privileged adversary confidential GPU verisine giden bir yola yeniden kavuşur. Buradaki "bug class" bu yüzden bir isolation gap'tir: CPU erişimleri için geçerli olan trusted-memory invariant'ı accelerator'a uzanmaz. CAGE, GPU erişimlerini Realm protection altına almak için CCA'nın mevcut GPC primitive'ini yeniden kullanır; buna ek olarak confidential GPU uygulamalarını Realm modeli içinde yönetmek için yeni bir shadow task mekanizması getirir — hiçbir hardware değişikliği olmadan.
Walkthrough¶
NDSS 2024 paper'ından kavramsal tasarım.
-
Threat model. Privileged bir adversary (compromise olmuş hypervisor/firmware) bir Realm'in unified memory'deki GPU verisini okumaya veya kurcalamaya çalışır.
-
GPC extension. CAGE, CCA'nın Granule Protection Checks'ini GPU'nun dokunduğu memory'ye uygular, böylece GPU erişimleri CPU'nun zaten enforce ettiği aynı Realm-vs-world policy'sine karşı doğrulanır — adversary artık Realm GPU granule'larını okuyamaz.
-
Shadow task. Bir shadow-task mekanizması confidential GPU uygulamalarını Realm içinde esnek biçimde yönetir; submission/scheduling'i araya girerek mediate eder, böylece untrusted host overhead'i düşük tutarken isolation'ı bozamaz.
-
Result. Yazarların değerlendirmesinde ortalama %2.45 performance overhead, hiçbir hardware değişikliği olmadan.
Detection¶
- Policy verification: GPC entry'lerinin, GPU'nun bir Realm için erişebileceği tüm memory region'larını kapsadığını doğrulayın; boşluklar (GPC altında olmayan DMA-reachable granule'lar) bu tasarımın ortadan kaldırdığı gözlemlenebilir failure mode'dur.
- Attestation: Genel olarak CCA'da olduğu gibi, remote attestation GPU-extension konfigürasyonunu da kapsamalı ki relying party, protection'ları uygulamamış bir host'u tespit edebilsin.
Mitigation¶
- Tasarımı benimseyin: CAGE, CPU-only-isolation gap'i için mitigation'ın ta kendisidir — GPU confidentiality için hypervisor/firmware'e güvenmek yerine generic CCA primitive'lerini (GPC + shadow task'lar) yeniden kullanın.