Spy in the GPU-box: Covert and Side Channel Attacks on Multi-GPU Systems¶
NVIDIA DGX-tarzı multi-GPU sunucularda discrete GPU'lar NVLink ve PCIe ile birbirine bağlıdır ve coherent bir memory fabric paylaşır; yazarlar cache hierarchy'sini reverse-engineer eder ve bir GPU üzerindeki bir attacker'ın başka bir GPU'nun L2 cache'ini kasıtlı olarak contend edebileceğini gösterir, bir cross-GPU covert channel (~3.95 MB/s) ve victim GPU'nun workload'unu fingerprint eden remote bir Prime+Probe side channel verir.
Mechanism¶
Bir GPU'nun başka bir GPU'nun L2'sini neden probe edebildiği
Yoğun ML/HPC sunucuları (örneğin NVIDIA DGX) yüksek bandwidth'li custom bir
interconnect (NVLink) artı PCIe ile bağlı birkaç discrete GPU içerir,
shared, kısmen coherent bir memory fabric açığa çıkarır, böylece GPU A
üzerindeki bir kernel GPU B'nin desteklediği memory'ye referans verebilir.
Farklı physical GPU'lara pin edilmiş iki tenant'ı ayırması gereken
güvenlik boundary'si zayıflar çünkü remote access'ler remote GPU'nun L2
cache'inde traverse eder ve allocate eder. Cache hierarchy'sini ve
addressing'i reverse-engineer ederek yazarlar, GPU A üzerinde çalışan koddan
GPU B'nin L2'sinde bir eviction set kurar. Shared, sonlu L2 ardından
herhangi bir contended cache gibi davranır: bir target L2 bölgesini dolduran
GPU A üzerindeki bir spy, kendi remote-access latency'si üzerinden GPU B
üzerindeki bir victim'in aynı set'lere dokunup dokunmadığını gözlemler.
Leak, inter-GPU link'i geçen bir yapı üzerindeki contention'dır — multi-GPU
ölçeğine taşınmış klasik bir eviction channel (Prime+Probe
ve cache occupancy channel ile karşılaştır).
Walkthrough¶
Cross-GPU contention, kavramsal olarak
- Hierarchy'yi reverse-engineer et. Remote GPU'nun L2 boyutunu, associativity'sini ve slice/set mapping'ini, NVLink üzerinden remote load batch'lerini timing'leyerek ve latency cliff'lerinin nerede belirdiğini izleyerek belirle.
- Remote bir eviction set kur. GPU A'dan, GPU B üzerindeki seçilen L2 set'lerine map olan address'leri bir araya getir.
- Covert channel. İki anlaşmalı process, bit'leri "anlaşılan L2 set'lerini yoğun şekilde contend et" vs "boşta kal" olarak encode eder; receiver bit'i kendi probe latency'sinden okur. Raporlanan en iyi bandwidth: 3.95 MB/s.
- Side channel. Bir spy, GPU B'nin L2'sini Prime+Probe'lar ve habersiz bir co-tenant'ın hit/miss timeline'ını kaydeder, ardından cache-access fingerprint'inden hangi uygulamanın çalıştığını yüksek doğrulukla sınıflandırır.
Shared accelerator'lar shared bir attack surface'tir
Multi-tenant GPU cloud'ları ve HPC node'ları farklı physical GPU'ları isolation boundary'leri olarak ele alır. Coherent bir inter-GPU interconnect, remote L2'yi sessizce bir attacker'ın ölçebileceği shared bir kaynağa dönüştürür.
Detection¶
- Interconnect telemetry. Farklı tenant'lara ait GPU'lar arasında
sürdürülen, pattern'li remote memory trafiği gösteren NVLink/PCIe performance
counter'ları (örneğin
nvidia-smi/ NVML / DCGM, NSight üzerinden) anormaldir — meşru multi-GPU job'ları genellikle bir eviction probe'un yüksek frekanslı pointer-chasing'ini değil, toplu, yapılandırılmış transfer'ler issue eder. - Workload co-residency. Aynı node'un NVLink-bağlı GPU'larında schedule edilmiş iki farklı tenant'ı ortaya çıkaran host orchestration log'ları, beklenmedik cross-GPU L2 miss-rate spike'larıyla birleştiğinde, bir EDR ya da GPU-aware monitor'un işaretleyebileceği davranışsal bir sinyaldir.
Mitigation¶
- Topology-aware isolation. Birbirine güvenmeyen tenant'ları coherent bir NVLink fabric ile bağlı GPU'larda co-locate etme; bir tenant'ı bütün bir NVLink "ada"sına ya da tek bir GPU partition'ına schedule et.
- Peer access'i devre dışı bırak / kısıtla. Tenant boundary'leri arasında GPU peer-to-peer (NVLink P2P) erişilebilirliğini kapat ki bir GPU başka bir GPU'nun L2'sinde allocate edemesin; MIG / fabric-manager kontrolleriyle partition et.
- Remote-access fidelity'sini azalt. Coarse-grained scheduling, link partitioning ya da cross-GPU trafiği rate-limit etmek attacker'ın noise floor'unu yükseltir. Temelde microarchitectural bir channel olduğu için mitigation, tek bir patch yerine öncelikle deployment/topology hardening'idir.