Cancellazione sicura dei dati nello spazio libero

Introduzione

Lo spazio sull’hard disk (e generalmente su altre memorie di massa) è organizzato in un filesystem, cioé una formattazione, un’organizzazione dello spazio che serve al sistema operativo per memorizzare i file.

Generalmente il filesystem non viene installato sull’hard disk intero, ma su partizioni dello stesso. Comunque una partizione può occupare anche l’intero hard disk.

Quando elimini normalmente dei file da un filesystem, il contenuto dei file non viene veramente eliminato, ma rimane invece sull’hard disk, ne vengono solo tolti i riferimenti dal filesystem, e lo spazio da loro occupato rimane disponibile per l’eventuale scrittura di nuovi file.

Quindi capita che quando qualcuno vuole farsi i fatti tuoi, con degli strumenti più o meno sofisticati è in grado di leggere alcuni dei file da te precedentemente cancellati.

Agendo preventivamente te puoi fare in modo che i fatti tuoi rimangano appunto tuoi.

Questa guida ti mostrerà come distruggere il contenuto dello spazio libero sul tuo filesystem. Ti insegnerà anche ad apprezzare partizioni dimensionate appropriatamente, perché in questo caso più spazio libero hai più dovrai pazientare per portare a termine l’operazione.

Tutti i comandi che compariranno in questa guida andranno eseguiti da superutente (root).

Prima di iniziare

In questa guida cancellazione sicura dei dati NN distruzione dei dati sono frasi utilizzate in maniera interscambiabile, quindi non farti trarre in inganno dall’ambiguità del termine sicura: in questo contesto sicuro è ciò che non può essere letto dagli altri e, visto che in questa guida non ci occupiamo di cifratura, che non può essere letto neanche da te.

Hai bisogno di:

  • Un sistema operativo UNIX-like (ad esempio GNU/Linux), ma va anche bene installare CygWin su MS Windows e dare i comandi dalla shell di CygWin. Però oh se ci tieni alla privacy ed all’indipendenza dalle multinazionali del software devi farlo questo passo di passare a GNU/Linux o ad un altro sistema operativo libero, tutto ha un prezzo, quindi sbattiti per la tua libertà. Attualmente questa guida è pensata per sistemi UNIX-like, Debian GNU/Linux 3.1 (Sarge) in particolare, però mettendoci del tuo non dovresti avere troppe difficoltà con altri sistemi operativi. In bocca al lupo.
  • Un programma di cancellazione sicura, come wipe o shred. Gli esempi si basano su shred perché solitamente lo si trova già installato, anche su CygWin, ma ad esempio io preferisco wipe… non dovrebbe essere difficile per te convertire i comandi per shred nei comandi per il programma di cancellazione sicura che usi, non faremo niente di complicato.

Inoltre conta che qualcosa sull’hard disk ci rimmarrà comunque, se vuoi essere più sicuro fai un backup, usa shred direttamente sulle partizioni, riformattale e ripristinaci il backup.

D’ora in poi assicurati di cancellare i file che vuoi che siano veramente cancellati con un programma di cancellazione sicura, anche se ripetendo ogni tanto l’operazione (cancellazione sicura dello spazio libero) starai più tranquillo.

Ultima cosa, la swap, la swap è un punto debole, non sai cosa ci finisce dentro, se hai la possibilità di avere abbastanza RAM, meglio disattivare la swap, ed essere un po’ parsimoniosi con le risorse, un normale PC con qualche piccolo accorgimento può fare a meno della swap. Ne parleremo successivamente in maniera più approfondita.

Individuiamo le partizioni

A noi interessa distinguere due tipologie di partizioni: le partizioni che usiamo e quelle che non usiamo. Delle partizioni che usiamo andremo a cancellare in maniera sicura solo lo spazio libero, delle altre andremo a distruggere tutti i dati contenuti in esse. Potresti approfittarne per concentrare quanto possibile in una o comunque meno partizioni possibile, non troppo spaziose.

Dovresti sapere quanti hard disk hai nel tuo PC e qual’è il file che li rappresenta nel filesystem, se non lo sai prova /dev/hdX e /dev/sdX cambiando X con una lettera, partendo dalla a andando avanti (io mi fermerei alla g), e usa fdisk su tale file per controllare se ci hai azzeccato e quali sono le partizioni presenti sull’hard disk, poi consulta il file /etc/fstab per renderti conto di quali sono quelle che usi, poi monta le altre in /mnt e vedi se ne puoi distruggere tutto il contenuto o se vuoi prima copiarti da parte dei file o se vuoi solo cancellare in maniera sicura il contenuto dello spazio libero.

[TODO: questa parte è poco esplicativa e poco completa, bisognerebbe migliorarla per andare incontro ai meno esperti]

Distruggere l’intero contenuto di una partizione è semplicissimo, ad esempio:

  # shred --iterations=5 -v /dev/hdf2
  così hai distrutto tutto il contenuto della partizione numero 2 dell'hard disk IDE hdf.

L’opzione –iterations è appunto opzionale e in maniera predefinita è impostata a 25. Metti il valore che vuoi, ma sappi che in ogni caso ci vorrà parecchio tempo, aumentando con l’aumentare delle iterazioni (di sovrascrittura dei dati) selezionate.

L’opzione -v (ovvero –verbose, cioé modalità logorroica) fà in modo che venga mostrato lo stato di avanzamento, puoi anche ometterla.

