Що відбувається, коли я використовую 'dd' для перезапису диска, з якого працює Ubuntu?


9

Що буде, якщо я буду користуватися

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

з установки Ubuntu, що працює з /dev/sda ?


Я спробував це в VM, і, здається, правильно витер диск. Це буде щоразу? Це безпечний спосіб "стерти" установку Ubuntu та всі дані?

Моє запитання дещо натхнене:

  1. Як видалити Ubuntu з комп'ютера?
  2. Як "rm -rf /" може видалити всі файли в системі? .

2
Ні-ні-ні. Погана ідея. Не покладайтеся на це, якщо ви хочете надійно стерти свої дані.
Андре Борі

Відповіді:


16

Насправді файлова система все ще змонтована, а деякі записи буферизовані, тобто вони все ще знаходяться в оперативній пам'яті, чекаючи запису на диск. Скажімо, ddправильно все перезаписується, і відразу за ним буфери розмиваються, а деякі потенційно чутливі дані повертаються на диск. Так ні, це не безпечний спосіб витирання диска.

Ви можете уникнути цієї проблеми, попередньо перезавантаживши в режимі лише для читання кореневу файлову систему та будь-яку іншу файлову систему, що є на диску (або повністю відключити їх, але ви не зможете з кореневою файловою системою), а потім ні більше файлів має бути дозволено взагалі у файлових системах (так що буфери не змиваються), тому ваша команда повинна бути в безпеці зараз, хоча це все-таки погана ідея у випадку паніки, оскільки це займає тривалий час.

Якщо ви хочете мати якусь функцію видалення паніки, я пропоную зашифрувати ваш диск за допомогою LUKS (інсталятор Ubuntu може це зробити), а потім дотримуватися моєї відповіді на Exchange Stack Exchange . Це передбачає витирання криптовалюти розміром лише 2 Мб, а для перезапису потрібно менше секунди. Потім перезавантажте систему, і ключі шифрування диска не будуть збережені з пам’яті, без способів відновити їх, оскільки сама криптовалюта також зникла.



10

Я пожертвував ВМ, використовуючи дещо вдосконалене використання ddзапозичених і трохи модифікованих зі сторінок Arch Wiki .

Спочатку встановіть хороший вимірювач прогресу:

sudo apt-get install pv

А потім запустити «розширені» 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

Це дозволить залишити диск, заповнений шифрованим текстом AES. Повне та безпечне протирання диска? Можливо, краще, ніж ваш власний ddприклад, але нічого не є абсолютно безпечним чи гарантованим ...

введіть тут опис зображення

І ти мені один ВМ :)

Список літератури:


Чи можете ви навести приклад того, яким би був синтаксис, якщо скоріше заповнити диск нулями (якщо = / dev / zero) за допомогою ddта pvбудь ласка?
Stormlord

1
@Stormlord Ви просто трубите це pv(переглядач труб), отжеdd if=/dev/zero | pv | dd of=/dev/sdX
Somewithpc

2
Вам не потрібно жертвувати VM - просто заздалегідь зробіть знімок і відновіть, коли закінчите :-)
JonasCz - Відновіть Моніку

Тож навіть якщо є певна сума, загальний результат є стеганографічно складним. Без "сміття" в іншому випадку було б просто виправити диск, щоб знайти ненульові значення.
mckenzm

6

Коротка відповідь: вона зробить приблизно те, що ви хочете, і тоді нічого не вийде. Використання ddви працюєте на рівні нижче файлової системи, що означає, що будь-які обмеження, які застосовуються там, вже не мають значення (це не означає, що ядро ​​не могло вам завадити цьому - але це не так). Деякий вміст файлової системи вже є в пам'яті, наприклад, ядро ​​і сама ddпрограма, а частина буде в кеші. Існує ймовірність того, що якщо система перебуває у багатокористувацькому режимі, деякі файли можуть бути записані назад під час роботи dd, при умові, що вони фактично змінилися, і якщо ви перебуваєте під тиском пам’яті, деякі сторінки звідти також можуть бути замінені (вони повинні бути зашифровані і, таким чином, непридатні для використання після перезавантаження).

Більшість команд, які ви надали після цього, в тому числі reboot- не були б у кеші, і тому вони не працюватимуть Тож якщо ви перебуваєте в режимі одиночного користувача, це буде дуже добре, якщо ви перебуваєте в режимі багатокористувача, воно видалить переважну більшість даних. В ідеалі ви повинні зробити це завантажено з іншого середовища (можливо, навіть зупинившись на initrd), щоб ви могли бути впевнені, звідки беруться всі записи.

Якщо ви хочете забезпечити безпечне стерти, це не зробить роботу, тому що все одно залишаться деякі сліди від оригінальних даних, якщо ви просто нулюєте їх. Зазвичай ви хочете до трьох випадкових записів, що означатиме копіювання /dev/urandomзамість /dev/zero- набагато повільніше, але безпечніше. Деякі можуть запропонувати використовувати /dev/randomпристрій для "чистих" випадкових даних - ніяких псевдовипадкових - але для цього шанс когось вдасться зламати насіння PRNG і успішно замаскувати дані, по суті, незначний.

Якщо ви справді параноїк, вам потрібно кинути накопичувач у піч, щоб він знемагав / розряджався.


1
Ви пам’ятаєте виклик dd? Це було років тому, але вони пропонували винагороду будь-якій компанії, яка могла відновити будь-які дані з жорсткого диска, який був нульовий протягом одного разу. У них не було людей.
Кейсі

1
Річ "тричі" - це суцільна нісенітниця. Випадкові дані 1 раз, безумовно, неможливо відновити. Навіть нулі будуть надзвичайно дорогими для відновлення (див. Коментар @ Кейсі). Можливо, якби виграш становив $ 1 млрд або близько того, вони мали б взяти ...
R .. GitHub ЗАСТАНІТЬ ДОПОМОГУ ICE

Залежить від вашого бюджету та технології диска. Якщо це блюдо, можливо, ви зможете отримати дані. Навіть з "вертикальною" магнітною технологією. Чим більш мінлива пам'ять, тим безпечніше ви.
mckenzm

4

Це буде так, як це було зроблено у вашому VM, видаливши диск і зробить вашу систему непридатною.

Однак якщо ви маєте на увазі певне "панічне видалення", це ddможе бути недостатньо швидким для цього, і я не впевнений, чи є швидші команди чи програми, які надають його в такому випадку.


1

Він повинен працювати, запущений процес утримується в Рамі і диск не потребує. Я б у будь-якому разі використовував живу систему, що працює з CD або usb. Існує навіть dban, спеціалізований живий Linux для протирання дисків.

Переписування диска нулями - це економія, але якщо у вас є параноїк або є законні правила, ви можете перезаписувати випадкові дані кілька разів.

Будьте обережні, використовуючи перезапис ssd, не гарантуйте видалення всіх даних через рівень зносу.

Якщо ви використовуєте повне шифрування диска (luks), вам не доведеться видаляти повний диск, достатньо видалити заголовок luks.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.