Laboratorio di Amministrazione di Sistemi L-A Tecniche per la salvaguardia della disponibilità ed integrità dei sistemi di elaborazione e delle informazioni Marco Prandini Università di Bologna Disponibilità ed integrità 1 Disponibilità a medio termine n n Per quanto replicato, un sistema di memorizzazione dati non può ignorare comandi espliciti, ma errati, di cancellazione sopravvivere ad eventi disastrosi conservare un numero arbitrario di immagini della situazione fotografata ad un dato istante Tutte queste situazioni sono però di interesse pratico, e richiedono l'implementazione di sistemi di backup politiche di recovery Disponibilità ed integrità 2 Backup n n Il backup è la copia dei dati dal sistema live ad un supporto offline è impegnativo organizzativamente e tecnicamente è l'assicurazione contro quasiasi causa di distruzione dei dati del sistema principale Va pianificato, considerando tra gli altri questi fattori: cosa copiare (compromesso tra praticità di ripristino e tempi/spazi necessari) chi è incaricato dei backup quando è necessario/possibile eseguire il backup quanto rapidamente cambiano i dati sul sistema quanto velocemente deve poter essere eseguito il restore per quanto deve essere conservata ogni copia dove saranno conservate le copie dove saranno ripristinate le copie (compatibilità cross-platform) Disponibilità ed integrità 3 Backup - strategie n n FULL BACKUP è la copia completa di ogni singolo file nel/nei filesystem oggetto del backup lento e ingombrante --> difficile farlo frequentemente massima semplicità di ripristino INCREMENTAL BACKUP è la copia dei soli file cambiati da una data di riferimento, tipicamente quella di esecuzione dell'ultimo full backup adatto all'esecuzione frequente per il ripristino servono sia il full che l'incremental può essere realizzato anche a più livelli (full incremental/0 rispetto al full incremental/1 rispetto all'incremental/0 ...) Disponibilità ed integrità 4 Backup - cautele n n n n n Correttezza della copia idealmente il filesystem dovrebbe essere a riposo durante il backup, ma è raro nella pratica, quindi bisogna curare bene i dettagli relativi alla lettura di file aperti o di strutture complesse come i database Protezione dei dati un backup contiene tutti i file del sistema, quindi in caso di requisiti di riservatezza va difeso allo stesso modo Integrità dei dati se il backup viene svolto senza supervisione del sysadm, ci si deve cautelare da attività anche involontarie degli utenti che possano provocare la sovrascrittura dei dati Affidabilità dei supporti con periodicità dipendente dalla criticità dei sistemi, ci si deve accertare che i dati siano scritti correttamente e siano leggibili per tutta la durata prevista della copia, curando fattori tecnologici (graffi, smagnetizzazione, obsolescenza hw e sw...) fattori ambientali (polvere, umidità, temperatura, ...) Facilità di reperimento i supporti devono essere organizzati per consentire di individuare facilmente ciò che si deve ripristinare Disponibilità ed integrità 5 Backup tecnologie n n Tradizionalmente i backup venivano fatti su nastro già per sistemi di fascia medio-bassa basso costo per byte alta capacità diverse soluzioni proprietarie ed incompatibili La crescita straordinaria della capacità degli hard disk ha messo in crisi le soluzioni tradizionali a nastro per sistemi di fascia bassa è comune l'approccio disk-to-disk per sistemi di fascia alta sono state sviluppate soluzioni a nastro estremamente performanti e con un alto costo d'ingresso, compensato dal basso costo marginale (per GB) Disponibilità ed integrità 6 Backup tecnologie n I supporti ottici sono poco utilizzati L'unico vantaggio è il basso costo del drive La massima capacità attualmente disponibile (blue-ray) è 50GB 40 BD per 1 HD da 2TB La caratteristica di grande interesse dei supporti ottici è WORM (Write-Once Read-Many): i dati sono inalterabili una volta scritti Affidabilità contro incidenti Valore legale dell'archivio n ma anche i nastri più recenti la offrono Trend più recente: data deduplication Non solo per backup ma anche per main storage (es. ZFS) Dataset diviso in chunk, identificati da un hash se un chunk ha lo stesso hash di un altro, viene eliminato e sostituito da un puntatore Attenzione alle collisioni delle funzioni hash! Disponibilità ed integrità 7 Tecnologie per backup su nastro n Tipi di nastro Assunto di base: alto bitrate = alta velocità relativa tra nastro e testina Helical scan: La velocità è ottenuta per rotazione della testina necessità di inclinazione per utilizzare tracce elicoidali diverse sul nastro Tipicamente testine magnetiche alternate sul tamburo scrivono / verificano / se necessario riscrivono / riverificano complessità e fragilità meccanica Linear tape Singola testina fissa, il nastro scorre ad elevata velocità e viene scritto ad elevato bitrate se non alimentato alla stessa velocità, accelera, vuota il buffer, decelera e poi arretra (shoe shining) Head 1 La scrittura avviene a serpentina su tracce parallele per realizzare un Head 2 nastro virtuale più lungo Disponibilità ed integrità 8 Tecnologie per backup su nastro a confronto Anno DDS-6 (DAT-160) DAT-320 DLT-V4 (value) DLT-S4 (hi perf) LTO-4 LTO-5 2007 2009 2005 2006 2007 2010 Capacità (GB) 80 160 160 800 800 1500 Velocità (MB/s) 7 12 10 60 80-120 80-140 Vita anni cicli Helical 10 2000 Helical 10 2000 Linear 30 Linear 30 Linear 30 5000 Linear 30 5000 Tipo Costo (US$) unità nastro $/GB <<1k 30 0,38 1k 55 0,34 <<1k 40 0,25 2k 80 0,10 4k 40 0,05 5k(?) 100 0,07 Note: I cicli di utilizzo sono calcolati sull'uso incrementale (i.e. la vita vera è ad esempio 100 passate complete del nastro, si stima che ogni ciclo di utilizzo impegni 1/20 di nastro, da cui una vita stimata di 2000 cicli) Attenzione alla capacità dichiarata: spesso è 2 o 3 volte quella reale (riportata in tabella) perchè il venditore assume che sia mediamente raggiunto tale fattore di compressione (i drive comprimono in hardware) I prezzi sono in continua evoluzione al ribasso, soprattutto per le tecnologie più recenti Per confronto: Il costo per GB di un hard disk è tra 0,10 e 0,20 US$/GB Il costo per GB di un BD-R è tra 0,08 e 0,12 US$/GB Caratteristiche uniche di LTO: Ampio consorzio (Linear Tape Open) Supporto HW WORM per garanzia di integrità e AES per riservatezza Disponibilità ed integrità 9 Tecnologie per backup su nastro - librerie n n I nastri sono vantaggiosi sui dischi per elevate capacità, dato il minor costo per GB per la lunga durata: una volta riempito, un volume può essere rimosso dal drive e conservato per decine di anni Per usarli in modalità simildisco (tempi di accesso dell'ordine di 5-6 minuti) si può automatizzare il sistema di caricamento nel drive con una tape library Disponibilità ed integrità Es: da 4 a 96 drive, da 350 a 6000 nastri LTO4 Es: 1 o 2 drive, 48 nastri LTO4 6000 nastri = 4,5PB (online, più la possibilità di archiviare facilmente i nastri che non servono con breve preavviso) 10 Disaster recovery Tutte le misure discusse sono necessarie per limitare l'impatto degli inconvenienti pressochè quotidiani nell'uso dei calcolatori Per garantire la sopravvivenza di un'organizzazione ad eventi di portata catastrofica bisogna adottare precauzioni ulteriori off-site storage full backup attentamente verificato, conservato in luogo diverso da quello dei sistemi, anche in molteplici copie in luoghi diversi. n n ripristino di un intero sistema a partire dalla macchina vergine (bare metal) non solo dati ma partizionamento, struttura del filesystem, boot loader, sistema operativo, ... site replication realizzazione di un'intero duplicato dell'architettura di elaborazione dati dell'azienda, in luogo diverso dal sistema principale, e costantemente sincronizzato con questo problematiche complesse di consistenza dei dati ed integrità dell'infrastruttura, a volte più gravi in failback che in failover procedure, procedure, procedure! Disponibilità ed integrità 11 Integrità n n n Un elemento fondamentale per la difesa della sicurezza è poter verificare l'integrità dei suoi componenti limitandoci ai file (ma non sempre sufficiente, vedi LKM e hot-kernel-patching rootkits) ad esempio: corrispondenza del codice di eseguibili e librerie alle versioni originali appropriatezza dei permessi e delle ownership rilevazione di modifiche ai file di configurazione coerenza d'uso dei tipi di file (es. log sempre crescenti) Il confronto con un backup è un modo possibile, ma poco pratico, di verificare la congruenza tra il contenuto del sistema attuale ed un'immagine di riferimento che deve, con questa o altre tecniche, essere presa con la certezza che il sistema sia pulito! Più sensato è memorizzare in un database le sole caratteristiche distintive dei file da controllare Disponibilità ed integrità 12 Integrità database per la verifica n n Nel caso si vogliano fare pochi controlli, è possibile costruire manualmente un semplice database che per ogni file interessante memorizzi, insieme al nome assoluto, i metadati ed un'impronta crittografica calcolata con md5sum Alcuni package manager, come rpm, lo fanno automaticamente, e permettono di verificare la congruità tra i dati rilevati dal file system e quanto da loro originariamente installato file Size Mode (includes permissions and file type) MD5 sum Device major/minor number readlink(2) path User/Group ownership mTime Disponibilità ed integrità 13 Integrità sistemi per linux n n Esistono sistemi indipendenti dalla distribuzione che permettono di generare un DB che fotografa il filesystem tra i più noti: Tripwire AIDE afick Vantaggi: configurazione che permette di specificare tipologie diverse di file (es. per un file di log non ha senso imporre che non cambi) gestione della cifratura dei database (questo è un problema delicato, ovviamente non si può rischiare che un attaccante alteri il DB per far passare inosservate le modifiche al sistema, ma d'altra parte deve essere praticabile l'uso del DB per verifica e l'aggiornamento) sistemi di reportistica delle violazioni riscontrate Disponibilità ed integrità 14 AIDE n n n n AIDE is a configurable integrity checker The file /etc/aide.conf defines the types of checks to apply to files and directories A reference database is built on a clean system A periodic scan compares the system files to the database according to the configuration, and reports the relevant differences Disponibilità ed integrità 15 AIDE check types Disponibilità ed integrità DIRECTIVE DESCRIPTION p i n u g s b m a c S md5 sha1 rmd160 tiger R L E > permissions inode number of links user group size block count Mtime Atime Ctime check for growing size md5 checksum sha1 checksum rmd160 checksum tiger checksum p+i+n+u+g+s+m+c+md5 p+i+n+u+g Empty group Growing logfile p+u+g+i+n+S 16 AIDE defining targets (by example) n n n n The following selection line would examine everything in the /etc directory, specifically looking at the number of links, the user who owns a given file, the group who owns a given file, and the size of the file: /etc n+u+g+s Objects can be ignored or skipped by using an exclamation point (!), as in the following example, which causes AIDE to ignore everything in /var/log: !/var/log/.* Patterns are root-anchored substrings: be careful with seemingly specific exclusions! !/var/log/maillog what you meant maybe was: !/var/log/maillog$ Disponibilità ed integrità 17 AIDE quick usage n Configure the checking rules the name for the "reference" database (used for checks) database=file:/usr/local/aide/aide.db the name for the "new" database (produced at each initialization) database_out=file:/usr/local/aide/aide.db.new n n n Initialize the database with aide --init To use the created db as reference for future checks: mv /usr/local/aide/aide.db.new /usr/local/aide/aide.db To run a system integrity check: aide --check Disponibilità ed integrità 18 AIDE proper usage n Depending on your taste, AIDE can either be run as a forensic tool, only if you suspect/experience a break-in scheduled to regularly report any interesting change Two problems: periodically reset the DB to stop reporting benign file changes defend the AIDE binary and database integrity! n To reduce the risk of running a compromised AIDE / on a compromised DB: compile the software statically and burn it on a CD use HMAC signatures for the configuration file and the DB these are annoyances for casual attackers, not walls against a determined one rootkits can divert the CD mount the signing key is embedded in the code Disponibilità ed integrità 19