Riempiamo lo spazio libero di dati casuali

Monta tutte le partizioni di cui vuoi distruggere i dati contenuti nello spazio libero e che non vengono montate automaticamente, per ogni partizione utilizzata, possiamo ricavare il mount point dal file /etc/fstab o con il comando mount, ad esempio:

  # mount
  /dev/ide/host2/bus0/target0/lun0/part14 on / type ext3 (rw,errors=remount-ro)
  proc on /proc type proc (rw)
  tmpfs on /dev/shm type tmpfs (rw)
  /dev/hde5 on /boot type ext2 (ro)
  usbdevfs on /proc/bus/usb type usbdevfs (rw)
  localhost:/var/lib/cfs/.cfsfs on /var/cfs type nfs (rw,port=3049,intr,nfsvers=2,addr=127.0.0.1)
  #

Ci sono tutti i filesystem montati, alcuni corrispondono a partizioni sull’hard disk, altri sono filesystem virtuali, noi leggiamo che la partizione 14 di hde è montata su / (root), mentre la partizione 5 di hde è montata su /boot.

[TODO: questa parte è forse poco esplicativa e poco completa, bisognerebbe migliorarla per andare incontro ai meno esperti]

A questo punto, ci posizioniamo all’interno del mount point, e riempiamo un file di dati casuali, ad esempio:

  # cd /
  # cat /dev/urandom > rnd.bin
  cat: write error: No space left on device
  # mount -orw,remount /boot
  solo se il filesystem è montato in modalità read-only
  # cd /boot
  # cat /dev/urandom > rnd.bin
  cat: write error: No space left on device
  #

Sovrascriviamo più volte lo spazio libero con dati casuali

Ora cancelliamo in maniera sicura ogni file rnd.bin precedentemente creato, ad esempio:

  # shred --iterations=5 -v -u /rnd.bin
  # shred --iterations=5 -v -u /boot/rnd.bin

Puliamo anche la swap

Leggi il file /etc/fstab, e ricava l’elenco delle partizioni di swap, ad esempio:

  # grep swap /etc/fstab
  /dev/hde6 none swap sw,noauto 0 0
  #

Quindi disattiva tutte le partizioni di swap, cancellane il contenuto in maniera sicura, ripristinale e riattivale (di questo ne riparleremo nella sezione successiva), ad esempio:

  # swapoff /dev/hde6
  # shred --iterations=5 -v /dev/hde6
  # mkswap /dev/hde6
  # swapon /dev/hde6

Fare a meno della swap

La swap è uno spazio su hard disk utilizzato dal sistema operativo in affiancamento alla RAM, viene utilizzato soprattutto quando serve molta memoria, solitamente quando si utilizzano programmi piuttosto complessi (ad esempio Mozilla, Emacs, Openoffice, GNOME Desktop).

Per fare a meno della swap puoi usare due approcci:

  1. tenerla generalmente disattivata, e attivarla solo in caso di necessità (cioé quando devi far svolgere al tuo PC carichi di lavoro che altrimenti non potrebbe di svolgere);
  2. tenerla generalmente attivata, e disattivarla solo quando vuoi che i dati che maneggi (ad esempio file riservati, posta ecc…) non rimangano memorizzati nella swap.

Il primo approccio è quello preferibile, ma se la tua necessità di risorse di sistema non lo permette, puoi scegliere il secondo.

Diciamo che iniziare a utilizzare un window manager leggero invece che un complesso desktop environment (come GNOME Desktop o KDE) sarebbe già un passo significativo nel ridurre il carico di lavoro.

Comunque, puoi provare con il primo approccio, poi se i programmi ti si chiudono davanti troppo spesso allora puoi passare al secondo.

Se scegli il primo approccio, apri con un editor di testo il file /etc/fstab. Il file è diviso in colonne, separate da spazio bianco (spazio o tabulazione orizzontale). Nella prima colonna c’è il nome del file del dispositivo (ad esempio una partizione dell’hard disk), nella seconda colonna c’è il mount point, cioé dove il filesystem sul dispositivo verrà montato nel filesystem principale, nella terza colonna c’è il tipo di filesystem, nella quarta colonna le opzioni con cui verrà montato il filesystem: fermiamoci qui. Ora vai nelle righe di testo in cui il tipo di filesystem è swap e, se nelle opzioni c’è la parola auto, sostituiscila con noauto, altrimenti aggiungi noauto in coda alle opzioni (cioé aggiungi una virgola e subito attaccato noauto, senza aggiungere spazi né virgolette). Infine disattiva la swap, e riattivala solo quando ti serve.

Se invece scegli il secondo approccio non hai bisogno di modificare /etc/fstab.

Ora, per disattivare la swap usa il comando swapoff, ad esempio:

  # swapoff /dev/hde6

Invece per attivarla usa il comando swapon, ad esempio:

  # swapon /dev/hde6

Maggiori informazioni con:

  $ man swapon
  $ man mount
  $ man fstab
  $ man shred
 
  free-space-wiping-it.txt · Ultima modifica: 01.10.2006 10:08 by 127.0.0.1
 
RSS: Modifiche Recenti Contenuti: Licenza Creative Commons Valid XHTML 1.0 Valid CSS Sito fatto con: DokuWiki Sito ospitato da: Inventati.org