SGX Spectre

sgx spectre

Nella giornata del 03 Gennaio 2018, a livello mondiale sono state identificate 3 nuove vulnerabilità soprannominate “Meltdown” e “Spectre” con le seguenti CVE:

  • Variant 1: bounds check bypass (CVE-2017-5753) – Spectre
  • Variant 2: branch target injection (CVE-2017-5715) – Spectre
  • Variant 3: rogue data cache load (CVE-2017-5754) – Meltdown

 

Nei giorni scorsi, un gruppo di ricercatori dell’università “Ohio State University” ha pubblicato una nuova ricerca sull’argomento, rendendo evidente un ulteriore aspetto della variante Spectre.

Nelle fasi iniziali di analisi della problematica, non era chiaro ai team di ricerca se la vulnerabilità soprannominata Spectre, fosse applicabile anche all’estensione SGX della CPU Intel.

L’estensione SGX (Software Guard eXtension) è una modalità messa a disposizione delle CPU Intel più recenti (sulla sesta generazione di CPU basata su Skylake architecture) che aggiunge un set di istruzioni che consente la creazione di aree protette (denominate “Enclave”) nelle quali gestire dati sensibili (chiavi crittografiche, dati sensibili, ecc).

intel

L’implementazione di questa funzionalità è completamente demandata al livello applicativo, pertanto un’applicazione deve essere costruita per utilizzare questa modalità di gestione delle informazioni, attraverso gli SDK messi a disposizione da Intel o con l’uso diretto degli opcodes dedicati.

Dalla ricerca effettuata dall’università dell’Ohio, risulta chiaro che anche in questa modalità, la CPU risulta attaccabile secondo gli stessi principi di Speculative Execution applicati per le vulnerabilità precedentemente riscontrate.

 

COME DIFENDERSI

Allo stato attuale, i ricercatori segnalano che Intel ha rilasciato delle microcode patches (hardware patches) per mitigare i branch target injection attacks

  • Indirect Branch Restricted Speculation (IBRS)
  • Single Thread Indirect Branch Predictors (STIBP)
  • Single Thread Indirect Branch Predictors (STIBP)

 

Viene segnalato anche che la soluzione soprannominata come “Retpoline”, consiste in una soluzione completamente software alla problematica attraverso l’uso di “RET” invece di indirect JMP and CALL, e non risulta efficace nel caso di questa specifica vulnerabilità (pag 12 del whitepaper citato nei riferimenti).

  

La raccomandazione del team di ricerca è rivolta invece agli sviluppatori:

  • Verifica della versione di microcode per gli sviluppatori di ambienti Enclave, per verificare che la CPU abbia le patch hardware necessarie
  • Una raccomandazione agli sviluppatori delle librerie utilizzanti le funzionalità SGX (SDK) per la rimozione di alcune parti che rendono più semplice l’exploit della vulnerabilità

 

RIFERIMENTI