Les GPU (Graphics Processing Units) sont devenus des composants critiques au-delà du rendu graphique : intelligence artificielle, calcul scientifique, cryptographie, et même l'exécution de navigateurs web. Cette omniprésence crée de nouvelles surfaces d'attaque : les attaques par canaux auxiliaires GPU exploitent les fuites d'information à travers les caches GPU, les compteurs de performance, la consommation mémoire et les temps d'exécution des kernels CUDA et OpenCL. Les chercheurs ont démontré l'extraction de clés cryptographiques, le keystroke timing via le rendu GPU, et l'espionnage de modèles de machine learning via les side-channels GPU. Ce guide technique couvre l'architecture des GPU du point de vue sécurité, les vecteurs d'attaque spécifiques aux GPU NVIDIA et AMD, les techniques d'exploitation pratiques et les contre-mesures disponibles.

En bref

  • Architecture GPU : caches L1/L2, shared memory, warp scheduling et vecteurs de fuite
  • Attaques timing : keystroke timing via GPU rendering, website fingerprinting
  • Attaques cache GPU : Flush+Reload adapté au cache L2 GPU, covert channels
  • Espionnage de modèles ML : extraction d'architecture et de paramètres via le timing GPU
  • Side-channels WebGL/WebGPU : attaques depuis le navigateur sans privilèges
GPU Side-Channel — Attaque exploitant les fuites d'information involontaires des processeurs graphiques — timing d'exécution des shaders, état du cache GPU, utilisation mémoire — pour extraire des données sensibles traitées par d'autres applications partageant le même GPU.

Architecture GPU : Perspective Sécurité

Les GPU modernes (NVIDIA, AMD, Intel) ont une architecture massivement parallèle avec des milliers de cœurs. Du point de vue sécurité, les composants partagés entre les applications créent des canaux de fuite :

Composant GPUPartagé entreType de fuite
Cache L2Tous les kernels/contextesCache timing (Flush+Reload)
Shared Memory / LDSThreads d'un même blockBank conflicts timing
Memory bandwidthTous les contextesContention monitoring
Performance countersGlobal (certains GPUs)Activité monitoring
Warp/Wavefront schedulerSM/CUScheduling timing
TLB GPUTous les contextesTLB timing side-channel

Attaques Cache sur GPU NVIDIA

Les GPU NVIDIA utilisent un cache L2 partagé entre tous les contextes CUDA. Les chercheurs ont adapté les techniques de Prime+Probe et Flush+Reload au cache L2 GPU pour créer des canaux de communication cachés (covert channels) et extraire des informations sur les calculs d'autres processus :

// Prime+Probe sur cache L2 GPU (CUDA)
// Étape 1: PRIME — remplir le cache L2 avec nos données
__global__ void prime_cache(int *probe_array, int stride, int sets) {
    for (int s = 0; s < sets; s++) {
        // Accéder à chaque set du cache L2
        volatile int val = probe_array[s * stride];
    }
}

// Étape 2: PROBE — mesurer les temps d'accès après que la victime a exécuté
__global__ void probe_cache(int *probe_array, int stride, int sets, 
                            clock_t *timings) {
    for (int s = 0; s < sets; s++) {
        clock_t start = clock();
        volatile int val = probe_array[s * stride];
        clock_t end = clock();
        timings[s] = end - start;
        // Si timing élevé → la victime a évicté notre ligne de cache
        // → la victime a accédé à un set correspondant
    }
}

Keystroke Timing via GPU Rendering

