Когда файл удален, его содержимое все равно может остаться в файловой системе, если явно не перезаписано чем-то другим. Команда wipe
может безопасно удалять файлы, но не позволяет стереть свободное дисковое пространство, не используемое никакими файлами.
Что я должен использовать для достижения этой цели?
Ответы:
Предупреждение: Современное оборудование для дисков / SSD и современные файловые системы могут сжимать данные в местах, где вы не можете их удалить, поэтому этот процесс может все же оставить данные на диске. Единственными безопасными способами очистки данных являются команда ATA Secure Erase (если реализовано правильно) или физическое уничтожение. Также см. Как я могу надежно стереть всю информацию на жестком диске?
Вы можете использовать набор инструментов, который называется secure-delete.
Это имеет четыре инструмента:
srm
- надежно удалить существующий файлsmem
- надежно удалить следы файла из оперативной памятиsfill
- стереть все пространство, помеченное как пустое на вашем жестком дискеsswap
- стереть все данные из пространства подкачки.Из справочной страницы
srm
источник
cat /dev/zero >nosuchfile; rm nosuchfile
.Самый быстрый способ, если вам нужен только один проход и вы просто хотите заменить все на нули, это:
(запускается из каталога в файловой системе, которую вы хотите стереть)
(эта
sync
команда является мерой паранойи, которая обеспечивает запись всех данных на диск - интеллектуальный менеджер кэша может сработать, что он может отменить запись для любых ожидающих блоков, когда файл не связан )Во время этой операции будет время, когда в файловой системе вообще не будет свободного места, которое может составить десятки секунд, если результирующий файл будет большим и фрагментированным, поэтому его удаление займет некоторое время. Чтобы уменьшить время, когда свободное пространство полностью равно нулю:
Этого должно быть достаточно, чтобы кто-то не мог прочитать содержимое старого файла без дорогостоящей криминалистической операции. Для более безопасного, но более медленного варианта замените
/dev/zero
на/dev/urandom
. Для большей паранойи выполните несколько шагов с помощью/dev/urandom
, хотя, если вам нужно столько усилий,shred
утилита из пакета coreutils - это путь:Обратите внимание, что в приведенном выше примере маленький файл измельчается перед созданием большего, поэтому его можно удалить, как только завершится создание большего, вместо того, чтобы ждать, пока он будет уничтожен, оставляя файловую систему с нулевым свободным пространством на время, которое требуется. Процесс уничтожения занимает много времени над большим файлом, и если вы не пытаетесь что-то скрыть от АНБ, на самом деле IMO не требуется.
Все вышеперечисленное должно работать на любой файловой системе.
Ограничения на размер файла:
Как отмечает DanMoulding в комментарии ниже, это может иметь проблемы с ограничением размера файла в некоторых файловых системах.
Для FAT32 это определенно будет проблемой из-за ограничения файла в 2 ГБ: большинство томов больше, чем это в наши дни (8 ТБ - это ограничение размера тома IIRC). Вы можете обойти эту проблему,
cat /dev/zero
пропуская большие выходные данные,split
чтобы сгенерировать несколько небольших файлов и соответственно настроить этапы уничтожения и удаления.С ext2 / 3/4 это не так важно: для стандартного / общего блока 4K ограничение размера файла составляет 2 ТБ, поэтому для этого потребуется большой объем (максимальный размер тома в этих условиях составляет 16 ТБ).
С (все еще экспериментальными) btrfs максимальные размеры файлов и томов составляют огромные 16EiB.
Под NTFS максимальная длина файла в некоторых случаях даже превышает максимальную длину тома.
Начальные точки для получения дополнительной информации:
http://en.wikipedia.org/wiki/Ext3#Size_limits
http://en.wikipedia.org/wiki/Btrfs
http://en.wikipedia.org/wiki/Ntfs#Scalability
Виртуальные устройства
Как недавно упоминалось в комментариях, существуют дополнительные соображения для виртуальных устройств:
Для редко выделяемых виртуальных дисков другие методы, такие как используемые,
zerofree
будут быстрее (хотя в отличие от этого,cat
иdd
это не стандартный инструмент, на который можно положиться в значительной степени в любой UNIX-подобной ОС).Имейте в виду, что обнуление блока на разреженном виртуальном устройстве может не стереть блок на базовом физическом устройстве, на самом деле, я бы сказал, что это маловероятно - менеджер виртуальных дисков просто сделает блок больше не используемым. так что это может быть выделено для чего-то еще позже.
Даже для виртуальных устройств фиксированного размера вы не можете контролировать физическое расположение устройства, поэтому его можно перемещать вокруг текущего местоположения или на новый набор физических дисков в любое время, и самое большее, что вы можете стереть, это текущее местоположение, а не любые предыдущие местоположения, в которых блок мог находиться в прошлом.
Для перечисленных выше проблем на виртуальных устройствах: если вы не управляете хостами и не можете безопасно стереть их нераспределенное пространство после очистки дисков в ВМ или перемещения виртуального устройства, вы ничего не можете с этим сделать после факт. Единственный выход - использовать полное шифрование диска с самого начала.так что ничто в незашифрованном виде не записано на физическом носителе. Конечно, в VM все еще может потребоваться очистка свободного пространства. Также обратите внимание, что FDE может сделать разреженные виртуальные устройства намного менее полезными, так как уровень виртуализации не может реально увидеть, какие блоки не используются. Если уровень файловой системы ОС отправляет команды обрезки на виртуальное устройство (как если бы это был SSD), и виртуальный контроллер интерпретирует их, то это может решить эту проблему, но я не знаю каких-либо обстоятельств, где это действительно происходит, и более широких обсуждение этого вопроса в другом месте (мы уже близки к тому, чтобы не обсуждать первоначальный вопрос, поэтому, если это вызвало у вас интерес, возможно, стоит поэкспериментировать и / или последующие вопросы).
источник
secure-delete
инструментов: использованиеsfill -llz
сокращает всю процедуру до одного прохода, который записывает только 0.cat
иdd
доступны практически на любой Unix-а-подобных ОС , поскольку они считаются стандартными инструментами , где ,zerofree
вероятно, не , если он не был явно добавлен.zerofree
безусловно, сработало бы, конечно, «вся файловая система временно заполнена», упомянутая на странице руководства (почти, но не совсем смягченная покерным набором small.file в моих примерах), вызывает серьезную обеспокоенность если вы делаете это в активной в данный момент системе, иzerofree
она действительно будет быстрее в конкретном случае, он оптимизирован для: редко выделяемых виртуальных блочных устройств. Хотя в целях безопасности вы не можете рассчитывать на какую-либо очистку виртуального устройства: единственный верный ответ в этом случае - полное шифрование устройства с самого начала.ПРЕДУПРЕЖДЕНИЕ
Я был в шоке от того, сколько файлов photorec мог извлечь с моего диска, даже после очистки.
Вопрос о том, будет ли больше безопасности при заполнении «свободного пространства» только один раз 0x00 или 38 раз различными каббалистическими стандартами, является скорее академической дискуссией. Автор оригинальной статьи 1996 года о измельчении написал себе эпилог, в котором говорится, что это устаревшее и ненужное для современного оборудования. Нет зарегистрированного случая, когда данные физически заменяли нули и впоследствии восстанавливались.
Истинная хрупкая ссылка в этой процедуре - файловая система . Некоторые файловые системы резервируют пространство для специального использования, и оно не доступно как «свободное место». Но ваши данные могут быть там . Это включает в себя фотографии, личные текстовые электронные письма, что угодно. Я только что гуглил зарезервировано + пробел + ext4 и узнал, что 5% моего
home
раздела зарезервировано. Я думаю, это то, гдеphotorec
нашли так много моих вещей. Вывод: метод измельчения не самый важный, даже многопроходный метод все еще оставляет данные на месте .Вы можете попробовать
# tune2fs -m 0 /dev/sdn0
перед установкой. (Если это будет корневой раздел после перезагрузки, обязательно запустите-m 5
или-m 1
после размонтирования его).Но, тем не менее, так или иначе, может остаться место.
Единственный действительно безопасный способ - стереть весь раздел, снова создать файловую систему, а затем восстановить файлы из резервной копии.
Быстрый способ (рекомендуется)
Запустите из каталога в файловой системе, которую вы хотите стереть:
Примечания: цель маленького файла - сократить время, когда свободное место полностью равно нулю; Цель синхронизации - убедиться, что данные действительно записаны.
Это должно быть достаточно хорошо для большинства людей.
Медленный путь (параноик)
Не зарегистрировано случаев восстановления данных после вышеуказанной очистки. Это было бы дорого и требовательно к ресурсам, если вообще возможно.
Тем не менее, если у вас есть основания полагать, что секретные агентства потратят много ресурсов на восстановление ваших файлов, этого должно быть достаточно:
Это занимает гораздо больше времени.
Предупреждение. Если вы выбрали параноидальный способ, после этого вы все равно захотите сделать быструю очистку, и это не паранойя. Наличие чисто случайных данных легко и дешево обнаружить, и возникает подозрение, что это фактически зашифрованные данные. Вы можете умереть под пытками за то, что не раскрыли ключ расшифровки.
Очень медленный путь (сумасшедший параноик)
Даже автор оригинальной статьи 1996 года о измельчении написал эпилог, в котором говорится, что это устарело и не нужно для современного оборудования.
Но если у вас еще есть много свободного времени, и вы не возражаете тратить свой диск на перезапись, то это так:
Примечание: это по сути эквивалентно использованию инструмента безопасного удаления.
Перед редактированием этот пост был переписан Дэвидом Спиллеттом. Команда "cat" выдает сообщение об ошибке, но я не могу писать комментарии к постам других людей.
источник
cat
Команда , как ожидается , дать «нет свободного места» ошибки в моих примерах, в конце его пробега. Вы можете скрыть это, перенаправив stderr,/dev/null
если это проблема. Я обычно используюpv
вместоcat
илиdd
для такого рода вещи, чтобы получить полезную индикацию прогресса....raises the suspicion that it is actually encrypted data. You may die under torture for not revealing the decryption key.
Хех, это именно то, о чем я думал. Я думаю, это означает, что я параноик ...dd
запуск от имени root дает доступ к большей части файловой системы, чемdd
без root? Я хочу верить, что это правда, но пока не вижу причин для этого.По крайней мере, в Ubuntu есть нулевая утилита:
http://manpages.ubuntu.com/manpages/natty/man8/zerofree.8.html
Также проверьте эту ссылку о zerofree: Хранение изображений файловой системы редкими - это от ее автора - Рон Йорстон (9 августа 2012)
источник
Вот как это сделать с помощью графического интерфейса.
Преимущество BleachBit по сравнению с dd (что в противном случае очень приятно) заключается в том, что когда диск, наконец, заполнен, BleachBit создает небольшие файлы для очистки inode (которые содержат метаданные, такие как имена файлов и т. Д.).
источник
Я использую,
dd
чтобы выделить один или несколько больших файлов, чтобы заполнить свободное место, затем использую утилиту безопасного удаления.Чтобы разместить файлы с помощью dd, попробуйте:
Это создаст файл с именем
delete_me
размером 100 МБ. (Здесьbs
«размер блока» установлен в 1k, иcount
это количество блоков для выделения.)Затем используйте вашу любимую утилиту безопасного удаления (которую я использовал
shred
) для созданных файлов.Но ОБРАТИТЕ ВНИМАНИЕ: буферизация означает, что даже если вы создадите весь диск, вы можете получить не все!
Эта ссылка рекомендует
scrub
для очистки свободного пространства. Не пробовал это.источник
scrub
один раз, и это повредило всю файловую систему. К счастью, у меня был смысл сначала экспериментировать с тестовой файловой системой, а не с моими реальными данными.Протрите диск на максимальной скорости.
Типичные инструкции для шифрования диска в настоящее время скажут вам сначала очистить диск.
Команда ниже заполнит ваш диск зашифрованным текстом AES.
Используйте live CD, если вам нужно стереть основной загрузочный диск.
Откройте терминал и повышайте свои привилегии:
Давайте перечислим все диски в системе для безопасности:
ПРИМЕЧАНИЕ. Замените
/dev/sd{x}
на устройство, которое вы хотите стереть.ВНИМАНИЕ: Это не для любителей! Вы можете сделать вашу систему не загружаемой !!!
Я ошеломлен тем, как быстро это происходит.
источник
Возможно, в вашей системе уже установлен пакет GNU coreutils . Это обеспечивает командный клочок .
источник
Вы можете стереть свое свободное место с помощью безопасного пакета удаления.
В этом пакете вы можете найти
sfill
инструмент, который предназначен для безопасного удаления данных, которые находятся на доступном дисковом пространстве на носителях, и которые не могут быть восстановлены ворами, правоохранительными органами или другими угрозами.Чтобы установить пакет безопасного удаления в Linux (Ubuntu), установите его с помощью следующей команды:
Затем, чтобы стереть ваши данные без свободного места, попробуйте следующую команду:
Где / YOUR_MOUNTPOINT / OR_DIRECTORY - это точка монтирования (
df -h
,mount
) или каталог для удаления свободного места.Прочтите руководство по адресу http://manpages.ubuntu.com/manpages/hardy/man1/sfill.1.html.
источник
используйте dd и просто обнулите свободное место. это миф, данные должны быть перезаписаны несколько раз (просто спросите Питера Гантмана) и случайные данные, в отличие от 1, то 0 означает неестественную активность. тогда конечный результат - чистый диск с меньшим количеством времени, потраченным на запись. кроме того, программы безопасного удаления не могут гарантировать, что они даже перезаписывают реальный файл в современных файловых системах (в журнале). сделайте себе одолжение и получите фоторепортаж, отсканируйте свой диск, чтобы увидеть беспорядок, вытрите его 1 и, возможно, нулями, чтобы он выглядел нетронутым. если photorec все еще находит что-то, помните, что он сканирует все доступное, поэтому сделайте это снова с пользователем root.
помните, что у cia / fbi / nsa нет необычной машины, которая может считывать фактическое состояние ваших битов магнитных носителей. это была всего лишь статья, написанная давным-давно. «что-если». вам нужно только стереть 1 раз.
источник
Проще использовать скраб :
Это создаст
dump
папку в текущем месте и будет создавать файл, пока диск не будет заполнен. Вы можете выбрать шаблон с помощью-p
опции (nnsa|dod|bsi|old|fastold|gutmann
).Установить скраб нелегко ( см. Раздел «Форумы Ubuntu» ), но как только установка будет завершена, в вашей руке будет действительно ПРОСТОЙ и эффективный инструмент.
источник
scrub
один раз, и это повредило всю файловую систему. К счастью, у меня был смысл сначала экспериментировать с тестовой файловой системой, а не с моими реальными данными.scrub -X dump_dir
и, похоже, сработало хорошо. Кстати, установка на Ubuntu 14.04 очень просто:apt-get install scrub
.Вот сценарий "sdelete.sh", который я использую. Смотрите комментарии для деталей.
источник
Я нашел простое решение, которое работает на Linux и MacOS. Переместитесь в корневую папку вашего диска и запустите эту команду:
где // DISKSPACE // - размер вашего жесткого диска в ГБ.
источник
Я иногда использую этот bash one-liner:
Когда он начнет говорить, что диск заполнен, просто нажмите Ctrl+ Cи удалите созданные
zero.*
файлы.Он работает в любой системе, независимо от размера файла.
Игнорировать любые
cat: write error: File too large
ошибки.источник
Это не ответ! Просто комментарий для желающих использовать
pv
... так что не беспокойтесь о голосовании.В Linux Mint 17.3 вы можете использовать
pv
(представление канала ), чтобы получить прогресс написания. Например:Преимущество здесь в том, что вы получаете индикатор выполнения, ETA и постоянно обновляемую скорость передачи данных. Недостатком является то, что это записано в одну строку, а когда диск заполнен (возвращает ошибку), он исчезает. Это происходит потому, что полный размер является приблизительным, поскольку ОС, вероятно, будет использовать диск во время этой очень длительной операции, особенно на томе ОС.
На очень старый HD, я получаю скорость передачи данных около 13 Мбайт / с использованием
/dev/urandom
, и около 70 МБ / с , при использовании/dev/zero
. Это, вероятно, улучшится в дальнейшем при использовании rawdd
илиcat
, и нетpv
.источник
Как только файл удален из записи файловой системы, данные, оставленные на жестком диске, представляют собой бессмысленную последовательность из 1 и 0. Если вы хотите заменить эту бессмысленную последовательность другой бессмысленной последовательностью, я могу посоветовать некоторые коммерческие продукты для безопасного стирания накопителей, например, arconis.
источник