Gli attacchi side channel possono colpire anche le GPU secondo uno studio

I ricercatori della University of California Riverside hanno dimostrato tre attacchi side channel contro altrettante architetture Nvidia. L'azienda correrà ai ripari, ma potrebbero essere coinvolte anche le architetture di AMD e Intel.

Avatar di Manolo De Agostini

a cura di Manolo De Agostini

I ricercatori della University of California Riverside hanno dimostrato come un malintenzionato possa usare una GPU per rubare password, spiare l'attività sul web e interferire con le applicazioni cloud di ignari utenti. Il tutto è spiegato nella pubblicazione "Rendered Insecure: GPU Side Channel Attacks are Practical", a cura di Hoda Naghibijouybari, Zhiyun Qian, Ajaya Neupane e Nael Abu-Ghazaleh.

Il titolo richiama gli attacchi side channel che quest'anno abbiamo iniziato a conoscere sul fronte delle CPU con Spectre e Meltdown, e le successive varianti emerse nei mesi successivi. Stando a quanto raccontato nel documento, i ricercatori ritengono che sia possibile attuare attacchi side channel anche contro le GPU.

Per provarlo hanno fatto il reverse engineering di una GPU Nvidia, esponendola a tre attacchi (verificati su architetture Kepler, Maxwell e Volta) che hanno coinvolto lo stack grafico (OpenGL/WebGL), quello di calcolo (CUDA) ed entrambi. Non si tratta però di attacchi facili, perché richiedono anzitutto che la vittima scarichi uno spyware, e che sia stato messo a punto un algoritmo di machine learning capace di analizzare l'allocazione della memoria.

A ogni modo, sia lo spyware che l'algoritmo possono poi usare le API grafiche esistenti per portare a compimento l'attacco. "Le GPU sono solitamente programmate usando application programming interface, o API, come OpenGL", spiegano i ricercatori. "OpenGL è accessibile da qualsiasi applicazione su un desktop con privilegi di livello utente, rendendo tutti gli attacchi pratici su un computer. Dato che desktop e notebook di default hanno librerie grafiche e driver installati, l'attacco può essere implementato facilmente usando API grafiche".

Il primo attacco traccia l'attività dell'utente sul web. Quando la vittima apre il programma maligno, questo si appoggia all'API OpenGL per creare una "spia" in grado di dedurre il comportamento del browser quando viene usata la GPU.

Ogni sito web, spiegano i ricercatori, ha un'impronta unica in termini d'uso della memoria grafica, in quanto vi è un diverso numero di oggetti - con dimensioni differenti - sottoposti a rendering. Questa traccia, coerente tra i diversi caricamenti dello stesso sito, non è influenzata dalla memorizzazione nella cache (caching).

Monitorando l'allocazione della memoria e i contatori delle prestazioni i ricercatori sono riusciti ad alimentare un classificatore basato sul machine learning, capace di tracciare il sito con un'elevata precisione. In questo modo lo spyware è riuscito a ottenere in modo affidabile tutti gli eventi di allocazione per vedere cosa ha fatto l'utente sul web.

Nel secondo attacco gli autori hanno estratto le password usate dall'utente. Ogni volta che scriviamo una lettera infatti, viene eseguito l'upload dell'intero box di testo della password verso la GPU, come una texture che deve essere renderizzata. Monitorare l'intervallo di tempo tra eventi di allocazione di memoria consecutivi permette di ottenere il numero di caratteri della password e le tempistiche tra una battuta e l'altra, tecniche ben note per arrivare a conoscere una password.

Il terzo attacco, più complesso e che riguarda anzitutto l'ambito cloud e successivamente solo quello desktop, colpisce un'applicazione di calcolo nel cloud. L'attaccante lancia un carico di calcolo maligno sulla GPU che opera insieme all'applicazione vittima. A seconda dei parametri della rete neurale, l'intensità e il modello di conflitto sulla cache, memoria e unità funzionali differiscono nel tempo creando un leak misurabile. Un malintenzionato può quindi usare una classificazione delle tracce dei contatori prestazionali basata sull'apprendimento automatico per estrarre la struttura segreta della rete neurale della vittima, come il numero di neuroni in uno strato specifico di una rete neurale profonda.

I ricercatori hanno segnalato le loro scoperte a Nvidia, la quale ha risposto affermando che intende pubblicare una patch che consentire agli amministratori di sistema di disabilitare l'accesso ai contatori prestazionali da parte di processi a livello utente. La bozza del documento è stata condivisa anche con AMD e Intel, in modo che possano valutare se gli attacchi colpiscono anche le loro GPU. In futuro i ricercatori testeranno la fattibilità degli attacchi side channel sulle GPU ospitate sugli smartphone Android.