Что происходит, когда я использую 'dd' для перезаписи диска, с которого работает Ubuntu?

9

Что будет, если я использую

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

от Ubuntu установки работает с /dev/sda ?


Я попробовал это в виртуальной машине, и, кажется, правильно стер диск. Будет ли так каждый раз? Это безопасный способ «стереть» установку Ubuntu и все данные?

Мой вопрос несколько вдохновлен:

  1. Как удалить Ubuntu с компьютера?
  2. Как 'rm -rf /' может удалить все файлы в системе? ,
JonasCz - Восстановить Монику
источник
2
Нет нет нет. Плохая идея. Не полагайтесь на это, если хотите надежно стереть свои данные.
Андре Бори

Ответы:

16

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

Вы можете избежать этой проблемы, сначала перемонтировав в режиме «только для чтения» корневую файловую систему и любые другие файловые системы, которые находятся на диске (или полностью отключив их, но вы не сможете это сделать с корневой файловой системой), а затем, нет на файловых системах вообще должно быть разрешено больше записей (поэтому нет необходимости сбрасывать буферы), поэтому ваша команда должна быть в безопасности сейчас, даже если это все равно плохая идея в случае паники, потому что она занимает много времени.

Если вы хотите использовать какую-либо функцию удаления паники, я предлагаю зашифровать ваш диск с помощью LUKS (это может сделать установщик Ubuntu), а затем следуйте моему ответу на Security Stack Exchange . Это включает в себя очистку шифровального заголовка, размер которого составляет всего 2 МБ, а перезапись занимает менее секунды. Затем перезапустите систему, и ключи шифрования диска исчезнут из памяти, и их невозможно будет восстановить, поскольку сам криптхедер также исчез.

Андре Бори
источник
Также связано: security.stackexchange.com/questions/106131/…
Андре Бори
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пример, но ничто не является полностью безопасным или гарантированным ...

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

И ты должен мне одну ВМ :)

Ссылки:

andrew.46
источник
Можете ли вы привести пример того , как синтаксис будет , если один будет достаточно заполнить диск нулями (если = / DEV / ноль) , используя ddи pvпожалуйста?
Шторм
1
@Stormlord Вы просто передаете это по каналу pv(просмотрщик dd if=/dev/zero | pv | dd of=/dev/sdX
каналов
2
Вам не нужно жертвовать виртуальной
машиной -
Таким образом, даже при некоторой обратной записи общий результат является стеганографически сложным. Без «мусора» в противном случае было бы просто зашифровать диск, чтобы найти ненулевые значения.
Маккензм
6

Короткий ответ: он будет делать примерно то, что вы хотите, и тогда ничего не будет работать. Использование ddвы работаете на уровень ниже файловой системы , которая означает , что любые ограничения , которые применяются бы там больше не актуальны (это не означает , что ядро не может помешать вам это делать - но это не делает). Некоторый контент из файловой системы уже находится в памяти, например, ядро ​​и сама ddпрограмма, а другой будет в кеше. Существует вероятность того, что, если система находится в многопользовательском режиме, некоторые файлы могут быть записаны обратно во время ddвыполнения, при условии, что они действительно изменились, и если вы испытываете нехватку памяти, некоторые страницы могут также быть выгружены (они должны быть зашифрованы и, следовательно, непригодны для использования после перезагрузки).

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

Если вам нужна безопасная очистка, это не сработает, потому что все равно останутся следы исходных данных, если вы просто обнуляете их. Как правило, вы хотите до трех случайных записей, что означает копирование /dev/urandomвместо /dev/zero- гораздо медленнее, но безопаснее. Кто-то может предложить использовать /dev/randomустройство для «чистых» случайных данных, а не псевдослучайных, но для этой цели вероятность того, что кому-то удастся взломать начальное число PRNG и успешно замаскировать данные, практически ничтожна.

Если вы действительно параноик, вам нужно бросить устройство хранения в печь, чтобы оно размагничивалось / разряжалось.

Джим Дрисколл
источник
1
Ты помнишь вызов дд? Это было много лет назад, но они предлагали вознаграждение любой компании, которая могла восстановить любые данные с жесткого диска, который был обнулен за один раз. У них не было берущих.
Кейси
1
«Трижды» - это полная чушь. Случайные данные 1 раз, безусловно, невозможно восстановить. Даже нули будут слишком дорогими для восстановления (см. Комментарий @ Кейси). Может быть, если бы вознаграждение составляло 1 $ или около того, у них были бы покупатели ...
R .. GitHub ОСТАНОВИТЕ, ЧТОБЫ ПОМОЧЬ ЛЬДУ
Зависит от вашего бюджета и технологий диска. Если это блюдо, вы можете получить данные. Даже с «вертикальной» магнитной технологией. Чем более изменчива память, тем вы безопаснее.
Маккензм
4

Он будет, как и в вашей виртуальной машине, стереть диск и сделать вашу систему непригодной для использования.

Однако, если вы имеете в виду своего рода «удаление паники», это ddможет быть недостаточно быстрым для этого, и я не уверен, есть ли более быстрые команды или программы, предоставляющие его в этом случае.

Videonauth
источник
1

Должно работать, процесс запуска проходит в Ram и не нуждается в диске. Я бы в любом случае использовал живую систему, работающую с CD или USB. Существует даже dban, специализированный live linux для очистки дисков.

Перезапись диска нулями - это сохранение, но если вы достаточно параноик или у вас есть законные правила, вы можете перезаписывать случайные данные несколько раз.

Будьте осторожны при использовании перезаписи ssd не гарантирует удаление всех данных из-за выравнивания износа.

Если вы используете полное шифрование диска (luks), вам не нужно удалять полный диск, достаточно удалить заголовок luks.

Уве Бургер
источник