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
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
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
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
Come previsto, shred
fa tre passaggi.
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_*.*
I file rimanenti vengono elaborati ciascuno da shred
a sua volta.
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
Ci sono quattro comandi inclusi in secure-delete
fascio.
-
srm
è sicurorm
, utilizzato per cancellare i file eliminandoli e sovrascrivendo il loro spazio sul disco rigido. sfill
è uno strumento per sovrascrivere tutto lo spazio libero sul disco rigido.sswap
viene utilizzato per sovrascrivere e pulire lo spazio di swap.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
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.
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
ci informa che questo - a suo avviso - è meno sicuro, ma cancella e sovrascrive ancora il file per noi.
È possibile utilizzare l'opzione -l (riduzione della sicurezza) due volte, per ridurre il numero di passaggi a uno.
srm -llvz Chapter_One_03.txt
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
I file vengono elaborati da srm
a sua volta.
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 inizia l'elaborazione delle directory e dei file.
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.
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
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.
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
È necessario individuare la parola "scambio" e prendere nota del dispositivo a blocchi a cui è collegato.
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
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
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
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
La finestra del terminale si riempirà di asterischi come indicazione sdmem
si sta facendo strada attraverso la tua RAM.
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.