In questo articolo affronteremo il tema Software Guard Extensions, che ha acquisito grande rilevanza negli ultimi anni. Software Guard Extensions è un argomento che ha suscitato l'interesse degli esperti e del grande pubblico, per il suo impatto su diversi ambiti della società. In questo articolo esploreremo diversi aspetti di Software Guard Extensions, dalle sue origini alle sue implicazioni attuali. Allo stesso modo, analizzeremo le diverse prospettive e approcci che sono stati sviluppati attorno a questo argomento, al fine di offrire una visione ampia e completa di Software Guard Extensions. Si tratta senza dubbio di un argomento appassionante che promette di generare un dibattito arricchente e di far luce su questioni fondamentali per comprendere la realtà attuale.
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. Intel ha progettato SGX per essere utile nell'implementare il calcolo remoto sicuro, la navigazione web sicura e la gestione dei diritti digitali (DRM).
Il supporto per SGX nella CPU è indicato in CPUID "Structured Extended feature Leaf", EBX bit 02, 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.
L'emulazione di SGX è stata aggiunta ad una versione sperimentale dell'emulatore di sistema QEMU nel 2014. Nel 2015, i ricercatori del Georgia Institute of Technology hanno rilasciato un simulatore open-source noto come OpenSGX.
È 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. Un esempio di servizio sicuro costruito utilizzando SGX è il servizio di gestione delle chiavi di Fortanix. 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. Una contromisura per questo tipo di attacco è stata presentata e pubblicata da Daniel Gruss et al. al Simposio sulla sicurezza USENIX nel 2017. 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, 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. L'attacco Foreshadow, rivelato nell'agosto 2018, combina esecuzione speculativa e buffer overflow per bypassare l'SGX.