Uno degli approcci più adottati per la protezione dei dati è la
cifratura. Il principio di fondo è in effetti semplice, ma anche valido. Le informazioni cifrate possono anche essere coinvolte in un
data breach. Se la cifratura è fatta come si deve, infatti, chi le ruba
non ha modo di recuperarle in chiaro. Questo non esime chi gestisce i dati da abilitare anche altre forme di protezione. Ma la cifratura garantisce una certa tranquillità in più.
Gestire la cifratura delle informazioni lungo tutto il loro ciclo di vita non è banale. I dati devono essere cifrati quando sono memorizzati su unità di storage e non sono oggetto di elaborazione. Quando sono cioè, come si dice, "
at rest". Poi devono essere protetti quando sono
in transito sulle reti. Le tecnologie e gli approcci per queste due forme di cifratura non mancano.
I dati però non sono solo "at rest" o in transito in rete. C'è un terzo loro "stato":
quando sono in chiaro nella memoria di un server perché sono elaborati da qualche applicazione o servizio. Una falla dei sistemi che permettesse ad un attaccante di
consultare o copiare la memoria di quel server, potrebbe in teoria portare alla sottrazione di informazioni critiche. Il concetto di proteggere i dati cifrando la memoria RAM non è nuovo. Ma la sua implementazione
non è semplice. Specialmente dal punto di vista degli sviluppatori di applicazioni.
Applicare la cifratura ai dati in memoria è una operazione che dipende da funzioni specifiche. Queste sono
legate all'hardware, in particolare ai processori. Quindi ogni famiglia di processori può offrire funzioni diverse. E comunque ci sono approcci differenti alla cifratura tra le CPU AMD e quelle Intel, per restare nelle piattaforme "standard".
Troppo complicato per lo sviluppatore medio, che deve pensare a tutt'altro. E non deve per forza diventare un esperto di cyber security.
IBM prova a dare una mano in questo senso offrendo una nuova funzione:
IBM Cloud Data Shield. È una funzione che permette di eseguire un'applicazione containerizzata nella "enclave" sicura abilitata dalle
Software Guard Extensions (SGX) di molti processori Intel. Con qualche limite. I container devono essere eseguiti da IBM Cloud Kubernetes Service o da Red Hat OpenShift. I linguaggi supportati sono C, C++, Python, Java.
La cloud security: cosa significa proteggere un'architettura molto articolata, distribuita tra la propria IT e quella dei cloud provider
Il vantaggio per gli sviluppatori è che la "SGX-izzazione" delle applicazioni
è quasi trasparente. Non devono riscrivere il loro codice ma
basta una chiamata alla API del servizio. E il collegamento ad Helm come package manager degli ambienti Kubernetes.
È una soluzione "totale"? A livello teorico
non proprio. Le enclave cifrate abilitate da funzioni come le SGX hanno i loro limiti. E non sono certo una cifratura totale della memoria RAM, altra strada su cui i produttori di CPU stanno lavorando. Inoltre, non mette al sicuro da attacchi side-channel
in stile Spectre. All'atto pratico però sono
molto meglio che non abilitare affatto funzioni di cifratura. E il merito di IBM Cloud Data Shield sta soprattutto nel mettere queste funzioni alla portata di tutti i team di sviluppo.