/ / Come eliminare in modo sicuro i file su Linux

Come eliminare in modo sicuro i file su Linux

Aprire il disco rigido nel vassoio hot swap

Distruggere i vecchi file di dati per lo stesso motivo per cui hai distrutto vecchi documenti cartacei. Ti diciamo cosa devi sapere sull'eliminazione sicura dei file Linux. Questo tutorial copre il shred comando e il secure-delete suite di utilità.

I file eliminati sono normalmente recuperabili

L'eliminazione di un file non lo rimuove dail tuo disco rigido. Dipende tutto dal modo in cui il tuo filesystem utilizza gli inode. Queste sono le strutture di dati all'interno del filesystem che contengono i metadati relativi ai file. Il nome del file, la sua posizione sul disco rigido, quali attributi e autorizzazioni ha, e così via, sono tutti memorizzati in un inode. Una directory non è altro che un file stesso. Uno che contiene i nomi e i numeri di inode dei file che contiene la directory.

Quando si elimina un file con rm, il filesystem libera l'inode appropriatoe regola il file della directory. Questo segna lo spazio sul disco rigido che il file ha usato per occupare come inutilizzato. Immagina di entrare in una biblioteca e di esaminare l'indice delle carte, trovare la carta del catalogo di un libro e strapparla. Il libro è ancora sullo scaffale. È solo più difficile da trovare.

In altre parole, lo spazio utilizzato dail file è ora gratuito per essere utilizzato da altri file. Ma il contenuto del vecchio file si trova ancora in quello spazio. Fino a quando quello spazio non viene sovrascritto, ci sono buone probabilità che il file possa essere recuperato.

Ma eliminare completamente un file non è così semplice come semplicemente sovrascriverlo. Come vedremo.

Non farlo con SSD

Queste tecniche sono per il tradizionalehard disk elettromeccanici (HDD) e non devono essere utilizzati con unità a stato solido (SSD). Non funzionerà e causerà scritture extra e usura non necessaria sul tuo SSD. Per cancellare in modo sicuro i dati da un SSD, è necessario utilizzare l'utilità fornita dal produttore del proprio SSD.

RELAZIONATO: Come eliminare file e directory nel terminale Linux

Il comando brandello

shred è progettato per eseguire la sovrascrittura per teun file eliminato non può essere recuperato. È incluso in tutte le distribuzioni Linux testate durante la ricerca di questo articolo, inclusi Ubuntu, Fedora e Manjaro.

In questo esempio, lavoreremo in adirectory chiamata ~ / research, che contiene molti file di testo. Contiene anche alcune altre directory che a loro volta contengono altri file. Supponiamo che questi file siano sensibili e debbano essere completamente cancellati dal disco rigido.

Possiamo vedere la struttura ad albero delle directory usando il tree comando come segue. Il -d (directory) opzione causa tree per elencare solo le directory e non per elencare tutti i file. La struttura ad albero delle directory è simile alla seguente:

tree -d

struttura ad albero di directory in una finestra terminale

Distruggere un singolo fuoco

Per distruggere un singolo file, possiamo usare il seguente comando. Le opzioni che stiamo usando sono:

  • u: Dealloca e rimuovi il file dopo la sovrascrittura.
  • v: Opzione dettagliata, in modo che shred ci dice cosa sta facendo.
  • z: Esegue una sovrascrittura finale con zero.
shred -uvz Preliminary_Notes.txt_01.txt

shred -uvz Preliminary_Notes.txt_01.txt in una finestra terminale

shred sovrascrive il file quattro volte per impostazione predefinita. I primi tre passaggi utilizzano dati casuali e il passaggio finale utilizza zero, come richiesto. Quindi rimuove il file e sovrascrive alcuni dei metadati nell'inode

fare a pezzi quattro passaggi

Impostazione del numero di passaggi di sovrascrittura

