Product SiteDocumentation Site

4.19. Una fotografia del sistema

Prima di mettere il sistema in produzione se ne può fotografare l'attuale stato: il risultato dell'operazione può tornare utile in caso di compromissione (vedete Capitolo 11, Dopo la compromissione (reazione agli incidenti)). Questo procedimento dovrebbe essere ripetuto ad ogni aggiornamento del sistema, specialmente se si aggiorna ad una nuova versione di Debian.
A tale scopo si può usare un media scrivibile e rimuovibile che possa essere impostato in sola lettura, come un floppy disk, se protetto da scrittura dopo l'uso, o un CD aperto da un'unità CD-ROM - si può usare un CD riscrivibile, in modo da poter conservare copie di ripristino, magari con firma md5sum, create in date differenti, o un disco USB o ancora una card MMC (se il vostro sistema può accedere a tali dati e al contempo possono essere protetti in scrittura).
Il seguente script crea una fotografia del sistema:
#!/bin/bash
/bin/mount /dev/fd0 /mnt/floppy
trap "/bin/umount /dev/fd0" 0 1 2 3 9 13 15
if [ ! -f /usr/bin/md5sum ] ; then
	echo "Cannot find md5sum. Aborting."
	exit 1
fi
/bin/cp /usr/bin/md5sum /mnt/floppy
echo "Calculating md5 database"
>/mnt/floppy/md5checksums.txt
for dir in /bin/ /sbin/ /usr/bin/ /usr/sbin/ /lib/ /usr/lib/
do
   find $dir -type f | xargs /usr/bin/md5sum >>/mnt/floppy/md5checksums-lib.txt
done
echo "post installation md5 database calculated"
if [ ! -f /usr/bin/sha1sum ] ; then
	echo "Cannot find sha1sum"
        echo "WARNING: Only md5 database will be stored"
else
	/bin/cp /usr/bin/sha1sum /mnt/floppy
	echo "Calculating SHA-1 database"
	>/mnt/floppy/sha1checksums.txt
	for dir in /bin/ /sbin/ /usr/bin/ /usr/sbin/ /lib/ /usr/lib/
	do
	   find $dir -type f | xargs /usr/bin/sha1sum >>/mnt/floppy/sha1checksums-lib.txt
	done
	echo "post installation sha1 database calculated"
fi
exit 0
Tenete conto che il binario di md5sum (e sha1sum se disponibile) si trova su floppy, per poter essere usato, in seguito, per controllare i binari del sistema (nel caso che abbiate preso dei trojan). Comunque, se volete essere sicuri che state facendo girare un binario legittimo, potreste sia compilare una copia statica del binario di md5sum e usare quella (per evitare che una libreria libc con trojan interferisca con il binario), oppure usare una istantanea di md5sum solamente da un ambiente sano come un CD-ROM di salvataggio o un Live-CD (per evitare che un kernel con trojan interferisca). Questo non verrà mai posto abbastanza in risalto: se siete su un sistema compromesso non potete fidarvi del suo output, vedete Capitolo 11, Dopo la compromissione (reazione agli incidenti).
L'istantanea non comprende i file sotto /var/lib/dpkg/info che includono l'hash MD5 dei pacchetti installati (nei file che finiscono con .md5sums). Potete anche copiare questa informazione, ma dovreste comunque tenere in conto che:
  • i file md5sum includono l'md5sum non solo dei binari di sistema, ma di tutti i file forniti dai pacchetti Debian. Una conseguenza di ciò è che il database è più grande (5 Mb contro 600 Kb in un sistema Debian GNU/Linux con sistema grafico e circa 2.5 Gb di software installato) e non entrerà in un supporto rimovibile di scarsa capienza (tipo un floppy disk, ma probabilmente entrerebbe in una memoria rimovibile USB).
  • non tutti i pacchetti Debian forniscono l'md5sum per i file installati fino a che non sarà (attualmente lo è) una pratica obbligatoria. Tenete in conto che, in ogni caso, avrete la possibilità di generare l'md5sum per tutti i pacchetti usando debsums una volta terminata l'installazione del sistema:
    # debsums --generate=missing,keep
Una volta fatta l'istantanea dovreste assicurarvi di impostare in sola lettura il dispositivo. Potrete poi archiviarlo per backup o metterlo in un disco ed usare cron ogni notte per confrontare l'md5sum originale con quella dell'istantanea.
Se non volete approntare un controllo manuale potrete sempre usare uno dei programmi di controllo dell'integrità del sistema disponibili che faranno questo e anche di più, per maggiori informazioni leggete Sezione 10.2, «Effettuate periodicamente dei controlli sull'integrità del sistema».