Chiosa
IT
AI Security & Safety

Una difesa hardware impedisce ai prefetcher di esaminare dati segreti

SecDMP: Provably Secure Data Memory-Dependent Prefetching (Extended Version) · arXiv:2610.37454

4 min
Aggiornato

In parole semplici

Alcuni processori hanno prefetcher dipendenti dai dati in memoria (DMP): hardware che osserva i dati caricati per indovinare quali caricare dopo. Tra quei dati possono esserci segreti, anche quando il programma non li usa in un modo visibile.

Il paper presenta SecDMP, una difesa hardware che permette al software di contrassegnare la memoria segreta e impedisce al prefetcher di imparare da quei dati. Nelle simulazioni su un processore di ricerca, gli autori non hanno rilevato fughe nei nove programmi testati su quattro prefetcher modellati.

La ricerca

Un prefetcher dipendente dai dati in memoria usa i valori caricati per prevedere quali dati caricare e può codificare segreti nello stato hardware del processore, anche quando il programma non li usa per produrre un effetto osservabile. Una difesa può bloccare questa fuga senza disattivare del tutto il prefetching utile?

SecDMP è una difesa hardware che impedisce ai prefetcher dipendenti dai dati in memoria di apprendere dai dati segreti contrassegnati, lasciando loro accesso ai dati pubblici.

Si può impedire che il prefetcher dipendente dai dati in memoria di un processore esponga segreti senza disattivare le sue previsioni utili? La disattivazione selettiva lascia aperte vie indirette quando il prefetcher è attivo altrove, mentre quella permanente elimina i suoi vantaggi prestazionali.

SecDMP contrassegna la memoria segreta e impedisce al prefetcher di apprendere da quei dati. Una dimostrazione formale mostra che, con le ipotesi dichiarate, non aggiunge fughe rispetto alla configurazione di base.

Nelle simulazioni Proteus, gli autori non hanno rilevato fughe in nove programmi su quattro prefetcher modellati: un risultato a sostegno della difesa entro i limiti di questi test.

La dimostrazione presuppone che i segreti siano contrassegnati correttamente in una partizione fissa della memoria, divisa tra dati pubblici e segreti. I risultati empirici derivano da simulazioni di DMP modellati sul processore di ricerca Proteus: non dimostrano prestazioni o sicurezza sulle CPU di produzione.

Il modello Apple inoltre non include un meccanismo di fuga di dati segnalato, ma di cui non si conosce la causa. L’implementazione valutata usa anche regioni di memoria statiche, perciò resta da affrontare il problema pratico di separare i dati segreti nell’heap e nello stack.

Cosa mostrano le prove

  • Quando le previsioni espongono segreti

    I prefetcher dipendenti dai dati in memoria (DMP) usano i valori caricati, insieme agli schemi di accesso alla memoria, per prevedere quali dati caricare. Poiché le previsioni dipendono dai dati, un DMP può codificare segreti nello stato hardware del processore anche quando il programma non li usa per produrre un effetto osservabile.

    La domanda è come impedire questa fuga lasciando al prefetcher la possibilità di usare i dati pubblici.

  • Perché la disattivazione selettiva non basta

    Gli autori classificano le possibili fughe in base ai dati esaminati dal DMP: caricamenti ordinari del programma, valori vicini nello stesso blocco di cache, caricamenti temporanei dovuti alla speculazione e dati caricati dai prefetcher.

    La disattivazione selettiva spegne il DMP intorno al codice che accede direttamente ai segreti, affrontando così le fughe causate dai caricamenti ordinari. Ma il DMP resta attivo altrove, dove può esaminare dati attraverso le altre vie.

    Disattivarlo in modo permanente blocca tutte queste vie, ma rinuncia ai vantaggi prestazionali del prefetcher.

  • Una difesa basata sulle etichette della memoria

    SecDMP è una difesa hardware che richiede al software di contrassegnare la memoria segreta. Impedisce ai DMP di usare i dati contrassegnati per aggiornare il proprio stato o avviare prefetch, lasciando possibile il prefetching basato sui dati pubblici.

    La dimostrazione formale del paper mostra che, con la partizione fissa tra memoria pubblica e segreta prevista dal modello, SecDMP non aggiunge fughe rispetto alla semantica hardware di base a cui si aggiunge.

  • Cosa hanno rilevato i test di sicurezza

    Gli autori hanno eseguito nove programmi che sfruttano fughe contro quattro implementazioni di DMP modellate su progetti commerciali e accademici, in simulazioni Proteus. Ogni programma aveva due versioni che differivano solo per i valori segreti; una variazione nei segnali monitorati veniva considerata una fuga.

    Ogni programma ha prodotto una fuga in almeno una configurazione senza difese, mentre nei casi testati con SecDMP gli autori non ne hanno rilevate. La disattivazione selettiva ha protetto soltanto i test basati sugli accessi ordinari del programma.

    ProSpeCT da solo non ha fermato le fughe dei DMP, mentre insieme a SecDMP ha impedito le fughe nei casi testati relativi ai DMP e a Spectre-PHT.

  • Costo misurato su Proteus

    Nei carichi di lavoro che combinavano calcolo e crittografia, il sovraccarico prestazionale medio misurato di SecDMP è stato dello 0.36% rispetto alla configurazione di base corrispondente, dotata di DMP, considerando insieme i DMP e le combinazioni di carichi di lavoro.

    Il sovraccarico massimo riportato è stato del 3.3% per una combinazione e una specifica quota del carico di lavoro. Nella valutazione hardware su Proteus, l’area è aumentata al massimo dello 0.5% e il percorso critico è rimasto a 12.43 ns. Queste cifre riguardano i prototipi e i carichi di lavoro del paper.

Dettagli

Paper successivoEliminare un documento può lasciare il segreto recuperabile da un agente