kdpv — Reuters
Se hai affittato un server, non hai il pieno controllo su di esso. Questo significa che in qualsiasi momento il provider di hosting potrebbe ricevere la visita di personale appositamente formato che richiederà di fornire i tuoi dati. E l'hosting li consegnerà, se la richiesta è effettuata nel rispetto della legge.
Non vuoi assolutamente che i log del tuo server web o i dati degli utenti finiscano in mani sbagliate. Non sarà possibile costruire una protezione ideale. Difendersi da un provider di hosting che possiede l'hypervisor e ti offre una macchina virtuale è quasi impossibile. Tuttavia, è possibile ridurre i rischi. La crittografia delle macchine affittate non è così inutile come potrebbe sembrare a prima vista. Vediamo anche le minacce di estrazione dei dati dai server fisici.
Modello di minacce
In genere, un provider di hosting cercherà di proteggere gli interessi del cliente il più possibile secondo la legge. Se in una comunicazione ufficiale si richiedono solo i log di accesso, il provider non restituirà i dump di tutte le vostre macchine virtuali con i database. Non dovrebbe, almeno. Se viene richiesta la totalità dei dati, il provider copierà i dischi virtuali con tutti i file e voi non ne verrete a conoscenza.
Indipendentemente da come evolveranno gli eventi, il vostro compito principale è rendere l'attacco troppo complesso e costoso. Di solito ci sono tre principali opzioni di minaccia.
Ufficiale
Più frequentemente, un documento cartaceo viene inviato all'ufficio ufficiale del provider con la richiesta di fornire i dati necessari in conformità con il pertinente decreto. Se tutto è in ordine, il provider fornisce i log di accesso e altri dati alle autorità. Di solito si richiede semplicemente di inviare i dati richiesti.
Raramente, se è davvero necessario, i rappresentanti delle forze dell'ordine si recano fisicamente nel centro dati. Ad esempio, quando avete un server dedicato e i dati possono essere prelevati solo fisicamente.
In tutti i paesi, per ottenere accesso a un'area privata, effettuare perquisizioni e altre operazioni, è necessario avere prove che i dati possano contenere informazioni importanti per l'indagine di un crimine. Inoltre, è richiesto un mandato di perquisizione redatto secondo tutte le normative. Qui possono esserci sfumature legate alle peculiarità della legislazione locale. La cosa principale da comprendere è che, seguendo il corretto iter ufficiale, i rappresentanti del data center non permetteranno a nessuno di andare oltre il varco.
Inoltre, nella maggior parte dei paesi non è possibile semplicemente prendere e rimuovere un'attrezzatura funzionante. Ad esempio, in Russia, fino alla fine del 2018, ai sensi dell'articolo 183 del codice di procedura penale russo, parte 3.1, era garantito che, durante l'operazione di prelievo, il sequestro dei supporti elettronici di informazione avvenisse con la partecipazione di un esperto. Su richiesta del legittimo proprietario dei supporti elettronici di informazione o del detentore delle informazioni in essi contenute, un esperto partecipante all'operazione di prelievo, in presenza di testimoni, esegue la copia delle informazioni da tali supporti su altri dispositivi elettronici.
Poi, purtroppo, quel punto dell'articolo è stato rimosso.
Segreto e non ufficiale
Questa è già la competenza di specialisti appositamente formati delle organizzazioni come NSA, FBI, MI5 e altre entità con acronimi simili. Nella maggior parte dei casi, le legislazioni nazionali prevedono poteri estremamente ampi per tali strutture. Inoltre, quasi sempre esiste un divieto legislativo su qualsiasi divulgazione diretta o indiretta del fatto stesso di cooperare con tali forze dell'ordine. Anche in Russia ci sono norme giuridiche analoghe .
In caso di una simile minaccia ai vostri dati, è quasi certo che verranno estratti. Oltre al semplice prelievo, potrebbero essere utilizzati tutti gli arsenali non ufficiali di backdoor, vulnerabilità zero-day, estrazione dei dati dalla memoria RAM della vostra macchina virtuale e altre amenità. In questo caso, il provider di hosting sarà obbligato a fornire il massimo supporto alle forze dell'ordine.
Dipendente disonesto
Non tutte le persone sono uguali. Alcuni degli amministratori del data center potrebbero decidere di guadagnare qualcosa vendendo i vostri dati. Da quel punto in poi, gli sviluppi dipendono dai suoi privilegi e dagli accessi. La cosa più sgradevole è che un amministratore con accesso alla console di virtualizzazione ha il completo controllo sulle vostre macchine. Può sempre creare uno snapshot insieme a tutto il contenuto della memoria RAM e poi esaminarlo con calma.
VDS
Quindi avete una macchina virtuale fornita dal vostro hosting. Come potete organizzare la crittografia per proteggervi? In realtà, non ci sono molte opzioni. Inoltre, anche un server dedicato di qualcun altro potrebbe alla fine rivelarsi una macchina virtuale con i dispositivi necessari collegati.
Se l'obiettivo di un sistema remoto non è solo l'archiviazione dei dati, ma anche l'esecuzione di calcoli, l'unica opzione per lavorare con una macchina non fidata sarà l'implementazione . In questo caso, il sistema eseguirà i calcoli senza la possibilità di comprendere cosa stia facendo. Sfortunatamente, i costi associati all'implementazione di tale crittografia sono così elevati che il loro utilizzo pratico è attualmente limitato a compiti molto specifici.
Inoltre, nel momento in cui la macchina virtuale è avviata e sta svolgendo delle operazioni, tutti i volumi crittografati sono accessibili, altrimenti il sistema operativo non potrebbe lavorarci. Questo significa che, avendo accesso alla console di virtualizzazione, è sempre possibile fare uno snapshot della macchina in esecuzione e estrarre tutte le chiavi dalla memoria RAM.
Molti fornitori hanno tentato di implementare la crittografia hardware della RAM, in modo che nemmeno l'hosting provider avesse accesso a questi dati. Ad esempio, la tecnologia Intel Software Guard Extensions crea aree nello spazio degli indirizzi virtuali, protette dalla lettura e scrittura da parte di altri processi, incluso il kernel del sistema operativo. Purtroppo, non puoi riporre piena fiducia in queste tecnologie, poiché sarai limitato alla tua macchina virtuale. Inoltre, esistono già esempi concreti a questa tecnologia. Eppure, la crittografia delle macchine virtuali non è così priva di senso come potrebbe sembrare.
Crittografiamo i dati su VDS
Tengo a precisare che tutto ciò che faremo di seguito non garantisce una protezione completa. L'hypervisor può effettuare le copie necessarie senza interrompere il servizio e senza che tu te ne accorga.
- Se su richiesta l'hosting provider consegna un'immagine 'fredda' della tua macchina virtuale, allora sei relativamente al sicuro. Questo è lo scenario più comune.
- Se il provider di hosting fornisce un'istantanea completa della macchina in esecuzione, la situazione è piuttosto critica. Tutti i dati saranno montati nel sistema in chiaro. Inoltre, ci sarà la possibilità di esaminare la RAM alla ricerca di chiavi private e informazioni simili.
Di default, se hai distribuito un sistema operativo da un'immagine standard, il provider non ha accesso root. È sempre possibile montare un supporto con un'immagine di ripristino e cambiare la password di root, eseguendo chroot nell'ambiente della macchina virtuale. Tuttavia, questo richiederà un riavvio, che sarà notificato. Inoltre, tutte le partizioni crittografate montate saranno chiuse.
Tuttavia, se il deployment della macchina virtuale avviene da un'immagine preparata in precedenza, il provider può spesso aggiungere un'account privilegiato per fornire assistenza in caso di emergenza al cliente. Ad esempio, per modificare una password di root dimenticata.
Anche in caso di snapshot completo, non è tutto così drammatico. L'attaccante non otterrà i file crittografati se li avete montati da un file system remoto di un'altra macchina. Sì, in teoria si potrebbero scovare le chiavi di crittografia dal dump della memoria, ma nella pratica è molto complesso e molto improbabile che il processo vada oltre la semplice trasmissione dei file.
Ordiniamo la macchina