Possiamo chiedere shred per usare più o meno passaggi di sovrascrittura usando il tasto -n (numero) opzione. shred utilizzerà sempre almeno un passaggio. Il numero che forniamo qui è il numero di extra pass richiesti shred per esibirsi. Così shred farà sempre un passaggio in più rispetto al numero richiesto. Per ottenere tre passaggi in totale, richiediamo altri due passaggi:

shred -uvz -n 2 Preliminary_Notes.txt_02.txt

shred -uvz -n 2 Preliminary_Notes.txt_02.txt in una finestra del terminale

Come previsto, shred fa tre passaggi.

distruggere facendo tre passaggi in una finestra terminale

Meno passaggi, meno tagliuzzamenti se lo desideri, è ovviamente più veloce. Ma è meno sicuro? Tre passaggi, interessante, è probabilmente più che sufficiente.

RELAZIONATO: Devi solo cancellare un disco una volta per cancellarlo in modo sicuro

Distruggere più file

I caratteri jolly possono essere utilizzati con shred per selezionare gruppi di file da cancellare. Il * rappresenta più caratteri e il ? rappresenta un singolo personaggio. Questo comando eliminerebbe tutti i file "Preliminary_Notes" rimanenti nella directory di lavoro corrente.

shred -uvz -n 2 Preliminary_Notes_*.*

shred -uvz -n 2 Preliminary_Notes _ *. * in una finestra del terminale

I file rimanenti vengono elaborati ciascuno da shred a sua volta.

output da shred in una finestra terminale

shred non ha opzioni ricorsive, quindi non può essere usato per cancellare alberi di directory di directory nidificate.

Il problema con l'eliminazione sicura dei file

Buono come shred c'è, c'è un problema. I moderni file system di journaling come ext3 ed ext4 fanno enormi sforzi per garantire che non si rompano, si corrompano o perdano dati. E con i filesystem di journaling, non vi è alcuna garanzia che la sovrascrittura avvenga effettivamente sullo spazio del disco rigido utilizzato dal file eliminato.

Se non altro stai cercando un po 'di tranquillità che i file sono stati eliminati un po' più accuratamente di rm l'avrebbe fatto allora shred probabilmente va bene. Ma non commettere l'errore di pensare che i dati siano definitivamente spariti ed è totalmente irrecuperabile. È molto probabile non il caso.

RELAZIONATO: Perché non è possibile "eliminare in modo sicuro" un file e cosa fare

La suite di cancellazione sicura

Il secure-delete i comandi cercano di superare i migliori sforzi dijournaling dei filesystem e riuscire a sovrascrivere il file in modo sicuro. Ma si applicano esattamente le stesse avvertenze. Non esiste ancora alcuna garanzia che la sovrascrittura si stia effettivamente verificando sulla regione del disco rigido necessaria per cancellare il file di interesse. Ci sono più possibilità, ma nessuna garanzia.

Il secure-delete i comandi utilizzano la seguente sequenza di sovrascritture e azioni:

  • 1 sovrascrivere con byte di valore 0xFF.
  • 5 sovrascrive con dati casuali.
  • 27 sovrascrive con valori speciali definiti da Peter Gutmann.
  • Altre 5 sovrascrive con dati casuali.
  • Rinomina il file su un valore casuale.
  • Tronca il file.

Se tutto ciò ti sembra eccessivo, ci seibuona compagnia. Sembra anche eccessivo a Peter Gutmann, professore all'Università di Aukland. Nel 1996 ha pubblicato un articolo che parlava di queste tecniche, da cui è emerso il mito urbano secondo cui è necessario utilizzare tutte le tecniche discusse in quell'articolo contemporaneamente.

Da allora Peter Gutmann ha cercato di riportare il genio nella bottiglia dicendo "Una buona pulizia con dati casuali farà tutto ciò che ci si può aspettare".

Ma siamo dove siamo e queste sono le matrici di tecniche impiegate dal secure-delete comandi. Ma prima, dobbiamo installarli.

Installazione di eliminazione sicura

Uso apt-get per installare questo pacchetto sul tuo sistema se stai usando Ubuntu o un'altra distribuzione basata su Debian. Su altre distribuzioni Linux, utilizza invece lo strumento di gestione dei pacchetti della tua distribuzione Linux.

