La tecnologia Intel SGX usata dai ricercatori per creare malware non rintracciabile dagli antivirus

La tecnologia Intel SGX usata dai ricercatori per creare malware non rintracciabile dagli antivirus

Intel ha sviluppato la tecnologia SGX che permette di creare zone cifrate in memoria cui solo il programma all'interno può accedere: ma cosa succede se il programma è un malware? Ecco quanto hanno scoperto i ricercatori

di pubblicata il , alle 09:01 nel canale Sicurezza
Intel
 

La tecnologia Intel SGX prevede che sia possibile creare delle enclavi, ovvero delle zone di memoria inaccessibili dall'esterno dove è possibile custodire dati e codice di programmi la cui sicurezza è fondamentale. Tale sistema può, però, essere utilizzato anche a scopi malevoli, come hanno appurato alcuni ricercatori di sicurezza austriaci. Utilizzando la tecnologia Intel SGX è infatti possibile creare malware che non può essere rilevato dagli antivirus.

Intel SGX (Software Guard eXtensions) è il nome dato a una funzionalità introdotta con i processori con architettura Skylake. Tale funzionalità prevede che i dati e il codice di un programma vengano rinchiusi in un'enclave cui nessun altro programma può accedere, così da garantire la confidenzialità e l'integrità del programma e dei suoi dati. Tale enclave viene creata attraverso la cifratura trasparente (ovvero invisibile al programma) dei contenuti in RAM, fatto che rende il contenuto dell'enclave accessibile solo dal codice all'interno della stessa.

In linea di principio, la tecnologia Intel SGX offre la possibilità per gli sviluppatori di proteggere i propri programmi, sia in condizioni tradizionali che in cloud, dove nemmeno avendo accesso fisico alla macchina è possibile accedere al codice. In generale, qualunque applicazione che richieda un particolare grado di sicurezza e privatezza (ad esempio, la gestione di dati biometrici) può trarre beneficio dall'impiego della tecnologia.

Il problema è che è possibile sviluppare anche programmi malevoli che utilizzino SGX: in tal modo i programmi sono completamente al sicuro da qualunque forma di sicurezza come gli antivirus. Così come programmi leciti possono infatti proteggersi dallo sguardo di altri programmi usando la cifratura, così possono anche programmi con intenti negativi.

Il problema è che il codice nell'enclave può, invece, agire su ciò che sta al di fuori di essa, sebbene non possa effettuare azioni come la lettura da o la scrittura su disco. Utilizzando delle istruzioni apposite, i programmi possono implementare delle transazioni: possono quindi leggere e scrivere in locazioni di memoria in modo tale che tali letture e scritture siano viste come atomiche (anche se a livello implementativo non lo sono): ciò significa che hanno completamente successo, e letture e scritture avvengono senza problemi, oppure non avvengono affatto. Non ci sono vie di mezzo, in cui i dati letti possono essere stati modificati nel frattempo o ci possono essere state sovrascritture.

Un ulteriore vantaggio di queste transazioni è che in caso di errore, ad esempio se si accede a degli indirizzi di memoria non validi, il programma non va in crash come avverrebbe normalmente, ma rientra semplicemente con un errore che dev'essere gestito dal programma stesso. Ciò permette di modificare un programma al di fuori dell'enclave affinché esegua il codice desiderato. Ciò consente di costruire malware come i ransomware, con la certezza della sua totale efficacia: in quest'ultimo caso sarebbe possibile costruire un ransomware che cifra i contenuti del disco mantenendo la chiave di cifratura nascosta nell'enclave. Non il delitto perfetto, ma quasi.

Per poter sviluppare ed eseguire codice che sfrutti la tecnologia Intel SGX è necessario stringere un accordo con Intel, la quale rilascia un certificato utilizzabile per far sì che il processore accetti il caricamento del codice in un'enclave. In teoria ciò preverrebbe che la situazione delineata poc'anzi possa realizzarsi, ma i ricercatori hanno scoperto che scrivendo un semplice programma che carica del codice dal disco si può aggirare questa limitazione, dato che non vengono effettuati controlli su ciò che viene caricato dal programma. È dunque possibile aggirare le limitazioni di Intel sfruttando codice scritto male per fargli caricare programmi malevoli in grado di danneggiare il sistema. Ciò viene reso ancora più pericoloso dal fatto che con i processori di ottava generazione (e successivi) non è necessario avere un certificato di Intel per poter creare un'enclave.