Per i nostri scopi di test, prendiamo una macchina semplice in . Non abbiamo bisogno di molte risorse, quindi sceglieremo l'opzione con pagamento per i megahertz effettivamente consumati e per il traffico. Sarà sufficiente per sperimentare.
Il classico dm-crypt per l'intero volume non ha funzionato. Il disco viene restituito di default come un'unica unità, con root su tutto il volume. Ridurre una partizione ext4 con root montato è praticamente garantito a trasformarsi in un mattone invece di un file system. Ho provato) Il tamburo non ha aiutato.
Creiamo un contenitore crittografico
Quindi non crittografiamo l'intera sezione, ma utilizziamo contenitori crittografici di file, precisamente il sicuro e certificato VeraCrypt. Questo è sufficiente per i nostri scopi. Iniziamo estraendo e installando il pacchetto con la versione CLI dal sito ufficiale. Puoi anche verificare la firma.
wget https://launchpad.net/veracrypt/trunk/1.24-update4/+download/veracrypt-console-1.24-Update4-Ubuntu-18.04-amd64.deb
dpkg -i veracrypt-console-1.24-Update4-Ubuntu-18.04-amd64.deb
Adesso creeremo il contenitore da qualche parte nella nostra home, in modo da montarlo manualmente al riavvio. Nella versione interattiva, dovrai specificare la dimensione del contenitore, la password e gli algoritmi di crittografia. Puoi scegliere il crittografo patriottico Kuznechik e la funzione hash Stribog.
veracrypt -t -c ~/my_super_secretAdesso installiamo nginx, montiamo il contenitore e carichiamo all'interno le informazioni riservate.
mkdir /var/www/html/images
veracrypt ~/my_super_secret /var/www/html/images/
wget https://upload.wikimedia.org/wikipedia/ru/2/24/Lenna.pngModifichiamo leggermente /var/www/html/index.nginx-debian.html, in modo da ottenere la pagina desiderata e quindi possiamo verificare.
Connettiamoci e controlliamo

Il contenitore è montato, i dati sono accessibili e vengono serviti.