sudo apt-get install secure-delete

sudo apt-get install secure-delete in una finestra del terminale

Ci sono quattro comandi inclusi in secure-delete fascio.

  1. srm è sicuro rm, utilizzato per cancellare i file eliminandoli e sovrascrivendo il loro spazio sul disco rigido.
  2. sfill è uno strumento per sovrascrivere tutto lo spazio libero sul disco rigido.
  3. sswap viene utilizzato per sovrascrivere e pulire lo spazio di swap.
  4. sdmem viene utilizzato per pulire la RAM.

Il comando srm

Si utilizza il srm comando come si userebbe rm comando. Per rimuovere un singolo file, utilizzare il seguente comando. Il -z (zero) cause dell'opzione smr per utilizzare gli zero per la cancellazione finale anziché i dati casuali. Il -v (verbose) opzione rende srm informaci dei suoi progressi.

srm -vz Chapter_One_01.txt

srm -vz Chapter_One_01.txt in una finestra terminale

La prima cosa che noterai è quella srm è lento. Fornisce un feedback visivo mentre funziona, ma è un sollievo quando si vede di nuovo il prompt dei comandi.

output da srm in una finestra terminale

Puoi usare -l (ridurre la sicurezza) opzione per ridurre il numero di passaggi a due, che accelera notevolmente le cose.

srm -lvz Chapter_One_02.txt

srm -lvz Chapter_One_02.txt in una finestra terminale

srm ci informa che questo - a suo avviso - è meno sicuro, ma cancella e sovrascrive ancora il file per noi.

Uscita da SRM in una finestra terminale

È possibile utilizzare l'opzione -l (riduzione della sicurezza) due volte, per ridurre il numero di passaggi a uno.

srm -llvz Chapter_One_03.txt

srm -llvz Chapter_One_03.txt in una finestra terminale

Utilizzo di srm con più file

Possiamo anche usare i caratteri jolly con srm. Questo comando cancellerà e cancellerà le parti rimanenti del capitolo uno:

srm -vc Chapter_One_0?.txt

srm -vc Chapter_One_0? .txt in una finestra terminale

I file vengono elaborati da srm a sua volta.

srm cancellando più file in una finestra del terminale

Eliminazione di directory e relativi contenuti con srm

Il -r (ricorsivo) opzione farà srm elimina tutte le sottodirectory e il loro contenuto. È possibile passare il percorso alla prima directory a srm.

In questo esempio, stiamo eliminando tutto dalla directory corrente, ~ / research. Ciò significa che tutti i file in ~ / research e tutte le sottodirectory vengono rimosse in modo sicuro.

srm -vz *

srm -vz * in una finestra di terminale

srm inizia l'elaborazione delle directory e dei file.

srm inizia a elaborare in una finestra terminale

Alla fine torna al prompt dei comandi. Sulla macchina di prova su cui è stato studiato questo articolo, ci sono voluti circa un'ora per rimuovere circa 200 file distribuiti tra la directory corrente e tre directory nidificate.

srm completo in una finestra terminale

Tutti i file e le sottodirectory sono stati rimossi come previsto.

Il comando sfill

E se ti preoccupi di un file che hai eliminato usando rm, come puoi andare oltre quel vecchio terreno e assicurarti che sia sovrascritto? Il sfill Il comando sovrascriverà tutto lo spazio libero sul disco rigido.

Mentre lo fai, noterai che hai sempre meno spazio libero sul tuo disco rigido, fino al punto in cui non c'è spazio libero. quando sfill completa, rilascia indietro tutto lo spazio liberoa te. Se si sta gestendo un sistema multiutente, questo sarebbe molto distruttivo, quindi si tratta di un'attività di manutenzione che dovrebbe essere condotta fuori orario.

Anche su un singolo computer utente, la perdita di spazio sul disco rigido rende inutilizzabile una volta sfill ha usato gran parte dello spazio. Questo è qualcosa che vorresti iniziare e poi allontanarti.

