Oggi in questo articolo parleremo di Software Guard Extensions. Software Guard Extensions è un argomento che negli anni ha suscitato l'interesse e la curiosità di molte persone. Che sia per la sua rilevanza nella società odierna, per il suo impatto sulla storia, per il suo potenziale per il futuro o semplicemente per il suo valore emotivo, Software Guard Extensions è un argomento che merita di essere analizzato e discusso. In questo articolo esploreremo diversi aspetti di Software Guard Extensions, dalla sua origine ed evoluzione alla sua influenza su vari ambiti della vita. Ci auguriamo che questa lettura sia informativa e arricchente per tutti coloro che cercano una maggiore comprensione di Software Guard Extensions.
Intel Software Guard Extensions (SGX) è un insieme di codici di istruzioni dell'unità di elaborazione centrale (CPU) di Intel che consente al codice a livello utente di allocare regioni private di memoria, chiamate enclave, che sono protette da processi in esecuzione a livelli di privilegio più elevati.[1] Intel ha progettato SGX per essere utile nell'implementare il calcolo remoto sicuro, la navigazione web sicura e la gestione dei diritti digitali (DRM).[2]
Il supporto per SGX nella CPU è indicato in CPUID "Structured Extended feature Leaf", EBX bit 02,[3] ma la sua disponibilità per le applicazioni richiede il supporto BIOS e l'abilitazione opt-in che non si riflette nei bit CPUID. Ciò complica la logica di rilevamento delle funzioni per le applicazioni.[4]
L'emulazione di SGX è stata aggiunta ad una versione sperimentale dell'emulatore di sistema QEMU nel 2014.[5] Nel 2015, i ricercatori del Georgia Institute of Technology hanno rilasciato un simulatore open-source noto come OpenSGX.[6]
È stato introdotto nel 2015 con la sesta generazione di microprocessori Intel Core basati sulla microarchitettura Skylake.
Un esempio di SGX utilizzato in sicurezza è stata un'applicazione demo di wolfSSL che lo utilizza per algoritmi di crittografia.[7] Un esempio di servizio sicuro costruito utilizzando SGX è il servizio di gestione delle chiavi di Fortanix.[8] L'intero servizio basato su cloud è costruito utilizzando server SGX e progettato per garantire la privacy dei fornitori di cloud. Un ulteriore esempio è Numecent che utilizza SGX per proteggere il DRM che viene utilizzato per autorizzare l'esecuzione delle applicazioni con i loro prodotti di distribuzione delle applicazioni Cloudpaging.
Anche l'architettura Goldmont Plus (Gemini Lake) di Intel ha aggiunto il supporto per Intel SGX.
Il 27 marzo 2017 i ricercatori dell'Università tecnica di Graz, in Austria, hanno sviluppato un proof-of-concept che, utilizzando alcune istruzioni della CPU al posto di un timer per sfruttare i canali laterali della cache DRAM, può prelevare chiavi RSA da enclave SGX in esecuzione sullo stesso sistema entro cinque minuti.[9][10] Una contromisura per questo tipo di attacco è stata presentata e pubblicata da Daniel Gruss et al. al Simposio sulla sicurezza USENIX nel 2017.[11] Tra le altre contromisure pubblicate, una contromisura a questo tipo di attacco è stata pubblicata il 28 settembre 2017, uno strumento basato su compilatore, DR.SGX,[12] che sostiene di avere prestazioni superiori con l'eliminazione della complessità di implementazione delle altre soluzioni proposte.
Il gruppo LSDS all'Imperial College di Londra ha dimostrato che la vulnerabilità di sicurezza dell'esecuzione speculativa Spectre può essere adattata per attaccare l'enclave sicura.[13] L'attacco Foreshadow, rivelato nell'agosto 2018, combina esecuzione speculativa e buffer overflow per bypassare l'SGX.[14]