Ecco come si presenta la macchina dopo il riavvio. I dati sono al sicuro in ~/my_super_secret.
Se hai davvero bisogno e desideri hardcore, puoi crittografare l'intero sistema operativo in modo che, al riavvio, richieda il collegamento via ssh e l'inserimento della password. Questo sarà sufficiente anche in uno scenario di semplice estrazione di "dati a freddo". Ecco e la crittografia remota dei dischi. Anche se nel caso di VDS questo è complicato e ridondante.
Bare metal
Non è così semplice installare un proprio server in un data center. Un dedicato di un'altra persona potrebbe rivelarsi una macchina virtuale con tutti i dispositivi virtualizzati. Ma qualcosa di interessante in termini di protezione inizia quando hai la possibilità di collocare nel data center il tuo server fisico di fiducia. Qui puoi utilizzare appieno il tradizionale dm-crypt, VeraCrypt o qualsiasi altra crittografia a tua scelta.
È importante comprendere che, con l'implementazione della crittografia totale, il server non potrà avviarsi autonomamente dopo un riavvio. Sarà necessario stabilire una connessione con l'interfaccia locale IP-KVM, IPMI o un altro equivalente simile. Dopodiché, inseriremo manualmente la master key. Il sistema non è dei migliori in termini di continuità e tolleranza ai guasti, ma non ci sono molte alternative se i dati sono così preziosi.

NCipher nShield F3 Hardware Security Module
Una soluzione più soft prevede che i dati siano crittografati, con la chiave memorizzata direttamente nel server stesso in un HSM (Hardware Security Module) speciale. Di norma, si tratta di dispositivi molto funzionali che non solo offrono crittografia hardware, ma includono anche meccanismi per rilevare tentativi di manomissione fisica. Se qualcuno inizia a forare il vostro server con un flessibile, l'HSM con alimentazione indipendente cancellerà le chiavi memorizzate nella sua memoria. All'attaccante rimarrà solo un contenuto crittografato. Inoltre, il riavvio può avvenire automaticamente.
L'eliminazione delle chiavi è un'opzione molto più veloce e umana rispetto all'attivazione di una bomba termitica o di un dispositivo di scarica elettromagnetica. I tuoi vicini in data center ti colpiranno a lungo per tali dispositivi. Inoltre, nel caso di utilizzo della crittografia sui supporti stessi, non si avverte praticamente alcun overhead. Tutto avviene in modo trasparente per il sistema operativo. Tuttavia, bisogna fidarsi di un ipotetico Samsung e sperare che utilizzino un AES256 onesto, e non un banale XOR.
Non bisogna dimenticare che tutte le porte superflue devono essere disattivate fisicamente o riempite con un composto. Altrimenti, si dà la possibilità agli attaccanti di eseguire . Se hai un PCI Express o Thunderbolt esposto, incluso USB con supporto, sei vulnerabile. Un attaccante potrebbe sfruttare queste porte per eseguire un attacco e ottenere accesso diretto alla memoria con le chiavi.

In a highly sophisticated scenario, an attacker could carry out a cold boot attack. In this case, they simply pour a good amount of liquid nitrogen onto your server, roughly extract the frozen memory modules, and take a dump from them with all the keys. Often, a regular cooling spray and a temperature around -50 degrees are sufficient for the attack. There is also a more careful method. If you haven't disabled booting from external devices, the attacker's algorithm will be even simpler:
- Freeze the memory modules without opening the case
- Connect your bootable USB drive
- Use special utilities to extract data from the RAM that survived the reboot, thanks to the freezing.
Dividi e conquista
Okay, we only have virtual machines, but we want to reduce the risks of data leakage somehow.
In linea di principio, è possibile considerare di rivedere l'architettura e distribuire l'archiviazione dei dati e l'elaborazione su giurisdizioni diverse. Ad esempio, il frontend con le chiavi di crittografia può trovarsi presso il provider in Repubblica Ceca, mentre il backend con i dati crittografati può essere collocato in Russia. In caso di un tentativo standard di prelievo, è estremamente improbabile che le forze dell'ordine possano agire simultaneamente in giurisdizioni diverse. Inoltre, questo ci protegge parzialmente da scenari di rimozione degli snapshot.
Oppure si può considerare una soluzione completamente pura: la crittografia End-to-End. Certamente, questo va oltre il capitolato e non prevede l'esecuzione di calcoli da parte della macchina remota. Tuttavia, è un'opzione del tutto accettabile se si parla di archiviazione e sincronizzazione dei dati. Ad esempio, è realizzato in modo molto conveniente in Nextcloud. In questo modo, la sincronizzazione, il versioning e altre funzionalità della parte server rimarranno intatte.
Totale
Non esistono sistemi perfettamente protetti. L'obiettivo è semplicemente rendere l'attacco più costoso rispetto al possibile guadagno.
È possibile ridurre alcuni rischi di accesso ai dati su un server virtuale combinando crittografia e archiviazione separata su diversi provider.
Un'opzione piuttosto affidabile è l'uso di un server dedicato.
Tuttavia, dovrai comunque fidarti del provider. Questa è la base dell'intera industria.
Fonte: habr.com