Une attaque élégante exploite le fait que chaque frappe clavier déclenche un cycle de rendu GPU (mise à jour de l'écran). En surveillant l'activité GPU depuis un processus non privilégié (via les compteurs de performance ou la contention mémoire), un attaquant peut détecter le timing des frappes clavier avec une précision de quelques millisecondes — suffisant pour réduire l'espace de recherche des mots de passe et identifier les mots tapés.

Espionnage de Modèles de Machine Learning

Les modèles de ML s'exécutent principalement sur GPU. Les side-channels GPU permettent d'extraire des informations sur les modèles propriétaires (architecture, nombre de couches, taille) sans accès direct :

  • Timing d'inférence : le temps d'exécution d'un kernel CUDA révèle le nombre d'opérations et la taille des matrices — permettant de déduire l'architecture du réseau de neurones
  • Memory footprint : la consommation mémoire GPU pendant l'inférence indique le nombre de paramètres et la taille des activations
  • Electromagnetic emanations : les émissions EM du GPU varient selon les opérations effectuées — des chercheurs ont reconstruit les poids d'un réseau de neurones à partir des mesures EM
  • Cache contention : les patterns d'accès au cache L2 GPU pendant l'inférence révèlent les structures de données et les patterns d'accès mémoire du modèle

Attaques via WebGL et WebGPU

Les API web WebGL et WebGPU donnent aux pages web un accès au GPU — créant des vecteurs d'attaque side-channel depuis le navigateur sans aucun privilège :

  • GPU-based browser fingerprinting : les variations de rendu GPU entre les modèles de GPU créent une empreinte unique, identifiable via WebGL. DrawnApart (2022) obtient une précision de 98% pour le tracking entre sessions.
  • WebGL timing attacks : mesurer le temps de rendu de shaders spécifiques pour détecter l'activité d'autres onglets (site visité, vidéo en cours, etc.)
  • GPU.zip (2023) : compression de données dépendante du contenu dans les GPU modernes, exploitable via iframes cross-origin en CSS pour lire des pixels d'autres origines — contournement de la same-origin policy.

Mitigations et Isolation GPU

  • MIG (Multi-Instance GPU) : NVIDIA A100/H100 permettent le partitionnement matériel du GPU en instances isolées avec des caches et mémoire séparés
  • NVIDIA Confidential Computing : chiffrement de la mémoire GPU (H100 TEE) pour protéger les données des modèles ML
  • GPU virtualization (SR-IOV) : isolation via les fonctions virtuelles PCIe — chaque VM a un accès GPU isolé
  • WebGPU security model : validation des shaders, limites de timing, et isolation des contextes entre onglets
⚠️ Attention — Les GPU cloud partagés (instances GPU sur AWS, GCP, Azure) sont potentiellement vulnérables aux side-channels inter-tenant si l'isolation n'est pas matérielle (MIG). Les workloads ML sensibles (modèles propriétaires, données confidentielles) devraient utiliser des GPU dédiés ou le confidential computing GPU (NVIDIA H100 TEE).

À retenir

  • Le cache L2 GPU partagé entre contextes permet des attaques Prime+Probe adaptées au GPU
  • Le keystroke timing via monitoring GPU détecte les frappes clavier avec une précision millisecondes
  • Les modèles ML sont vulnérables à l'extraction d'architecture via le timing et la mémoire GPU
  • WebGL/WebGPU permettent des side-channels GPU depuis le navigateur sans aucun privilège
  • GPU.zip (2023) contourne la same-origin policy via la compression GPU hardware
  • MIG et le confidential computing GPU (H100 TEE) sont les principales mitigations d'isolation

FAQ — Questions Fréquentes

Les side-channels GPU sont-ils exploitables à distance ?

Oui, les attaques via WebGL/WebGPU sont exploitables à distance depuis une page web — aucun accès physique ni privilège nécessaire. Les attaques GPU.zip et le browser fingerprinting via WebGL fonctionnent depuis n'importe quel navigateur supportant WebGL. En environnement cloud, les side-channels GPU affectent les co-tenants partageant le même GPU physique.

Comment protéger mes modèles ML sur GPU partagé ?

Utilisez des GPU dédiés (pas de time-sharing), activez MIG sur les GPU NVIDIA supportés (A100, H100), ou utilisez le confidential computing GPU (H100 TEE) qui chiffre la mémoire GPU. Ajoutez du bruit aux timings d'inférence et randomisez les patterns d'accès mémoire pour réduire les fuites side-channel.

Les GPU AMD sont-ils aussi vulnérables ?

Oui, les GPU AMD partagent les mêmes principes architecturaux (caches partagés, shared memory) et sont vulnérables aux mêmes classes d'attaques. Les recherches se concentrent sur NVIDIA (part de marché dominante en ML/cloud), mais les techniques sont transposables à AMD et Intel. AMD n'a pas encore d'équivalent au MIG pour l'isolation matérielle.

Besoin d'un accompagnement expert ?

Nos consultants spécialisés en sécurité matérielle et IA vous accompagnent dans l'évaluation de votre posture de sécurité.

Contactez-nous
Article recommandé : Intel ME et AMD PSP : Exploitation des Coprocesseurs Cachés