web-dev-qa-db-fra.com

Que se passe-t-il lorsque j'utilise «dd» pour écraser le disque à partir duquel Ubuntu est exécuté?

Que se passerait-il si j'utilisais

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

depuis une installation Ubuntu exécutée à partir de /dev/sda?


Je l'ai essayé dans une VM, et il semble avoir correctement essuyé le disque. Est-ce que ce sera le cas à chaque fois? Est-ce un moyen sûr de "nettoyer" une installation Ubuntu et toutes les données?

Ma question est quelque peu inspirée par:

  1. Comment désinstaller Ubuntu d'un ordinateur?
  2. Comment 'rm -rf /' peut-il supprimer tous les fichiers du système? .
9
JonasCz

En fait, le système de fichiers est toujours monté et certaines écritures sont mises en mémoire tampon, ce qui signifie qu'elles sont toujours dans RAM en attente d'écriture sur le disque. Supposons que dd écrase correctement tout et que juste derrière, les tampons sont vidés et que des données potentiellement sensibles sont réécrites sur le disque. Donc non, ce n'est pas un moyen sûr d'effacer un disque.

Vous pouvez éviter ce problème en remontant tout d'abord en mode lecture seule le système de fichiers racine et tous les autres systèmes de fichiers présents sur le disque (ou en les démontant complètement, mais vous ne pourrez pas le faire avec le système de fichiers racine), puis non. plus d'écritures devraient être autorisées sur les systèmes de fichiers (donc pas de tampons à vider), donc votre commande devrait être en sécurité maintenant, même si c'est toujours une mauvaise idée en cas de panique car cela prend beaucoup de temps.

Si vous voulez avoir une sorte de fonctionnalité de suppression de panique, je suggère de chiffrer votre disque avec LUKS (le programme d'installation d'Ubuntu peut le faire), puis de suivre ma réponse sur Security Stack Exchange . Cela implique d’effacer le lecteur de chiffrement qui n’a que 2 Mo de taille et dont l’écrasement prend moins d’une seconde. Ensuite, redémarrez le système et les clés de chiffrement de disque disparaîtront de la mémoire, sans aucun moyen de les restaurer, car le cryptage lui-même a également disparu.

17
André Borie

J'ai sacrifié un VM en utilisant une utilisation légèrement plus avancée de dd emprunté et légèrement modifié à partir de pages Arch Wiki .

Commencez par installer un compteur de progression Nice:

Sudo apt-get install pv

Et puis exécutez la commande 'améliorée' dd

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

Cela laissera le disque rempli de texte crypté AES. Une lingette de disque complète et sécurisée? Probablement mieux que votre propre exemple dd mais rien n’est totalement sûr ou garanti ...

enter image description here

Et vous me devez un VM :)

Références:

9
andrew.46

Réponse courte: cela fera à peu près ce que vous voulez et rien ne fonctionnera. Si vous utilisez ddname__, vous opérez à un niveau inférieur au système de fichiers, ce qui signifie que les contraintes qui s’appliqueraient n’y sont plus pertinentes (cela ne signifie pas que le noyau ne peut pas vous empêcher de le faire - mais ce n’est pas le cas). Une partie du contenu du système de fichiers est déjà en mémoire, par exemple le noyau et le programme ddet certains seront en cache. Si le système est en mode multi-utilisateur, il est possible que certains fichiers soient réécrits pendant que ddest en cours, en supposant qu'ils aient réellement changé, et si vous êtes sous pression mémoire, certaines pages de cette page risquent également d'être permutées. out (ils doivent être cryptés et donc inutilisables après le redémarrage).

La plupart des commandes que vous donneriez par la suite, y compris rebootname__, ne seraient pas dans le cache et ne fonctionneraient donc pas. Donc, si vous êtes en mode mono-utilisateur, tout ira très bien, si vous êtes en mode multi-utilisateurs, la plupart des données seront effacées. Idéalement, vous devriez le faire depuis un autre support (même en s’arrêtant peut-être sur initrd), de façon à pouvoir déterminer l’origine de toutes les écritures.

Si vous souhaitez un effacement sécurisé, cela ne fonctionnera pas, car il restera encore des traces des données d'origine si vous les mettez à zéro. En règle générale, vous souhaitez utiliser jusqu'à trois écritures aléatoires, ce qui signifie copier à partir de /dev/urandom au lieu de /dev/zero - beaucoup plus lentement mais en toute sécurité. Certains peuvent suggérer que vous utilisiez /dev/random qui est le périphérique pour les données aléatoires "pures" - pas de pseudo-aléatoire - mais à cette fin, le risque que quelqu'un réussisse à déchiffrer le germe PRNG et à masquer les données est essentiellement négligeable.

Si vous êtes vraiment paranoïaque, vous devez lancer le dispositif de stockage dans un four afin qu'il se démagnétise/se décharge.

6
Jim Driscoll

Comme cela a été le cas dans votre VM, vous devez effacer le disque et rendre votre système inutilisable.

Cependant, si vous avez une sorte de "suppression de panique" à l'esprit, dd risque de ne pas être assez rapide pour cela et je ne suis pas sûr qu'il existe des commandes ou des programmes plus rapides qui le fournissent dans ce cas.

4
Videonauth

Cela devrait fonctionner, le processus en cours se déroule dans Ram et n'a pas besoin du disque. Je voudrais utiliser un système live de cd ou usb de toute façon. Il existe même dban, un linux en direct spécialisé pour l’essuyage des disques.

Écraser votre disque avec des zéros est une sauvegarde, mais si vous êtes assez paranoïaque ou si vous avez des règles légales, vous pouvez écraser plusieurs fois avec des données aléatoires.

Soyez prudent lorsque vous utilisez ssd écraser ne garantit pas la suppression de toutes les données en raison de l'usure de nivellement.

Si vous utilisez le cryptage intégral du disque (luks), vous ne devez pas supprimer le disque complet, la suppression de l'en-tête luks est suffisante.

1
Uwe Burger