In questo articolo spiegheremo come difendersi contro Ransomware, come ad esempio i Cryptolocker, utilizzando alcune delle proprietà di TrueNAS.
Utilizziamo TrueNAS 11.2-X su un Open NAS Tower B1
Introduzione
Un ransomware è un tipo di malware che limita l’accesso del dispositivo che infetta, richiedendo un riscatto (ransom in Inglese) da pagare per rimuovere la limitazione. Ad esempio alcune forme di ransomware, come I cryptolocker bloccano il sistema e intimano l’utente a pagare per sbloccare il sistema, altri invece cifrano i file dell’utente chiedendo di pagare per riportare i file cifrati in chiaro.
E’ quasi sempre impossibile accedere ai dati, a volte anche pagando il riscatto, e sarà dunque necessario utilizzare un sistema di Backup per ritornare ad essere produttivi.
Per fare questo procederemo nel seguente modo:
- Configuriamo il servizio SMB, e il numero di condivisioni necessarie; eventualmente le policy di accesso (fortemente consigliato)
- Sfrutteremo le potenzialità di TrueNAS al fine di schedulare delle snapshot periodiche.
Configurazione
Creazione del Dataset
Creiamo il nostro dataset da condividere, che per TrueNAS non sono altro che cartelle, le quali saranno create all’interno del pool.
Per creare il nostro dataset è necessario andare su Storage -> Pools -> selezionare il pool desiderato (nel nostro caso “MASTER”) -> Add Dataset
Scegliamo il nome da assegnare al dataset e inseriamo la spunta su Windows sotto “Share Type”.
Creato il nostro dataset (nominato “Data”) possiamo ora modificare i permessi sotto “Edit Permissions”.
Scegliamo l’utente proprietario ed il gruppo (nel nostro caso Utente “John” e Gruppo “John”).
Possiamo inserire la spunta su “Apply permissions recursively” se vogliamo che le permission siano applicate anche alle sotto cartelle.
Possiamo creare all’occorrenza degli utenti locali, a cui assegnare dei diritti di accesso recandoci su Accounts -> Users -> Add.
NOTA
TrueNAS supporta l’integrazione con questi servizi di directory:
- Active Directory (per Windows 2000 e reti successive)
- LDAP
- NIS
Active Directory (AD) è un servizio per la condivisione di risorse in una rete Windows. AD può essere configurato su un server Windows che esegue Windows Server 2000 (o versione successiva) o su un sistema operativo Unix-like che esegue Samba versione 4 . Poiché AD fornisce servizi di autenticazione e autorizzazione per gli utenti in una rete, non è necessario ricreare gli stessi account utente sul sistema TrueNAS. Si può configurare quindi il servizio Active Directory in modo che le informazioni sull’account, e gli utenti importati, possano essere autorizzati ad accedere alle condivisioni SMB sul sistema TrueNAS.
Servizio SMB
Come primo passo per creare una condivisione è necessario abilitare il servizio SMB con la seguente procedura: Services -> SMB mettendo la spunta su ”running” e su “Start Automatically”.
Come configurazione è sufficiente lasciare tutto di default. Eventualmente possiamo inserire la spunta su “Enable SMB1 support” nel caso dovessimo interfacciarci con sistemi più vecchi che supportano solo il protocollo SMB V1. Per ragioni di sicurezza consigliamo di non abilitarlo se non strettamente necessario.
Creazione della condivisione
Rechiamoci sotto Sharing -> Windows (SMB) Shares -> ADD
Scegliamo come percordo il dateset che abbiamo creato in precedenza (nel nostro caso nominato “Data”).
Configurazione e schedulazione Snapshot Automatiche
Le snapshot sono una caratteristica interessante del file system ZFS. Dopo la snapshot iniziale, le nuove snapshot non copiano effettivamente i file nuovi/aggiunti/modificati, ma prendono un “differenziale” della snapshot originale con conseguente riduzione massiccia delle dimensioni delle nuove snapshot successive, impiegando minor tempo per registrare nuove istantanee e quindi migliorare le prestazioni del sistema.
Le snapshot possono essere intese come “fotografie” che catturano lo stato dei dati fino ad un determinato istante di tempo. Tali dati verranno quindi conservati fino a quando non si eliminano tutte le snapshot.
Se tutte le snapshot, che proteggono quei dati vengono rimosse, si perderà ovviamente lo storico delle modifiche rimanendo pertanto con i dati allo stato attuale.
È possibile tornare all’istantanea più recente clonando o eseguendo il rollback.
“Pensa agli snapshot come a un processo rapido ed efficiente per ripristinare un file/directory in una versione precedente/originale o in uno stato”.
Possiamo tornare a qualsiasi istantanea “clonandola” [termine usato TrueNAS – ndr]. La clonazione è come “montare” una snapshot in una nuova posizione (è necessario fornire il percorso sul file system).
Dopo aver creato un dataset di prova, configureremo una snapshot periodica per questo dataset. Quindi aggiungeremo/modificheremo dei file ed eseguiremo il rollback/clone allo stato/versione precedente dello stato dei dati.
Risulta immediatamente chiaro come questo processo può tornarci utile nel momento in cui i nostri dati vengano compromessi o ancor peggio cryptati da un Ransomware.
Cominciamo configurando un task automatico di creazione delle snapshot.
Rechiamoci in Task -> Periodic Snapshot Task -> ADD
Possiamo configurare:
- L’intero Pool oppure il dataset che ci interessa.
- La durata di vita della snapshot (“Snapshot Lifetime”).
- L’inizio e la fine dell’intervallo di tempo in cui eseguire le snapshot.
- Ogni quanto effettuare la snapshot (“Interval”).
- I giorni della settimana in cui effettuare il task.
Per poter gestire le snapshot create dobbiamo recarci sotto Storage -> Snapshot.
Ogni dataset/pool avrà la sua snapshot e potremo scegliere quale ripristinare.
Per il ripristino della snapshot possiamo seguire 2 strade:
- Eseguire un clone: ripristina la snapshot in una porzione del File system e dunque storage che noi andremo a dedicare. In questo caso non verranno effettuate altre modifiche ma avremo una situazione in cui la snapshot sarà ripristinata parallelamente allo “stato attuale”.
- Eseguire il Rollback: ripristina la snapshot sovrascrivendola allo stato attuale dei dati del dataset a cui si riferisce. E’ opportuno prestare attenzione al fatto che tutte le modifiche successive alla creazione della snaphot verranno perse, così come le tutte le snapshot create successivamente alla snapshot ripristinata.
Clone
Clicchiamo sui 3 pallini della snapshot che vogliamo clonare e selezioniamo “Clone”.
A questo punto ci verrà chiesto di selezionare il percorso dove vogliamo sia ripristinato il clone. Possiamo ad esempio crearlo all’ interno del nostro dataset condiviso per potervi accedere da remoto ed effettuare una più comoda consultazione.
Rollback
Clicchiamo sui 3 pallini della snapshot che vogliamo clonare e selezioniamo “Rollback”
Verremo dunque avvertiti delle conseguenze e dell’irreversibilità del processo.
Una volta effettuato il Rollback di una snapshot è opportuno considerare che vengono ripristinati anche le permission presenti nella snapshot ripristinata.
CONCLUSIONE
Poter fare affidamento su un certo numero di snaphot può tornare decisamente utile nel caso i nostri dati vengano compromessi da Ransomware come Cryptolocker o da altri elementi che potrebbero alterarli.
Come metodo potrebbe risultare più comodo effettuare prima un clone della snapshot, magari in uno storage isolatao nel caso in cui tutti i nostri dati siano cryptati, così da poterne consultare il contenuto e decidere se effettuare un rollback dei dataset desiderati.