Per provare a velocizzare un po 'le cose, puoi usare -l (ridurre la sicurezza) opzione. Le altre opzioni sono le -v (verboso) e -z (azzera) opzioni che abbiamo visto in precedenza. Qui stiamo chiedendo sfill per sovrascrivere in modo sicuro tutto lo spazio libero nella directory / home.

sudo sfill -lvz /home

sudo sfill -lvz / home in una finestra terminale

Fai come se fossi a casa tua. Sul computer di prova - che ha solo un disco rigido da 10 GB - questo è stato avviato a metà pomeriggio e si è completato durante la notte.

sfill output in una finestra terminale

Sfornerà per ore. E questo è con il -l (ridurre la sicurezza) opzione. Ma, alla fine, verrai reindirizzato al prompt dei comandi.

Il comando sswap

Il sswap Il comando sovrascrive la memoria nella partizione di swap. La prima cosa che dobbiamo fare è identificare la tua partizione di swap. Possiamo farlo con il blkid comando, che elenca i dispositivi a blocchi.

sudo blkid

sudo blkid in una finestra terminale

È necessario individuare la parola "scambio" e prendere nota del dispositivo a blocchi a cui è collegato.

output di blkid in una finestra terminale

Possiamo vedere la partizione di swap a cui è connessa /dev/sda5.

È necessario disattivare le scritture del disco nella partizione di swap per la durata della sovrascrittura. Useremo il swapoff comando:

sudo swapoff /dev/sda5

sudo swapoff / dev / sda5 in una finestra terminale

Ora possiamo usare il sswap comando.

Noi useremo /dev/sda5 come parte della riga di comando per sswap comando. Useremo anche il -v (verbose) opzione e -ll (ridurre la sicurezza), che abbiamo usato in precedenza.

sudo sswap -llv /dev/sda5

sudo sswap -llv / dev / sda5 in una finestra terminale

sswap inizia a farsi strada attraverso la partizione di swap, sovrascrivendo tutto ciò che è in essa. Non ci vuole tanto tempo sfill. Sembra proprio così.

Una volta completato, è necessario ripristinare la partizione di swap come spazio di swap attivo. Lo facciamo con il swapon comando:

sudo swapon /dev/sda5

sudo swapon / dev / sda5 in una finestra terminale

Il comando sdmem

Il secure-delete Il pacchetto contiene anche uno strumento per cancellare i chip RAM (Random Access Memory) nel computer.

Un attacco di avvio a freddo richiede l'accesso fisico al computer poco dopo lo spegnimento. Questo tipo di attacco può potenzialmente consentire il recupero di dati dai tuoi chip RAM.

Se pensi di aver bisogno di proteggerti controquesto tipo di attacco — e sarebbe un allungamento per la maggior parte delle persone a pensare che fosse necessario — puoi cancellare la RAM prima di spegnere il computer. Useremo il -v (verboso) e -ll (ridurre la sicurezza) ancora una volta.

sudo sdmem -vll

sudo sdmem -vll in una finestra di terminale

La finestra del terminale si riempirà di asterischi come indicazione sdmem si sta facendo strada attraverso la tua RAM.

output da sdmem in una finestra terminale

L'opzione facile: basta crittografare l'unità

Invece di eliminare in modo sicuro i file, perché non proteggere il disco rigido o la cartella principale utilizzando la crittografia?

Se lo fai, nessuno può accedere a nulla,che si tratti di un file live o di un file eliminato. E non devi stare in guardia e ricordarti di cancellare in modo sicuro i file sensibili perché tutti i tuoi file sono già protetti.

La maggior parte delle distribuzioni Linux ti chiedono se vuoiusa la crittografia al momento dell'installazione. Dire "sì" salverà un sacco di aggravamenti futuri. Non puoi trattare informazioni segrete o sensibili. Ma se ritieni di poter dare o vendere il computer a qualcun altro al termine, la crittografia semplifica anche questo.