Толик Панков
hex_laden
............ .................. ................
October 2025
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Толик Панков [userpic]
Shred для Windows, перевод краткой справки и эксперимент с параметрами программы

Преамбула


Что такое shred? Это опенсорсный "уничтожитель" файлов, т.е. программа затирает (забивает случайными данными) файл на диске, чтобы невозможно было его восстановить средствами восстановления файлов, например, чтобы окончательно удалить конфиденциальные данные, доступ к которым может получить злоумышленник. shred входит во многие дистрибутивы Линукс, но есть версии и под другие ОС. Тут буду экспериментировать и описывать версию для windows.

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

Внимание! Идеальный уничтожитель данных, во всяком случае, с HDD-дисков, это молоток, с последующей обработкой диска в костре на березовых дровах, а всего оставшегося в микроволновке.

Перевод краткой справки


Использование: shred.exe [ОПЦИИ] ФАЙЛ1 [ФАЙЛ2 ФАЙЛ3 ...]

Многократное перезаписывание указанных ФАЙЛОВ, для затруднения восстановления данных даже очень дорогим аппаратным обеспечением.

Обязательные аргументы для длинных опций обязательны и для коротких опций.

-f, --force изменить разрешения файловой системы, чтобы разрешить запись, если это необходимо
-n, --iterations=N Перезаписать N раз вместо значения по умолчанию (25)
-s, --size=N затереть указанное количество байтов (допускаются такие суффиксы, как K, M, G)
-u, --remove обрезать и удалить файл после перезаписи
-v, --verbose показать прогресс
-x, --exact не округлять размеры файлов до следующего полного блока; это значение по умолчанию для нестандартных файлов (В Windows он все файлы округляет до полного блока, т.е. кластера на диске - Tolik)
-z, --zero добавить окончательную перезапись нулями, чтобы скрыть затирание файла
--help показать эту справку и выйти
--version вывести информацию о версии и выйти

Если в качестве файла указан -, затирается стандартный вывод.

Удалить ФАЙЛ(ы), если указан --remove (-u). По умолчанию не удалять
файлы, потому что обычно работают с файлами устройств, такими как /dev/hda, и эти файлы обычно не следует удалять. При работе с обычными файлами большинство людей используют параметр --remove. (Лучше так не делать, ниже обьясню почему)

ВНИМАНИЕ: обратите внимание, что shred основывается на очень важном допущении:
что файловая система перезаписывает данные на месте. Это традиционный способ работы, но многие современные файловые системы не удовлетворяют этому предположению.

Ниже приведены примеры файловых систем, в которых уничтожение файлов неэффективно:

* лог-структурированные или журналируемые файловые системы, такие как поставляемые с AIX и Solaris (а также JFS, ReiserFS, XFS, Ext3 и т. д.)

* файловые системы, которые записывают избыточные данные и продолжают работать даже в случае сбоя некоторых операций записи, например, файловые системы на основе RAID

* файловые системы, которые делают моментальные снимки, такие как NFS-сервер Network Appliance

* файловые системы, кэширующие во временных местах, такие как клиенты NFS версии 3

* сжатые файловые системы

Кроме того, резервные копии файловой системы и удаленные зеркала могут содержать копии файла, которые невозможно удалить, что позволит позже восстановить затертый файл.

Сообщайте об ошибках по адресу <bug-coreutils@gnu.org>.

Вместо ФАЙЛ можно использовать маску файлов, если вы хотите затереть группу файлов по маске, например, shred *.txt уничтожит все текстовые файлы в каталоге - Tolik

Разрешения файлов обрабатываются нормально, т.е., например, *.htm и *.html воспринимаются, как разные файлы.- Tolik


Эксперименты, заметки и мысли


Внимание! Под рукой у меня нет лаборатории и оборудования разных там контор, тем более, проводил я их на скорую руку и довольно дилетантски, так что на абсолютную истину не претендую. Используйте все нижесказанное на свой страх, риск и хвост!

Условия:
- Windows 7 Professional x64
- SATA HDD Seagate, 500 GB
- FS: NTFS
- форк shred (ниже дам ссылку)

Проверял работу затиралки WinHex'ом 19.9[https://www.x-ways.net/winhex/] x64, не самым свежим, но даже лицензионным (мне его кто-то подарил), на самом деле, следов мелких файлов я так и не обнаружил, так что сразу говорю, почти все тесты shred прошел, и мне лень делать скрины с WinHex'а, а теперь о параметрах:

Внимание! Не советую использовать опцию -u, т.е. удаление файла. shred его просто удалит, не поменяв ему имя на случайное, как это делают многие "затиралки", потому, если вы затираете файл, например, с именем, путин бомба взрыв бомбас.doc, то понятно кто хоть содержания файла и не увидит, но выводы сделает. Так что после shred файл лучше обработать напильником, т.е. переименовать его случайным набором символов, или неслучайным, например, мой_кот.jpg, а после этого удалять штатными средствами ОС.

Количество итераций:

т.е. опция -n <число> или --iterations=<число>

На ваше усмотрение, я не заметил разницы в WinHex'е между 3, которые выставил я, и 25 по умолчанию, но стоит ли лишний раз насиловать HDD или SSD перезаписями... Не знаю.

Дозапись файла:

опция -s <число> (--size=<число>)

Дозаписывает файл числом байт (случайных). Если использовать после числа без пробела K M или G, то, соответственно -кило -мега или -гига байт. На мой взгляд, это излишне, найдут у вас в директории C:\DOC файл мой_кот.jpg размером в 5Гб и удивятся. Но вообще можно, shred с файловой системой обращается аккуратно и другие файлы не затрет.

Забить все нолями:

Опция -z (--zero)

На последней итерации затирания, shred перезаписывает весь файл символом с кодом 0.

На мой взгляд, довольно полезная опция, при использовании рекомендаций по переименованию файла и удалению, после затирания. "А хрен знает, товарищ майор, что это у меня за файл был с названием dfghuyty.13 в D:\DOC, вирус, наверное."

(Не)дописывать до кластера:

Опция -x

В Linux'овой версии shred эта опция включает не дописывание до кластера, самое странное, что в Windows-версии наоборот, отключает.

Небольшое пояснение. В стандартных файловых системах файл занимает 1 кластер на диске. Т.е. файл, какого бы размера он не был, займет, как минимум 1 кластер. Размер кластера устанавливается настройками ОС, также его можно изменить при форматировании (иногда). Например, кластер в NTFS при стандартном форматировании равен 4Кб, т.е. 4096 байт, потому, даже если файл фактически занимает 4 байта, например, текстовый файл с содержимым 1234, он все равно будет занимать 1 кластер. Если файл больше одного кластера, то автоматически он займет весь следующий, даже если в файле 4096+1 байт, и т.д.

Если (в Windows-версии shred) применить опцию -x к файлу 3.txt, который содержит 4 байта (текст 1234, например), то shred и запишет 4 случайных байта.

Мое мнение: опцию -x не использовать, пусть уж затирает кластер целиком.

Оптимальный вариант опций для мелких повседневных задач (затереть небольшой файл):

shred -n 3 -z <file_or_mask>

где <file_or_mask> - файл или маска файлов.

Позже напишу батник, который будет затертые файлы рандомно переименовывать и удалять.

Скачать shred для Windows


С Mega.NZ

Это репост с сайта http://tolik-punkoff.com
Оригинал: https://tolik-punkoff.com/2022/12/19/shred-dlya-windows-perevod-kratkoj-spravki-i-eksperiment-s-parametrami-programmy/

Tags: , ,