Intel ha risposto affermando che il comportamento rilevato dai ricercatori è in linea con le specifiche: non si tratta di un bug, ma di una errata applicazione della tecnologia che non rientra nel suo scopo o nelle sue specifiche e, pertanto, non può essere corretta.

Per quanto attualmente poco probabile che un attacco venga portato avanti con queste modalità, il modo in cui questo tipo di falle verrà utilizzato è difficilmente prevedibile e pone seri dubbi su come proteggersi da questo tipo di attacco.

Resta aggiornato sulle ultime offerte

Ricevi comodamente via email le segnalazioni della redazione di Hardware Upgrade sui prodotti tecnologici in offerta più interessanti per te

Quando invii il modulo, controlla la tua inbox per confermare l'iscrizione.
Leggi la Privacy Policy per maggiori informazioni sulla gestione dei dati personali

27 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
Korn19 Febbraio 2019, 09:18 #1
grande intel, più passa il tempo maggiore sono i fail che produce
giovanni6919 Febbraio 2019, 09:54 #2
Quindi o si usano vecchi processori precedenti agli Skylake o si passa ad AMD per evitare questo tipo di rischio malware?
raxas19 Febbraio 2019, 09:56 #3
più che enclave cloaca digitale
Tedturb019 Febbraio 2019, 10:13 #4
sicuramente disattivabile da bios
redbaron19 Febbraio 2019, 10:15 #5
Non ho mai visto così tanti strafalcioni grammaticali come in questo articolo.
Forse sarebbe bene interessarsi più della lingua italiana che delle enclavi....
McRooster2319 Febbraio 2019, 10:57 #6
Ciò viene reso ancora più pericoloso dal fatto che con i processori di ottava generazione (e successivi) non è necessario avere un certificato di Intel per poter creare un'enclave


Se non è più necessario il certificato Intel per creare un enclave, inizieranno a diffondersi malware creati in questo modo.
La situazione imho è più grave di quanto sembri.
pabloski19 Febbraio 2019, 11:41 #7
Originariamente inviato da: giovanni69
Quindi o si usano vecchi processori precedenti agli Skylake o si passa ad AMD per evitare questo tipo di rischio malware?


A parte che da Skylake in poi, non vedo lato Intel nessun reale miglioramento. Aumento frequenza ram? No. Processi produttivo più avanzato? No. Prestazioni migliori? Nemmeno.

Comunque AMD ha provveduto a buttarsi lo stesso letame in faccia, chiamandolo SME ( parte del SP ). Oltretutto ha pure limitazioni pesanti rispetto a SGX. Però il risultato è stato che così non se l'è filato nessuno, tanto che gli sviluppatori Linux hanno pure rimosso il supporto dal kernel.

Quindi, per fortuna, è morto.
ronthalas19 Febbraio 2019, 11:44 #8
e sta SGX è in qualche modo disattivabile? a livello bios magari?
giovanni6919 Febbraio 2019, 11:49 #9
Originariamente inviato da: pabloski

Comunque AMD ha provveduto a buttarsi lo stesso letame in faccia, chiamandolo SME ( parte del SP ). Oltretutto ha pure limitazioni pesanti rispetto a SGX. Però il risultato è stato che così non se l'è filato nessuno, tanto che gli sviluppatori Linux hanno pure rimosso il supporto dal kernel.

Quindi, per fortuna, è morto.

Grazie per il tuo commento; dunque se è morto lo è solo in ambiente Linux oppure non esiste alcun rischio SME con AMD in generale anche sotto Windows?
Erotavlas_turbo19 Febbraio 2019, 15:18 #10
Originariamente inviato da: pabloski
Comunque AMD ha provveduto a buttarsi lo stesso letame in faccia, chiamandolo SME ( parte del SP ). Oltretutto ha pure limitazioni pesanti rispetto a SGX. Però il risultato è stato che così non se l'è filato nessuno, tanto che gli sviluppatori Linux hanno pure rimosso il supporto dal kernel.

Quindi, per fortuna, è morto.


Mi potresti riportare a partire da quale versione del kernel linux SME è stato rimosso?
A me risulta che sia presente dalla 4.14.

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^