Cosa succede quando utilizzo 'dd' per sovrascrivere il disco da cui è in esecuzione Ubuntu?


9

Cosa succederebbe se lo usassi

sudo dd if=/dev/zero of=/dev/sda

da un'installazione Ubuntu in esecuzione da /dev/sda ?


L'ho provato in una macchina virtuale e sembra aver cancellato correttamente il disco. Sarà così ogni volta? È un modo sicuro per "cancellare" un'installazione di Ubuntu e tutti i dati?

La mia domanda è in qualche modo ispirata da:

  1. Come disinstallare Ubuntu da un computer?
  2. In che modo 'rm -rf /' è in grado di eliminare tutti i file nel sistema? .

2
No no no Cattiva idea. Non fare affidamento su questo se si desidera cancellare in modo sicuro i dati.
André Borie,

Risposte:


16

In realtà, il filesystem è ancora montato, e alcune scritture sono bufferizzate nel senso che sono ancora nella RAM in attesa di essere scritte sul disco. Diciamo che ddsovrascrive correttamente tutto, e proprio dietro di esso i buffer vengono scaricati e alcuni dati potenzialmente sensibili vengono riscritti sul disco. Quindi no, questo non è un modo sicuro per cancellare un disco.

Puoi evitare questo problema rimuovendo prima in modalità di sola lettura il filesystem di root e tutti gli altri filesystem che si trovano sul disco (o smontandoli completamente, ma non sarai in grado di farlo con il file system di root), quindi, no più scritture dovrebbero essere consentite sui filesystem (quindi nessun buffer da svuotare), quindi il tuo comando dovrebbe essere sicuro ora, anche se è ancora una cattiva idea in caso di panico perché impiega molto tempo.

Se vuoi avere una sorta di funzione di eliminazione del panico, ti suggerisco di crittografare il tuo disco con LUKS (il programma di installazione di Ubuntu può farlo) e quindi seguire la mia risposta su Security Stack Exchange . Ciò comporta la pulizia del cryptheader che ha solo 2 MB di dimensione e che richiede meno di un secondo per sovrascrivere. Quindi riavviare il sistema e le chiavi di crittografia del disco spariranno dalla memoria, senza alcun modo per ripristinarle poiché anche il criptheader stesso è sparito.



10

Ho sacrificato una VM usando un uso leggermente più avanzato di ddprestito e leggermente modificato dalle pagine di Arch Wiki .

Innanzitutto installa un bel misuratore di progresso:

sudo apt-get install pv

E quindi esegui il ddcomando 'avanzato'

sudo openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null \
| base64)" -nosalt </dev/zero \
| pv -bartpes "$(sudo blockdev --getsize64 /dev/sda)" \
| sudo dd bs=64K of=/dev/sda

Questo lascerà il disco pieno di testo cifrato AES. Una cancellazione completa e sicura del disco? Probabilmente meglio del tuo ddesempio, ma nulla è completamente sicuro o garantito ...

inserisci qui la descrizione dell'immagine

E mi devi una VM :)

Riferimenti:


Puoi fare un esempio di come sarebbe la sintassi se si preferisse riempire il disco di zeri (se = / dev / zero) usando dde per pvfavore?
Stormlord,

1
@Stormlord Lo hai appena passato attraverso pv(pipe viewer), quindidd if=/dev/zero | pv | dd of=/dev/sdX
someonewithpc,

2
Non è necessario sacrificare una VM: basta creare un'istantanea in anticipo e ripristinarla al termine :-)
JonasCz - Ripristinare Monica

Quindi, anche se c'è qualche riserbo, il risultato totale è steganograficamente complesso. Senza la "spazzatura" sarebbe altrimenti semplice scaricare il disco in modo esadecimale per trovare valori diversi da zero.
mckenzm,

6

Risposta breve: farà all'incirca quello che vuoi e poi niente funzionerà. Usando ddstai operando a un livello inferiore al filesystem, il che significa che eventuali vincoli che potrebbero essere applicati non sono più rilevanti (questo non significa che il kernel non possa impedirti di farlo, ma non lo fa). Alcuni contenuti del filesystem sono già in memoria, ad esempio il kernel e il ddprogramma stesso, e alcuni saranno nella cache. Esiste la possibilità che se il sistema è in modalità multiutente, alcuni file potrebbero essere riscritti mentre ddè in corso, supponendo che siano effettivamente cambiati, e se sei sotto pressione della memoria alcune pagine da lì potrebbero anche essere scambiate (dovrebbero essere crittografati e quindi inutilizzabili dopo il riavvio).

La maggior parte dei comandi che emetteresti in seguito a questo - incluso reboot- non sarebbero nella cache e quindi non funzionerebbero. Quindi se sei in modalità utente singolo, funzionerà molto bene, se sei in modalità multiutente cancellerà la maggior parte dei dati. Idealmente, dovresti farlo avviato da un altro supporto (magari fermandoti sull'inizrd forse) in modo da poter essere sicuro da dove provengono tutte le scritture.

Se si desidera una cancellazione sicura, questo non farà il lavoro perché ci saranno ancora alcune tracce dei dati originali se lo si azzera. In genere si vorrebbe fino a tre scritture casuali, il che significherebbe copiare /dev/urandominvece di /dev/zero- molto più lento ma più sicuro. Alcuni potrebbero suggerire di utilizzare /dev/randomquale sia il dispositivo per dati casuali "puri" - non pseudo-casuali - ma a tal fine la possibilità che qualcuno riesca a decifrare il seme PRNG e mascherare con successo i dati è essenzialmente trascurabile.

Se sei davvero paranoico, devi gettare il dispositivo di archiviazione in una fornace in modo che si smagnetizzi / scarichi.


1
Ti ricordi la sfida dd? Questo è successo anni fa, ma hanno offerto una generosità a qualsiasi azienda in grado di recuperare qualsiasi dato da un disco rigido che era stato azzerato una volta. Non avevano acquirenti.
Casey,

1
La "tre volte" è una totale assurdità. I dati casuali 1 volta sono certamente irrecuperabili. Persino gli zeri saranno proibitivi per recuperare (vedi il commento di @ Casey). Forse se la taglia fosse di circa $ 1 miliardi o giù di lì avrebbero avuto dei taker ...
R .. GitHub FERMA DI AIUTARE ICE

Dipende dal budget e dalla tecnologia del disco. Se si tratta di un piatto, potresti essere in grado di ottenere dati. Anche con tecnologia magnetica "verticale". Più volatile è la memoria, più sicuro sei.
mckenzm,

4

Lo farà come nella tua VM, cancella il disco e rende il tuo sistema inutilizzabile.

Tuttavia, se hai in mente una sorta di "eliminazione del panico" ddpotrebbe non essere abbastanza veloce per questo e non sono sicuro che ci siano comandi o programmi più veloci che lo forniscono in quel caso.


1

Dovrebbe funzionare, il processo in esecuzione si svolge in Ram e non necessita del disco. Vorrei comunque utilizzare un sistema live in esecuzione da cd o usb. C'è anche dban, un linux live specializzato per la pulizia del disco.

La sovrascrittura del disco con zeri viene salvata, ma se sei abbastanza paranoico o hai regole legali puoi sovrascrivere più volte con dati casuali.

Fare attenzione quando si utilizza la sovrascrittura ssd non garantisce la cancellazione di tutti i dati a causa del livellamento dell'usura.

Se si utilizza la crittografia del disco completo (luks) non è necessario eliminare l'intero disco, è sufficiente eliminare l'intestazione luks.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.